summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Extract regcurly as a static inline function.Andy Dougherty2010-09-225-26/+55
| | | | | | | This patch extracts regcurly from regcomp.c and converts it to a static inline function in a new file dquote_static.c that is now #included by regcomp.c and toke.c. This change will require 'make regen'.
* Remove @extvars from embed.plNicholas Clark2010-09-221-23/+0
| | | | It's been unused since PERL_POLLUTE was removed in cfef31b27d1a56cd.
* Add missing newline to macro_to_ifndef in ExtUtils::Constant::BaseJerry D. Hedden2010-09-221-1/+1
|
* In embed.pl, replace C<$ret .=> with C<$ret => when we know that $ret is "".Nicholas Clark2010-09-221-13/+12
| | | | | Remove one unnecessary initialisation of $ret to "", when all code paths beyond assign to it. Remove one $ret completely (from &write_global_sym).
* Remove &munge_c_files from embed.pl, as it has never been used.Nicholas Clark2010-09-221-34/+3
| | | | | | It was added, with the only call to it commented out, in cea2e8a9dd23747f. This means that walk_table's support for undef meaning 'no output' can removed.
* Emit $_ to Perl_$_ for "nocontext" functions under multiplicity.Nicholas Clark2010-09-222-4/+20
| | | | | | | | | (Strictly for all functions with variable arguments, but *no* explicit interpreter context arguments. Most of these are *_nocontext.) We're already emitting macros for the non-multiplicity case, and as these functions don't need an aTHX_ adding, there's no C portability reason why we can't generate them here too. So do so, for consistency.
* In embed.pl, refactor walk_table to simplify its arguments.Nicholas Clark2010-09-221-13/+12
| | | | | | No need to pass in leader and have it default to do_not_edit ($filename), as the only time the leader is needed is for the case of explicit open file by name. Use undef instead of '/dev/null' to signal that no output is desired.
* Ensure regen.pl and the scripts that it calls can be run by older perls.Nicholas Clark2010-09-225-25/+22
| | | | | | | As the internal comments state, they may be all that is available, particularly if trying to port something to an obscure platform. There's not that much that needs changing to get back to 5.005, or from there to 5.004, but beyond there is hard work, and really not worth it.
* In embed.pl's walk_table, the default filename of '-' was never used.Nicholas Clark2010-09-221-4/+1
| | | | Remove it, simplifying the argument passing.
* Programmatically generate the compatibility macros for "misnamed functions".Nicholas Clark2010-09-223-36/+41
| | | | | Add a new flag 'O' in embed.fnc to generate a macro mapping perl_$func() to $func(). The macro for call_atexit() is far too special to do this way.
* Remove from warnings.pl various long commented out and dead code.Nicholas Clark2010-09-221-8/+0
| | | | | This code was commented out/rendered vestigial in 1998, 2000 and 2002 by 599cee73f2261c5e, d3a7d8c7d7e4d69d and 0d658bf5a06395c2.
* Fix misinformation in perldebtutFlorian Ragwitz2010-09-221-1/+1
| | | | 'B' is for removing breakpoints, not 'd' or 'D'. Pointed out by Jerry Huth.
* We're going to embed two interpreters, not fourFlorian Ragwitz2010-09-221-1/+0
|
* make sure perl doesn't touch stat.t between statsTony Cook2010-09-221-3/+13
| | | | | | | | | | | | | | | | ebcfa0534 changed stat.t to avoid using TEST as the stat target, since it is read by other test scripts. But with the initial stat() in the BEGIN block perl is still reading the script for compilation, which will update the access time. Since the system clock usually didn't tick another second between the first and second stats, the test usually succeeded, but occasionally the clock would tick, and the test would fail. Moved the stat() out of the BEGIN block to avoid that. As a check I temporarily added a 2 second sleep after the initial stat to ensure we didn't have a similar problem to that will allowed this to pass most of the time.
* ‘criteria was’ -> ‘criteria were’Father Chrysostomos2010-09-211-2/+2
|
* Programmatically generate embed.h's *_nocontext exception list in embed.pl.Nicholas Clark2010-09-212-51/+50
| | | | Previously the list was hard-coded.
* In embed.pl, read embed.fnc into an array, rather than seeking and rereading.Nicholas Clark2010-09-211-17/+22
|
* In embed.pl, %vfuncs has been unused since PERL_OBJECT was removed in 2001.Nicholas Clark2010-09-211-21/+0
| | | | | PERL_OBJECT was removed in commit acfe0abcedaf592f. No point in keeping dead code.
* ExtUtils::Constant::ProxySubs should use mro_method_changed_in() if available.Nicholas Clark2010-09-211-1/+10
|
* Add macro_to_ifndef to ExtUtils::Constant::Base, and use it in place of #elseNicholas Clark2010-09-212-4/+17
| | | | | Previously the code was using the #ifdef generated by macro_to_ifdef(), and immediately following that with an #else. That was ugly. And longer.
* Tweak ExtUtils::Constant::ProxySubs to use hv_exists_ent().Nicholas Clark2010-09-211-3/+2
| | | | | Previously it was using hv_exists(), requiring extra code to unpack the SV and convert it to the correct string form for the hash API.
* Remove boilerplate and (un)conditional code from Makefile.PLs in extNicholas Clark2010-09-212-22/+4
|
* Tweak XS::APItest to automatically add all functions to @EXPORT.Nicholas Clark2010-09-212-22/+40
| | | | | | | This saves manually maintaining the export list, which is makework given that the module is only used by its own tests. As the export now folds in symbols from subpackages, this will allow refactoring/reordering/rationalisation of the layout of testing routines in it.
* Eliminate PL_* accessor functions under ithreads.Nicholas Clark2010-09-214-772/+20
| | | | | | | | | | | | | | | | | | | | | | When MULTIPLICITY was first developed, and interpreter state moved into an interpreter struct, thread and interpreter local PL_* variables were defined as macros that called accessor functions, returning the address of the value, outside of the perl core. The intent was to allow members within the interpreter struct to change size without breaking binary compatibility, so that bug fixes could be merged to a maintenance branch that necessitated such a size change. However, some non-core code defines PERL_CORE, sometimes intentionally to bypass this mechanism for speed reasons, sometimes for other reasons but with the inadvertent side effect of bypassing this mechanism. As some of this code is widespread in production use, the result is that the core *can't* change the size of members of the interpreter struct, as it will break such modules compiled against a previous release on that maintenance branch. The upshot is that this mechanism is redundant, and well-behaved code is penalised by it. Hence it can and should be removed. Accessor functions are still needed for globals when PERL_GLOBAL_STRUCT is defined.
* Clarify a perldelta entryFather Chrysostomos2010-09-211-3/+3
|
* perldelta entries for the last two bug fixesFather Chrysostomos2010-09-211-1/+19
|
* Mention wide character warnings in perl5135delta.podFather Chrysostomos2010-09-201-1/+12
| | | | | | | | An oversight: warn and die now produced wide character warnings, as well as print. This commit adds them to perl5135delta.pod retroactively, so they will make their way into perl5140delta.pod.
* Fix pod syntax in perlsubFather Chrysostomos2010-09-201-1/+1
|
* [perl #47365] Docs for \$ prototypesFather Chrysostomos2010-09-201-3/+6
| | | | | \$ allows any hash/array element, even if it does not start with a dollar sign.
* Test localization of English.pm’s $LIST_SEPARATOR [perl #47107]Michael G Schwern2010-09-201-1/+11
|
* Let B::Deparse know about the [perl #20444] fix.Father Chrysostomos2010-09-202-2/+19
| | | | | | | | | | | | | | | With the previous commit: $ ./perl -Ilib -MO=Deparse -e'"foo" =~ (1?/foo/:/bar/)' 'foo' =~ /foo/; -e syntax OK So the Deparse output no longer matches what perl does. With this commit: $ ./perl -Ilib -MO=Deparse -e'"foo" =~ (1?/foo/:/bar/)' 'foo' =~ ($_ =~ /foo/); -e syntax OK
* [perl #20444] regex not evaluated in constant ?:Father Chrysostomos2010-09-203-4/+48
| | | | | | | | | | | | $text =~ ( 1 ? /phoo/ : /bear/) used to be constant-folded to $text =~ /phoo/ This patch solves the problem by marking match and subst ops as OPf_SPECIAL during constant folding, so the =~ operator can tell not to take possession of it.
* [perl #19078] wrong match order inside replacementFather Chrysostomos2010-09-202-1/+24
| | | | | | | | | | | | | | | | | | | | | | $ perl -le '$_="CCCGGG"; s!.!@a{print("[$&]"),/./}!g' [C] [C] [C] [C] [C] [C] What’s happening is that the s/// does not reset PL_curpm for each iteration, because it doesn’t usually have to. The RHS’s scoping takes care of it most of the time. This happens with the /e modifier and with @{...}. In this example, though, we have a subscript, not a block. This sub- script is in the same scope as the s/// itself. The assumption that the substitution operator will never have to reset PL_curpm itself appears to be incorrect. This fixes it.
* compare stat results on a file that isn't touched elsewhereTony Cook2010-09-211-1/+1
| | | | | | lib/File/stat.t compares two stat calls on t/TEST against each other, but other tests read t/TEST, modifying its access time, causing rare random failures in stat.t in parallel tests.
* Don't process .patch in ConfigureJerry D. Hedden2010-09-201-5/+0
| | | | | | | The format of the .patch file is no longer an integer change number, and generates an error when processed by Configure. As .patch is now handled by make_patchnum.pl, the attached patch removes processing of .patch from Configure.
* Restore Unicode-Normalize .gitignore to ignore build productsTony Cook2010-09-211-0/+1
|
* Add two (SV *) casts to placate C++.Tony Cook2010-09-211-2/+2
|
* Update perldelta.pod with recent module updatesChris 'BinGOs' Williams2010-09-211-1/+5
|
* Update Unicode-Normalize to CPAN version 1.07Chris 'BinGOs' Williams2010-09-216-8/+19
| | | | | | | | [DELTA] 1.07 Mon Sep 20 20:20:02 2010 - doc: about perl 5.12.x and Unicode 5.2.0 - test: prototype of normalize_partial() and cousins in proto.t.
* Add missing bug numbersFather Chrysostomos2010-09-203-3/+3
|
* call defout/stderr destructors lastDavid Mitchell2010-09-203-8/+13
| | | | | | | | When calling the destructors for IO objects embedded in arena GVs, process PL_defoutgv and PL_stderrgv last. Yes, the test suite expects STDOUT to still work at this point. Indeed, one test in ref.t calls print from STDOUT's destructor (which is why pp_print needed a slight tweak to handle a null GV properly).
* run named IO destructors laterDavid Mitchell2010-09-201-3/+27
| | | | | | | | | | | | | | | | | | split do_clean_named_objs() into two functions; the first skips the IO slot, and the second, do_clean_named_io_objs(), only processes the IO slot. This means that the destructors for IO objects are run later than for other named objects, so the latter will still have access to all their IO. This is a fix for 57ef47cc7bcd1b57927d5010f363ccaa10f1d990, which changed do_clean_named_objs() to zap the slots of a GV rather than just decrementing the GV's ref count. This change ensures referential integrity, but means that GVs with a reference > 1 will still have their slots zapped. In particular, it means that PL_defoutgv no longer gets delayed zapping. However, this has always been a problem for any other file handles; depending on the order of GV zapping, a file handle could be freed before a destructor gets called that might use it. So this is a general fix.
* [perl #77930] cx_stack reallocation during sortFather Chrysostomos2010-09-202-1/+22
| | | | | Reset cx in pp_sort before POPSUB, as the pointer may no longer be valid.
* porting/manifest.t fail gracefully under !gitDavid Mitchell2010-09-201-0/+1
| | | | | | | | This test was producing spurious output to stderr when not under git control (e.g. a release tarball): fatal: Not a git repository (or any parent up to mount parent ) Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
* Upgrade PathTools to 3.33Steffen Mueller2010-09-2011-11/+11
| | | | | This is just a version bump to make the versions in blead and CPAN match.
* Don’t use PL_op without checking it first.Father Chrysostomos2010-09-201-1/+3
|
* fix typo in newSVpvn_flags() docsDavid Mitchell2010-09-201-1/+1
|
* fix PL_psig_pend freeingDavid Mitchell2010-09-201-2/+0
| | | | | | Commit 31c91b4357905486e81f901ad079da5735bdb7ba added a block of code to free PL_psig_pend in a signal-safe way, but omitted to remove the original unsafe freeing code above it. Removed with this commit.
* [perl #40388] perl_destruct() leaks PL_main_cvDavid Mitchell2010-09-201-0/+4
| | | | Well yes, it does, kinda; but it's harmless. Add a comment to that effect.
* [perl #40389] perl_destruct() leaks PL_defstashDavid Mitchell2010-09-201-0/+2
| | | | | | | | | | | | | | | | | With PERL_DESTRUCT_LEVEL >= 1, PL_defstash is explicitly freed, but doesn't actually get freed at that point due to a reference loop between %:: and *::. Break that loop to ensure that PL_defstash gets freed at that point. Actually, its not as serious as it sounds, as it would get freed a bit later anyway by sv_clean_all(), but this new way has these benefits: * it gets freed where you expect it to be * it gets freed cleanly, rather than by the more brutal sv_clean_all() (which can leave dangling pointers to freed SVs) * since its freed while *not* under the influence of PL_in_clean_all = TRUE, it's more likely to flag up bugs related to double-freeing etc. Indeed, the two previous commits to this are a result of that.