summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Updated CPAN-Meta to CPAN version 2.120921Chris 'BinGOs' Williams2012-06-1519-1282/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [DELTA] 2.120921 2012-04-01 15:20:24 Europe/Paris [REMOVED] - CPAN::Meta::Requirements has been split out into its own distribution so it can be used by CPAN.pm without requiring all of CPAN::Meta 2.120920 2012-04-01 11:30:43 Europe/Paris [ADDED] - CPAN::Meta::Requirements now has a 'requirements_for_module' method to retrieve a version requirements string for a specific module [Leon Timmermans] [OTHER] - Parse::CPAN::Meta prerequisite bumped to 1.4403 - JSON::PP prerequisites bumped to 2.27200 - CPAN::Meta::YAML prerequisite bumped to 0.008 2.120900 2012-03-30 13:15:15 Europe/Paris [BUGFIX] - CPAN::Meta::Requirements now treats undef requirements given to from_string_hash() as '0' and warns about it; add_string_requirements() dies if it does not get a requirements string to parse
* Dual lifed CPAN-Meta-Requirements 2.122 as a prereq for CPAN-MetaChris 'BinGOs' Williams2012-06-1510-0/+1372
|
* Update Module-Build to CPAN version 0.40Chris 'BinGOs' Williams2012-06-1532-282/+363
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [DELTA] 0.40 - Fri Feb 24 18:47:48 CET 2012 - Released 0.39_02 as 0.40 without any code changes 0.39_02 - Thu Feb 17 00:33:18 MET 2012 [BUG FIXES] - Fixed bug where modules without $VERSION might have a version of '0' listed in 'provides' metadata, which will be rejected by PAUSE [David Golden, reported by Christopher Fields] - Fixed bug in PodParser to allow numerals in module names [Tokuhirom] - Fixed bug where giving arguments twice led to them becoming arrays, resulting in install paths like "ARRAY(0xdeadbeef)/lib/Foo.pm" [Leon Timmermans] [DOCUMENTATION] - Fixed deviance from alphabetical order in documentation of constructor parameters. [Eric Brine] - Add documentation for configure_requires constructor parameter. [Eric Brine] - Change some of the docs' language describing relationship to MakeMaker. [Ken Williams] [OTHER] - List Perl-Toolchain-Gang repo as official repo
* Updated CPANPLUS to CPAN version 0.9130Chris 'BinGOs' Williams2012-06-1520-87/+315
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [DELTA] Changes for 0.9130 Thu May 24 22:04:10 2012 ================================================ * Always re-fetch CHECKSUMS if fetchdir is set (Torsten Schoenfeld) Changes for 0.9129 Wed May 9 21:22:41 2012 ================================================ * Handle multiple makemakerargs and makeflags arguments better. * Use File::HomeDir for home directory location if it is available, thanks to kmx * Added PERL5_CPANPLUS_HOME for altering where the .cpanplus directory is located Changes for 0.9128 Sat Apr 28 21:27:06 2012 ================================================ * Fix the previous fix Changes for 0.9127 Sat Apr 28 20:34:44 2012 ================================================ * Silenced annoying warnings related to older perls and the progress indicators Changes for 0.9126 Sat Apr 28 00:49:43 2012 ================================================ * More speed enhancements to module indexing, thanks to Vincent Pit Changes for 0.9125 Wed Apr 25 14:28:34 2012 ================================================ * Speed enhancements to module indexing, thanks to Vincent Pit Changes for 0.9124 Fri Apr 6 19:24:55 2012 ================================================ * Save the history between invocations of the shell. Changes for 0.9123 Fri Mar 30 16:46:52 2012 ================================================ * Added support for adding blib/script to PATH Changes for 0.9122 Wed Mar 28 21:52:38 2012 ================================================ * Don't spawn a process to check whether perl version prereqs are satisfied
* Updated HTTP-Tiny to CPAN version 0.021Chris 'BinGOs' Williams2012-06-1514-40/+229
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [DELTA] 0.021 2012-05-15 22:38:57 America/New_York [TESTING] - Skip live SSL testing if $ENV{http_proxy} is set 0.020 2012-05-14 15:24:37 America/New_York [TESTING] - Capture prerequisite versions under AUTOMATED_TESTING to help chase down some failures from CPAN Testers 0.019 2012-05-14 07:14:00 America/New_York [ADDED] - Require IO::Socket::SSL 1.56 (which added SSL_hostname support) when doing HTTPS. [Mike Doherty] [TESTING] - Provide better diagnostic output in t/210_live_ssl.t [Mike Doherty] 0.018 2012-04-18 09:39:50 America/New_York [ADDED] - Add verify_SSL option to do more secure SSL operations, incl. attempting to validate against a CA bundle (Mozilla::CA recommended, but will attempt to find some OS bundles). Also add SSL_opts, which passes through IO::Socket::SSL's SSL_* options to control SSL verification. (GH #6, #9) [Mike Doherty] - Reponse hashref includes final URL (including any redirections) [Lukas Eklund]
* Updated Parse-CPAN-Meta to CPAN version 1.4404Chris 'BinGOs' Williams2012-06-158-2/+23
| | | | | | | | | | [DELTA] 1.4404 Sun Apr 05 2012 - Protected tests from user PERL_YAML/JSON_BACKEND 1.4403 Sun Apr 01 2012 - Bumped prereqs: JSON::PP to 2.27200 and CPAN::Meta::YAML to 0.008
* Updated CPAN-Meta-YAML to CPAN version 0.008Chris 'BinGOs' Williams2012-06-153-9/+11
| | | | | | | | | | [DELTA] 0.008 2012-03-14 17:13:24 EST5EDT - Generated from ADAMK/YAML-Tiny-1.51.tar.gz - Updated from YAML-Tiny to fix compatibility with older Scalar::Utils
* Updated IPC-Cmd to CPAN version 0.78Chris 'BinGOs' Williams2012-06-152-4/+4
| | | | | | | | | | [DELTA] Changes for 0.78 Mon Apr 30 19:45:00 BST 2012 ================================================= * Use POSIX::_exit() instead of exit() in run_forked(). Reported by Mithun Ayachit [RT 76901]
* Updated File-Fetch to CPAN version 0.34Chris 'BinGOs' Williams2012-06-153-125/+149
| | | | | | | | | [DELTA] Changes for 0.34 Thu Apr 12 22:25:01 2012 ================================================= * Added heuristics to skip tests when no Internet access
* Updated Module-Load-Conditional to CPAN version 0.50Chris 'BinGOs' Williams2012-06-154-96/+96
| | | | | | | | | | | | | [DELTA] Changes for 0.50 Fri Apr 27 22:22:13 BST 2012 ================================================= * Speed enhancements with thanks to Vincent Pit Changes for 0.48 Thu Mar 15 13:55:50 GMT 2012 ================================================= * Wrap $^X in "" to foil paths with spaces Reported by Samuel Ferencik (via email)
* Updated Object-Accessor to CPAN version 0.44Chris 'BinGOs' Williams2012-06-152-10/+8
| | | | | | | | [DELTA] Changes for 0.44 Wed Apr 25 14:08:30 BST 2012 ================================================= * can() is now fasteh thanks to Vincent Pit
* Update Params-Check to CPAN version 0.36Chris 'BinGOs' Williams2012-06-152-101/+83
| | | | | | | | | | | | | [DELTA] Changes for 0.36 Fri Apr 27 22:57:02 2012 ============================================ * More speed enhancements by Vincent Pit Changes for 0.34 Wed Apr 25 13:51:31 2012 ============================================ * check() now works fasteh thanks to Vincent Pit
* Update Archive-Extract to CPAN version 0.60Chris 'BinGOs' Williams2012-06-153-71/+78
| | | | | | | | | [DELTA] Changes for 0.60 Mon Feb 20 22:28:10 2012 ============================================ * Work around an edge-case on Linux with Busybox's unzip
* Update Archive-Tar to CPAN version 1.86Chris 'BinGOs' Williams2012-06-155-9/+39
| | | | | | | | | | | | [DELTA] * important changes in version 1.86 24/05/2012 (Mark Allen) - don't use tell on IO::Zlib handles RT#64339 * important changes in version 1.84 02/03/2012 (HMBRAND) - ptar now supports -T option [rt#75473] - ptar now supports dashless options [rt#75475] - auto-encode filenames marked as UTF-8 [rt#75474]
* perldelta: tweak minor thinkoDavid Mitchell2012-06-151-1/+1
|
* point out another use for //oDavid Mitchell2012-06-151-0/+12
| | | | | Sometimes patterns with embedded code are recompiled each time even if the pattern string hasn't changed.
* Remove RXf_UTF8 from perlreapiDavid Mitchell2012-06-151-9/+0
| | | | This flag was removed 4 years ago by 8f6ae13c. Update docs to match.
* Properly restore PL_curcop after /(?{})/David Mitchell2012-06-152-21/+48
| | | | | | | | | | | | C</$code/ or die> was reporting the place of dying as being in an eval rather than in the main body of the code. This was because when calling the code, we were setting PL_curcop to the inner code block *before* doing the PUSH_MULTICALL, which happens to save PL_curcop; the wrong value was then being restored at the end of the function with the POP_MULTICALL. The fix is easy: just swap the two blocks of code that set PL_curcop and do the PUSH_MULTICALL.
* Add TODO note about unresolved aspects of RT #113536Steve Hay2012-06-151-0/+5
| | | | | Commit 4f46e52b00 fixed the ANSI case but the wider UTF-16 case remains a problem (already known about in perltodo.pod).
* Update checkAUTHORS.pl for 4f46e52b00Steve Hay2012-06-151-0/+1
|
* Minor fix-ups to 4f46e52b00Steve Hay2012-06-151-4/+4
|
* Use GetEnvironmentStringsW(..) instead of GetEnvironmentStringsA(..).Karthik Rajagopalan2012-06-153-4/+41
| | | | | | | | GetEnvironmentStringsA(..) return strings in the OEM code page. This can actually mangle the environment strings if it contain special characters. A better approach would be to get the utf-16 strings through GetEnvironmentStringsW(..) and convert them to ANSI code page. This is now done by win32_getenvironmentstrings(..). To free the block, you can use win32_freeenvironmentstrings(..).
* run-time /(?{})/: fix an buffer overrunDavid Mitchell2012-06-141-1/+1
| | | | | String length calculation didn't allow for trailing nul. (spotted by Nicholas)
* Merge re_eval jumbo fix branch into bleadDavid Mitchell2012-06-1464-1865/+3949
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This re_eval branch contains around 130 commits that collectively reimplement the /(?{})/ mechanism. See the individual commits and the changes to pod/* for more details, but the main highlights are: =item * Code blocks within patterns are now parsed in the same pass as the surrounding code; in particular it is no longer necessary to have balanced braces: this now works: /(?{ $x='{' })/ This means that this error message is longer generated: Sequence (?{...}) not terminated or not {}-balanced in regex but a new error may be seen: Sequence (?{...}) not terminated with ')' In addition, literal code blocks within run-time patterns are only compiled once, at perl compile-time: for my $p (...) { # this 'FOO' block of code is compiled once, at the same time as # the surrounding 'for' loop /$p{(?{FOO;})/; } =item * Lexical variables are now sane as regards scope, recursion and closure behaviour. In particular, C</A(?{B})C/> behaves (from a closure viewpoint) exactly like C</A/ && do { B } && /C/>, while C<qr/A(?{B})C/> is like C<sub {/A/ && do { B } && /C/}>. So this code now works how you might expect, creating three regexes that match 1,2, and 3: for my $i (0..2) { push @r, qr/^(??{$i})$/; } "1" =~ $r[1]; # matches =item * The C<use re 'eval'> pragma is now strictly only required for code blocks defined at runtime; in particular in the following, the text of the $r pattern is still interpolated into the new pattern and recompiled, but the individual compiled code-blocks within $r are reused rather than being recompiled, and C<use re 'eval'> isn't needed any more: my $r = qr/abc(?{....})def/; /xyz$r/; =item * Flow control operators no longer crash. Each code block runs in a new dynamic scope, so C<next> etc. will not see any enclosing loops and C<caller> will not see any calling subroutines. C<return> returns a value from the code block, not from any enclosing subroutine. =item * Perl normally caches the compilation of run-time patterns, and doesn't recompile if the pattern hasn't changed; but this is now disabled if required for the correct behaviour of closures; for example: my $code = '(??{$x})'; for my $x (1..3) { $x =~ /$code/; # recompile to see fresh value of $x each time } =item * C</msix> and C<(?msix)> etc. flags are now propagated into the return value from C<(??{})>; this now works: "AB" =~ /a(??{'b'})/i; =item * Warnings and errors will appear to come from the surrounding code (or for run-time code blocks, from an eval) rather than from an C<re_eval>: use re 'eval'; $c = '(?{ warn "foo" })'; /$c/; /(?{ warn "foo" })/; formerly gave: foo at (re_eval 1) line 1. foo at (re_eval 2) line 1. and now gives: foo at (eval 1) line 1. foo at /tmp/foo line 2. =item * In the pluggable regex API, the regexp_engine struct has acquired a new field C<op_comp>, which is currently just for perl's internal use, and should be initialised to NULL by other regexp plugin modules.
| * silence picky C compiler warningDavid Mitchell2012-06-142-1/+5
| | | | | | | | and add assert that a (U32 & mask) value can fit in a U8.
| * update docs for (?{}) jumbo fixDavid Mitchell2012-06-145-98/+256
| | | | | | | | | | | | Update the docs and add perldelta entries summarising the changes and fixes related to (?{}) and (??{}) accumulated over the 120 or so commits in this branch.
| * let B know about new op_code_list fieldDavid Mitchell2012-06-132-0/+6
| |
| * regmatch(): avoid 'may be used uninitialized' msgDavid Mitchell2012-06-131-1/+1
| | | | | | | | | | Hoist a NULL assignment into a wider scope than is strictly necessary, in order to avoid a spurious compiler warning.
| * propagate /msix and (?msix) etc flags into (??{})David Mitchell2012-06-134-4/+35
| | | | | | | | | | | | | | | | | | | | | | In /.........(??{ some_string_value; }).../flags and /(?flags).(??{ some_string_value; }).../, use flags when compiling the inner /some_string_value/ pattern. Achieve this by storing the compile-time modifier flags in the (apparently) unused 'flags' field of the EVAL node in the (??{}) case.
| * test that code within /(?{})/ etc is optimisedDavid Mitchell2012-06-131-1/+21
| |
| * add tests for (?{ return foo })David Mitchell2012-06-131-0/+10
| | | | | | | | | | All types of code blocks make use of the return value from the code block. Check they all work, with and without an explicit 'return'.
| * un-TODO recursive split testDavid Mitchell2012-06-132-17/+1
| | | | | | | | | | | | | | | | This test has been disabled for ages. It *should* work now, but I cauldn't reproduce the failure in older perls, so I don't know for sure. Also, the test appeared in two files due to the historical splitting of pat.t into multiple test files. Remove the duplicate.
| * add test for /(??{exit})/David Mitchell2012-06-131-1/+7
| |
| * avoid 'unescaped left brace' warningsDavid Mitchell2012-06-131-2/+2
| |
| * Avoid braces warning in regen_perly.plDavid Mitchell2012-06-134-4/+4
| |
| * re-apply temporarily remove overload.t changesDavid Mitchell2012-06-131-37/+128
| | | | | | | | | | | | re-apply commits done to lib/overload.t on the blead branch between 2012/03/31 and 2012/06/04, which were removed to make rebasing the re_eval branch easier.
| * add tests for $1 modified compiling code blockDavid Mitchell2012-06-131-1/+10
| | | | | | | | | | When compiling a run-time code-block, $1 etc should be protected against any modifications that happen during compilation, e.g. via BEGIN
| * add tests that (?{}) etc called in scalar contextDavid Mitchell2012-06-131-1/+11
| |
| * handle (??{}) returning an overloaded valueDavid Mitchell2012-06-132-21/+22
| | | | | | | | | | | | | | | | In this case, always pass the object to the regex compiler, which knows how handle this. (The diff looks more complex than it actually is: it just wraps the whole (logical == 2) branch with an 'if (!SvAMAGIC(ret))'.)
| * handle weird/undef (?{}), (??{}) return valueDavid Mitchell2012-06-132-30/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All three code block variants: (?{}), (??{}), (?(?{}X|Y)), make use of the return value of the block, either to set $^R, determine truth, or to interpret as a pattern. Evaluating this value may trigger magic calls, uninitialized var warnings etc. Make sure that this processing happens in the right environment; specifically, before we've restored vars and paren indices, and we set PL_op temporarily to NULL so that uninit var warnings don't try to look in the wrong place: neither the outer op (eg OP_MATCH) nor the inner op (the last op of the code block: currently happens to be OP_NULL, but that's a bug; will eventually be last *real* op, e.g. padsv) are suitable for identifying where the warning came from. For the (??{}) case, if we can't extract a pre-compiled regex from it, we force it to a PV, making a temp copy if necessary.
| * simply 'use bytes' handling of (??{})David Mitchell2012-06-131-8/+3
| | | | | | | | make it slightly more readable without changing code logic.
| * further simplify (??{}) return codeDavid Mitchell2012-06-131-22/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This does two things. First, it conflates the RV and non-RV cases; i.e. if (ROK) { sv = RV(sv) if (REGEXP) rx = sv; else if (PERL_MAGIC_qr) rx = mg_obj; } else { if (REGEXP) rx = sv; else if (PERL_MAGIC_qr) rx = mg_obj; } becomes if (ROK) sv = RV(sv) if (REGEXP) rx = sv; else if (PERL_MAGIC_qr) rx = mg_obj; Secondly, elmininate the intermediate rx var; it's only point in life is to be assigned to re_sv, so just use re_sv throughout.
| * simplify the return code in (??{})David Mitchell2012-06-131-14/+1
| | | | | | | | | | | | | | | | | | | | | | In the case where (??{...}) returns a non-reference with SMG, there are two branches: if it has GMG too, we assert it hasn't got PERL_MAGIC_qr, thus (intentionally) making redundant the following sv_unmagic(ret, PERL_MAGIC_qr); otherwise we mg_find(ret, PERL_MAGIC_qr) it. This can all be reduced to a single mg_find() with no change in code logic.
| * remove invalid assertion in (??{}) return codeDavid Mitchell2012-06-132-2/+10
| |
| * propagate 'use re eval' into return from (??{})David Mitchell2012-06-135-3/+30
| | | | | | | | | | | | | | | | | | (??{}) returns a string which needs to be put through the regex compiler, and which may also contain (?{...}) - so any 'use re eval' in scope needs to be propagated into the inner environment. Achieve this by adding a new private flag - PREGf_USE_RE_EVAL - to the regex to indicate the use is in scope, and modify how the call to compile the inner pattern is done, to allow the use state to be passed in.
| * save paren positions when running (?{}) codeDavid Mitchell2012-06-132-6/+111
| | | | | | | | | | | | | | | | Currently, all paren positions are saved before and after executing the regops returned by (??{}); but not while the perl ops are being executed beforehand. If the code happens to do a pattern match against the same regex that's being currently run, then all iuts oparen positions will be overwritten. So save them before entering the RUNOPS loop too.
| * fix refcount of rex attached to PL_reg_curpmDavid Mitchell2012-06-131-23/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There were two mistakes; firstly, refcounts weren't consistently managed, leading to premature frees when recursively calling a rex via (??{}). It should be that PL_reg_curpm holds a single ref count for the rex it points to, and that nothing else should hold a count. Secondly, when making PL_reg_curpm point to a new rex, increment the new *before* decrementing the old, in case they are both the same rex. Both of these are now enforced by doing it within the SET_reg_curpm (formerly SETREX) macro. Tests will come in the next commit. I can't add them yet because they also fail for other reasons (paren related).
| * perlreapi: fix documentation on last(close)?parenDavid Mitchell2012-06-131-2/+2
| | | | | | | | | | lastparen was described as being last open paren; it's actually highest close paren. Also make it clear these correspond to $+ and $^N
| * Remove redundant comment.David Mitchell2012-06-131-1/+0
| | | | | | | | PL_reglastparen and PL_reglastcloseparen have been removed
| * remove some redundant code from CURLY rex opsDavid Mitchell2012-06-131-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | CURLY_B_*_fail all currently do: if (ST.paren && ST.count) rex->offs[ST.paren].end = -1; but this is unnecessary. If B has just failed in the pattern /...(A)*B/, then we will either adjust the amount of matched A, update rex->offs (overwriting that -1) then call B again; or fail completely, do sayNO, and backtrack to an op somewhere in the '...' before A. In this latter case, the "somewhere else" op is the one responsible for unwinding the matched parentheses, not us.