TODO
[perl.git] / Changes5.001
1 -------------
2 Version 5.001
3 -------------
4
5 Nearly all the changes for 5.001 were bug fixes of one variety or another,
6 so here's the bug list, along with the "resolution" for each of them.  If
7 you wish to correspond about any of them, please include the bug number.
8
9 There 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
20 NETaa12974: README incorrectly said it was a pre-release.
21 Files patched: README
22
23 NETaa13033: goto pushed a bogus scope on the context stack.
24 From: Steve Vinoski
25 Files patched: pp_ctl.c
26  The goto operator pushed an extra bogus scope onto the context stack.  (This
27  often didn't matter, since many things pop extra unrecognized scopes off.)
28
29 NETaa13034: tried to get valid pointer from undef.
30 From: Castor Fu
31 Also:  Achille Hui, the Day Dreamer 
32 Also: Eric Arnold
33 Files 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
37 NETaa13035: included package info with filehandles.
38 From: Jack Shirazi - BIU
39 Files patched: pp_hot.c pp_sys.c
40  Now passes a glob to filehandle methods to keep the package info intact.
41
42 NETaa13048: didn't give strict vars message on every occurrence.
43 From: Doug Campbell
44 Files 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
49 NETaa13052: test for numeric sort sub return value fooled by taint magic.
50 From: Peter Jaspers-Fayer
51 Files 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
56 NETaa13053: forced a2p to use byacc
57 From: Andy Dougherty
58 Files patched: MANIFEST x2p/Makefile.SH x2p/a2p.c
59  a2p.c is now pre-byacced and shipped with the kit.
60
61 NETaa13055: misnamed constant in previous patch.
62 From: Conrad Augustin
63 Files 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
69 NETaa13055: use of OPf_SPECIAL for $[ lvaluehood was too fragile.
70 Files patched: op.c op.h toke.c
71  (same)
72
73 NETaa13056: convert needs to throw away any number info on its list.
74 From: Jack Shirazi - BIU
75 Files 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
80 NETaa13058: AUTOLOAD shouldn't assume size of @_ is meaningful.
81 From: Florent Guillaume
82 Files 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
86 NETaa13059: now warns of use of \1 where $1 is necessary.
87 From: Gustaf Neumann
88 Files 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
95 NETaa13060: no longer warns on attempt to read <> operator's transition state.
96 From: Chaim Frenkel
97 Files patched: pp_hot.c
98  No longer warns on <> operator's transitional state.
99
100 NETaa13140: warning said $ when @ would be more appropriate.
101 From: David J. MacKenzie
102 Files 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
109 NETaa13149: was reading freed memory to make incorrect error message.
110 Files 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
115 NETaa13149: confess was sometimes less informative than croak
116 From: Jack Shirazi
117 Files patched: lib/Carp.pm
118  (same)
119
120 NETaa13150: stderr needs to be STDERR in package
121 From: Jack Shirazi
122 Files patched: lib/File/CheckTree.pm
123  Also fixed pl2pm to translate the filehandles to uppercase.
124
125 NETaa13150: uppercases stdin, stdout and stderr
126 Files patched: pl2pm
127  (same)
128
129 NETaa13154: array assignment didn't notice package magic.
130 From: Brian Reichert
131 Files 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
136 NETaa13155: &DB::DB left trash on the stack.
137 From: Thomas Koenig
138 Files 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
142 NETaa13156: lexical variables didn't show up in debugger evals.
143 From: Joergen Haegg
144 Files 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
149  valid sequence numbers for the scope of the lexical variable.  (There
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
153 NETaa13157: any request for autoloaded DESTROY should create a null one.
154 From: Tom Christiansen
155 Files patched: lib/AutoLoader.pm
156  If DESTROY.al is not located, it now creates sub DESTROY {} automatically.
157
158 NETaa13158: now preserves $@ around destructors while leaving eval.
159 From: Tim Bunce
160 Files 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
165 NETaa13160: clarified behavior of split without arguments
166 From: Harry Edmon
167 Files patched: pod/perlfunc.pod
168  Clarified the behavior of split without arguments.
169
170 NETaa13162: eval {} lost list/scalar context
171 From: Dov Grobgeld
172 Files patched: op.c
173  LEAVETRY didn't propagate number to ENTERTRY.
174
175 NETaa13163: clarified documentation of foreach using my variable
176 From: Tom Christiansen
177 Files patched: pod/perlsyn.pod
178  Explained that foreach using a lexical is still localized.
179
180 NETaa13164: the dot detector for the end of formats was over-rambunctious.
181 From: John Stoffel
182 Files patched: toke.c
183  The dot detector for the end of formats was over-rambunctious.  It would
184  pick up any dot that didn't have a space in front of it.
185
186 NETaa13165: do {} while 1 never linked outer block into next chain.
187 From: Gisle Aas
188 Files 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
191  whole loop was never executed.  So when the loop tried to unstack between
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
196 NETaa13167: coercion was looking at public bits rather than private bits.
197 From: Randal L. Schwartz
198 Also: Thomas Riechmann
199 Also: Shane Castle
200 Files 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
206 NETaa13167: had some ifdefs wrong on set*id.
207 Files patched: mg.c pp_hot.c
208  (same)
209
210 NETaa13168: relaxed test for comparison of new and old fds
211 From: Casper H.S. Dik
212 Files patched: t/lib/posix.t
213  I relaxed the comparison to just check that the new fd is greater.
214
215 NETaa13169: autoincrement can corrupt scalar value state.
216 From: Gisle Aas
217 Also: Tom Christiansen
218 Files patched: sv.c
219  It assumed a PV didn't need to be upgraded to become an NV.
220
221 NETaa13169: previous patch could leak a string pointer.
222 Files patched: sv.c
223  (same)
224
225 NETaa13170: symbols missing from global.sym
226 From: Tim Bunce
227 Files patched: global.sym
228  Applied suggested patch.
229
230 NETaa13171: \\ in <<'END' shouldn't reduce to \.
231 From: Randal L. Schwartz
232 Files patched: toke.c
233  <<'END' needed to bypass ordinary single-quote processing.
234
235 NETaa13172: 'use integer' turned off magical autoincrement.
236 From: Erich Rickheit KSC
237 Files 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
241 NETaa13172: deleted duplicate increment and decrement code
242 Files patched: opcode.h opcode.pl pp.c
243  (same)
244
245 NETaa13173: install should make shared libraries executable.
246 From: Brian Grossman
247 Also: Dave Nadler
248 Also: Eero Pajarre
249 Files patched: installperl
250  Now gives permission 555 to any file ending with extension specified by $dlext.
251
252 NETaa13176: ck_rvconst didn't free the const it used up.
253 From: Nick Duffek
254 Files 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
258 NETaa13176: didn't delete XRV for temp ref of destructor.
259 Files patched: sv.c
260  (same)
261
262 NETaa13176: didn't delete op_pmshort in matching operators.
263 Files patched: op.c
264  (same)
265
266 NETaa13176: eval leaked the name of the eval.
267 Files patched: scope.c
268  (same)
269
270 NETaa13176: gp_free didn't free the format.
271 Files patched: gv.c
272  (same)
273
274 NETaa13176: minor leaks in loop exits and constant subscript optimization.
275 Files patched: op.c
276  (same)
277
278 NETaa13176: plugged some duplicate struct allocation memory leaks.
279 Files patched: perl.c
280  (same)
281
282 NETaa13176: sv_clear of an FM didn't clear anything.
283 Files patched: sv.c
284  (same)
285
286 NETaa13176: tr/// didn't mortalize its return value.
287 Files patched: pp.c
288  (same)
289
290 NETaa13177: SCOPE optimization hid line number info
291 From: David J. MacKenzie
292 Also: Hallvard B Furuseth
293 Files 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
303 NETaa13178: some linux doesn't handle nm well
304 From: Alan Modra
305 Files patched: hints/linux.sh
306  Applied supplied patch.
307
308 NETaa13180: localized slice now pre-extends array
309 From: Larry Schuler
310 Files patched: pp.c
311  A localized slice now pre-extends its array to avoid reallocation during
312  the scope of the local.
313
314 NETaa13181: m//g didn't keep track of whether previous match matched null.
315 From: "philippe.verdret"
316 Files patched: mg.h pp_hot.c
317  A pattern isn't allowed to match a null string in the same place twice in
318  a row.  m//g wasn't keeping track of whether the previous match matched
319  the null string.
320
321 NETaa13182: now includes whitespace as a regexp metacharacter.
322 From: Larry Wall
323 Files patched: toke.c
324  scan_const() now counts " \t\n\r\f\v" as metacharacters when scanning a pattern.
325
326 NETaa13183: sv_setsv shouldn't try to clone an object.
327 From: Peter Gordon
328 Files 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
333 NETaa13184: bogus warning on quoted signal handler name removed.
334 From: Dan Carson
335 Files patched: toke.c
336  Now doesn't complain unless the first non-whitespace character after the =
337  is an alphabetic character.
338
339 NETaa13186: now croaks on chop($')
340 From: Casper H.S. Dik
341 Files patched: doop.c
342  Now croaks on chop($') and such.
343
344 NETaa13187: "${foo::bar}" now counts as mere delimitation, not as a bareword.
345 From: Jay Rogers
346 Files patched: toke.c
347  "${foo::bar}" now counts as mere delimitation, not as a bareword inside a
348  reference block.
349
350 NETaa13188: for backward compatibility, looks for "perl -" before "perl".
351 From: Russell Mosemann
352 Files patched: toke.c
353  Now allows non-whitespace characters on the #! line between the "perl"
354  and the "-".
355
356 NETaa13188: now allows non-whitespace after #!...perl before switches.
357 Files patched: toke.c
358  (same)
359
360 NETaa13189: derivative files need to be removed before recreation
361 From: Simon Leinen
362 Also: Dick Middleton
363 Also: David J. MacKenzie
364 Files patched: embed_h.sh x2p/Makefile.SH
365  Fixed various little nits as suggested in several messages.
366
367 NETaa13190: certain assignments can spoof pod directive recognizer
368 From: Ilya Zakharevich
369 Files patched: toke.c
370  The lexer now only recognizes pod directives where a statement is expected.
371
372 NETaa13194: now returns undef when there is no curpm.
373 From: lusol@Dillon.CC.Lehigh.EDU
374 Files 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
377  regexp, so it treated it as a normal variable.  It now returns undef.
378
379 NETaa13195: semop had one S too many.
380 From: Joachim Huober
381 Files patched: opcode.pl
382  The entry in opcode.pl had one too many S's.
383
384 NETaa13196: always assumes it's a Perl script if -c is used.
385 From: Dan Carson
386 Files patched: toke.c
387  It now will assume it's a Perl script if the -c switch is used.
388
389 NETaa13197: changed implicit -> message to be more understandable.
390 From: Bruce Barnett
391 Files patched: op.c pod/perldiag.pod
392  I changed the error message to be more understandable.  It now says
393  
394      Can't use subscript on sort...
395  
396
397 NETaa13201: added OPpCONST_ENTERED flag to properly enter filehandle symbols.
398 From: E. Jay Berkenbilt
399 Also: Tom Christiansen
400 Files 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
406 NETaa13203: README shouldn't mention uperl.o any more.
407 From: Anno Siegel
408 Files patched: README
409
410 NETaa13204: .= shouldn't warn on uninitialized target.
411 From: Pete Peterson
412 Files patched: pp_hot.c
413  No longer warns on uninitialized target of .= operator.
414
415 NETaa13206: handy macros in XSUB.h
416 From: Tim Bunce
417 Files patched: XSUB.h
418  Added suggested macros.
419
420 NETaa13228: commonality checker didn't treat lexicals as variables.
421 From: mcook@cognex.com
422 Files 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
428 NETaa13229: fixed sign stuff for complement, integer coercion.
429 From: Larry Wall
430 Files patched: perl.h pp.c sv.c
431  Fixed ~0 and integer coercions.
432
433 NETaa13230: no longer tries to reuse scratchpad temps if tainting in effect.
434 From: Luca Fini
435 Files 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
440 NETaa13231: *foo = *bar now prevents typo warnings on "foo"
441 From: Robin Barker
442 Files 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
446 NETaa13235: require BAREWORD now introduces package name immediately.
447 From: Larry Wall
448 Files 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
453 NETaa13289: didn't calculate correctly using arybase.
454 From: Jared Rhine
455 Files patched: pp.c pp_hot.c
456  The runtime code didn't use curcop->cop_arybase correctly.
457
458 NETaa13301: store now throws exception on error
459 From: Barry Friedman
460 Files 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
463 NETaa13302: ctime now takes Time_t rather than Time_t*.
464 From: Rodger Anderson
465 Files patched: ext/POSIX/POSIX.xs
466  Now declares a Time_t and takes the address of that in CODE.
467
468 NETaa13302: shorter way to do this patch
469 Files patched: ext/POSIX/POSIX.xs
470  (same)
471
472 NETaa13304: could feed too large $@ back into croak, whereupon it croaked.
473 From: Larry Wall
474 Files 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
478 NETaa13305: compiler misoptimized RHS to outside of s/a/print/e
479 From: Brian S. Cashman <bsc@umich.edu>
480 Files 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
484 NETaa13314: assigning mortal to lexical leaks
485 From: Larry Wall
486 Files 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
490 NETaa13316: wait4pid now recalled when errno == EINTR
491 From: Robert J. Pankratz
492 Files 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
496 NETaa13329: needed to localize taint magic
497 From: Brian Katzung
498 Files 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
507 NETaa13341: clarified interaction of AnyDBM_File::ISA and "use"
508 From: Ian Phillipps
509 Files patched: pod/modpods/AnyDBMFile.pod
510  The doc was misleading.
511
512 NETaa13342: grep and map with block would enter block but never leave it.
513 From: Ian Phillipps
514 Files patched: op.c
515  The compiler use some sort-checking code to handle the arguments of
516  grep and map.  Unfortunately, this wiped out the block exit opcode while
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
524 NETaa13343: goto needed to longjmp when in a signal handler.
525 From: Robert Partington
526 Files 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
531 NETaa13344: strict vars shouldn't apply to globs or filehandles.
532 From: Andrew Wilcox
533 Files 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 {
539          local(*IN);
540          open(IN,"file");
541      }
542  
543
544 NETaa13345: assert.pl didn't use package DB
545 From: Hans Mulder
546 Files patched: lib/assert.pl
547  Now it does.
548
549 NETaa13348: av_undef didn't free scalar representing $#foo.
550 From: David Filo
551 Files patched: av.c
552  av_undef didn't free scalar representing $#foo.
553
554 NETaa13349: sort sub accumulated save stack entries
555 From: David Filo
556 Files patched: pp_ctl.c
557  COMMON only gets set if assigning to @_, which is reasonable.  Most of the
558  problem was a memory leak.
559
560 NETaa13351: didn't treat indirect filehandles as references.
561 From: Andy Dougherty
562 Files patched: op.c
563  Now produces
564  
565  Can't use an undefined value as a symbol reference at ./foo line 3.
566  
567
568 NETaa13352: OP_SCOPE allocated as UNOP rather than LISTOP.
569 From: Andy Dougherty
570 Files patched: op.c
571
572 NETaa13353: scope() didn't release filegv on OP_SCOPE optimization.
573 From: Larry Wall
574 Files patched: op.c
575  When scope() nulled out a NEXTSTATE, it didn't release its filegv reference.
576
577 NETaa13355: hv_delete now avoids useless mortalcopy
578 From: Larry Wall
579 Files 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
583 NETaa13359: comma operator section missing its heading
584 From: Larry Wall
585 Files patched: pod/perlop.pod
586
587 NETaa13359: random typo
588 Files patched: pod/perldiag.pod
589
590 NETaa13360: code to handle partial vec values was bogus.
591 From: Conrad Augustin
592 Files 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
596 NETaa13361: made it not interpolate inside regexp comments
597 From: Martin Jost
598 Files patched: toke.c
599  To avoid surprising people, it no longer interpolates inside regexp
600  comments.
601
602 NETaa13362: ${q[1]} should be interpreted like it used to
603 From: Hans Mulder
604 Files patched: toke.c
605  Now resolves ${keyword[1]} to $keyword[1] and warns if -w.  Likewise for {}.
606
607 NETaa13363: meaning of repeated search chars undocumented in tr///
608 From: Stephen P. Potter
609 Files patched: pod/perlop.pod
610  Documented that repeated characters use the first translation given.
611
612 NETaa13365: if closedir fails, don't try it again.
613 From: Frank Crawford
614 Files patched: pp_sys.c
615  Now does not attempt to closedir a second time.
616
617 NETaa13366: can't do block scope optimization on $1 et al when tainting.
618 From: Andrew Vignaux
619 Files 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
624  appeared to be tainted anyway.  The optimization is now disabled when
625  tainting and the block contains $1 (or equivalent).
626
627 NETaa13366: fixed this a better way in toke.c.
628 Files patched: op.c
629  (same)
630
631 NETaa13366: need to disable scope optimization when tainting.
632 Files patched: op.c
633  (same)
634
635 NETaa13367: Did a SvCUR_set without nulling out final char.
636 From: "Rob Henderson" <robh@cs.indiana.edu>
637 Files 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
641 NETaa13368: bigrat::norm sometimes chucked sign
642 From: Greg Kuperberg
643 Files 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
649 NETaa13368: botched previous patch
650 Files patched: lib/bigrat.pl
651  (same)
652
653 NETaa13369: # is now a comment character, and \# should be left for regcomp.
654 From: Simon Parsons
655 Files 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
661 NETaa13369: comment after regexp quantifier induced non-match.
662 Files patched: regcomp.c
663  (same)
664
665 NETaa13370: some code assumed SvCUR was of type int.
666 From: Spider Boardman
667 Files patched: pp_sys.c
668  Did something similar to the proposed patch.  I also fixed the problem that
669  it assumed the type of SvCUR was int.  And fixed get{peer,sock}name the
670  same way.
671
672 NETaa13375: sometimes dontbother wasn't added back into strend.
673 From: Jamshid Afshar
674 Files 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
679 NETaa13375: sv_setpvn now disallows negative length.
680 Files patched: sv.c
681  (same)
682
683 NETaa13376: suspected indirect objecthood prevented recognition of lexical.
684 From: Gisle.Aas@nr.no
685 Files 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
691 NETaa13377: -I processesing ate remainder of #! line.
692 From: Darrell Schiebel
693 Files patched: perl.c
694  I made the -I processing in moreswitches look for the end of the string,
695  delimited by whitespace.
696
697 NETaa13379: ${foo} now treated the same outside quotes as inside
698 From: Hans Mulder
699 Files patched: toke.c
700  ${bareword} is now treated the same outside quotes as inside.
701
702 NETaa13379: previous fix for this bug was botched
703 Files patched: toke.c
704  (same)
705
706 NETaa13381: TEST should check for perl link
707 From: Andy Dougherty
708 Files patched: t/TEST
709  die "You need to run \"make test\" first to set things up.\n" unless -e 'perl';
710  
711
712 NETaa13384: fixed version 0.000 botch.
713 From: Larry Wall
714 Files patched: installperl
715
716 NETaa13385: return 0 from required file loses message
717 From: Malcolm Beattie
718 Files patched: pp_ctl.c
719  Works right now.
720
721 NETaa13387: added pod2latex
722 From: Taro KAWAGISHI
723 Files patched: MANIFEST pod/pod2latex
724  Added most recent copy to pod directory.
725
726 NETaa13388: constant folding now prefers integer results over double
727 From: Ilya Zakharevich
728 Files patched: op.c
729  Constant folding now prefers integer results over double.
730
731 NETaa13389: now treats . and exec as shell metathingies
732 From: Hans Mulder
733 Files patched: doio.c
734  Now treats . and exec as shell metathingies.
735
736 NETaa13395: eval didn't check taintedness.
737 From: Larry Wall
738 Files patched: pp_ctl.c
739
740 NETaa13396: $^ coredumps at end of string
741 From: Paul Rogers
742 Files patched: toke.c
743  The scan_ident() didn't check for a null following $^.
744
745 NETaa13397: improved error messages when operator expected
746 From: Larry Wall
747 Files patched: toke.c
748  Added message (Do you need to predeclare BAR?).  Also fixed the missing
749  semicolon message.
750
751 NETaa13399: cleanup by Andy
752 From: Larry Wall
753 Files 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
755 NETaa13399: cleanup from Andy
756 Files patched: MANIFEST
757
758 NETaa13399: configuration cleanup
759 Files 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
761 NETaa13399: new files from Andy
762 Files 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
764 NETaa13399: patch0l from Andy
765 Files 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
767 NETaa13399: stuff from Andy
768 Files patched: Configure MANIFEST Makefile.SH configpm hints/dec_osf.sh hints/linux.sh hints/machten.sh lib/ExtUtils/MakeMaker.pm util.c
769
770 NETaa13399: Patch 0k from Andy
771 Files 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
773 NETaa13399: Patch 0m from Andy
774 Files 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
776 NETaa13400: pod2html update from Bill Middleton
777 From: Larry Wall
778 Files patched: pod/pod2html
779
780 NETaa13401: Boyer-Moore code attempts to compile string longer than 255.
781 From: Kyriakos Georgiou
782 Files 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
786 NETaa13403: missing a $ on variable name
787 From: Wayne Scott
788 Files patched: installperl
789  Yup, it was missing.
790
791 NETaa13406: didn't wipe out dead match when proceeding to next BRANCH
792 From: Michael P. Clemens
793 Files patched: regexec.c
794  The code to check alternatives didn't invalidate backreferences matched by the
795  failed branch.
796
797 NETaa13407: overload upgrade
798 From: owner-perl5-porters@nicoh.com
799 Also: Ilya Zakharevich
800 Files 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
804 NETaa13409: sv_gets tries to grow string at EOF
805 From: Harold O Morris
806 Files patched: sv.c
807  Applied suggested patch, only two statements earlier, since the end code
808  also does SvCUR_set.
809
810 NETaa13410: delaymagic did =~ instead of &= ~
811 From: Andreas Schwab
812 Files patched: pp_hot.c
813  Applied supplied patch.
814
815 NETaa13411: POSIX didn't compile under -DLEAKTEST
816 From: Frederic Chauveau
817 Files patched: ext/POSIX/POSIX.xs
818  Used NEWSV instead of newSV.
819
820 NETaa13412: new version from Tony Sanders
821 From: Tony Sanders
822 Files patched: lib/Term/Cap.pm
823  Installed as Term::Cap.pm
824
825 NETaa13413: regmust extractor needed to restart loop on BRANCH for (?:) to work
826 From: DESARMENIEN
827 Files patched: regcomp.c
828  The BRANCH skipper should have restarted the loop from the top.
829
830 NETaa13414: the check for accidental list context was done after pm_short check
831 From: Michael H. Coen
832 Files patched: pp_hot.c
833  Moved check for accidental list context to before the pm_short optimization.
834
835 NETaa13418: perlre.pod babbled nonsense about | in character classes
836 From: Philip Hazel
837 Files 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
842 NETaa13419: need to document introduction of lexical variables
843 From: "Heading, Anthony"
844 Files patched: pod/perlfunc.pod
845  Now mentions that lexicals aren't introduced till after the current statement.
846
847 NETaa13420: formats that overflowed a page caused endless top of forms
848 From: Hildo@CONSUL.NL
849 Files 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
853 NETaa13423: the code to do negative list subscript in scalar context was missing
854 From: Steve McDougall
855 Files 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
859 NETaa13424: existing but undefined CV blocked inheritance
860 From: Spider Boardman
861 Files patched: gv.c
862  Applied supplied patch.
863
864 NETaa13425: removed extra argument to croak
865 From: "R. Bernstein"
866 Files patched: regcomp.c
867  Removed extra argument.
868
869 NETaa13427: added return types
870 From: "R. Bernstein"
871 Files patched: x2p/a2py.c
872  Applied suggested patch.
873
874 NETaa13427: added static declarations
875 Files patched: x2p/walk.c
876  (same)
877
878 NETaa13428: split was assuming that all backreferences were defined
879 From: Dave Schweisguth
880 Files patched: pp.c
881  split was assuming that all backreferences were defined.
882
883 NETaa13430: hoistmust wasn't hoisting anchored shortcircuit's length
884 From: Tom Christiansen
885 Also: Rob Hooft
886 Files patched: toke.c
887
888 NETaa13432: couldn't call code ref under debugger
889 From: Mike Fletcher
890 Files 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
895 NETaa13435: 1' dumped core
896 From: Larry Wall
897 Files patched: toke.c
898  Didn't check a pointer for nullness.
899
900 NETaa13436: print foo(123) didn't treat foo as subroutine
901 From: mcook@cognex.com
902 Files patched: toke.c
903  Now treats it as a subroutine rather than a filehandle.
904
905 NETaa13437: &$::foo didn't think $::foo was a variable name
906 From: mcook@cognex.com
907 Files patched: toke.c
908  Now treats $::foo as a global variable.
909
910 NETaa13439: referred to old package name
911 From: Tom Christiansen
912 Files 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
916 NETaa13440: stat operations didn't know what to do with glob or ref to glob
917 From: mcook@cognex.com
918 Files patched: doio.c pp_sys.c
919  Now knows about the kinds of filehandles returned by FileHandle constructors
920  and such.
921
922 NETaa13442: couldn't find name of copy of deleted symbol table entry
923 From: Spider Boardman
924 Files 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
931 NETaa13443: couldn't override an XSUB
932 From: William Setzer
933 Files 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
937 NETaa13443: needed to do same thing in newXS
938 Files patched: op.c
939  (same)
940
941 NETaa13444: -foo now doesn't warn unless sub foo is defined
942 From: Larry Wall
943 Files patched: toke.c
944  Made it not warn on -foo, unless there is a sub foo defined.
945
946 NETaa13451: in scalar context, pp_entersub now guarantees one item from XSUB
947 From: Nick Gianniotis
948 Files 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
953 NETaa13457: now explicitly disallows printf format with 'n' or '*'.
954 From: lees@cps.msu.edu
955 Files patched: doop.c
956  Now says
957  
958      Use of n in printf format not supported at ./foo line 3.
959  
960
961 NETaa13458: needed to call SvPOK_only() in pp_substr
962 From: Wayne Scott
963 Files patched: pp.c
964  Needed to call SvPOK_only() in pp_substr.
965
966 NETaa13459: umask and chmod now warn about missing initial 0 even with paren
967 From: Andreas Koenig
968 Files patched: toke.c
969  Now skips parens as well as whitespace looking for argument.
970
971 NETaa13460: backtracking didn't work on .*? because reginput got clobbered
972 From: Andreas Koenig
973 Files 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
977 NETaa13475: \(@ary) now treats array as list of scalars
978 From: Tim Bunce
979 Files 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
983 NETaa13481: accept buffer wasn't aligned good enough
984 From: Holger Bechtold
985 Also: Christian Murphy
986 Files patched: pp_sys.c
987  Applied suggested patch.
988
989 NETaa13486: while (<>) now means while (defined($_ = <>))
990 From: Jim Balter
991 Files patched: op.c pod/perlop.pod
992  while (<HANDLE>) now means while (defined($_ = <HANDLE>)).
993
994 NETaa13500: needed DESTROY in FileHandle
995 From: Tim Bunce
996 Files patched: ext/POSIX/POSIX.pm
997  Added DESTROY method.  Also fixed ungensym to use POSIX:: instead of _POSIX.
998  Removed ungensym from close method, since DESTROY should do that now.
999
1000 NETaa13502: now complains if you use local on a lexical variable
1001 From: Larry Wall
1002 Files patched: op.c
1003  Now says something like
1004  
1005      Can't localize lexical variable $var at ./try line 6.
1006
1007 NETaa13512: added $SIG{__WARN__} and $SIG{__DIE__} hooks
1008 From: Larry Wall
1009 Files patched: embed.h gv.c interp.sym mg.c perl.h pod/perlvar.pod pp_ctl.c util.c Todo pod/perldiag.pod
1010
1011 NETaa13514: statements before intro of lex var could see lex var
1012 From: William Setzer
1013 Files 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
1016  outside the scope of the new variable.  Thus,
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
1028 NETaa13520: added closures
1029 From: Larry Wall
1030 Files 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
1032 NETaa13520: test to see if lexical works in a format now
1033 Files patched: t/op/write.t
1034
1035 NETaa13522: substitution couldn't be used on a substr()
1036 From: Hans Mulder
1037 Files 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
1041 NETaa13525: G_EVAL mode in perl_call_sv didn't return values right.
1042 Files patched: perl.c
1043
1044 NETaa13525: consolidated error message
1045 From: Larry Wall
1046 Files patched: perl.h toke.c
1047
1048 NETaa13525: derived it
1049 Files patched: perly.h
1050
1051 NETaa13525: missing some values from embed.h
1052 Files patched: embed.h
1053
1054 NETaa13525: random cleanup
1055 Files 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
1057 NETaa13525: random cleanup                  
1058 Files patched: pp_ctl.c util.c
1059
1060 NETaa13527: File::Find needed to export $name and $dir
1061 From: Chaim Frenkel
1062 Files patched: lib/File/Find.pm
1063  They are now exported.
1064
1065 NETaa13528: cv_undef left unaccounted-for GV pointer in CV
1066 From: Tye McQueen
1067 Also: Spider Boardman
1068 Files patched: op.c
1069
1070 NETaa13530: scalar keys now resets hash iterator
1071 From: Tim Bunce
1072 Files patched: doop.c
1073  scalar keys() now resets the hash iterator.
1074
1075 NETaa13531: h2ph doesn't check defined right
1076 From: Casper H.S. Dik
1077 Files patched: h2ph.SH
1078
1079 NETaa13540: VMS update
1080 From: Larry Wall
1081 Files 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
1083 NETaa13540: got some duplicate code
1084 Files patched: lib/File/Path.pm
1085
1086 NETaa13540: stuff from Charles
1087 Files 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
1089 NETaa13540: tweak from Charles
1090 Files patched: lib/File/Path.pm
1091
1092 NETaa13552: scalar unpack("P4",...) ignored the 4
1093 From: Eric Arnold
1094 Files 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
1098 NETaa13553: now warns about 8 or 9 in octal escapes
1099 From: Mike Rogers
1100 Files 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
1104 NETaa13554: now allows foreach ${"name"}
1105 From: Johan Holtman
1106 Files 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
1111 NETaa13559: substitution now always checks for readonly
1112 From: Rodger Anderson
1113 Files patched: pp_hot.c
1114  Substitution now always checks for readonly.
1115
1116 NETaa13561: added explanations of closures and curly-quotes
1117 From: Larry Wall
1118 Files patched: pod/perlref.pod
1119
1120 NETaa13562: null components in path cause indigestion
1121 From: Ambrose Kofi Laing
1122 Files patched: lib/Cwd.pm lib/pwd.pl
1123
1124 NETaa13575: documented semantics of negative substr length
1125 From: Jeff Bouis
1126 Files 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
1130 NETaa13575: negative length to substr didn't work when offset non-zero
1131 Files patched: pp.c
1132  (same)
1133
1134 NETaa13575: random cleanup
1135 Files patched: pod/perlfunc.pod
1136  (same)
1137
1138 NETaa13580: couldn't localize $ACCUMULATOR
1139 From: Larry Wall
1140 Files 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
1144 NETaa13583: doc mods from Tom
1145 From: Larry Wall
1146 Files 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
1148 NETaa13589: return was enforcing list context on its arguments
1149 From: Tim Freeman
1150 Files patched: opcode.pl
1151  A return was being treated like a normal list operator, in that it was
1152  setting list context on its arguments.  This was bogus.
1153
1154 NETaa13591: POSIX::creat used wrong argument
1155 From: Paul Marquess
1156 Files patched: ext/POSIX/POSIX.pm
1157  Applied suggested patch.
1158
1159 NETaa13605: use strict refs error message now displays bad ref
1160 From: Peter Gordon
1161 Files 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
1166 NETaa13630: eof docs were unclear
1167 From: Hallvard B Furuseth
1168 Files patched: pod/perlfunc.pod
1169  Applied suggested patch.
1170
1171 NETaa13636: $< and $> weren't refetched on undump restart
1172 From: Steve Pearlmutter
1173 Files patched: perl.c
1174  The code in main() bypassed perl_construct on an undump restart, which bypassed
1175  the code that set $< and $>.
1176
1177 NETaa13641: added Tim's fancy new import whizbangers
1178 From: Tim Bunce
1179 Files patched: lib/Exporter.pm
1180  Applied suggested patch.
1181
1182 NETaa13649: couldn't AUTOLOAD a symbol reference
1183 From: Larry Wall
1184 Files patched: pp_hot.c
1185  pp_entersub needed to guarantee a CV so it would get to the AUTOLOAD code.
1186
1187 NETaa13651: renamed file had wrong package name
1188 From: Andreas Koenig
1189 Files patched: lib/File/Path.pm
1190  Applied suggested patch.
1191
1192 NETaa13660: now that we're testing distribution we can diagnose RANDBITS errors
1193 From: Karl Glazebrook
1194 Files patched: t/op/rand.t
1195  Changed to suggested algorithm.  Also duplicated it to test rand(100) too.
1196
1197 NETaa13660: rand.t didn't test for proper distribution within range
1198 Files patched: t/op/rand.t
1199  (same)
1200
1201 NETaa13671: array slice misbehaved in a scalar context
1202 From: Tye McQueen
1203 Files patched: pp.c
1204  A spurious else prevented the scalar-context-handling code from running.
1205
1206 NETaa13672: filehandle constructors in POSIX don't return failure successfully
1207 From: Ian Phillipps
1208 Files patched: ext/POSIX/POSIX.pm
1209  Applied suggested patch.
1210  
1211
1212 NETaa13678: forced $1 to always be untainted
1213 From: Ka-Ping Yee
1214 Files 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
1218 NETaa13682: formline doc need to discuss ~ and ~~ policy
1219 From: Peter Gordon
1220 Files patched: pod/perlfunc.pod
1221
1222 NETaa13686: POSIX::open and POSIX::mkfifo didn't check tainting
1223 From: Larry Wall
1224 Files patched: ext/POSIX/POSIX.xs
1225  open() and mkfifo() now check tainting.
1226
1227 NETaa13687: new Exporter.pm
1228 From: Tim Bunce
1229 Files 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
1235 NETaa13687: new Exporter.pm      
1236 Files patched: ext/POSIX/POSIX.pm
1237  (same)
1238
1239 NETaa13694: add sockaddr_in to Socket.pm
1240 From: Tim Bunce
1241 Files patched: ext/Socket/Socket.pm
1242  Applied suggested patch.
1243
1244 NETaa13695: library routines should use qw() as good example
1245 From: Dean Roehrich
1246 Files 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
1249 NETaa13696: myconfig should be a routine in Config.pm
1250 From: Kenneth Albanowski
1251 Files patched: configpm
1252  Applied suggested patch.
1253
1254 NETaa13704: fdopen closed fd on failure
1255 From: Hallvard B Furuseth
1256 Files patched: doio.c
1257  Applied suggested patch.
1258
1259 NETaa13706: Term::Cap doesn't work
1260 From: Dean Roehrich
1261 Files patched: lib/Term/Cap.pm
1262  Applied suggested patch.
1263
1264 NETaa13710: cryptswitch needed to be more "useable"
1265 From: Tim Bunce
1266 Files 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
1272 NETaa13712: new_tmpfile() can't be called as constructor
1273 From: Hans Mulder
1274 Files patched: ext/POSIX/POSIX.xs
1275  Now allows new_tmpfile() to be called as a constructor.
1276
1277 NETaa13714: variable method call not documented
1278 From: "Randal L. Schwartz"
1279 Files patched: pod/perlobj.pod
1280  Now indicates that OBJECT->$method() works.
1281
1282 NETaa13715: PACK->$method produces spurious warning
1283 From: Larry Wall
1284 Files patched: toke.c
1285  The -> operator was telling the lexer to expect an operator when the
1286  next thing was a variable.
1287
1288 NETaa13716: Carp now allows multiple packages to be skipped out of
1289 From: Larry Wall
1290 Files patched: lib/Carp.pm
1291  The subroutine redefinition warnings now warn on import collisions.
1292
1293 NETaa13716: Exporter catches warnings and gives a better line number
1294 Files patched: lib/Exporter.pm
1295  (same)
1296
1297 NETaa13716: now counts imported routines as "defined" for redef warnings
1298 Files patched: op.c sv.c
1299  (same)