This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Deparse each @array and friends.
[perl5.git] / Changes5.001
CommitLineData
59c9ff65 1-------------
2Version 5.001
3-------------
4
5Nearly all the changes for 5.001 were bug fixes of one variety or another,
6so here's the bug list, along with the "resolution" for each of them. If
7you wish to correspond about any of them, please include the bug number.
8
9There were a few that can be construed as enhancements:
10 NETaa13059: now warns of use of \1 where $1 is necessary.
11 NETaa13512: added $SIG{__WARN__} and $SIG{__DIE__} hooks
12 NETaa13520: added closures
13 NETaa13530: scalar keys now resets hash iterator
14 NETaa13641: added Tim's fancy new import whizbangers
15 NETaa13710: cryptswitch needed to be more "useable"
16 NETaa13716: Carp now allows multiple packages to be skipped out of
17 NETaa13716: now counts imported routines as "defined" for redef warnings
18 (and, of course, much of the stuff from the perl5-porters)
19
20NETaa12974: README incorrectly said it was a pre-release.
21Files patched: README
22
23NETaa13033: goto pushed a bogus scope on the context stack.
24From: Steve Vinoski
25Files patched: pp_ctl.c
f58c54f0 26 The goto operator pushed an extra bogus scope onto the context stack. (This
59c9ff65 27 often didn't matter, since many things pop extra unrecognized scopes off.)
28
29NETaa13034: tried to get valid pointer from undef.
30From: Castor Fu
31Also: Achille Hui, the Day Dreamer
32Also: Eric Arnold
33Files patched: pp_sys.c
34 Now treats undef specially, and calls SvPV_force on any non-numeric scalar
35 value to get a real pointer to somewhere.
36
37NETaa13035: included package info with filehandles.
38From: Jack Shirazi - BIU
39Files patched: pp_hot.c pp_sys.c
40 Now passes a glob to filehandle methods to keep the package info intact.
41
42NETaa13048: didn't give strict vars message on every occurrence.
43From: Doug Campbell
44Files patched: gv.c
45 It now complains about every occurrence. (The bug resulted from an
46 ill-conceived attempt to suppress a duplicate error message in a
47 suboptimal fashion.)
48
49NETaa13052: test for numeric sort sub return value fooled by taint magic.
50From: Peter Jaspers-Fayer
51Files patched: pp_ctl.c sv.h
52 The test to see if the sort sub return value was numeric looked at the
53 public flags rather than the private flags of the SV, so taint magic
54 hid that info from the sort.
55
56NETaa13053: forced a2p to use byacc
57From: Andy Dougherty
58Files patched: MANIFEST x2p/Makefile.SH x2p/a2p.c
59 a2p.c is now pre-byacced and shipped with the kit.
60
61NETaa13055: misnamed constant in previous patch.
62From: Conrad Augustin
63Files patched: op.c op.h toke.c
64 The tokener translates $[ to a constant, but with a special marking in case
65 the constant gets assigned to or localized. Unfortunately, the marking
66 was done with a combination of OPf_SPECIAL and OPf_MOD that was easily
67 spoofed. There is now a private OPpCONST_ARYLEN flag for this purpose.
68
69NETaa13055: use of OPf_SPECIAL for $[ lvaluehood was too fragile.
70Files patched: op.c op.h toke.c
71 (same)
72
73NETaa13056: convert needs to throw away any number info on its list.
74From: Jack Shirazi - BIU
75Files patched: op.c
76 The listiness of the argument list leaked out to the subroutine call because
77 of how prepend_elem and append_elem reuse an existing list. The convert()
78 routine just needs to discard any listiness it finds on its argument.
79
80NETaa13058: AUTOLOAD shouldn't assume size of @_ is meaningful.
81From: Florent Guillaume
82Files patched: ext/DB_File/DB_File.pm ext/Fcntl/Fcntl.pm ext/GDBM_File/GDBM_File.pm ext/Socket/Socket.pm h2xs.SH
83 I just deleted the optimization, which is silly anyway since the eventual
84 subroutine definition is cached.
85
86NETaa13059: now warns of use of \1 where $1 is necessary.
87From: Gustaf Neumann
88Files patched: toke.c
89 Now says
90
91 Can't use \1 to mean $1 in expression at foo line 2
92
93 along with an explanation in perldiag.
94
95NETaa13060: no longer warns on attempt to read <> operator's transition state.
96From: Chaim Frenkel
97Files patched: pp_hot.c
98 No longer warns on <> operator's transitional state.
99
100NETaa13140: warning said $ when @ would be more appropriate.
101From: David J. MacKenzie
102Files patched: op.c pod/perldiag.pod
103 Now says
104
105 (Did you mean $ or @ instead of %?)
106
107 and added more explanation to perldiag.
108
109NETaa13149: was reading freed memory to make incorrect error message.
110Files patched: pp_ctl.c
111 It was reading freed memory to make an error message that would be
112 incorrect in any event because it had the inner filename rather than
113 the outer.
114
115NETaa13149: confess was sometimes less informative than croak
116From: Jack Shirazi
117Files patched: lib/Carp.pm
118 (same)
119
120NETaa13150: stderr needs to be STDERR in package
121From: Jack Shirazi
122Files patched: lib/File/CheckTree.pm
123 Also fixed pl2pm to translate the filehandles to uppercase.
124
125NETaa13150: uppercases stdin, stdout and stderr
126Files patched: pl2pm
127 (same)
128
129NETaa13154: array assignment didn't notice package magic.
130From: Brian Reichert
131Files patched: pp_hot.c
132 The list assignment operator looked for only set magic, but set magic is
133 only on the elements of a magical hash, not on the hash as a whole. I made
134 the operator look for any magic at all on the target array or hash.
135
136NETaa13155: &DB::DB left trash on the stack.
137From: Thomas Koenig
138Files patched: lib/perl5db.pl pp_ctl.c
139 The call by pp_dbstate() to &DB::DB left trash on the stack. It now
140 calls DB in list context, and DB returns ().
141
142NETaa13156: lexical variables didn't show up in debugger evals.
143From: Joergen Haegg
144Files patched: op.c
145 The code that searched back up the context stack for the lexical scope
146 outside the eval only partially took into consideration that there
147 might be extra debugger subroutine frames that shouldn't be used, and
148 ended up comparing the wrong statement sequence number to the range of
f58c54f0 149 valid sequence numbers for the scope of the lexical variable. (There
59c9ff65 150 was also a bug fixed in passing that caused the scope of lexical to go
151 clear to the end of the subroutine even if it was within an inner block.)
152
153NETaa13157: any request for autoloaded DESTROY should create a null one.
154From: Tom Christiansen
155Files patched: lib/AutoLoader.pm
156 If DESTROY.al is not located, it now creates sub DESTROY {} automatically.
157
158NETaa13158: now preserves $@ around destructors while leaving eval.
159From: Tim Bunce
160Files patched: pp_ctl.c
161 Applied supplied patch, except the whole second hunk can be replaced with
162
163 sv_insert(errsv, 0, 0, message, strlen(message));
164
165NETaa13160: clarified behavior of split without arguments
166From: Harry Edmon
167Files patched: pod/perlfunc.pod
168 Clarified the behavior of split without arguments.
169
170NETaa13162: eval {} lost list/scalar context
171From: Dov Grobgeld
172Files patched: op.c
173 LEAVETRY didn't propagate number to ENTERTRY.
174
175NETaa13163: clarified documentation of foreach using my variable
176From: Tom Christiansen
177Files patched: pod/perlsyn.pod
178 Explained that foreach using a lexical is still localized.
179
180NETaa13164: the dot detector for the end of formats was over-rambunctious.
181From: John Stoffel
182Files patched: toke.c
f58c54f0 183 The dot detector for the end of formats was over-rambunctious. It would
59c9ff65 184 pick up any dot that didn't have a space in front of it.
185
186NETaa13165: do {} while 1 never linked outer block into next chain.
187From: Gisle Aas
188Files patched: op.c
189 When the conditional of do {} while 1; was optimized away, it confused the
190 postfix order construction so that the block that ordinarily sits around the
f58c54f0 191 whole loop was never executed. So when the loop tried to unstack between
59c9ff65 192 iterations, it got the wrong context, and blew away the lexical variables
193 of the outer scope. Fixed it by introducing a NULL opcode that will be
194 optimized away later.
195
196NETaa13167: coercion was looking at public bits rather than private bits.
197From: Randal L. Schwartz
198Also: Thomas Riechmann
199Also: Shane Castle
200Files patched: sv.c
201 There were some bad ifdefs around the various varieties of set*id(). In
202 addition, tainting was interacting badly with assignment to $> because
203 sv_2iv() was examining SvPOK rather than SvPOKp, and so couldn't coerce
204 a string uid to an integer one.
205
206NETaa13167: had some ifdefs wrong on set*id.
207Files patched: mg.c pp_hot.c
208 (same)
209
210NETaa13168: relaxed test for comparison of new and old fds
211From: Casper H.S. Dik
212Files patched: t/lib/posix.t
213 I relaxed the comparison to just check that the new fd is greater.
214
215NETaa13169: autoincrement can corrupt scalar value state.
216From: Gisle Aas
217Also: Tom Christiansen
218Files patched: sv.c
219 It assumed a PV didn't need to be upgraded to become an NV.
220
221NETaa13169: previous patch could leak a string pointer.
222Files patched: sv.c
223 (same)
224
225NETaa13170: symbols missing from global.sym
226From: Tim Bunce
227Files patched: global.sym
228 Applied suggested patch.
229
230NETaa13171: \\ in <<'END' shouldn't reduce to \.
231From: Randal L. Schwartz
232Files patched: toke.c
233 <<'END' needed to bypass ordinary single-quote processing.
234
235NETaa13172: 'use integer' turned off magical autoincrement.
236From: Erich Rickheit KSC
237Files patched: pp.c pp_hot.c
238 The integer versions of the increment and decrement operators were trying too
239 hard to be efficient.
240
241NETaa13172: deleted duplicate increment and decrement code
242Files patched: opcode.h opcode.pl pp.c
243 (same)
244
245NETaa13173: install should make shared libraries executable.
246From: Brian Grossman
247Also: Dave Nadler
248Also: Eero Pajarre
249Files patched: installperl
250 Now gives permission 555 to any file ending with extension specified by $dlext.
251
252NETaa13176: ck_rvconst didn't free the const it used up.
253From: Nick Duffek
254Files patched: op.c
255 I checked in many random memory leaks under this bug number, since it
256 was an eval that brought many of them out.
257
258NETaa13176: didn't delete XRV for temp ref of destructor.
259Files patched: sv.c
260 (same)
261
262NETaa13176: didn't delete op_pmshort in matching operators.
263Files patched: op.c
264 (same)
265
266NETaa13176: eval leaked the name of the eval.
267Files patched: scope.c
268 (same)
269
270NETaa13176: gp_free didn't free the format.
271Files patched: gv.c
272 (same)
273
274NETaa13176: minor leaks in loop exits and constant subscript optimization.
275Files patched: op.c
276 (same)
277
278NETaa13176: plugged some duplicate struct allocation memory leaks.
279Files patched: perl.c
280 (same)
281
282NETaa13176: sv_clear of an FM didn't clear anything.
283Files patched: sv.c
284 (same)
285
286NETaa13176: tr/// didn't mortalize its return value.
287Files patched: pp.c
288 (same)
289
290NETaa13177: SCOPE optimization hid line number info
291From: David J. MacKenzie
292Also: Hallvard B Furuseth
293Files patched: op.c
294 Every pass on the syntax tree has to keep track of the current statement.
295 Unfortunately, the single-statement block was optimized into a single
296 statement between the time the variable was parsed and the time the
297 void code scan was done, so that pass didn't see the OP_NEXTSTATE
298 operator, because it has been optimized to an OP_NULL.
299
300 Fortunately, null operands remember what they were, so it was pretty easy
301 to make it set the correct line number anyway.
302
303NETaa13178: some linux doesn't handle nm well
304From: Alan Modra
305Files patched: hints/linux.sh
306 Applied supplied patch.
307
308NETaa13180: localized slice now pre-extends array
309From: Larry Schuler
310Files patched: pp.c
311 A localized slice now pre-extends its array to avoid reallocation during
312 the scope of the local.
313
314NETaa13181: m//g didn't keep track of whether previous match matched null.
315From: "philippe.verdret"
316Files patched: mg.h pp_hot.c
317 A pattern isn't allowed to match a null string in the same place twice in
f58c54f0 318 a row. m//g wasn't keeping track of whether the previous match matched
59c9ff65 319 the null string.
320
321NETaa13182: now includes whitespace as a regexp metacharacter.
322From: Larry Wall
323Files patched: toke.c
324 scan_const() now counts " \t\n\r\f\v" as metacharacters when scanning a pattern.
325
326NETaa13183: sv_setsv shouldn't try to clone an object.
327From: Peter Gordon
328Files patched: sv.c
329 The sv_mortalcopy() done by the return in STORE called sv_setsv(),
330 which cloned the object. sv_setsv() shouldn't be in the business of
331 cloning objects.
332
333NETaa13184: bogus warning on quoted signal handler name removed.
334From: Dan Carson
335Files patched: toke.c
336 Now doesn't complain unless the first non-whitespace character after the =
337 is an alphabetic character.
338
339NETaa13186: now croaks on chop($')
340From: Casper H.S. Dik
341Files patched: doop.c
342 Now croaks on chop($') and such.
343
344NETaa13187: "${foo::bar}" now counts as mere delimitation, not as a bareword.
345From: Jay Rogers
346Files patched: toke.c
347 "${foo::bar}" now counts as mere delimitation, not as a bareword inside a
348 reference block.
349
350NETaa13188: for backward compatibility, looks for "perl -" before "perl".
351From: Russell Mosemann
352Files patched: toke.c
353 Now allows non-whitespace characters on the #! line between the "perl"
354 and the "-".
355
356NETaa13188: now allows non-whitespace after #!...perl before switches.
357Files patched: toke.c
358 (same)
359
360NETaa13189: derivative files need to be removed before recreation
361From: Simon Leinen
362Also: Dick Middleton
363Also: David J. MacKenzie
364Files patched: embed_h.sh x2p/Makefile.SH
365 Fixed various little nits as suggested in several messages.
366
367NETaa13190: certain assignments can spoof pod directive recognizer
368From: Ilya Zakharevich
369Files patched: toke.c
370 The lexer now only recognizes pod directives where a statement is expected.
371
372NETaa13194: now returns undef when there is no curpm.
373From: lusol@Dillon.CC.Lehigh.EDU
374Files patched: mg.c
375 Since there was no regexp prior to the "use", it was returning whatever the
376 last successful match was within the "use", because there was no current
f58c54f0 377 regexp, so it treated it as a normal variable. It now returns undef.
59c9ff65 378
379NETaa13195: semop had one S too many.
380From: Joachim Huober
381Files patched: opcode.pl
382 The entry in opcode.pl had one too many S's.
383
384NETaa13196: always assumes it's a Perl script if -c is used.
385From: Dan Carson
386Files patched: toke.c
387 It now will assume it's a Perl script if the -c switch is used.
388
389NETaa13197: changed implicit -> message to be more understandable.
390From: Bruce Barnett
391Files patched: op.c pod/perldiag.pod
f58c54f0 392 I changed the error message to be more understandable. It now says
59c9ff65 393
394 Can't use subscript on sort...
395
396
397NETaa13201: added OPpCONST_ENTERED flag to properly enter filehandle symbols.
398From: E. Jay Berkenbilt
399Also: Tom Christiansen
400Files patched: op.c op.h toke.c
401 The grammatical reduction of a print statement didn't properly count
402 the filehandle as a symbol reference because it couldn't distinguish
403 between a symbol entered earlier in the program and a symbol entered
404 for the first time down in the lexer.
405
406NETaa13203: README shouldn't mention uperl.o any more.
407From: Anno Siegel
408Files patched: README
409
410NETaa13204: .= shouldn't warn on uninitialized target.
411From: Pete Peterson
412Files patched: pp_hot.c
413 No longer warns on uninitialized target of .= operator.
414
415NETaa13206: handy macros in XSUB.h
416From: Tim Bunce
417Files patched: XSUB.h
418 Added suggested macros.
419
420NETaa13228: commonality checker didn't treat lexicals as variables.
421From: mcook@cognex.com
422Files patched: op.c opcode.pl
423 The list assignment operator tries to avoid unnecessary copies by doing the
424 assignment directly if there are no common variables on either side of the
425 equals. Unfortunately, the code that decided that only recognized references
426 to dynamic variables, not lexical variables.
427
428NETaa13229: fixed sign stuff for complement, integer coercion.
429From: Larry Wall
430Files patched: perl.h pp.c sv.c
431 Fixed ~0 and integer coercions.
432
433NETaa13230: no longer tries to reuse scratchpad temps if tainting in effect.
434From: Luca Fini
435Files patched: op.c
436 I haven't reproduced it, but I believe the problem is the reuse of scratchpad
437 temporaries between statements. I've made it not try to reuse them if
438 tainting is in effect.
439
440NETaa13231: *foo = *bar now prevents typo warnings on "foo"
441From: Robin Barker
442Files patched: sv.c
443 Aliasing of the form *foo = *bar is now protected from the typo warnings.
444 Previously only the *foo = \$bar form was.
445
446NETaa13235: require BAREWORD now introduces package name immediately.
447From: Larry Wall
448Files patched: toke.c
449 require BAREWORD now introduces package name immediately. This lets the
450 method intuit code work right even though the require hasn't actually run
451 yet.
452
453NETaa13289: didn't calculate correctly using arybase.
454From: Jared Rhine
455Files patched: pp.c pp_hot.c
456 The runtime code didn't use curcop->cop_arybase correctly.
457
458NETaa13301: store now throws exception on error
459From: Barry Friedman
460Files patched: ext/GDBM_File/GDBM_File.xs ext/NDBM_File/NDBM_File.xs ext/ODBM_File/ODBM_File.xs ext/SDBM_File/SDBM_File.xs
461 Changed warn to croak in ext/*DBM_File/*.xs.
462
463NETaa13302: ctime now takes Time_t rather than Time_t*.
464From: Rodger Anderson
465Files patched: ext/POSIX/POSIX.xs
466 Now declares a Time_t and takes the address of that in CODE.
467
468NETaa13302: shorter way to do this patch
469Files patched: ext/POSIX/POSIX.xs
470 (same)
471
472NETaa13304: could feed too large $@ back into croak, whereupon it croaked.
473From: Larry Wall
474Files patched: perl.c
475 callist() could feed $@ back into croak with more than a bare %s. (croak()
476 handles long strings with a bare %s okay.)
477
478NETaa13305: compiler misoptimized RHS to outside of s/a/print/e
479From: Brian S. Cashman <bsc@umich.edu>
480Files patched: op.c
481 The syntax tree was being misconstructed because the compiler felt that
482 the RHS was invariant, so it did it outside the s///.
483
484NETaa13314: assigning mortal to lexical leaks
485From: Larry Wall
486Files patched: sv.c
487 In stealing strings, sv_setsv was checking SvPOK to see if it should free
488 the destination string. It should have been checking SvPVX.
489
490NETaa13316: wait4pid now recalled when errno == EINTR
491From: Robert J. Pankratz
492Files patched: pp_sys.c util.c
493 system() and the close() of a piped open now recall wait4pid if it returned
494 prematurely with errno == EINTR.
495
496NETaa13329: needed to localize taint magic
497From: Brian Katzung
498Files patched: sv.c doio.c mg.c pp_hot.c pp_sys.c scope.c taint.c
499 Taint magic is now localized better, though I had to resort to a kludge
500 to allow a value to be both tainted and untainted simultaneously during
501 the assignment of
502
503 local $foo = $_[0];
504
505 when $_[0] is a reference to the variable $foo already.
506
507NETaa13341: clarified interaction of AnyDBM_File::ISA and "use"
508From: Ian Phillipps
509Files patched: pod/modpods/AnyDBMFile.pod
510 The doc was misleading.
511
512NETaa13342: grep and map with block would enter block but never leave it.
513From: Ian Phillipps
514Files patched: op.c
515 The compiler use some sort-checking code to handle the arguments of
f58c54f0 516 grep and map. Unfortunately, this wiped out the block exit opcode while
59c9ff65 517 leaving the block entry opcode. This doesn't matter to sort, but did
518 matter to grep and map. It now leave the block entry intact.
519
520 The reason it worked without the my is because the block entry and exit
521 were optimized away to an OP_SCOPE, which it doesn't matter if it's there
522 or not.
523
524NETaa13343: goto needed to longjmp when in a signal handler.
525From: Robert Partington
526Files patched: pp_ctl.c
527 goto needed to longjmp() when in a signal handler to get back into the
528 right run() context.
529
530
531NETaa13344: strict vars shouldn't apply to globs or filehandles.
532From: Andrew Wilcox
533Files patched: gv.c
534 Filehandles and globs will be excepted from "strict vars", so that you can
535 do the standard Perl 4 trick of
536
537 use strict;
538 sub foo {
f58c54f0
NC
539 local(*IN);
540 open(IN,"file");
59c9ff65 541 }
542
543
544NETaa13345: assert.pl didn't use package DB
545From: Hans Mulder
546Files patched: lib/assert.pl
547 Now it does.
548
549NETaa13348: av_undef didn't free scalar representing $#foo.
550From: David Filo
551Files patched: av.c
552 av_undef didn't free scalar representing $#foo.
553
554NETaa13349: sort sub accumulated save stack entries
555From: David Filo
556Files patched: pp_ctl.c
f58c54f0 557 COMMON only gets set if assigning to @_, which is reasonable. Most of the
59c9ff65 558 problem was a memory leak.
559
560NETaa13351: didn't treat indirect filehandles as references.
561From: Andy Dougherty
562Files patched: op.c
563 Now produces
564
565 Can't use an undefined value as a symbol reference at ./foo line 3.
566
567
568NETaa13352: OP_SCOPE allocated as UNOP rather than LISTOP.
569From: Andy Dougherty
570Files patched: op.c
571
572NETaa13353: scope() didn't release filegv on OP_SCOPE optimization.
573From: Larry Wall
574Files patched: op.c
575 When scope() nulled out a NEXTSTATE, it didn't release its filegv reference.
576
577NETaa13355: hv_delete now avoids useless mortalcopy
578From: Larry Wall
579Files patched: hv.c op.c pp.c pp_ctl.c proto.h scope.c util.c
580 hv_delete now avoids useless mortalcopy.
581
582
583NETaa13359: comma operator section missing its heading
584From: Larry Wall
585Files patched: pod/perlop.pod
586
587NETaa13359: random typo
588Files patched: pod/perldiag.pod
589
590NETaa13360: code to handle partial vec values was bogus.
591From: Conrad Augustin
592Files patched: pp.c
593 The code that Mark J. added a long time ago to handle values that were partially
594 off the end of the string was incorrect.
595
596NETaa13361: made it not interpolate inside regexp comments
597From: Martin Jost
598Files patched: toke.c
599 To avoid surprising people, it no longer interpolates inside regexp
600 comments.
601
602NETaa13362: ${q[1]} should be interpreted like it used to
603From: Hans Mulder
604Files patched: toke.c
605 Now resolves ${keyword[1]} to $keyword[1] and warns if -w. Likewise for {}.
606
607NETaa13363: meaning of repeated search chars undocumented in tr///
608From: Stephen P. Potter
609Files patched: pod/perlop.pod
610 Documented that repeated characters use the first translation given.
611
612NETaa13365: if closedir fails, don't try it again.
613From: Frank Crawford
614Files patched: pp_sys.c
615 Now does not attempt to closedir a second time.
616
617NETaa13366: can't do block scope optimization on $1 et al when tainting.
618From: Andrew Vignaux
619Files patched: toke.c
620 The tainting mechanism assumes that every statement starts out
621 untainted. Unfortunately, the scope removal optimization for very
622 short blocks removed the statementhood of statements that were
623 attempting to read $1 as an untainted value, with the effect that $1
f58c54f0 624 appeared to be tainted anyway. The optimization is now disabled when
59c9ff65 625 tainting and the block contains $1 (or equivalent).
626
627NETaa13366: fixed this a better way in toke.c.
628Files patched: op.c
629 (same)
630
631NETaa13366: need to disable scope optimization when tainting.
632Files patched: op.c
633 (same)
634
635NETaa13367: Did a SvCUR_set without nulling out final char.
636From: "Rob Henderson" <robh@cs.indiana.edu>
637Files patched: doop.c pp.c pp_sys.c
638 When do_vop set the length on its result string it neglected to null-terminate
639 it.
640
641NETaa13368: bigrat::norm sometimes chucked sign
642From: Greg Kuperberg
643Files patched: lib/bigrat.pl
644 The normalization routine was assuming that the gcd of two numbers was
645 never negative, and based on that assumption managed to move the sign
646 to the denominator, where it was deleted on the assumption that the
647 denominator is always positive.
648
649NETaa13368: botched previous patch
650Files patched: lib/bigrat.pl
651 (same)
652
653NETaa13369: # is now a comment character, and \# should be left for regcomp.
654From: Simon Parsons
655Files patched: toke.c
656 It was not skipping the comment when it skipped the white space, and constructed
657 an opcode that tried to match a null string. Unfortunately, the previous
658 star tried to use the first character of the null string to optimize where
659 to recurse, so it never matched.
660
661NETaa13369: comment after regexp quantifier induced non-match.
662Files patched: regcomp.c
663 (same)
664
665NETaa13370: some code assumed SvCUR was of type int.
666From: Spider Boardman
667Files patched: pp_sys.c
668 Did something similar to the proposed patch. I also fixed the problem that
f58c54f0 669 it assumed the type of SvCUR was int. And fixed get{peer,sock}name the
59c9ff65 670 same way.
671
672NETaa13375: sometimes dontbother wasn't added back into strend.
673From: Jamshid Afshar
674Files patched: regexec.c
675 When the /g modifier was used, the regular expression code would calculate
676 the end of $' too short by the minimum number of characters the pattern could
677 match.
678
679NETaa13375: sv_setpvn now disallows negative length.
680Files patched: sv.c
681 (same)
682
683NETaa13376: suspected indirect objecthood prevented recognition of lexical.
684From: Gisle.Aas@nr.no
685Files patched: toke.c
686 When $data[0] is used in a spot that might be an indirect object, the lexer
687 was getting confused over the rule that says the $data in $$data[0] isn't
688 an array element. (The lexer uses XREF state for both indirect objects
689 and for variables used as names.)
690
691NETaa13377: -I processesing ate remainder of #! line.
692From: Darrell Schiebel
693Files patched: perl.c
694 I made the -I processing in moreswitches look for the end of the string,
695 delimited by whitespace.
696
697NETaa13379: ${foo} now treated the same outside quotes as inside
698From: Hans Mulder
699Files patched: toke.c
700 ${bareword} is now treated the same outside quotes as inside.
701
702NETaa13379: previous fix for this bug was botched
703Files patched: toke.c
704 (same)
705
706NETaa13381: TEST should check for perl link
707From: Andy Dougherty
708Files patched: t/TEST
709 die "You need to run \"make test\" first to set things up.\n" unless -e 'perl';
710
711
712NETaa13384: fixed version 0.000 botch.
713From: Larry Wall
714Files patched: installperl
715
716NETaa13385: return 0 from required file loses message
717From: Malcolm Beattie
718Files patched: pp_ctl.c
719 Works right now.
720
721NETaa13387: added pod2latex
722From: Taro KAWAGISHI
723Files patched: MANIFEST pod/pod2latex
724 Added most recent copy to pod directory.
725
726NETaa13388: constant folding now prefers integer results over double
727From: Ilya Zakharevich
728Files patched: op.c
729 Constant folding now prefers integer results over double.
730
731NETaa13389: now treats . and exec as shell metathingies
732From: Hans Mulder
733Files patched: doio.c
734 Now treats . and exec as shell metathingies.
735
736NETaa13395: eval didn't check taintedness.
737From: Larry Wall
738Files patched: pp_ctl.c
739
740NETaa13396: $^ coredumps at end of string
741From: Paul Rogers
742Files patched: toke.c
743 The scan_ident() didn't check for a null following $^.
744
745NETaa13397: improved error messages when operator expected
746From: Larry Wall
747Files patched: toke.c
748 Added message (Do you need to predeclare BAR?). Also fixed the missing
749 semicolon message.
750
751NETaa13399: cleanup by Andy
752From: Larry Wall
753Files patched: Changes Configure Makefile.SH README cflags.SH config.H config_h.SH deb.c doop.c dump.c ext/DB_File/DB_File.pm ext/DB_File/DB_File.xs ext/DynaLoader/DynaLoader.pm ext/Fcntl/Fcntl.pm ext/GDBM_File/GDBM_File.pm ext/POSIX/POSIX.pm ext/SDBM_File/sdbm/sdbm.h ext/Socket/Socket.pm ext/util/make_ext h2xs.SH hints/aix.sh hints/bsd386.sh hints/dec_osf.sh hints/esix4.sh hints/freebsd.sh hints/irix_5.sh hints/next_3_2.sh hints/sunos_4_1.sh hints/svr4.sh hints/ultrix_4.sh installperl lib/AutoSplit.pm lib/Cwd.pm lib/ExtUtils/MakeMaker.pm lib/ExtUtils/xsubpp lib/Term/Cap.pm mg.c miniperlmain.c perl.c perl.h perl_exp.SH pod/Makefile pod/perldiag.pod pod/pod2html pp.c pp_ctl.c pp_hot.c pp_sys.c proto.h sv.h t/re_tests util.c x2p/Makefile.SH x2p/a2p.h x2p/a2py.c x2p/handy.h x2p/hash.c x2p/hash.h x2p/str.c x2p/str.h x2p/util.c x2p/util.h x2p/walk.c
754
755NETaa13399: cleanup from Andy
756Files patched: MANIFEST
757
758NETaa13399: configuration cleanup
759Files patched: Configure Configure MANIFEST MANIFEST Makefile.SH Makefile.SH README config.H config.H config_h.SH config_h.SH configpm ext/DynaLoader/DynaLoader.pm ext/DynaLoader/dl_hpux.xs ext/NDBM_File/Makefile.PL ext/ODBM_File/Makefile.PL ext/util/make_ext handy.h hints/aix.sh hints/hpux_9.sh hints/hpux_9.sh hints/irix_4.sh hints/linux.sh hints/mpeix.sh hints/next_3_2.sh hints/solaris_2.sh hints/svr4.sh installperl installperl lib/AutoSplit.pm lib/ExtUtils/MakeMaker.pm lib/ExtUtils/MakeMaker.pm lib/ExtUtils/xsubpp lib/Getopt/Long.pm lib/Text/Tabs.pm makedepend.SH makedepend.SH mg.c op.c perl.h perl_exp.SH pod/perl.pod pod/perldiag.pod pod/perlsyn.pod pod/pod2man pp_sys.c proto.h proto.h unixish.h util.c util.c vms/config.vms writemain.SH x2p/a2p.h x2p/a2p.h x2p/a2py.c x2p/a2py.c x2p/handy.h x2p/util.c x2p/walk.c x2p/walk.c
760
761NETaa13399: new files from Andy
762Files patched: ext/DB_File/Makefile.PL ext/DynaLoader/Makefile.PL ext/Fcntl/Makefile.PL ext/GDBM_File/Makefile.PL ext/NDBM_File/Makefile.PL ext/ODBM_File/Makefile.PL ext/POSIX/Makefile.PL ext/SDBM_File/Makefile.PL ext/SDBM_File/sdbm/Makefile.PL ext/Socket/Makefile.PL globals.c hints/convexos.sh hints/irix_6.sh
763
764NETaa13399: patch0l from Andy
765Files patched: Configure MANIFEST Makefile.SH config.H config_h.SH ext/DB_File/Makefile.PL ext/GDBM_File/Makefile.PL ext/NDBM_File/Makefile.PL ext/POSIX/POSIX.xs ext/SDBM_File/sdbm/Makefile.PL ext/util/make_ext h2xs.SH hints/next_3_2.sh hints/solaris_2.sh hints/unicos.sh installperl lib/Cwd.pm lib/ExtUtils/MakeMaker.pm makeaperl.SH vms/config.vms x2p/util.c x2p/util.h
766
767NETaa13399: stuff from Andy
768Files patched: Configure MANIFEST Makefile.SH configpm hints/dec_osf.sh hints/linux.sh hints/machten.sh lib/ExtUtils/MakeMaker.pm util.c
769
770NETaa13399: Patch 0k from Andy
771Files patched: Configure MANIFEST Makefile.SH config.H config_h.SH hints/dec_osf.sh hints/mpeix.sh hints/next_3_0.sh hints/ultrix_4.sh installperl lib/ExtUtils/MakeMaker.pm lib/File/Path.pm makeaperl.SH minimod.PL perl.c proto.h vms/config.vms vms/ext/MM_VMS.pm x2p/a2p.h
772
773NETaa13399: Patch 0m from Andy
774Files patched: Configure MANIFEST Makefile.SH README config.H config_h.SH ext/DynaLoader/README ext/POSIX/POSIX.xs ext/SDBM_File/sdbm/sdbm.h ext/util/extliblist hints/cxux.sh hints/linux.sh hints/powerunix.sh lib/ExtUtils/MakeMaker.pm malloc.c perl.h pp_sys.c util.c
775
776NETaa13400: pod2html update from Bill Middleton
777From: Larry Wall
778Files patched: pod/pod2html
779
780NETaa13401: Boyer-Moore code attempts to compile string longer than 255.
781From: Kyriakos Georgiou
782Files patched: util.c
783 The Boyer-Moore table uses unsigned char offsets, but the BM compiler wasn't
784 rejecting strings longer than 255 chars, and was miscompiling them.
785
786NETaa13403: missing a $ on variable name
787From: Wayne Scott
788Files patched: installperl
789 Yup, it was missing.
790
791NETaa13406: didn't wipe out dead match when proceeding to next BRANCH
792From: Michael P. Clemens
793Files patched: regexec.c
794 The code to check alternatives didn't invalidate backreferences matched by the
795 failed branch.
796
797NETaa13407: overload upgrade
798From: owner-perl5-porters@nicoh.com
799Also: Ilya Zakharevich
800Files patched: MANIFEST gv.c lib/Math/BigInt.pm perl.h pod/perlovl.pod pp.c pp.h pp_hot.c sv.c t/lib/bigintpm.t t/op/overload.t
801 Applied supplied patch, and fixed bug induced by use of sv_setsv to do
802 a deep copy, since sv_setsv no longer copies objecthood.
803
804NETaa13409: sv_gets tries to grow string at EOF
805From: Harold O Morris
806Files patched: sv.c
807 Applied suggested patch, only two statements earlier, since the end code
808 also does SvCUR_set.
809
810NETaa13410: delaymagic did =~ instead of &= ~
811From: Andreas Schwab
812Files patched: pp_hot.c
813 Applied supplied patch.
814
815NETaa13411: POSIX didn't compile under -DLEAKTEST
816From: Frederic Chauveau
817Files patched: ext/POSIX/POSIX.xs
818 Used NEWSV instead of newSV.
819
820NETaa13412: new version from Tony Sanders
821From: Tony Sanders
822Files patched: lib/Term/Cap.pm
823 Installed as Term::Cap.pm
824
825NETaa13413: regmust extractor needed to restart loop on BRANCH for (?:) to work
826From: DESARMENIEN
827Files patched: regcomp.c
828 The BRANCH skipper should have restarted the loop from the top.
829
830NETaa13414: the check for accidental list context was done after pm_short check
831From: Michael H. Coen
832Files patched: pp_hot.c
833 Moved check for accidental list context to before the pm_short optimization.
834
835NETaa13418: perlre.pod babbled nonsense about | in character classes
836From: Philip Hazel
837Files patched: pod/perlre.pod
838 Removed bogus brackets. Now reads:
839 Note however that "|" is interpreted as a literal with square brackets,
840 so if you write C<[fee|fie|foe]> you're really only matching C<[feio|]>.
841
842NETaa13419: need to document introduction of lexical variables
843From: "Heading, Anthony"
844Files patched: pod/perlfunc.pod
845 Now mentions that lexicals aren't introduced till after the current statement.
846
847NETaa13420: formats that overflowed a page caused endless top of forms
848From: Hildo@CONSUL.NL
849Files patched: pp_sys.c
850 If a record is too large to fit on a page, it now prints whatever will
851 fit and then calls top of form again on the remainder.
852
853NETaa13423: the code to do negative list subscript in scalar context was missing
854From: Steve McDougall
855Files patched: pp.c
856 The negative subscript code worked right in list context but not in scalar
857 context. In fact, there wasn't code to do it in the scalar context.
858
859NETaa13424: existing but undefined CV blocked inheritance
860From: Spider Boardman
861Files patched: gv.c
862 Applied supplied patch.
863
864NETaa13425: removed extra argument to croak
865From: "R. Bernstein"
866Files patched: regcomp.c
867 Removed extra argument.
868
869NETaa13427: added return types
870From: "R. Bernstein"
871Files patched: x2p/a2py.c
872 Applied suggested patch.
873
874NETaa13427: added static declarations
875Files patched: x2p/walk.c
876 (same)
877
878NETaa13428: split was assuming that all backreferences were defined
879From: Dave Schweisguth
880Files patched: pp.c
881 split was assuming that all backreferences were defined.
882
883NETaa13430: hoistmust wasn't hoisting anchored shortcircuit's length
884From: Tom Christiansen
885Also: Rob Hooft
886Files patched: toke.c
887
888NETaa13432: couldn't call code ref under debugger
889From: Mike Fletcher
890Files patched: op.c pp_hot.c sv.h
891 The debugging code assumed it could remember a name to represent a subroutine,
892 but anonymous subroutines don't have a name. It now remembers a CV reference
893 in that case.
894
895NETaa13435: 1' dumped core
896From: Larry Wall
897Files patched: toke.c
898 Didn't check a pointer for nullness.
899
900NETaa13436: print foo(123) didn't treat foo as subroutine
901From: mcook@cognex.com
902Files patched: toke.c
903 Now treats it as a subroutine rather than a filehandle.
904
905NETaa13437: &$::foo didn't think $::foo was a variable name
906From: mcook@cognex.com
907Files patched: toke.c
908 Now treats $::foo as a global variable.
909
910NETaa13439: referred to old package name
911From: Tom Christiansen
912Files patched: lib/Sys/Syslog.pm
913 Wasn't a strict refs problem after all. It was simply referring to package
914 syslog, which had been renamed to Sys::Syslog.
915
916NETaa13440: stat operations didn't know what to do with glob or ref to glob
917From: mcook@cognex.com
918Files patched: doio.c pp_sys.c
919 Now knows about the kinds of filehandles returned by FileHandle constructors
920 and such.
921
922NETaa13442: couldn't find name of copy of deleted symbol table entry
923From: Spider Boardman
924Files patched: gv.c gv.h
925 I did a much simpler fix. When gp_free notices that it's freeing the
926 master GV, it nulls out gp_egv. The GvENAME and GvESTASH macros know
927 to revert to gv if egv is null.
928
929 This has the advantage of not creating a reference loop.
930
931NETaa13443: couldn't override an XSUB
932From: William Setzer
933Files patched: op.c
934 When the newSUB and newXS routines checked for whether the old sub was
935 defined, they only looked at CvROOT(cv), not CvXSUB(cv).
936
937NETaa13443: needed to do same thing in newXS
938Files patched: op.c
939 (same)
940
941NETaa13444: -foo now doesn't warn unless sub foo is defined
942From: Larry Wall
943Files patched: toke.c
944 Made it not warn on -foo, unless there is a sub foo defined.
945
946NETaa13451: in scalar context, pp_entersub now guarantees one item from XSUB
947From: Nick Gianniotis
948Files patched: pp_hot.c
949 The pp_entersub routine now guarantees that an XSUB in scalar context
950 returns one and only one value. If there are fewer, it pushes undef,
951 and if there are more, it returns the last one.
952
953NETaa13457: now explicitly disallows printf format with 'n' or '*'.
954From: lees@cps.msu.edu
955Files patched: doop.c
956 Now says
957
958 Use of n in printf format not supported at ./foo line 3.
959
960
961NETaa13458: needed to call SvPOK_only() in pp_substr
962From: Wayne Scott
963Files patched: pp.c
964 Needed to call SvPOK_only() in pp_substr.
965
966NETaa13459: umask and chmod now warn about missing initial 0 even with paren
967From: Andreas Koenig
968Files patched: toke.c
969 Now skips parens as well as whitespace looking for argument.
970
971NETaa13460: backtracking didn't work on .*? because reginput got clobbered
972From: Andreas Koenig
973Files patched: regexec.c
974 When .*? did a probe of the rest of the string, it clobbered reginput,
975 so the next call to match a . tried to match the newline and failed.
976
977NETaa13475: \(@ary) now treats array as list of scalars
978From: Tim Bunce
979Files patched: op.c
980 The mod() routine now refrains from marking @ary as an lvalue if it's in parens
981 and is the subject of an OP_REFGEN.
982
983NETaa13481: accept buffer wasn't aligned good enough
984From: Holger Bechtold
985Also: Christian Murphy
986Files patched: pp_sys.c
987 Applied suggested patch.
988
989NETaa13486: while (<>) now means while (defined($_ = <>))
990From: Jim Balter
991Files patched: op.c pod/perlop.pod
992 while (<HANDLE>) now means while (defined($_ = <HANDLE>)).
993
994NETaa13500: needed DESTROY in FileHandle
995From: Tim Bunce
996Files patched: ext/POSIX/POSIX.pm
f58c54f0 997 Added DESTROY method. Also fixed ungensym to use POSIX:: instead of _POSIX.
59c9ff65 998 Removed ungensym from close method, since DESTROY should do that now.
999
1000NETaa13502: now complains if you use local on a lexical variable
1001From: Larry Wall
1002Files patched: op.c
1003 Now says something like
1004
1005 Can't localize lexical variable $var at ./try line 6.
1006
1007NETaa13512: added $SIG{__WARN__} and $SIG{__DIE__} hooks
1008From: Larry Wall
1009Files patched: embed.h gv.c interp.sym mg.c perl.h pod/perlvar.pod pp_ctl.c util.c Todo pod/perldiag.pod
1010
1011NETaa13514: statements before intro of lex var could see lex var
1012From: William Setzer
1013Files patched: op.c
1014 When a lexical variable is declared, introduction is delayed until
1015 the start of the next statement, so that any initialization code runs
f58c54f0 1016 outside the scope of the new variable. Thus,
59c9ff65 1017
1018 my $y = 3;
1019 my $y = $y;
1020 print $y;
1021
1022 should print 3. Unfortunately, the declaration was marked with the
1023 beginning location at the time that "my $y" was processed instead of
1024 when the variable was introduced, so any embedded statements within
1025 an anonymous subroutine picked up the wrong "my". The declaration
1026 is now labelled correctly when the variable is actually introduced.
1027
1028NETaa13520: added closures
1029From: Larry Wall
1030Files patched: Todo cv.h embed.h global.sym gv.c interp.sym op.c perl.c perl.h pod/perlform.pod pp.c pp_ctl.c pp_hot.c sv.c sv.h toke.c
1031
1032NETaa13520: test to see if lexical works in a format now
1033Files patched: t/op/write.t
1034
1035NETaa13522: substitution couldn't be used on a substr()
1036From: Hans Mulder
1037Files patched: pp_ctl.c pp_hot.c
1038 Changed pp_subst not to use sv_replace() anymore, which didn't handle lvalues
1039 and was overkill anyway. Should be slightly faster this way too.
1040
1041NETaa13525: G_EVAL mode in perl_call_sv didn't return values right.
1042Files patched: perl.c
1043
1044NETaa13525: consolidated error message
1045From: Larry Wall
1046Files patched: perl.h toke.c
1047
1048NETaa13525: derived it
1049Files patched: perly.h
1050
1051NETaa13525: missing some values from embed.h
1052Files patched: embed.h
1053
1054NETaa13525: random cleanup
1055Files patched: MANIFEST Todo cop.h lib/TieHash.pm lib/perl5db.pl opcode.h patchlevel.h pod/perldata.pod pod/perlsub.pod t/op/ref.t toke.c
1056
f58c54f0 1057NETaa13525: random cleanup
59c9ff65 1058Files patched: pp_ctl.c util.c
1059
1060NETaa13527: File::Find needed to export $name and $dir
1061From: Chaim Frenkel
1062Files patched: lib/File/Find.pm
1063 They are now exported.
1064
1065NETaa13528: cv_undef left unaccounted-for GV pointer in CV
1066From: Tye McQueen
1067Also: Spider Boardman
1068Files patched: op.c
1069
1070NETaa13530: scalar keys now resets hash iterator
1071From: Tim Bunce
1072Files patched: doop.c
1073 scalar keys() now resets the hash iterator.
1074
1075NETaa13531: h2ph doesn't check defined right
1076From: Casper H.S. Dik
1077Files patched: h2ph.SH
1078
1079NETaa13540: VMS update
1080From: Larry Wall
1081Files patched: MANIFEST README.vms doio.c embed.h ext/DynaLoader/dl_vms.xs interp.sym lib/Cwd.pm lib/ExtUtils/xsubpp lib/File/Basename.pm lib/File/Find.pm lib/File/Path.pm mg.c miniperlmain.c perl.c perl.h perly.c perly.c.diff pod/perldiag.pod pp_ctl.c pp_hot.c pp_sys.c proto.h util.c vms/Makefile vms/config.vms vms/descrip.mms vms/ext/Filespec.pm vms/ext/MM_VMS.pm vms/ext/VMS/stdio/Makefile.PL vms/ext/VMS/stdio/stdio.pm vms/ext/VMS/stdio/stdio.xs vms/genconfig.pl vms/perlvms.pod vms/sockadapt.c vms/sockadapt.h vms/vms.c vms/vmsish.h vms/writemain.pl
1082
1083NETaa13540: got some duplicate code
1084Files patched: lib/File/Path.pm
1085
1086NETaa13540: stuff from Charles
1087Files patched: MANIFEST README.vms lib/ExtUtils/MakeMaker.pm lib/ExtUtils/MakeMaker.pm lib/ExtUtils/xsubpp lib/File/Basename.pm lib/File/Path.pm perl.c perl.h pod/perldiag.pod pod/perldiag.pod vms/Makefile vms/Makefile vms/config.vms vms/config.vms vms/descrip.mms vms/descrip.mms vms/ext/Filespec.pm vms/ext/Filespec.pm vms/ext/MM_VMS.pm vms/ext/MM_VMS.pm vms/ext/VMS/stdio/stdio.pm vms/ext/VMS/stdio/stdio.xs vms/gen_shrfls.pl vms/gen_shrfls.pl vms/genconfig.pl vms/genconfig.pl vms/mms2make.pl vms/perlvms.pod vms/sockadapt.h vms/test.com vms/vms.c vms/vms.c vms/vmsish.h vms/vmsish.h vms/writemain.pl
1088
1089NETaa13540: tweak from Charles
1090Files patched: lib/File/Path.pm
1091
1092NETaa13552: scalar unpack("P4",...) ignored the 4
1093From: Eric Arnold
1094Files patched: pp.c
1095 The optimization that tried to do only one item in a scalar context didn't
1096 realize that the argument to P was not a repeat count.
1097
1098NETaa13553: now warns about 8 or 9 in octal escapes
1099From: Mike Rogers
1100Files patched: util.c
1101 Now warns if it finds 8 or 9 before the end of the octal escape sequence.
1102 So \039 produces a warning, but \0339 does not.
1103
1104NETaa13554: now allows foreach ${"name"}
1105From: Johan Holtman
1106Files patched: op.c
1107 Instead of trying to remove OP_RV2SV, the compiler now just transmutes it into an
1108 OP_RV2GV, which is a no-op for ordinary variables and does the right
1109 thing for ${"name"}.
1110
1111NETaa13559: substitution now always checks for readonly
1112From: Rodger Anderson
1113Files patched: pp_hot.c
1114 Substitution now always checks for readonly.
1115
1116NETaa13561: added explanations of closures and curly-quotes
1117From: Larry Wall
1118Files patched: pod/perlref.pod
1119
1120NETaa13562: null components in path cause indigestion
1121From: Ambrose Kofi Laing
1122Files patched: lib/Cwd.pm lib/pwd.pl
1123
1124NETaa13575: documented semantics of negative substr length
1125From: Jeff Bouis
1126Files patched: pod/perlfunc.pod
1127 Documented the fact that negative length now leaves characters off the end,
1128 and while I was at it, made it work right even if offset wasn't 0.
1129
1130NETaa13575: negative length to substr didn't work when offset non-zero
1131Files patched: pp.c
1132 (same)
1133
1134NETaa13575: random cleanup
1135Files patched: pod/perlfunc.pod
1136 (same)
1137
1138NETaa13580: couldn't localize $ACCUMULATOR
1139From: Larry Wall
1140Files patched: gv.c lib/English.pm mg.c perl.c sv.c
1141 Needed to make $^A a real magical variable. Also lib/English.pm wasn't
1142 exporting good.
1143
1144NETaa13583: doc mods from Tom
1145From: Larry Wall
1146Files patched: pod/modpods/AnyDBMFile.pod pod/modpods/Basename.pod pod/modpods/Benchmark.pod pod/modpods/Cwd.pod pod/modpods/Dynaloader.pod pod/modpods/Exporter.pod pod/modpods/Find.pod pod/modpods/Finddepth.pod pod/modpods/Getopt.pod pod/modpods/MakeMaker.pod pod/modpods/Open2.pod pod/modpods/POSIX.pod pod/modpods/Ping.pod pod/modpods/less.pod pod/modpods/strict.pod pod/perlapi.pod pod/perlbook.pod pod/perldata.pod pod/perlform.pod pod/perlfunc.pod pod/perlipc.pod pod/perlmod.pod pod/perlobj.pod pod/perlref.pod pod/perlrun.pod pod/perlsec.pod pod/perlsub.pod pod/perltrap.pod pod/perlvar.pod
1147
1148NETaa13589: return was enforcing list context on its arguments
1149From: Tim Freeman
1150Files patched: opcode.pl
1151 A return was being treated like a normal list operator, in that it was
f58c54f0 1152 setting list context on its arguments. This was bogus.
59c9ff65 1153
1154NETaa13591: POSIX::creat used wrong argument
1155From: Paul Marquess
1156Files patched: ext/POSIX/POSIX.pm
1157 Applied suggested patch.
1158
1159NETaa13605: use strict refs error message now displays bad ref
1160From: Peter Gordon
1161Files patched: perl.h pod/perldiag.pod pp.c pp_hot.c
1162 Now says
1163
1164 Can't use string ("2") as a HASH ref while "strict refs" in use at ./foo line 12.
1165
1166NETaa13630: eof docs were unclear
1167From: Hallvard B Furuseth
1168Files patched: pod/perlfunc.pod
1169 Applied suggested patch.
1170
1171NETaa13636: $< and $> weren't refetched on undump restart
1172From: Steve Pearlmutter
1173Files patched: perl.c
1174 The code in main() bypassed perl_construct on an undump restart, which bypassed
1175 the code that set $< and $>.
1176
1177NETaa13641: added Tim's fancy new import whizbangers
1178From: Tim Bunce
1179Files patched: lib/Exporter.pm
1180 Applied suggested patch.
1181
1182NETaa13649: couldn't AUTOLOAD a symbol reference
1183From: Larry Wall
1184Files patched: pp_hot.c
1185 pp_entersub needed to guarantee a CV so it would get to the AUTOLOAD code.
1186
1187NETaa13651: renamed file had wrong package name
1188From: Andreas Koenig
1189Files patched: lib/File/Path.pm
1190 Applied suggested patch.
1191
1192NETaa13660: now that we're testing distribution we can diagnose RANDBITS errors
1193From: Karl Glazebrook
1194Files patched: t/op/rand.t
1195 Changed to suggested algorithm. Also duplicated it to test rand(100) too.
1196
1197NETaa13660: rand.t didn't test for proper distribution within range
1198Files patched: t/op/rand.t
1199 (same)
1200
1201NETaa13671: array slice misbehaved in a scalar context
1202From: Tye McQueen
1203Files patched: pp.c
1204 A spurious else prevented the scalar-context-handling code from running.
1205
1206NETaa13672: filehandle constructors in POSIX don't return failure successfully
1207From: Ian Phillipps
1208Files patched: ext/POSIX/POSIX.pm
1209 Applied suggested patch.
1210
1211
1212NETaa13678: forced $1 to always be untainted
1213From: Ka-Ping Yee
1214Files patched: mg.c
1215 I believe the bug that triggered this was fixed elsewhere, but just in case,
1216 I put in explicit code to force $1 et al not to be tainted regardless.
1217
1218NETaa13682: formline doc need to discuss ~ and ~~ policy
1219From: Peter Gordon
1220Files patched: pod/perlfunc.pod
1221
1222NETaa13686: POSIX::open and POSIX::mkfifo didn't check tainting
1223From: Larry Wall
1224Files patched: ext/POSIX/POSIX.xs
1225 open() and mkfifo() now check tainting.
1226
1227NETaa13687: new Exporter.pm
1228From: Tim Bunce
1229Files patched: lib/Exporter.pm
1230 Added suggested changes, except for @EXPORTABLE, because it looks too much
1231 like @EXPORTTABLE. Decided to stick with @EXPORT_OK because it looks more
1232 like an adjunct. Also added an export_tags routine. The keys in the
1233 %EXPORT_TAGS hash no longer use colons, to make the initializers prettier.
1234
f58c54f0 1235NETaa13687: new Exporter.pm
59c9ff65 1236Files patched: ext/POSIX/POSIX.pm
1237 (same)
1238
1239NETaa13694: add sockaddr_in to Socket.pm
1240From: Tim Bunce
1241Files patched: ext/Socket/Socket.pm
1242 Applied suggested patch.
1243
1244NETaa13695: library routines should use qw() as good example
1245From: Dean Roehrich
1246Files patched: ext/DB_File/DB_File.pm ext/DynaLoader/DynaLoader.pm ext/Fcntl/Fcntl.pm ext/GDBM_File/GDBM_File.pm ext/POSIX/POSIX.pm ext/Socket/Socket.pm
1247 Applied suggested patch.
1248
1249NETaa13696: myconfig should be a routine in Config.pm
1250From: Kenneth Albanowski
1251Files patched: configpm
1252 Applied suggested patch.
1253
1254NETaa13704: fdopen closed fd on failure
1255From: Hallvard B Furuseth
1256Files patched: doio.c
1257 Applied suggested patch.
1258
1259NETaa13706: Term::Cap doesn't work
1260From: Dean Roehrich
1261Files patched: lib/Term/Cap.pm
1262 Applied suggested patch.
1263
1264NETaa13710: cryptswitch needed to be more "useable"
1265From: Tim Bunce
1266Files patched: embed.h global.sym perl.h toke.c
1267 The cryptswitch_fp function now can operate in two modes. It can
1268 modify the global rsfp to redirect input as before, or it can modify
1269 linestr and return true, indicating that it is not necessary for yylex
1270 to read another line since cryptswitch_fp has just done it.
1271
1272NETaa13712: new_tmpfile() can't be called as constructor
1273From: Hans Mulder
1274Files patched: ext/POSIX/POSIX.xs
1275 Now allows new_tmpfile() to be called as a constructor.
1276
1277NETaa13714: variable method call not documented
1278From: "Randal L. Schwartz"
1279Files patched: pod/perlobj.pod
1280 Now indicates that OBJECT->$method() works.
1281
1282NETaa13715: PACK->$method produces spurious warning
1283From: Larry Wall
1284Files patched: toke.c
1285 The -> operator was telling the lexer to expect an operator when the
1286 next thing was a variable.
1287
1288NETaa13716: Carp now allows multiple packages to be skipped out of
1289From: Larry Wall
1290Files patched: lib/Carp.pm
1291 The subroutine redefinition warnings now warn on import collisions.
1292
1293NETaa13716: Exporter catches warnings and gives a better line number
1294Files patched: lib/Exporter.pm
1295 (same)
1296
1297NETaa13716: now counts imported routines as "defined" for redef warnings
1298Files patched: op.c sv.c
1299 (same)