summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Make prototypes and declarations for Perl_pad_add_name_{pv,pvn,sv} agree.Nicholas Clark2011-07-143-5/+5
| | | | | | cc76b5cc1552a605 added all 3 functions to the API, but declared prototypes with const U32 flags, whilst the definitions had that parameter non-const. Some compilers issue warnings about this inconsistency.
* Add Porting/acknowledgements.pl to generate perldelta acknowledgementsLeon Brocard2011-07-147-24/+160
|
* reduce size of threads.t testDavid Mitchell2011-07-141-1/+1
| | | | | | | Commit 3c78429c102e0fe2ad30c60dfe52636b6071ef19 introduced a new test that constructed and then evaled a very long string. Make that string less long, as evaling it was consuming 100Mb on my debugging build, and a smaller string still exercises the behaviour (i.e. fails on older perls).
* Added -r option to corelistChris 'BinGOs' Williams2011-07-144-3/+40
| | | | | | | This will display the release date of a given perl release. If no perl release is specified, will list all perl releases and release dates.
* Update POD for 'corelist' so that the help page is more actual than illustrativeH.Merijn Brand2011-07-141-20/+48
| | | | Signed-off-by: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
* make peep optimiser recurse mostly only shallowlyDavid Mitchell2011-07-144-21/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Long blocks of code that include logical or loop ops (i.e. those with multiple 'branches' of ops, such as op_other, op_redo etc) cause Perl_rpeep to recurse deeply and eventaully SEGV. For example this crashes, due to the ENTERLOOP: eval ("{\$x = 1 }\n" x 10000) The deep recursion happens because the processing of the entire rest of the code occurs in within the nested call. For example in the code A && B; C; D; E; the ops are structured as A -> AND -> C -> D -> E \ / B where AND->op_next points to C, while AND->op_other points to B. rpeep() would normally process each op in the op_next sequence in turn (i.e. A/AND/C/D/E), but when it reaches AND, it recursively calls rpeep(B), which happens to then process B/C/D/E. Finally it returns, and the parent rpeep processes C, finds it's already done, and exits. Clearly, if C,D,E etc also contain conditional/loop ops, then the recursion level gradually stacks up. The fix for this is to add a small deferred queue to rpeep(). Whenever rpeep wants to recurse with op_other or op_lastop etc, it instead adds it to the deferred queue. Only if the queue is full is rpeep actually called. The hope is that by deferring, when we do eventually process it, enough of the main op_next chain has already been processed to ensure that the child rpeep returns very early. In the example above, processing of AND causes B to be added to the queue, and the main rpeep process continues processing C, D etc. Sometime later, the queue becomes full and B is processed via a recursive call to rpeep. B is processed, and op_next is followed to C, but C is marked as already processed, so the child rpeep returns almost immediately. For LOOP ops, I've stopped following op_redoop and op_nextop, since AFAIKT the ops these point to will also be reachable vie op_next anyway. op_lastop is the exception; in while(1){..} only op_lastop points to the rest of the code block. Note that this commit doesn't guarantee only shallow recursion, it just makes deep recursion fairly unlikely. Note also that this commit causes the order of the processing of op_next chains to be altered; this can affect the ordering of compiler warnings and fatal messages among potentially other things.
* Only add Perl_pad_setsv to the list of symbols if -DDEBUGGING is true.Nicholas Clark2011-07-141-0/+1
| | | | | This is needed on Win32 since cc76b5cc1552a605, which make Perl_pad_setsv part of the public API, and thereby exported for the first time.
* [perl #93324] Don’t autovivify *B:: in CarpFather Chrysostomos2011-07-132-3/+20
| | | | | | While this may be bending over backwards, this avoids causing problems for the Perl compiler suite and also for various CPAN modules that use A, B and C packages for testing.
* perldelta updateFather Chrysostomos2011-07-131-18/+115
|
* Ahem, 0fce7163 was not enoughFather Chrysostomos2011-07-131-1/+1
|
* Fix a compiler warningFlorian Ragwitz2011-07-131-0/+2
| | | | | gimme is being set by POPBLOCK, but otherwise unused. PERL_UNUSED_VAR stops the warning gcc generates for that.
* Remove an unused variableFlorian Ragwitz2011-07-131-1/+0
|
* Don't include libutil.h on LinuxFlorian Ragwitz2011-07-131-0/+3
| | | | | All it does is cause warnings on recent systems with that header installed. It's required for some variants of FreeBSD only.
* Dual-life Term::CompleteFlorian Ragwitz2011-07-136-16/+15
|
* perldelta for the SvIsCOW fixFather Chrysostomos2011-07-131-0/+10
|
* perldelta for recent SvREADONLY fixesFather Chrysostomos2011-07-131-0/+8
|
* Merge UTF8 pad stuffFather Chrysostomos2011-07-1221-272/+1333
|\ | | | | | | | | | | | | | | | | The series of commits in this branch add pad functions to the API and make the pad fully UTF8-aware. Previously, ‘use utf8; my $фу’ used to store raw UTF8 bytes in the pad, without marking them as such. So things sort of worked ‘by accident’.
| * Fix perlintern links; regen known pod issuesFather Chrysostomos2011-07-122-4/+6
| |
| * Add a test count to fresh_perl_utf8.tFather Chrysostomos2011-07-121-0/+2
| |
| * Add Brian Fraser to AUTHORSFather Chrysostomos2011-07-121-0/+1
| |
| * This cleans the "Can't localize lexical variable" error.Brian Fraser2011-07-123-2/+22
| | | | | | | | | | | | | | Plus the test case from t/run/fresh_perl.t, but in UTF-8, in t/op/fresh_perl_utf8.t That file currently has only that test, but I intend to port others from fresh_perl.t to test clean stashes/GVs.
| * Cleaned up warning messages in pad.c, plus related tests.Brian Fraser2011-07-122-9/+261
| |
| * Tests for the pad cleanup.Brian Fraser2011-07-122-4/+25
| |
| * Cleanup of pad fetching and storing. This version normalizes the data on ↵Brian Fraser2011-07-121-3/+30
| | | | | | | | both sides, which isn't required, but may be more efficient than leaving it to the comparison function.
| * Added sv_eq_pvn_flags to pad.c, which will be used by later commits.Brian Fraser2011-07-121-0/+41
| |
| * Passing the flag to the pad functions in toke.cBrian Fraser2011-07-121-4/+6
| |
| * Handling of the flag parameter in Perl_allocmy, instead of looking at the ↵Brian Fraser2011-07-121-4/+5
| | | | | | | | global flag.
| * pad.c: flags checking for the UTF8 flag when necessaryBrian Fraser2011-07-123-3/+331
| |
| * pad.h: Added a padadd_UTF8_NAME flag for pad_add_name_pvn.Brian Fraser2011-07-121-4/+5
| |
| * Added a flags parameter to pad_findlex.Brian Fraser2011-07-124-14/+14
| |
| * API tests for pad_findmy_*()Zefram2011-07-123-0/+141
| |
| * API test for find_rundefsv()Zefram2011-07-123-0/+35
| |
| * APIify pad functionsZefram2011-07-1213-262/+449
|/ | | | | | | Move several pad functions into the core API. Document the pad functions more consistently for perlapi. Fix the interface issues around delimitation of lexical variable names, providing _pvn, _pvs, _pv, and _sv forms of pad_add_name and pad_findmy.
* Stop buildtoc from generating trailing whitespaceFlorian Ragwitz2011-07-122-14/+10
| | | | In win32/pod.mak, at least.
* Move perlxs{,tut}.pod into the ExtUtils-ParseXS distFlorian Ragwitz2011-07-128-51/+36
|
* Skip .xs files in t/ dirs when comparing versionsFlorian Ragwitz2011-07-121-1/+1
|
* podcheck.t --regen after the ParseXS mergeFlorian Ragwitz2011-07-121-0/+2
|
* A perltodone! ExtUtils::ParseXS uses strictSteffen Mueller2011-07-121-12/+0
| | | | This is thanks to James Keenan's work! Finally!
* Fill in ExtUtils::ParseXS versions in deltaSteffen Mueller2011-07-121-1/+1
|
* Merge branch 'smueller/eu_typemap' into bleadSteffen Mueller2011-07-1252-1573/+5924
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Much of ExtUtils::ParseXS was rewritten and cleaned up. It has been made somewhat more extensible and now finally uses strictures. The logic for parsing, merging, and dumping XS typemaps was extracted from ExtUtils::ParseXS into a module of its own, ExtUtils::Typemaps. ExtUtils::Typemaps offers an interface to typemap handling outside of the scope of the XS compiler itself. As a first use case of the improved API an extensibility, typemaps can now be included inline into XS code with a HEREDOC-like syntax: TYPEMAP: <<END_TYPEMAP MyType T_IV END_TYPEMAP
| * Document full changeset in ExtUtils::ParseXSsmueller/eu_typemapSteffen Mueller2011-07-121-4/+10
| |
| * Bump ExtUtils::ParseXS version to a dev versionSteffen Mueller2011-07-121-1/+1
| |
| * Document the TYPEMAP XS keywordSteffen Mueller2011-07-121-1/+23
| | | | | | | | | | It can be used for embedding typemaps in XS code. Very convenient when generating XS!
| * Document the ExtUtils::ParseXS changes in perldeltaSteffen Mueller2011-07-121-0/+24
| |
| * Attempt band-aid fix for win32 build failureSteffen Mueller2011-07-121-2/+2
| |
| * Add is_empty method to EU::TypemapsSteffen Mueller2011-07-122-3/+27
| |
| * Use lower case method name for current_line_numberSteffen Mueller2011-07-122-6/+6
| | | | | | | | My fault for botching this up originally, sorry.
| * Lose $Fallback globalSteffen Mueller2011-07-122-2/+1
| |
| * Lose the $Overload globalSteffen Mueller2011-07-122-2/+1
| |
| * Remove superfluous global "$errors"Steffen Mueller2011-07-122-3/+1
| |