| 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) | 
|---|