summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* regexec.c: Rename function, add parameter, make non-staticKarl Williamson2014-02-194-16/+28
| | | | | | This is in preparation for a future commit where the function does more things so its current name would be misleading. It will need to be callable from regcomp.c as well.
* regcomp.h: Allow compiler to perform calculationKarl Williamson2014-02-191-1/+1
| | | | | | | | Instead of doing the calculation of how many bytes a 256 bitmap occupies, let the compiler do it. I believe we are not too far away from having the ability to allow applications to recompile Perl to increase the bitmap size trading speed for memory. ICU has an 8192 bitmap last time I checked.
* regexec.c: Add some checksKarl Williamson2014-02-191-1/+2
| | | | | These aren't currently needed, but a future commit will change so things need to be more general
* Change method of passing some info from regcomp to regexecKarl Williamson2014-02-193-33/+21
| | | | | | | | | | | | | | For the last several releases, the fact that an ANYOF node could match something outside its bitmap has been passed to regexec.c by having its ARG field not be -1 (appropriately cast). A bit was set if the match could occur even if the target string was not UTF-8 encoded. This design was used to save a bit, as previously there was a bit also for it matching UTF-8 strings. That design is no longer tenable, as a future commit will have a third (independent) reason for something to match outside the bitmap, This commits uses the current spare bit flag to indicate if the match can only occur if the target string is UTF-8.
* regcomp.h: Remove extraneous commentKarl Williamson2014-02-191-7/+0
| | | | | This is obsolete and is a partial copy of the up-to-date comment below it.
* regcomp.h: Free up flag bit in ANYOF nodesKarl Williamson2014-02-191-10/+8
| | | | The ANYOF_LOC bit was removed from final use in the previous commit.
* regexes: Remove uses of ANYOF_LOCALE flagKarl Williamson2014-02-193-29/+12
| | | | | | | | | | | | | This flag no longer adds any useful information and can be removed. An ANYOF node that depends on locale either matches a POSIX class like /d, or matches case insensitively, or both. There are flags for both these cases, and to see if something matches locale, one merely needs to see if either flag is set. Not having to keep track of this extra flag simplifies things, and will allow it to be removed. There was a time when this flag was shared with one of the remaining locale ones, and there was relict code that allowed that sharing to be reinstated, and which this commit also removes.
* regcomp.c: Simplify /l Synthetic Start Class constructionKarl Williamson2014-02-192-24/+21
| | | | | | | | | | | | | | | The ANYOF_POSIXL flag is needed in general for ANYOF nodes to indicate if the struct contains an extra U32 element used to hold the list of POSIX classes (like \w and [:punct:]) whose matches depend on the locale in effect at the time of runtime pattern matching. But the SSC always contains this U32, and so doesn't need to use the flag. Instead, if there aren't any such classes, the U32 will be zero. Removing keeping track of this flag during the assembly of the SSC simplifies things. At the completion of this process, this flag is set if the U32 is non-zero to pass that information on to regexec.c so that it doesn't have to special case things.
* Convert more EXACTFish nodes to EXACT when possibleKarl Williamson2014-02-194-17/+62
| | | | | | | | | | Under /i matching, many characters match only themselves, such a punctuation. If a node contains only such characters it can be an EXACT node. The optimizer gets better hints when dealing with EXACT nodes than ones with folding. This changes the alloc_maybe_populate() function to look for possibilities of non-folding input.
* Do not dereference hv before ensuring it's not NULLRafael Garcia-Suarez2014-02-191-1/+2
| | | | This should fix RT #116441 and possibly other bugs.
* perldelta updatesTony Cook2014-02-191-1/+10
|
* save errno/$! across Win32.pm autoloads tooTony Cook2014-02-192-1/+9
|
* cygwin doesn't implement $^E (except as a read of $!)Tony Cook2014-02-191-6/+14
| | | | | On Cygwin, reading $^E actually reads $!, as it does on other non- VMS/Win32/OS/2 platforms. Setting it does nothing.
* Correct number of tests in plan.James E Keenan2014-02-191-1/+1
|
* perlvar.pod: suggest string comparisons for $]David Golden2014-02-181-2/+2
|
* restore $PERL_OLD_VERSION to English.pmDavid Golden2014-02-182-2/+4
| | | | | | In the dark ages, when $^V replaced $] for $PERL_VERSION, $PERL_OLD_VERSION was added as a comment in the list of deprecated variable. Since $] is *not* deprecated, this commit restores it.
* [perl #121081] workaround different output on VMSTony Cook2014-02-191-5/+6
| | | | | VMS is a special snowflake, deal with the slightly different debugger output it produces.
* Update HTTP-Tiny to CPAN version 0.042David Golden2014-02-182-22/+26
| | | | | | | | | [DELTA] [ADDED] - If IO::Socket::IP 0.25+ is installed, HTTP::Tiny will use it for transparent IPv4 or IPv6 support.
* Fix pod errorsKarl Williamson2014-02-184-4/+3
|
* re-import 5.19.8 delta form 5.19.8Ricardo Signes2014-02-181-1/+503
|
* update perlport with currently unresolved Cygwin test failuresTony Cook2014-02-181-0/+19
|
* Update Parse-CPAN-Meta to CPAN version 1.4413Tony Cook2014-02-183-9/+12
| | | | | | | | | 1.4413 2014-02-17 20:04:23-05:00 America/New_York [FIXED] - UTF-8 decoding is done differently to avoid requiring a newer version of Encode (Graham Knop)
* perldelta updatesTony Cook2014-02-181-0/+42
|
* Upgrade Digest-SHA from 5.86 to 5.87Steve Hay2014-02-1812-370/+283
|
* locale.c: Fix initialization compile error for HPKarl Williamson2014-02-171-4/+4
| | | | | One of the HP compilers would not compile the compile-time array initialization; so do it at runtime.
* [perl #120936] op/taint.t handling of no ipcsysv on cygwinTony Cook2014-02-181-4/+14
| | | | | | | | shmget() and msgget() produce a SIGSYS on cygwin if cygserver isn't running, crashing op/taint.t. Perform similar checks to those done in io/shm.t to make sure these are handled gracefully.
* test.pl uses skip_all(...), not plan(skip_all => ...)Tony Cook2014-02-181-2/+2
| | | | | This was causing noise on cygwin systems that don't have cygserver running.
* avoid a "FILE" name conflict with cygwin's wchar.hTony Cook2014-02-181-0/+1
| | | | | | | | | | | | | | | | | | | | | The 1.7.28 release of cygwin (or possible a separate package released around the same time) header wchar.h includes the following code: typedef __FILE FILE; With PERLIO_NOT_STDIO set to true, the default for core source files, we #include nostdio.h which does: struct _FILE; #define FILE struct _FILE which turns the above code into: typedef __FILE struct _FILE; which isn't C. Disable this hack for cygwin.c
* Skip locale test on OpenBSD, MirBSD and Bitrig tooChris 'BinGOs' Williams2014-02-171-1/+1
| | | | | | | | | | From the original ticket #115808 the following should produce "Use of uninitialized value in print at -e line 1." $ perl -wle 'use POSIX; print length setlocale POSIX::LC_ALL, "mtfnpy"' 16 So skip this test on OpenBSD, MirBSD and Bitrig
* Update HTTP-Tiny to CPAN version 0.041Chris 'BinGOs' Williams2014-02-1724-126/+839
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [DELTA] 0.041 2014-02-17 13:07:54-05:00 America/New_York [no code change, only an amended Changes file] [INCOMPATIBLE CHANGES (from 0.039)] - The 'proxy' attribute no longer takes precedence over the 'http_proxy' environment variable. With the addition of http_proxy and https_proxy attributes (and corresponding environment variable defaults), the legacy 'proxy' attribute now maps to the all_proxy/ALL_PROXY environment variable and only takes effect when other proxy attributes are not defined. [ADDED (since 0.039)] - Added 'keep_alive' attribute for single-server persistent connections (Clinton Gormley) - Added support for Basic authorization with proxies - Added support for https proxies via CONNECT [FIXED (since 0.039)] - Requests are made with one less write for lower latency (Martin Evans) 0.040 2014-02-17 13:02:47-05:00 America/New_York [INCOMPATIBLE CHANGES] - The 'proxy' attribute no longer takes precedence over the 'http_proxy' environment variable. With the addition of http_proxy and https_proxy attributes (and corresponding environment variable defaults), the legacy 'proxy' attribute now maps to the all_proxy/ALL_PROXY environment variable and only takes effect when other proxy attributes are not defined. [ADDED] - Added support for Basic authorization with proxies - Added support for https proxies via CONNECT
* regcomp.c: Fix some alignment problemsKarl Williamson2014-02-174-37/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The bracketed character class (e.g. /[abc]/) in regular expression patterns is implemented as an ANYOF regnode. There are several different structs used for these, each a superset of the next smaller size, with extra fields tacked on to its end. Bits in the part common to all of them are set to indicate which size this particular instance is. Several functions in regcomp.c take the largest of these as a formal parameter, even though a smaller one may actually be passed. This avoids the need to have casts to access the optional fields, but the code needs to be careful to check the common part bits before trying to access a portion that may not actually be present. This practice dates to at least Perl v5.6.2. It turns out that there is further a problem with this if the tacked-on fields require a stricter alignment than the common fields. The code in the functions may assume that the actual parameter has suitable alignment, which may not be the case. Some months ago I added some extra optional pointer fields, which have stricter alignment requirements on 64-bit machines than the common portion, but no apparent problems ensued. Then, I changed things slightly, so that the gcc compiler on HP machines found an optimization possibility whose use required the proper alignment, which wasn't present, and bus errors started happening there. Tony Cook diagnosed the problem. A summary of his work can be found at http://markmail.org/message/hee5zyah7rb62c72 This commit changes the formal parameter to the smallest ANYOF struct, and uses casts to acess the optional portions. I don't know how common the coding style formerly used in regcomp.c is, but it is dangerous and can lead to unrelated changes causing errors. This commit should enable gcc builds to complete on the HP gcc smokers (previously miniperl built, but crashed in building the rest of perl), but we're not sure because unrelated header issues on the gcc on the machine that we have access to prevent blead from fully compiling there. There remain alignment bugs which will cause the tests to fail there, as the appended pointer field needs to have strict alignment on that platform, but when the regnodes are allocated alignment isn't done. I am working on fixing those.
* locale.c: Remove vars unused on some platformsKarl Williamson2014-02-171-3/+0
| | | | A Darwin compiler noted these are unused.
* Update Parse-CPAN-Meta to CPAN version 1.4412Chris 'BinGOs' Williams2014-02-179-53/+43
| | | | | | | | | | | | | | | | | | | [DELTA] 1.4412 2014-02-17 07:14:43-05:00 America/New_York [FIXED] - Added prerequisite on Encode 2.11 (Paul Howarth) 1.4411 2014-02-16 23:06:00-05:00 America/New_York [FIXED] - Invalid UTF-8 encoding in YAML files are now replaced with "PERLQQ" quoting from the Encode module and without warnings. - Removed legacy test modifications for $ENV{PERL_CORE}
* PATCH [perl #121257] blead fails at run/locale.tKarl Williamson2014-02-161-1/+2
| | | | | | | | | | Commit 65ebb05984db179833ff252f547043f32184d893changed the locale initialization code to look at the LANG environment variable as a fallback if there was a problem with a higher priority variable. Thus, when trying to have an empty environment for testing, one now needs to cause LANG to be unset, which wasn't the case before..This commit adds that unset to the test that needs an empty environment.
* t/run/locale.t: Fix skip countKarl Williamson2014-02-161-2/+2
| | | | | | This skipped the wrong number of tests on platforms that don't have a locale whose decimal radix character isn't a dot. (e.g. no locales with a comma).
* locale.c: Handle case where LC_ALL isn't "all"Karl Williamson2014-02-161-1/+12
| | | | | | | | | | Setting the LC_ALL locale category on NetBSD does not necessarily change all the categories to the requested locale. Sometimes the LC_COLLATE category is set to POSIX. I presume that is because collation has not been defined for the given locale, so it uses a basic locale instead. The code in locale.c that does locale initialization for the Perl program at start-up, depended on LC_ALL setting all categories to the same locale.
* sv.h: Add commentKarl Williamson2014-02-161-0/+1
| | | | There was recent confusion about this.
* Avoid recalculating sub name hash in util.c:get_db_subFather Chrysostomos2014-02-161-3/+2
|
* Clarify distinction between contents of dist/ and ext/.James E Keenan2014-02-171-8/+13
| | | | | | Amended with a suggestion from rjbs. For: RT #120808
* [perl #121223] encourage use of PERL_NO_GET_CONTEXTTony Cook2014-02-172-1/+24
|\
| * [perl #121223] explain PERL_NO_GET_CONTEXT a littleTony Cook2014-02-172-3/+20
| | | | | | | | and tell the reader where to find the details.
| * add #define PERL_NO_GET_CONTEXT to ParseXS's podsDaniel Dragan2014-02-172-2/+8
|/ | | | | Not using PERL_NO_GET_CONTEXT is for legacy or unmaintained pre-ithreads code. New code should define it.
* [perl #121255] Call set-magic when setting $DB::subFather Chrysostomos2014-02-162-1/+24
| | | | | | Otherwise UTF8 length caches will not be reset, resulting in panicks when ${^UTF8CACHE} is -1 or wrongs answers from length($DB::sub) when ${^UTF8CACHE} is 1.
* Exclude Perl_my_setlocale symbol where it's not defined.Craig A. Berry2014-02-161-0/+6
| | | | | | | | | Because makedef.pl doesn't take into account the various ifdefs in embed.fnc, it must repeat their logic by maintaining various sets of platform-specific inclusions and exclusions. Perl_my_setlocale was added in b385bb4ddcb for Win32 only, so we shouldn't be telling the linker to export it except on Win32.
* Update Parse-CPAN-Meta to CPAN version 1.4410Chris 'BinGOs' Williams2014-02-162-40/+30
| | | | | | | | | | | | | | | | [DELTA] 1.4410 2014-02-16 00:47:48-05:00 America/New_York [INCOMPATIBLE CHANGES] - Dropped support for Perl's before v5.8.1 to ensure proper UTF-8 and IO layer support [CHANGED] - Updated CPAN::Meta::YAML prereq to 0.011 due to deprecation of 'errstr' and consistent use of exceptions
* perllocale: Corrections and nitsKarl Williamson2014-02-151-12/+23
|
* perlfunc: NitKarl Williamson2014-02-151-2/+2
|
* Revert "Free up bit for regex ANYOF nodes"Karl Williamson2014-02-157-387/+313
| | | | | This reverts commit 34fdef848b1687b91892ba55e9e0c3430e0770f6, and adds comments referring to it, in case it is ever needed.
* Free up bit for regex ANYOF nodesKarl Williamson2014-02-157-308/+392
| | | | | | | | | | | | | | | | | | | | | | | | | | This commit frees up a bit by using an extra regnode to pass the information to the regex engine instead of the flag. I originally thought that if this was needed, it should be the ANYOF_ABOVE_LATIN1_ALL bit, as that might speed some things up. But if we need to do this again by adding another node to get another bit, we want one that is mutually exclusive of the first one we did, For otherwise we start having to make 3 nodes instead of two to get the combinations: 1 0 0 1 1 1 This combinatorial problem is avoided by using bits that are mutually exclusive, which the ABOVE_LATIN1_ALL isn't, but the one freed by this commit ANYOF_NON_UTF8_NON_ASCII_ALL is only set under /d matching, and there are other bits that are set only under /l, so if we need to do this again, we should use one of those. I wrote this code when I thought I really needed a bit. But since, I have figured out a better way to get the bit needed now. But I don't want to lose this code to posterity, so this commit is being made long enough to get the commit number, then it will be reverted, adding comments referring to the commit number, so that it can easily be reconstructed when necessary.
* alphabetise perldiagFather Chrysostomos2014-02-151-5/+5
|