summaryrefslogtreecommitdiff
path: root/t/op/undef.t
Commit message (Collapse)AuthorAgeFilesLines
* Avoid 'defined(@array) is deprecated' warnings in tests.Nicholas Clark2012-01-171-3/+9
| | | | | | | Commit 604a99bd464c92d7 enabled the warning for package arrays, but failed to lexically disable the warning for the various tests for the construction. Even though the construction is deprecated, we'd still like to know if the behaviour changes, in case it wasn't intentional.
* make hash emptying non-atomicDavid Mitchell2011-05-191-14/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, when empting a hash of its elements (e.g. via undef(%h), or %h=()), HvARRAY field is temporarily zeroed, so that any destructors called on the freed elements see an empty hash. Change this so that they see any remaining elements. Thus, %h=() becomes more like C<delete $h{$_} for keys %h>. The atomic behaviour was introduced (by me) in 2003 with commit 2f86008e34264, to fix RT #3096. This concerned element destructors that messed with the hash being undeffed, causing unrefed var errors and the like. At the time, simply setting HvARRAY to null for the duration seemed like a simple fix. However, it didn't take account of destructors adding new elements to the list, thus re-creating HvARRAY. This was subsequently fixed. Then, the HvAUX structure was invented, which meant that optional hash fields were hidden away at the end of HvARRAY. This meant that hfreeentries() acquired a whole bunch of extra code to copy these fields around between the original HvARRAY and the new HvARRAY and then back again, and temporarily squirrelling the backref array in backref magic rather than in HvAUX. In short, hfreeentries() became a 200 line sprawling mess. This commit reduces it back to 70, and makes everything conceptually simpler. It does however change user-level visible behaviour (back to pre-2003), but note that the new behaviour now matches the behaviour that arrays have always had (i.e. destructors see a partially-emptied array). Note that backref magic for HVs is now always stored in HvAUX
* Make defined %hash on a non-lexical (also) generate a deprecated warning.Nicholas Clark2009-10-241-4/+16
| | | | | Tk has been fixed, and no longer uses defined %stash:: to determine if a package has been loaded.
* defined @array and defined %hash need no warnings 'deprecated';Nicholas Clark2009-10-161-0/+2
|
* Mark all .t and .pm files as non executableRafael Garcia-Suarez2009-06-061-0/+0
|
* Convert undef.t to use test.pl and strict.Nicholas Clark2008-07-261-37/+41
| | | p4raw-id: //depot/perl@34159
* Some more missing isGV_with_GP()sBen Morrow2008-06-281-1/+11
| | | | | Message-ID: <20080628160017.GA81579@osiris.mauzo.dyndns.org> p4raw-id: //depot/perl@34092
* [perl #3096] undefing hash with object valuesDave Mitchell2003-05-051-1/+18
| | | | | Message-ID: <20030501200657.GA25456@fdgroup.com> p4raw-id: //depot/perl@19424
* Add a test for [perl #17753].Jarkko Hietaniemi2003-04-151-1/+7
| | | p4raw-id: //depot/perl@19215
* Use minimal @INC in tests, most of the time just '../lib',Mike Guy2000-08-291-1/+1
| | | | | | | | so that we simply can't pick up stuff from other Perls than the one we are testing. Pointed out by Subject: Re: [PATCH: 6757] make new Storable tests forgiving of places where not built Message-Id: <E13SKH1-00031D-00@virgo.cus.cam.ac.uk> p4raw-id: //depot/perl@6874
* Change #2346 fallout.Jarkko Hietaniemi1998-11-281-0/+5
| | | p4raw-id: //depot/cfgperl@2356
* test cases for previous changeGurusamy Sarathy1998-11-281-1/+16
| | | p4raw-id: //depot/perl@2346
* make $1 et al readonly under threads; make C<undef $1> fail likeGurusamy Sarathy1998-11-281-3/+8
| | | | | C<$1 = undef> does p4raw-id: //depot/perl@2335
* perl 5.0 alpha 2perl-5a2Larry Wall1993-10-071-1/+1
| | | | [editor's note: from history.perl.org. The sparc executables originally included in the distribution are not in this commit.]
* perl 4.0.00: (no release announcement available)perl-4.0.00Larry Wall1991-03-211-0/+56
So far, 4.0 is still a beta test version. For the last production version, look in pub/perl.3.0/kits@44.