summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Update Encode to CPAN version 2.70Chris 'BinGOs' Williams2015-02-0616-16/+220
| | | | | | | | | | | | | | | | | | | | | | | [DELTA] $Revision: 2.70 $ $Date: 2015/02/05 10:53:00 $ ! Makefile.PL add bin/encguess to EXE_FILES 2.69 2015/02/05 10:35:11 ! bin/encguess Refactored so that * does not depend on non-core module (File::Slurp in particular) * PODified document * -s "encA encB" to -s encA,encB which is more shell-friendly * and more ! MANIFEST + bin/encguess Pulled: Added CLI wrapper for Encode::Guess https://github.com/dankogai/p5-encode/pull/32 ! Unicode/Unicode.pm Pulled: Bump $VERSION in module changed since Encode-2.60 https://github.com/dankogai/p5-encode/pull/31
* [perl #123748] - Add test case for possible getenv/putenv/setenv stomping in ↵Matthew Horsfall (alh)2015-02-051-1/+23
| | | | perl.c
* Fix setenv() replacement documentation in perlclibDagfinn Ilmari Mannsåker2015-02-051-1/+1
| | | | my_putenv doesn't exist, the function is called my_setenv
* regcomp.c: Warn on [:^posix:] not being in []Karl Williamson2015-02-053-0/+12
| | | | | | A POSIX character class is has to be in a bracketed character class. A warning is issued when something appearing to be one is found outside. Until this commit the warning wasn't raised for negated classes.
* ext/re/re.pm: Fix commentKarl Williamson2015-02-051-1/+1
|
* re.pm: White-space onlyKarl Williamson2015-02-051-4/+4
| | | | Fix some indents, vertically align ternary
* toke.c: Remove redundant PL_lex_stuff null checksFather Chrysostomos2015-02-051-12/+6
| | | | | In these three code paths, PL_lex_stuff is never null, so there is no need to check that.
* Localise PL_lex_stuff (crash fix)Father Chrysostomos2015-02-052-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes crashes and assertion failures related to ticket #123617. When the lexer encounters a quote-like operator, it scans for the final delimiter, putting the string in PL_lex_stuff and the replace- ment, if any, in PL_sublex_info.repl. Those are just temporary spots for those values. As soon as the next token is emitted (FUNC or PMFUNC), the values are copied to PL_linestr and PL_lex_repl, respec- tively, after these latter have been localised. When scan_str (which scans a quote-like op) sees that PL_lex_stuff is already set, it assumes that it is now parsing a replacement, so it puts the result in PL_sublex_info.repl. The FUNC or PMFUNC token for a quote-like operator may trigger a syn- tax error while PL_lex_stuff and PL_sublex_info.repl are still set. A syntax error can cause scopes to be popped, discarding the inner lex- ing scope (for the quote op) that we were about to enter, but leaving a PL_lex_stuff value behind. If another quote-like op is parsed after that, scan_str will assume it is parsing a replacement since PL_lex_stuff is set. So you can end up with a replacement for an op of type OP_MATCH, which is not supposed to happen. S_sublex_done fails an assertion in that case. Some exam- ples of this bug crash later on non-debugging builds. Localising PL_lex_stuff fixes the problem.
* Fix double free with const overload after errorsFather Chrysostomos2015-02-052-2/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The PL_lex_stuff variable in the parser struct is reference-counted. Yet, in toke.c:S_sublex_start we pass the value to S_tokeq, which may pass it to S_new_constant, which takes ownership of the reference count (possibly freeing or mortalising the SV), and then relinquishes its ownership of the returned SV (incrementing the reference count if it is the same SV passed to it). If S_new_constant croaks, then it will have mortalised the SV passed to it while PL_lex_stuff still points to it. This example makes S_new_constant croak indirectly, by causing its yyerror call to croak because of the number of errors: $ perl5.20.1 -e 'BEGIN { $^H|=0x8000} undef(1,2); undef(1,2); undef(1,2); undef(1,2); undef(1,2); undef(1,2); undef(1,2); undef(1,2); undef(1,2); "a"' Too many arguments for undef operator at -e line 1, near "2)" Too many arguments for undef operator at -e line 1, near "2)" Too many arguments for undef operator at -e line 1, near "2)" Too many arguments for undef operator at -e line 1, near "2)" Too many arguments for undef operator at -e line 1, near "2)" Too many arguments for undef operator at -e line 1, near "2)" Too many arguments for undef operator at -e line 1, near "2)" Too many arguments for undef operator at -e line 1, near "2)" Too many arguments for undef operator at -e line 1, near "2)" Constant(q) unknown at -e line 1, near ";"a"" -e has too many errors. Attempt to free unreferenced scalar: SV 0x7fb49882fae8 at -e line 1.
* toke.c: Use SvREFCNT_dec_NN in one spotFather Chrysostomos2015-02-051-1/+1
|
* perlop: document use of fc() for case-insensitive comparisonsDavid Golden2015-02-051-0/+5
|
* POSIX version bumpJarkko Hietaniemi2015-02-051-1/+1
|
* POSIX math: if long double, long double the math constsJarkko Hietaniemi2015-02-051-13/+32
|
* POSIX math: tgamma/lgamma logicJarkko Hietaniemi2015-02-051-4/+6
|
* AIX long double lies about many math APIs.Jarkko Hietaniemi2015-02-051-0/+39
|
* [PATCH] fix PL_nan_u from leaking in every translation object on Win32 VCDaniel Dragan2015-02-045-9/+41
|
* infnan: more NV_SNAN/NV_QNANJarkko Hietaniemi2015-02-041-1/+3
|
* Make 'no re' workKarl Williamson2015-02-045-6/+52
| | | | | | | A plain 'no re'; without subpragmas prior to this commit only turned off a few things. Now it turns off all the enabled things. For example, previously, you couldn't turn off debugging, once enabled, inside the same block.
* ext/re/t/re.t: Use variable instead of constantsKarl Williamson2015-02-041-6/+9
| | | | | There are multiple occurrences of these constants in the file. It's better to use a variable than to repeat them.
* re.pm: Bump version to 0.31Karl Williamson2015-02-041-1/+1
|
* Prefer NV instead of long double.Jarkko Hietaniemi2015-02-041-12/+17
| | | | | | | | | | | | | Background: sprintf aka sv_vcatpvn_flags uses a long double for floating point values whenever has-long-double, not only when use-long-double. The (only?) reason for this is being able to (perlio) printf long doubles from XS, even if no use-long-double. (see ext/XS-APItest/t/printf.t) Instead of casting the long double (explicitly or implicitly), try keeping also an NV in sync, and using it. Could probably use the NV even more, but trying to stay minimal given the impending 5.22.
* infnan: in case NaN is broken by being zero, avoid dividing by itJarkko Hietaniemi2015-02-041-1/+6
| | | | So that the test doesn't die too early.
* perldelta for 5fe499a8e262Tony Cook2015-02-041-1/+5
|
* [perl #123218] "preserve" $/ if set to a bad valueTony Cook2015-02-042-3/+9
| | | | and base/rs.t tests $/ not $!
* Lukas Mai has two email addresses.James E Keenan2015-02-031-1/+2
|
* static_assert workaround for AIX/xlcLukas Mai2015-02-031-1/+2
|
* infnan: fixup for 02e75e52Jarkko Hietaniemi2015-02-031-1/+1
|
* fix B.xs on win buildsDavid Mitchell2015-02-031-4/+2
| | | | | | My recent commit c3890f9c66 appears to have broken win32 builds, I guess because it doesn't like the args to the macro sv_setsv() being spilt across #idfef's. So don't do that.
* perldelta for 41c9461801eb6e56138478ad9229a3337b4da2b2James E Keenan2015-02-021-0/+4
|
* Update POSIX version number.James E Keenan2015-02-021-1/+1
|
* Use HAS_LLRINTL, HAS_LLROUNDL, HAS_LRINTL, HAS_LROUNDLJarkko Hietaniemi2015-02-021-5/+5
|
* Configure: lrintl, lroundl, llrintl, llroundlJarkko Hietaniemi2015-02-0215-2/+152
|
* perldelta for 76e83594d2dcTony Cook2015-02-031-5/+9
|
* Reverse 'const static' to avoid 'old-style-declaration' warning.James E Keenan2015-02-032-2/+2
|
* infnan: define NV_QNAN and NV_SNAN if feasibleJarkko Hietaniemi2015-02-021-0/+4
|
* infnan: comment tweak, IS_NUMBER_NOT_INT also if saw infnanJarkko Hietaniemi2015-02-021-1/+1
|
* infnan: define NV_NAN (and NV_QNAN, NV_SNAN) if sunmathJarkko Hietaniemi2015-02-021-0/+5
|
* Add NV_MANT_REAL_DIG.Jarkko Hietaniemi2015-02-021-0/+9
|
* Add NV_IMPLICIT_BIT define.Jarkko Hietaniemi2015-02-021-0/+7
|
* Add NV_MIX_ENDIAN define.Jarkko Hietaniemi2015-02-021-0/+8
|
* Add NV_LITTLE_ENDIAN and NV_BIG_ENDIAN defines.Jarkko Hietaniemi2015-02-021-0/+16
|
* Wrong ifdef guard.Jarkko Hietaniemi2015-02-021-2/+2
|
* Add DOUBLE_BIG_ENDIAN define.Jarkko Hietaniemi2015-02-021-0/+6
|
* Move the endianness defines from sv.c to perl.hJarkko Hietaniemi2015-02-022-32/+35
|
* toke.c: Simplify \N{U+...} codeFather Chrysostomos2015-02-021-28/+27
| | | | | | | | If we are parsing a \N{U+XXX.YYY} construct in a regexp literal, we do not need to pass it to grok_hex, because we do not need the numeric value at this point. The regexp engine will be calling grok_hex again, after all. A simple scan for hex digits should be faster, and makes the code a little simpler, too.
* add $B::OP::does_parent variableDavid Mitchell2015-02-022-0/+14
| | | | | | This will help people write B:: code that can, in a backwards-compatible way, handle the parent method that has recently been added, and whose behaviour varies depending on whether perl was built with PERL_OP_PARENT.
* "A" =~ '\N{U+41}' (partial) should be true on all platformsKarl Williamson2015-02-011-34/+6
| | | | | | | | | | | | | | | The code for handling this only worked in double-quotish contexts. To make it work in single-quotish areas as well, it needs to be moved out of toke.c, and corresponding code added to regcomp.c. This commit does just the portion that removes the code from toke.c. The other portion hasn't been fully debugged yet. This means that blead will now fail on EBCDIC platforms in double-quotish contexts. But EBCDIC platforms aren't fully supported in blead currently anyway. The reason this partial commit is being pushed to blead now is that its absence is blocking other work in toke.c Spotted by Father Chrysostomos
* regcomp.c: Fix typos in variable nameKarl Williamson2015-02-011-2/+2
| | | | This caused EBCDIC builds to fail
* [perl #123711] Fix crash with 0-5x-l{0}Father Chrysostomos2015-02-012-0/+4
| | | | | | | | | | | | | | | perl-5.8.0-117-g6f33ba7, which added the XTERMORDORDOR hack, did not change the leftbracket code to treat XTERMORDORDOR the same way as XTERM, so -l {0} and getc {0} (among other ops) were treating {...} as a block, rather than an anonymous hash. This was not, however, being turned into a real block with enter/leave ops to protect the stack, so the nextstate op was corrupting the stack and possibly freeing mor- tals in use. This commit makes the leftbracket code check for XTERMORDORDOR and treat it like XTERM, so that -l {0} once more creates an anonymous hash. There is really no way to get to that hash, though, so all I can test for is the crash.
* perlmodstyle: point people to PrePAN, not modules listDavid Golden2015-02-011-5/+16
| | | | | | This harmonizes perlmodstyle with the guidance on PAUSE for getting feedback. Having new authors email modules@perl.org is not a good use of PAUSE admin time.