summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* PL_ofsgv is ref counted, so inc when dupingDavid Mitchell2010-09-201-1/+1
|
* stop do_clean_named_objs() leaving dangling refsDavid Mitchell2010-09-203-20/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently perl does 3 major scans of the SV arenas, so the action of perl_destroy() is a bit like this: for (all arena SVs) { if (its a ref to an object) undef the ref (and thus probably free the object) } for (all arena SVs) { if (it's a typeglob and at least one of its slots holds an object) { set SVf_BREAK on the gv SvREFCNT_dec(gv) } } return if $PERL_DESTRUCT_LEVEL < 1; PL_in_clean_all = 1 for (all arena SVs) { set SVf_BREAK on the sv SvREFCNT_dec(sv) } The second scan is problematic, in that by randomly zapping GVs, it can leave dangling pointers to freed GVs. This is while perl-level destructors may still be called, meaning perl users can see corrupted state. Note also that at this point PL_in_clean_all hasn't been set, so sv_free() may put out 'Attempt to free unreferenced scalar' warnings. This commit fixes this by only freeing the affected slots of the GV, rather than freeing the GV itself. Thus makes it more like the first pass, which undefs RVs, and ensures no dangling refs.
* Add (?^...) regex constructKarl Williamson2010-09-2014-36/+117
| | | | | | | | | | | | | | | | | | This adds (?^...) to signify to use the default regex modifiers for the cluster or embedded pattern-match modifier change. The major purpose of this is to simplify regex stringification, so that "^" is output in place of "-xism". As a result, the stringification will not change in the future when new regex modifiers are added, so tests, etc. that rely on a particular stringification will have to change now, but never again. Code that needs to work properly with both old- and new-style regexes can use something like the following: # Accept both old and new-style stringification my $modifiers = (qr/foobar/ =~ /\Q(?^/) ? '^' : '-xism'; This construct is Ben Morrow's idea.
* regcomp.c: fix an improper indentKarl Williamson2010-09-201-1/+1
|
* Upgade NEXT from version 0.64 to 0.65Florian Ragwitz2010-09-2010-45/+6
| | | | We can now set PERL_CORE again when running its tests.
* Upgrade PathTools from version 3.31_02 to 3.32Florian Ragwitz2010-09-2012-13/+14
|
* Module::CoreList 2.39 is on CPAN nowFlorian Ragwitz2010-09-201-1/+1
|
* Remove unnecessary XS-APItest test boilerplateFlorian Ragwitz2010-09-2013-178/+54
| | | | | | | If perl was configured without XS/APItest as an extension, make test and make test_harness won't even run the tests anyway. Also, XS-APItest only lives in the core, so it's only ever going to be tested there, making conditional tests depending on $] unnecessary.
* Add tests for PL_peepp/PL_rpeeppFlorian Ragwitz2010-09-203-0/+125
|
* Update release manager's guide regarding perldeltaSteve Hay2010-09-191-7/+8
|
* Prepare perldelta for Perl 5.13.6Steve Hay2010-09-1911-408/+795
|
* Removed the superfluous META.yml from Module-CoreListChris 'BinGOs' Williams2010-09-192-22/+0
|
* Update Porting/epigraphs.pod for Perl 5.13.5Steve Hay2010-09-191-0/+26
|
* Record another known problem in perldeltav5.13.5Steve Hay2010-09-191-1/+9
| | | | | | Testers on IRC have also discovered that the upgrade to ExtUtils-MakeMaker-6.57_05 has resulted in some Module-Install tests failing
* Record a known problem in perldeltaSteve Hay2010-09-191-0/+12
| | | | | Testers on IRC have discovered that the upgrade to Encode-2.40 has resulted in some libwww-perl tests failing
* Don't use wildcards in Porting/exec-bit.txtSteve Hay2010-09-191-3/+34
| | | | | | | The *.SH wildcard wrongly matched *.sh files on Windows's case-insensitive filesystem, leading to an exec bit getting set where it shouldn't have been Thanks to rafl and vincent for spotting the problem and the cause
* Final update to perldelta.pod for Perl 5.13.5Steve Hay2010-09-191-1/+17
|
* Record Perl 5.13.5 in perlhistSteve Hay2010-09-191-0/+1
|
* Update Module::CoreList for Perl 5.13.5Steve Hay2010-09-193-20/+663
|
* Update Changes for 5.13.5Steve Hay2010-09-191-2/+2
|
* Bump version to 5.13.5Steve Hay2010-09-1920-142/+142
|
* Update perldelta for 5.13.5Steve Hay2010-09-191-9/+42
| | | | Hopefully the last-but-one update
* Bump VERSIONs in XS-APItest and XS-APItest-KeywordRPNSteve Hay2010-09-192-2/+2
| | | | | Not strictly necessary for these modules since they don't get installed anyway, but their XS files have been changed since 5.13.4
* Bump VERSION in PerlIO-scalarSteve Hay2010-09-191-1/+1
| | | | The XS file has been changed since 5.13.4
* Bump VERSION in threads-sharedSteve Hay2010-09-191-1/+1
| | | | The XS file has been changed since 5.13.4
* Update perldelta for 5.13.5 tomorrow (err, later today)Steve Hay2010-09-191-304/+110
| | | | | Not finished yet, but nearly there already thanks to the efforts of rafl over the last month :-)
* Fix Porting/cmpVERSION.pl to work on Win32Steve Hay2010-09-191-3/+5
|
* Various perldelta tweaksFlorian Ragwitz2010-09-181-20/+33
| | | | Fixes some minor typos, and adds more links, mostly to rt.perl.org.
* perldelta recent module upgradesFlorian Ragwitz2010-09-181-2/+6
|
* Upgrade Encode from 2.39 to 2.40Steve Hay2010-09-1815-35/+211
|
* Upgrade B-Debug from 1.14 to 1.16Steve Hay2010-09-183-79/+57
|
* Silence compiler warningsSteve Hay2010-09-183-3/+3
|
* Update the perl distribution's abstractFlorian Ragwitz2010-09-182-2/+6
| | | | | | | | Commit d27f2b2f9d9e8675f5b63a1453279409ca22f8b6 changed the abstract in the main pod file. This does the same thing for the abstract in META.yml. Also update our no_index directories for some moved dual-life modules, while we're at it.
* Fix inconsistency in perlpodFlorian Ragwitz2010-09-181-1/+1
|
* perldelta up to ebeb11aFlorian Ragwitz2010-09-171-6/+11
|
* * Fix 'a keys' question title in perlfaq4brian d foy2010-09-172-2/+2
|
* Explicitly disable unicode for non-unicode tests in t/op/warn.tTony Cook2010-09-171-2/+2
| | | | These would fail when smokes tested under unicode locales.
* PATCH: perldelta entry for [\8] [perl #76840] fix.Karl Williamson2010-09-171-0/+8
|
* reftype() used without checking for undefChas. Owens2010-09-161-3/+5
| | | | | | | | | Hash::Util used "reftype($v) eq 'HASH'" without checking for undefinendness. This patch rectifies that. Also bumps Hash::Util version. Original patch and detective work by Chas. Owens. Modified by Steffen Mueller.
* Back out the mauve module and related changesFlorian Ragwitz2010-09-1611-812/+28
| | | | | | | | | | | | | | | | | | | | | It's was intended as a temporary namespace only, and we really don't want to ship it in any release until we've figured out what it should really look like. This reverts commit 05c0d6bbe3ec5cc9af99d105b8648ad02ed7cc95, "add sv_reftype_len() and make sv_reftype() be a wrapper for it" commit 792477b9c2e4c75cb03d07bd6d25dc7e1fdf448e, "create the "mauve" temporary namespace for things like reftype" commit 8df6b97c1de8326d50ac9c8cae4bf716393b45bb, "mauve.t needs access to %Config, make sure it's available" commit cfe9162d0d593cd12a979c73df82c7509b324343, "use more efficient sv_reftype_len() interface" and commit 47b13905e23c2a72acdde8bb4669e25e5eaefec4 "add more tests to lib/mauve.t so it tests also that mauve::reftype can return "LVALUE"" There's a `mauve' branch still containing all the code for the temporary mauve namespace. That should be used to work on it until it's mostly ready to be released, and only then merged to blead. Alternatively, it should be deleted if another way to provide mauve's features in the core is found.