summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* ExtUtils-Install-1.62 has been released to CPANChris 'BinGOs' Williams2014-03-101-1/+1
|
* remove a redundant SvTIED_mg from S_do_smartmatchDaniel Dragan2014-03-101-15/+15
| | | | | | | A non tied HV potentially could be checked twice for being tied. Move HvUSEDKEYS part to avoid checking var tied twice. The redundant tied check comes from day 1 of smart match in commit 0d863452f5 . IDK why HV sides are swapped, but comment it.
* don't repeatedly call HvUSEDKEYSDaniel Dragan2014-03-102-7/+12
| | | | HvUSEDKEYS contains a function call nowadays. Don't call it repeatedly.
* Handle "no versions" feature in fileify and tovmsspec.Craig A. Berry2014-03-101-5/+11
| | | | | | | | | | | | | | | | This is a follow-up to d5e61aaf9d7051b136, where we stopped escaping semicolons in tovmsspec when they appeared to be the beginning of a version specification but always escaped them otherwise. It turns out there is yet another CRTL feature logical name (DECC$FILENAME_UNIX_NO_VERSION) that tells us a Unix-format specification is not allowed to have a version number, so in that case, always escape the semicolon since it can't be the start of a version specification. Also, don't add the version number when fileifying directory specs if this "no versions" feature is in effect.
* Don't rely on IPC::Cmd in ExtUtils-Install testsChris 'BinGOs' Williams2014-03-102-3/+52
|
* It is and always will be safe to delete the most recent key returned from each.Paul Johnson2014-03-101-3/+2
|
* Incorporate changes from CPAN release of ExtUtils-CBuilderChris 'BinGOs' Williams2014-03-084-29/+35
|
* Upgrade to Thread::Queue 3.03Jerry D. Hedden2014-03-082-19/+22
|
* make core safe against HvAUX() reallocDavid Mitchell2014-03-072-13/+16
| | | | | | | | | | | | | | | | | Since the HvAUX structure is just tacked onto the end of the HvARRAY() struct, code like this can do bad things: aux = HvAUX(); ... something that might split hv ... aux->foo = ...; /* SEGV! */ So I've visually audited core for places where HbAUX() is saved and then re-used, and re-initialised the var if it looks like HvARRAY() could have changed in the meantime. I've been very conservative about what might be unsafe. For example, destructors or __WARN__ handlers could call perl code that modifies the hash.
* sv.h: add some more flag usage commentaryDavid Mitchell2014-03-071-5/+8
| | | | | Also, move SVphv_SHAREKEYS up to be closer to SVf_UTF8 - they are the same flag bit, but it wasn't clear, since there was a big gap between them
* Data::Dumper update/changelog and version bumpSteffen Mueller2014-03-073-4/+23
|
* Filter::Simple update/changelog and version bumpSteffen Mueller2014-03-072-3/+3
|
* Attribute::Handlers update/changelog and version bumpSteffen Mueller2014-03-073-4/+7
|
* Smarter handling of escaped semicolons in vmsify.Craig A. Berry2014-03-062-8/+8
| | | | | | | | | | | In theory, a Unix-format filespec can contain a semicolon and thus need to be escaped when converted to a VMS-format filespec. But a much more common use case is a filespec that has a version number despite being in Unix format. So detect a semicolon that delimits a version specification and pass it through but escape other semicolons. This is apparently what decc$to_vms does, so we're being consistent with the CRTL.
* Update META files and remove blead customizations following previous commitSteve Hay2014-03-066-15/+7
| | | | | | (The customizations were added to "fix" failures caused by the previous upgrade of CPAN::Meta. This upgrade reverts the offending parts, so those "fix"es can now be reverted too.)
* Upgrade CPAN::Meta from version 2.140630 to 2.140640Steve Hay2014-03-0623-32/+32
|
* officially discourage the use of threadsRicardo Signes2014-03-051-1/+11
| | | | some language borrowed from a larger patch by Christian Walde
* note that the ~~ operator is experimentalRicardo Signes2014-03-051-1/+3
| | | | (cherry picked from commit 43c6e0a7ba1950c4a64b59be5d0a9cd7b1807cca)
* Maintainers.pl: Refer to recent EU::ParseXS releaseSteffen Mueller2014-03-051-1/+1
|
* EU::ParseXS: Code cleanupSteffen Mueller2014-03-0514-168/+226
| | | | | | General refactoring to make the code (marginally) easier to follow and more consistent. This should not result in a change in behaviour. Includes version bump to 3.24.
* Temporary fixes for test failures after (Parse::)CPAN::Meta upgradesSteve Hay2014-03-054-5/+13
|
* Upgrade Locale-Codes from version 3.29 to 3.30Steve Hay2014-03-0534-745/+782
|
* Update META files following previous two commitsSteve Hay2014-03-052-2/+2
|
* Upgrade Parse-CPAN-Meta from version 1.4413 to 1.4414Steve Hay2014-03-058-8/+142
|
* Upgrade CPAN-Meta from version 2.133380 to 2.140630Steve Hay2014-03-0525-46/+870
|
* regcomp.c: Use minimal struct formal parameterKarl Williamson2014-03-043-7/+5
| | | | | | | The static function get_ANYOF_cp_list_for_ssc() takes a struct formal parameter that is a superset of what it actually uses. The calls to it have to cast to that superset. By setting the parameter to the smallest structure it uses, we simplify things.
* regcomp.c: Don't read uninitialized dataKarl Williamson2014-03-041-3/+5
| | | | | | | | The blamed commit failed to check whether the data is present before reading it. I believe that this creates false positives in te optimizer, so no actual failures ensued.
* dist/IO: Allow to be dual-livedKarl Williamson2014-03-042-1/+26
| | | | | | | | | | This dual-lived module has not been able to be compiled on releases earlier than 5.10.1 since, I believe, that release, and not outside of blead since commit 6f2d5cbc in the 5.19 series, both due to using macros that were not backported. This commit suitably defines the current missing macro when it isn't available.
* [perl #121362] overload optimisation added a SEGVDavid Mitchell2014-03-042-3/+34
| | | | | | | | | | | My recent commit 3d147ac29d12abdb to "speed up (non)overloaded derefs" introduced a potential SEGV. In Perl_Gv_AMupdate(), the 'aux' variable is set to HvAUX(hv). My patch used the value of the variable later on in the function, but it turns out that by then, S_hsplit() may have been called, and thus HvARRAY (and HvAUX()) may have been reallocated. Issue first spotted by Andreas' awesome BBC service, and diagnosed by Nicholas Clark.
* Bump Carp to version 1.33Chris 'BinGOs' Williams2014-03-032-2/+2
| | | | Triggered by commit b82e68e8acf012df784511a23ba8b2dfbc3853b8
* Bump autouse version to 1.08Chris 'BinGOs' Williams2014-03-031-1/+1
| | | | | | Triggered by the following: commit 0c6e98c726c248c4e5b9b4d00c6c9ea74f783997 commit aa86db36e6778689f4a9d13c9af25e2020f46bf4
* Refactor and reduce VMS-specific workarounds in POSIX.xs.Craig A. Berry2014-03-022-40/+3
| | | | | | Most of this code presupposes pre-7.0 VMS systems, but v7.0 was released in 1995 and pre-7.0 was desupported in Perl in 5.16. So slim down to what's needed for the most recent couple of decades.
* tbuffer_t no longer exists on VMS.Craig A. Berry2014-03-022-22/+4
| | | | | | | | | | | | | | | | | | It was replaced by the standard tms struct in v7.0, released in 1995. Explicit support for pre-7.0 was removed in 32995a382d65b for Perl 5.16, but I missed the tbuffer_t bit, which tripped up Nicholas in 25983af42cdcf2dc, because he asked for: struct tbuffer_t which via macro expansion became: struct struct tms which failed to compile. So remove code that's unnecessarily different on VMS, leaving only a tbuffer_t compatibility macro with a more appropriate comment so it will hopefully be less likely to get used in new code.
* Merge changes to make_ext.pl that build simple extensions directly.Nicholas Clark2014-03-023-22/+222
|\ | | | | | | | | | | This adds complexity and duplicate logic to make_ext.pl, but reduces build times. The build time reduction can be significant on platforms which can't run parallel builds - VMS build time decreased by 39%.
| * On VMS, lib is lib.DIR, etc. make_ext.pl needs to account for this.Nicholas Clark2014-03-021-5/+11
| | | | | | | | | | | | Likewise regular files without periods in the names get one appended. Also, the file generated is pm_to_blib.ts, not pm_to_blib.
| * Describe the improvements to make_ext.pl in perldelta.Nicholas Clark2014-03-021-1/+5
| |
| * Generate fallback shell cleanup code for the extensions make_ext.pl handles.Nicholas Clark2014-03-021-3/+11
| | | | | | | | | | These try to ensure that `make clean` followed by `make distclean` is the same as running just `make distclean`.
| * make_ext.pl can handle 4 extensions in dist/ which need a Makefile.PL for CPAN.Nicholas Clark2014-03-021-0/+44
| |
| * make_ext.pl can also handle extensions with a module tree at the top level.Nicholas Clark2014-03-021-6/+16
| | | | | | | | This gets us Digest and Memoize.
| * make_ext.pl can also handle extensions with a module file at the top level.Nicholas Clark2014-03-021-32/+48
| | | | | | | | Processing this old-style layout gains us another 6 extensions.
| * For simple extensions make_ext.pl can emulate the entire MakeMaker/make dance.Nicholas Clark2014-03-021-3/+109
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For simple extensions consisting only of Perl modules and Pod, EU::MM generates a Makefile where the only target that does any work as part of 'all' is 'pm_to_blib', and *that* is just running perl to call ExtUtils::Installed::pm_to_blib() with those files as arguments, and then touching pm_to_blib. Because the top level Makefile's dependency rule for "is an extension built" is looking for that file pm_to_blib, and all builds (and cleans) of extension directories are performed by running make_ext.pl, not a direct recursive make, it means that make_ext.pl can actually directly emulate the entire work done by EU::MM and make in this particular case. This means that we save (at least) three subprocesses: * miniperl to run Makefile.PL * make * miniperl to run ExtUtils::Installed::pm_to_blib() This change obviously adds some logic duplication, but it roughly halves the time taken for `make test_prep` to figure out that nothing needs doing. And obviously also saves at least that much time on the actual build, which may well be 60 seconds / number of cores.
| * Change the test to use itself as test file, instead of the generated Makefile.Nicholas Clark2014-03-021-9/+11
| | | | | | | | The generated Makefile is about to go away :-)
| * Extract fallback_cleanup() to hold the code that writes cleanup shell scripts.Nicholas Clark2014-03-021-8/+12
| |
| * make_ext.pl should validate exactly which clean targets it can be used for.Nicholas Clark2014-03-021-1/+1
|/ | | | | Previously it would accept anything matching /clean$/. Now we check for the 4 names that we know the top level Makefile defines.
* regen/regcharclass.pl: Forbid non-safe macros for multi-char matchesKarl Williamson2014-03-011-3/+13
| | | | | | | | | | | For matches that can match more than a single code point, one should always use a macro that makes sure that one doesn't read off the end of the buffer. This is because the buffer might end with the first N characters of a sequence with at least N+1 in it, and we don't want to read that N+1 position in the buffer. If this had been in place, buggy commit 3a8bbffbce would not have happened.
* regen/regcharclass.pl: Don't generate unused macrosKarl Williamson2014-03-012-46/+3
| | | | | | The macros generated by these options are not needed in the core; generating them just clutters up the header file, and some will actually be forbidden by the next commit.
* Revert most of 3a8bbffbce: Avoid unnecessary malformed checkingKarl Williamson2014-03-014-91/+243
| | | | | | | | | | | | | | My thinking was muddled when I made that commit, and this reverts the essence of it. The theory was that since we have already processed the regex pattern, we don't need to check it for malformedness, hence we don't need the "safe" form of certain macros that check for and avoid running off the end of the buffer. It is true that we don't have to worry about malformedness indicating that the buffer is bigger than it really is, but these macros can match up to three well-formed characters, so we do have to make sure that all three are in the buffer, and that the input isn't just the first two at the buffer's end. This was caught by running valgrind.
* perluniprops: Show property name without bracesKarl Williamson2014-03-011-0/+5
| | | | | | | | | Properties wth single letter names may be expressed with and without the brakces; \p{L} and \pL are synonymous. This commit makes both forms be in perluniprops, so someone who doesn't know the detailed rules can search for either to see what it is. This was suggested by Zsbán Ambrus.
* regen/regcharclass.pl: White-space; comment nits onlyKarl Williamson2014-03-011-8/+8
| | | | Indent to account for new block added in the previous commit
* regen/regcharclass.pl: Simplify generated safe macrosKarl Williamson2014-03-012-103/+176
| | | | | | | | | | | | | | | | | | | | | This simplifies the macros generated which make sure there are no read errors. Prior to this commit, the code generated looked like (e - s) > 3 ? see if things of at most length 4 match : (e - s) > 2 ? see if things of at most length 3 match : (e - s) > 1 ? see if things of at most length 2 match : (e - s) > 0 ? see if things of at most length 1 match For things that are a single character, the ones greater than length 2 must be in UTF8, and their needed length can be determined by UTF8SKIP, so we can get rid of most of the (e-s) tests. This doesn't change the macros which can match multiple characters; that is a harder to do.