Add _STDIO_LOADED (VMS) to list of guard symbols.
[p5sagit/p5-mst-13.2.git] / Changes
1 Please note: This file provides a summary of significant changes
2 between versions and sub-versions of Perl, not necessarily a complete
3 list of each modification.  If you'd like more detailed information,
4 please consult the comments in the patches on which the relevant
5 release of Perl is based.  (Patches can be found on any CPAN
6 site, in the .../src/5.0 directory for full version releases,
7 or in the .../src/5/0/unsupported directory for sub-version
8 releases.)
9
10 ----------------
11 Version 5.003_05
12 ----------------
13
14 This patch was primarily to fix bugs and to clean up some of
15 the remaining issues from in 5.003_04.  The details are described below.
16 A very brief summary is:
17
18 o Visible Changes to Core Functionality
19
20    -Add support for a READLINE method to tied filehandles.
21     
22    -times function now uses CLK_TCK if HZ is not available, rather
23     than just defaulting to 60.  times output might change on some
24     systems, but should be correct now.
25
26    -AnyDBM_File (modifying ISA does not work as expected)
27     Now behaves as documented:  Modifying ISA works to select
28     order in which *DB* modules are tried.  The default is still
29     the same.
30
31 o Configure and build enhancements
32
33    -Enhance detection of [gs]etpgrp() variants.  Some systems have
34     BSD-style behavior for one and POSIX for the other.  Use
35     [gs]etpgid() instead, whenever possible.
36   
37    -You can now build a shared libperl.so without running through
38     the LD_RUN_PATH hoops, if your system supports appropriate
39     ld command-line options.  Solaris, NetBSD, and Linux are currently
40     supported.  Others are easy to add.  (This makes like a lot easier
41     for embedders.)
42
43    -VMS updates.
44     
45    -Fix installperl and installman so that the -n option really only
46     prints commands.  (previously, it would still do the mkdirs.)
47
48 o Bug fixes
49
50    -debugger ought to work.
51
52    -A new heredoc tag in Makefile.SH is now quoted.  This prevented
53     5.003_04 from working most places.
54
55    -numerous smaller ones, detailed below.
56
57 o Specific Changes
58
59 Here are the specific file-by-file changes.
60
61 # This is my patch perl5.003_05.pat to perl5.003_04
62 # The full description is below.
63 # Please execute the following commands before applying this patch.
64 # (You can feed this patch to 'sh' to do so.)
65 #  Andy Dougherty               <doughera@lafcol.lafayette.edu>
66
67 # We'll create a new test, but patch won't automatically make it
68 # executable.
69 touch t/io/read.t
70 chmod +x t/io/read.t
71
72 exit 0
73
74
75 This is patch perl5.003_05.pat to perl version 5.003_04.
76 This takes you from 5.003_04 to 5.003_05.
77
78 To apply this patch, run the above commands,
79 cd to your perl source directory and then type
80
81         patch -p1 -N < perl5.003_05.pat
82
83 The changes are described after each /^Index/ line below.  This is
84 designed so you can examine each change with a command such as
85
86         csplit -k perl5.003_05.pat '/^Index:/' '{99}'
87
88 Patch and enjoy,
89
90     Andy Dougherty              doughera@lafcol.lafayette.edu
91     Dept. of Physics
92     Lafayette College, Easton PA 18042
93
94 Index: Changes
95
96     Updated for 5.003_05.
97
98 Index: Configure
99
100     Allow command line or hint-file overrides of $afs.
101
102     Allow trailing spaces in nm output for HPUX10.
103
104     Check for newer BIND 'search' directives in /etc/resolv.conf as well
105     as older 'domain' directive.
106
107     Enhance detection of [gs]etpgrp() variants.  Some systems have
108     BSD-style behavior for one and POSIX for the other.  Use
109     [gs]etpgid() instead, whenever possible.
110
111     Include -s in the -h summary of available options.
112
113     Allow command-line override of $afs.
114
115     Handle trailing spaces in nm-output on HPUX10.
116
117     Set shrpenv for handling LD_RUN_PATH, if needed. (This used to
118     be in Makefile.SH.  Now it's available for other modules too.)
119
120     When using shared libperl, avoid LD_RUN_PATH if possible by adding
121     correct ld flags.  Currently, Solaris and NetBSD get the correct
122     -R $archlibexp/CORE, and Linux gets its
123     -Wl,-rpath,$archlibexp/CORE flag.  Other contributions are
124     welcome.
125
126 Index: INSTALL
127
128     Correct libperl5 -> libperl typo.
129
130     Describe MakeMaker's Warning (will try anyway) messages.
131
132     More info on where and how to send reports.
133
134     Add info on non-Unix ports.
135
136
137 Index: MANIFEST
138
139     Add new test t/io/read.t.
140
141     Add new hints files for ODBM_File for ultrix and hpux.
142
143     Add new pod checker script.
144
145 Index: Makefile.SH
146
147     A new heredoc tag in Makefile.SH needs to be quoted.
148
149     shrpenv stuff moved to Configure.
150
151 Index: Porting/Glossary
152
153     Updated to match Configure.
154
155 Index: README.vms
156
157     VMS 5.003_05 Update.
158
159 Index: av.h
160
161     Subject: turbidity in av.[ch]
162     Date: Sun, 10 Dec 1995 00:21:31 -0500
163     From: Gurusamy Sarathy <gsar@engin.umich.edu>
164
165     Some unclean code that I noticed today.
166
167 Index: config_H
168
169     Updated to match newest config_h.SH.
170
171 Index: config_h.SH
172
173     Updated to match Configure.
174
175     Changed the DLSYM_NEEDS_UNDERSCORE comment to 
176     /**/ to conform to metaconfig style.
177
178 Index: emacs/cperl-mode.el
179
180     From: Ilya Zakharevich <ilya@math.ohio-state.edu>
181     Subject: Newer CPerl-mode
182
183 Index: ext/DB_File/DB_File.pm
184
185     Update to DB_File 1.03.
186
187 Index: ext/DB_File/DB_File.xs
188
189     Update to DB_File 1.03.
190
191 Index: ext/Fcntl/Fcntl.pm
192
193     Date: Thu, 5 Sep 1996 18:19:14 -0400 (EDT)
194     From: Chip Salzenberg <salzench@nielsenmedia.com>
195     Subject: No AutoLoader for Fcntl
196
197     Just like Socket, Fcntl doesn't need splitting and AutoLoading.
198
199 Index: ext/FileHandle/FileHandle.pm
200
201     From: Roderick Schertler <roderick@gate.net>
202     Subject: FileHandle::DESTROY for fd 0
203
204     This fixes FileHandle::DESTROY when called on stdin.
205
206 Index: ext/ODBM_File/ODBM_File.xs
207
208     Attempt to correct for "Bad free" in Ultrix and HPUX versions of
209     odbm.
210
211 Index: ext/ODBM_File/hints/hpux.pl
212
213     Try to work around "bad free" in dbmclose().
214
215 Index: ext/ODBM_File/hints/ultrix.pl
216
217     Try to work around "bad free" in dbmclose().
218
219 Index: ext/Socket/Socket.pm
220
221     Date: Thu, 5 Sep 1996 09:58:08 +0200
222     From: Andreas Koenig <k@anna.in-berlin.de>
223     Subject: Patch to inhibit autosplit on Socket.pm
224
225     This patch inhibits production and use of a completely useless
226     auto/Socket/autosplit.ix.
227
228 Index: handy.h
229
230     Make a little more C++-friendly for IBM's CSET++ compiler.
231
232 Index: hints/convexos.sh
233
234     Remove [gs]etpgrp workaround.  Configure & perl.h should handle
235     this now.
236
237 Index: hints/hpux.sh
238
239     Add note about possible gcc GR3 warning message.
240
241     Remove [gs]etpgrp workaround.  Configure & perl.h should handle
242     this now.
243
244 Index: hints/sco.sh
245
246     Turn off optimization for stock cc.  This appears to
247     prevent miniperl core dumps.
248
249 Index: hints/solaris_2.sh
250
251     Catch GNU ld even though it doesn't identify itself as a GNU tool.
252     Thanks to Tim Pierce <twpierce@midway.uchicago.edu>.
253
254 Index: hints/sunos_4_1.sh
255
256     Describe solution for the __lib_version problem with acc on
257     SunOS.
258
259 Index: hv.c
260
261     Date: Thu, 05 Sep 1996 00:25:28 -0400
262     From: Gurusamy Sarathy <gsar@engin.umich.edu>
263     Subject: minor misc. cleanup
264
265     This patch makes some minor cleanups to the sources.  No change
266     in functionality whatsoever.
267
268     Date: Thu, 05 Sep 1996 02:52:21 -0400
269     From: Gurusamy Sarathy <gsar@engin.umich.edu>
270
271     Subject: debugger problems--another patch (was Re: 5.003_04)
272
273     I have tried to avoid copying of hash keys that are passed to
274     magical hashes, but it seems that copying may be unavoidable
275     since the hv_*_ent() functions could be PADTMPs (and other
276     SVs that may get reused) as keys.
277
278     VMS dynamic %ENV fix
279
280 Index: installman
281
282     From: scotth@sgi.com
283     Subject: Re: installperl feature request (was: Re: Upgrade 4.0x to 5.001m)
284
285     Fix installperl so that the -n option really only prints commands.
286     (previously, it would still do the mkdirs.)
287
288     an "ignore installed" option, so that it doesn't bother to check
289     to see if the target already exists (an optimization that I
290     *don't* want it to do when I do #1 above)
291
292 Index: installperl
293
294     From: scotth@sgi.com
295     Subject: Re: installperl feature request (was: Re: Upgrade 4.0x to 5.001m)
296
297     Fix installperl so that the -n option really only prints commands.
298     (previously, it would still do the mkdirs.)
299
300     an "ignore installed" option, so that it doesn't bother to check
301     to see if the target already exists (an optimization that I
302     *don't* want it to do when I do #1 above)
303
304 Index: lib/AnyDBM_File.pm
305
306     AnyDBM_File (modifying ISA does not work as expected)
307     Now behaves as documented:  Modifying ISA works to select
308     order in which *DB* modules are tried.  The default is still
309     the same.
310
311
312     Add helpful "die" message to end of AnyDBM_File.  Previously
313     it would return a 0, and the failure would eventually show up
314     somewhere else in the script and be hard to track down.  It is
315     a failure if perl can't open AnyDBM_File.  The test regression
316     suite is supposed to indicate this as a failure too.
317
318 Index: lib/ExtUtils/Install.pm
319
320     Updated to MakeMaker-5.38.
321
322     Fix for VMS utime.
323
324 Index: lib/ExtUtils/Liblist.pm
325
326     Updated to MakeMaker-5.38.
327
328 Index: lib/ExtUtils/MM_Unix.pm
329     Updated to MakeMaker-5.38.
330
331 Index: lib/ExtUtils/MakeMaker.pm
332
333     Updated to MakeMaker-5.38.
334
335     Updated to MakeMaker-5.39 to allow CFLAGS in hint files.
336
337 Index: lib/ExtUtils/Manifest.pm
338
339     Updated to MakeMaker-5.38.
340
341 Index: lib/ExtUtils/Mkbootstrap.pm
342
343     Updated to MakeMaker-5.38.
344
345 Index: lib/ExtUtils/Mksymlists.pm
346
347     Updated to MakeMaker-5.38.
348
349 Index: lib/File/Find.pm
350
351     From: Michael Mahan <mahanm@nextwork.rose-hulman.edu>
352     Subject: Cwd::fastcwd in File::Find
353
354     Is there a good reason why File::Find uses Cwd::fastcwd instead of
355     Cwd:cwd when fastcwd isn't as portable?
356     [In particular, fastcwd() doesn't work on AFS.]
357
358 Index: lib/Math/Complex.pm
359
360     There was a mistake in the sqrt routine in lib/Math/Complex.pm that
361     gave wrong answers when the magnitude of the imaginary part of the
362     argument exceeded the magnitude of the real part.  Line 69 had too
363     many sqrt($y)'s.  Further, expressions were re-arranged so that
364     calls to the expensive real sqrt() routine were reduced from 4 to 2
365     in this case.
366
367 Index: lib/open3.pl
368
369     The I/O directions on the dad_wtr and kid_rdr were backwards.
370     IO/Open3.pm didn't have this error.
371
372 Index: lib/syslog.pl
373
374     Date: Tue, 03 Sep 1996 20:33:54 -0400
375     From: Roderick Schertler <roderick@gate.net>
376     Subject: syslog.pl `use Socket' lossage
377
378     syslog.pl tries but fails to use
379     Socket.pm, the problem is that use doesn't return a true value.  This
380     module should be recast in terms of Sys::Syslog, of course.
381
382 Index: makedepend.SH
383
384     This patch eliminates "\|" in sed patterns in makedepend.SH, since
385     they're not really needed anyway in this one case.
386
387 Index: mg.c
388
389     Ok, here's a tested patch for the debugger problem.
390     I was missing the fact that DB::dbline magic is actually
391     uppercase (which means hv_store_ent() etc., will pass SV keys
392     to the vtbl_dbline handlers).
393
394     Replace the oft-repeated mg_ptr incantation with
395     the simple MgPVKEY macro.
396
397     Rename MgPVKEY to MgPV (to match with HePV elsewhere).  Add
398     additional parens around the "mg".
399
400     (lines near 584) Part of VMS changes.  I don't know what this did.
401
402     Date: Fri, 23 Aug 1996 17:20:22 -0400 (EDT)
403     From: Chip Salzenberg <salzench@nielsenmedia.com>
404     Subject: Integerize mg.c; eliminate warning on C< local($)) >
405
406     This patch converts magic variables ($!, $^E, etc.) to use integers
407     (C<sv_setiv>) instead of floats.  It also eliminates a warning from
408     C< local($)) >, via a hack similar to $!.
409
410 Index: mg.h
411
412     Replace the oft-repeated mg_ptr incantation with
413     the simple MgPVKEY macro.
414
415     Rename MgPVKEY to MgPV (to match with HePV elsewhere).  Add
416     additional parens around the "mg".
417
418 Index: nostdio.h
419
420     Add _STDIO_LOADED (VMS) to list of guard symbols.
421
422 Index: op.c
423
424     From: Gurusamy Sarathy <gsar@engin.umich.edu>
425     Subject: Re: \ ( @array ) busted for lexical @array (once more)
426
427 Index: patchlevel.h
428
429     Change to subversion 5.
430
431 Index: perl.c
432
433     Make floating point constants Locale-friendly.
434
435 Index: perl.h
436
437     One last LONG & co. fix (yet another cut'n'paste error) and a few
438     minor cleanups. Nothing crucial.
439
440     Make a little more C++-friendly for IBM's CSET++ compiler.
441
442     Enhance detection of [gs]etpgrp() variants.  Some systems have
443     BSD-style behavior for one and POSIX for the other.  Use
444     [gs]etpgid() instead, whenever possible.
445
446 Index: perlio.c
447
448     Eliminate potential "signed vs. unsigned" warning
449
450     Add PerlIO_reopen and PerlIO_cgetname functions.
451
452 Index: perlsdio.h
453
454     Don't supply redundant parameters for PerlIO_open and PerlIO_fdopen.
455
456     Include PerlIO_reopen and PerlIO_getname.
457
458     s/FILE_(CNT|PTR)_LVALUE/STDIO_(CNT|PTR)_LVALUE to fix a typo.
459     This had prevented SV_FAST_FGETS from working anywhere.
460
461     Include PerlIO_canset_cnt.  I'm not sure how this is supposed to
462     differ from STDIO_CNT_LVALUE.
463
464 Index: pod/Makefile
465
466     Remove trailing spaces in pods.
467     Include a call to the checkpods script in the Makefile (though it's
468     not ordinarily used by users).
469
470 Index: pod/checkpods.PL
471
472     New script to check for common errors in pods.  This is not
473     normally called during the perl build process, but you can
474     use it with  B<make check>.
475
476 Index: pod/perlfunc.pod
477
478     Document correct C<use POSIX ":wait_h";> usage.
479
480     Add notes about POSIX [gs]etpgrp.
481
482 Index: pod/perlipc.pod
483
484     Document correct C<use POSIX ":wait_h";> usage.
485
486 Index: pod/perlref.pod
487
488     From: Gurusamy Sarathy <gsar@engin.umich.edu>
489     Subject: Re: \ ( @array ) busted for lexical @array (once more)
490
491 Index: pod/perltie.pod
492
493     Date: Thu, 29 Aug 1996 15:14:51 +0200
494     From: Sven Verdoolaege <skimo@breughel.ufsia.ac.be>
495     Subject: more TIEHANDLE
496
497     This adds support for a READLINE method.
498
499 Index: pod/perltrap.pod
500
501     Here's documentation on the change in split's behavior between Perl 4
502     and Perl 5.
503
504     Subject: More (and less!) 425traps
505
506     Large integer traps
507
508     Precedence
509
510     warn STDERR
511
512     Change blank lines to empty lines.
513
514 Index: pod/perlvar.pod
515
516     Be explicit about $/="" matching empty lines, that is, lines
517     with no spaces or tabs.
518
519     Change blank lines to empty lines.
520
521 Index: pp.c
522
523     Date: Fri, 23 Aug 1996 17:22:40 -0400 (EDT)
524     From: Chip Salzenberg <salzench@nielsenmedia.com>
525     Subject: Minor integer speedups in mathematics
526
527     This patch provides minor speedups by using integer math and SVt_IV
528     values when performing bitwise operations and modulus.
529
530     Date: Tue, 3 Sep 1996 17:49:22 -0400 (EDT)
531     From: Kenneth Albanowski <kjahds@kjahds.com>
532     Subject: Pack Patch (was Re: 5.002 - pack/unpack does not do "I" right)
533
534     (double)auint cast added for call to sv_setnv().
535
536 Index: pp_hot.c
537
538     Date: Thu, 05 Sep 1996 00:25:28 -0400
539     From: Gurusamy Sarathy <gsar@engin.umich.edu>
540     Subject: minor misc. cleanup
541
542     This patch makes some minor cleanups to the sources.  No change
543     in functionality whatsoever.
544
545     Date: Thu, 29 Aug 1996 15:14:51 +0200
546     From: Sven Verdoolaege <skimo@breughel.ufsia.ac.be>
547     Subject: more TIEHANDLE
548
549     This adds support for a READLINE method.
550
551 Index: pp_sys.c
552
553     Clear any buffer space exposed by by read().
554     This is almost certainly a bug-fix.
555
556     Undef and then re-define my_chsize from Perl_my_chsize to
557     just plain chsize if this system HAS_CHSIZE.  This probably only
558     applies to SCO.  This shows the perils of having internal
559     functions with the same name as external library functions :-).
560
561     Use CLK_TCK if HZ is not available.
562
563 Index: sv.c
564
565     Fix more spots where we had PerlIO_stderr() and should have had
566     Perl_debug_log instead.
567
568     Date: Fri, 23 Aug 1996 17:26:42 -0400 (EDT)
569     From: Chip Salzenberg <salzench@nielsenmedia.com>
570     Subject: Minor potential bug in AV creation
571
572     I wasn't the one who originated this patch.  But it looks like it
573     would improve the safety of AV creation.
574
575     Remove potentially incorrect casts on PerlIO_set_ptrcnt.
576     'ptr' is already STDCHAR, which is supposed to be the type of
577     char used in stdio.h, so we shouldn't have to cast it.
578
579 Index: t/io/read.t
580
581     Clear any buffer space exposed by by read().
582     This is almost certainly a bug-fix.
583
584 Index: t/lib/db-btree.t
585
586     Update to DB_File 1.03.
587
588 Index: t/lib/db-hash.t
589
590     Update to DB_File 1.03.
591
592 Index: t/lib/db-recno.t
593
594     Update to DB_File 1.03.
595
596 Index: t/lib/io_sock.t
597
598     From: Lupe Christoph <lupe@alanya.m.isar.de>
599     Subject: Perl 5.003.03: race condition in t/lib/io_sock.t
600
601     io_sock.t works by forking a subprocess it can communicate with.
602     It has the subprocess wait for the main process by sleeping 10
603     seconds or until an alarm arrives.
604
605     With my setup, the alarm signal arrives *before* the child
606     has a chance to ignore the alarm signal.
607
608     I fixed this by moving the "$SIG{ALRM} = sub {};" up before the
609     fork. It does not hurt to have the parent ignore alarms, too.
610
611 Index: t/op/inc.t
612
613     One last LONG & co. fix (yet another cut'n'paste error) and a few
614     minor cleanups. Nothing crucial.
615
616 Index: t/op/misc.t
617
618     Date: Thu, 29 Aug 1996 15:14:51 +0200
619     From: Sven Verdoolaege <skimo@breughel.ufsia.ac.be>
620     Subject: more TIEHANDLE
621
622     This adds support for a READLINE method.
623
624 Index: t/op/pack.t
625
626     Date: Tue, 3 Sep 1996 17:49:22 -0400 (EDT)
627     From: Kenneth Albanowski <kjahds@kjahds.com>
628     Subject: Pack Patch (was Re: 5.002 - pack/unpack does not do "I" right)
629
630 Index: t/op/ref.t
631
632     From: Gurusamy Sarathy <gsar@engin.umich.edu>
633     Subject: Re: \ ( @array ) busted for lexical @array (once more)
634
635 Index: universal.c
636
637     Date: Thu, 29 Aug 96 07:05:10 BST
638     From: Graham Barr <bodg@tiuk.ti.com>
639     Subject: Re: UNIVERSAL::class busted
640
641     yes, but I also noticed that this does not check that the reference
642     is an object, so the patch should be
643
644 Index: unixish.h
645
646     Change comment style so that IBM's picky xlc compiler doesn't
647     think we've mistakenly tried to nest comments.
648
649 Index: util.c
650
651     One last LONG & co. fix (yet another cut'n'paste error) and a few
652     minor cleanups. Nothing crucial.
653
654 Index: utils/h2xs.PL
655
656     Date: Fri, 6 Sep 1996 06:09:20 -0400 (EDT)
657     From: Ilya Zakharevich <ilya@math.ohio-state.edu>
658     Subject: updated h2xs
659
660     Changes:
661         a) Docs and examples for -x updated;
662         b) Path to xxxx.h would not be changed to /usr/include/xxxx.h
663     unless this file exists (outside of VMS, I'm afraid to make an error
664     there). - Useful with -x option, when the file may be eaten via -I
665     inside -F.
666         c) .h file would be scanned only if needed.
667         d) typemap would be generated (with T_PTROBJ).
668         e) Documentation (=list) for autogenerated guys would be
669     included into POD.
670         f) duplicated XSUBs would not be generated;
671         g) arguments to XSUBs being arrays are recognized (note that
672     xsubpp would probably choke on such guys).
673
674     -x option requires C-Scan-0.3 (releases a couple of minutes ago to
675             ftp://ftp.math.ohio-state.edu/pub/users/ilya/perl
676     should propagate to CPAN soon).
677
678 Index: utils/perlbug.PL
679
680     Fix typo $Config{'has_sockets'} ought to be $Config{'d_socket'};
681
682 Index: utils/perldoc.PL
683
684     More choices in the pager war.  Unfortunately, we can't rely on
685     all users agreeing with the Sysadmin's choice, nor can we
686     assign a default preference order, since opinions vary.  If the
687     user doesn't have $ENV{PAGER} set, we do want to pick up one that
688     at least works, so we'll try whatever Configure found.
689
690 Index: vms/Makefile
691
692     VMS 5.003_05 Update.
693
694 Index: vms/config.vms
695
696     VMS 5.003_05 Update.
697
698 Index: vms/descrip.mms
699
700     VMS 5.003_05 Update.
701
702 Index: vms/ext/Stdio/Stdio.pm
703
704     VMS 5.003_05 Update.
705
706 Index: vms/ext/filespec.t
707
708     VMS 5.003_05 Update.
709
710 Index: vms/gen_shrfls.pl
711
712     VMS 5.003_05 Update.
713
714 Index: vms/perlvms.pod
715
716     VMS 5.003_05 Update.
717
718 Index: vms/vms.c
719
720     VMS 5.003_05 Update.
721
722 Index: vms/vmsish.h
723
724     VMS 5.003_05 Update.
725
726 ----------------
727 Version 5.003_04
728 ----------------
729
730 This patch was primarily to fix bugs and to clean up some of
731 the changes made in 5.003_03.  The details are described below.
732 A very brief summary is:
733
734 o Visible Changes to Core Functionality
735
736    -Allow and document permissions for FileHandle::new and
737     IO::File::new.
738    -glob in Safe compartment used to allow shell access; now
739     it's in the same category as `` and system().
740
741 o Configure and build enhancements
742    
743    -perl library name is again -lperl, not -lperl5 in some cases.
744    -Several hint files no longer set -g -DDEBUGGING by default.
745     Instead, they just turn off optimization, since that is
746     probably what was intended.
747    -Include OS/2 and Plan9 updates.
748
749 o Bug fixes
750
751    -SEGV with $_[0] and circular references fixed.
752    -Ilya's debugger patch.
753    -FAKE typeglobs fixed.
754    -truncate with file name now works.
755    -lval substr() no longer coredumps with refs
756    -lval substr now clears lexicals in re-entered scopes.
757    -core dump in caller() for signal handler for __DIE__.
758
759 o Specific Changes
760
761 Here are the specific file-by-file changes.
762     
763 # This is my patch perl5.003_04.pat to perl5.003_03
764 # The full description is below.
765 # Please execute the following commands before applying this patch.
766 # (You can feed this patch to 'sh' to do so.)
767 #  Andy Dougherty               <doughera@lafcol.lafayette.edu>
768
769 # Obsolete perl4 hint file.
770 rm -f hints/dnix.sh
771 # Obsolete
772 rm -f os2/notes
773
774 # We'll create a new test, but patch won't automatically make it
775 # executable.
776 touch t/op/gv.t
777 chmod +x t/op/gv.t
778
779 exit 0
780
781
782 This is patch perl5.003_04.pat to perl version 5.003_03.
783 This takes you from 5.003_03 to 5.003_04.
784
785 To apply this patch, run the above commands,
786 cd to your perl source directory and then type
787
788         patch -p1 -N < perl5.003_04.pat
789
790 The changes are described after each /^Index/ line below.  This is
791 designed so you can examine each change with a command such as
792
793         csplit -k perl5.003_04.pat '/^Index:/' '{99}'
794
795 Patch and enjoy,
796
797     Andy Dougherty              doughera@lafcol.lafayette.edu
798     Dept. of Physics
799     Lafayette College, Easton PA 18042
800
801
802 Index: Changes
803
804     Updated for 5.003_04.
805
806 Index: Configure
807
808     Change name of shared libperl library back to libperl.so.xxx,
809     so that a simple -lperl picks up either libperl.a or
810     libperl.so.xxx.
811
812     Check if $sh='' in case we've reloaded an old config.sh
813
814 Index: INSTALL
815
816     Change name of shared perl library to libperl, instead of
817     libperl5.
818
819     Add notes about fragility of shared libperl and the usefulness
820     of archlib to separate different binaries.
821
822 Index: MANIFEST
823
824     os2/notes removed
825
826     obsolete hints/dnix.sh removed.
827
828     New typeglob test.
829
830 Index: Makefile.SH
831
832     For building shared libperl, relocate whole rule to
833     inside the if test -f $osname/Makefile.SHs case.
834
835 Index: Porting/Glossary
836
837     Updated.
838
839 Index: README.os2
840
841     Updated.
842
843 Index: av.c
844
845     Subject: Re: SEGV with $_[0] and circular references
846
847     Subject: random cleanup
848
849     This patch removes a few obvious redundancies in the source.
850
851 Index: config_H
852
853     Updated.  Note new comments to make AIX happy.
854
855 Index: config_h.SH
856
857     Change /*#define../**/ into /*#define../ **/
858     to make IBM's xlc compiler shut up about nested comments.
859     The /*#define FOO /**/ is a perfectly legal un-nested comment, and
860     I wish IBM would fix it's blasted compiler instead.  In the meantime
861     we'll take mercy on the poor AIX user and get rid of the screenfulls
862     of stupid warning messages.  Thanks to Hallvard B Furuseth
863     <h.b.furuseth@usit.uio.no> for the fix.
864
865 Index: dump.c
866
867     This patch changes neither behavior nor performance.  However, it does
868     reduce code size and improve maintainability by combining some common
869     code in gv_fullname() and gv_efullname().
870
871 Index: ext/FileHandle/FileHandle.pm
872
873     This patch documents the behavior of FileHandle::{new,open} with
874     regard to open modes.  It also documents the exportation of Fcntl
875     constants.
876
877     This patch fixes a bug observed by Tom Christiansen: FileHandle::new
878     didn't allow for file permissions after the file mode.  Here's a patch.
879
880 Index: ext/IO/lib/IO/File.pm
881
882     This patch fixes a bug observed by Tom Christiansen: IO::File::new
883     didn't allow for file permissions after the file mode.  Here's a patch.
884
885     This patch documents the behavior of IO::File::{new,open} with
886     regard to open modes.  It also documents the exportation of Fcntl
887     constants.
888
889 Index: ext/Opcode/Opcode.pm
890
891     Subject: Re: glob in Safe compartment allows shell access
892
893     I've moved the glob op into the same opcode tag as backticks and system
894     and added a comment.
895
896 Index: gv.c
897
898     This patch changes neither behavior nor performance.  However, it does
899     reduce code size and improve maintainability by combining some common
900     code in gv_fullname() and gv_efullname().
901
902 Index: handy.h
903
904     Subject: Patch for LONG_MAX & co.
905
906     Sorry about adding yet another #ifdef forest, but hopefully this
907     should resolve the *_MAX issues permanently. It adds to the
908     previously defined PERL_LONG_MAX, PERL_LONG_MIN, and PERL_ULONG_MAX
909     symbols the complete set of
910     /PERL_U?(CHAR|SHORT|INT|LONG)_(MAX|MIN)/, and installs aliases to
911     those from /(I|U)(8|16|32|V)_(MAX|MIN)/ so that for any standard
912     Perl typedef, like I32 or UV, you can reference I32_MAX or UV_MIN,
913     and get appropriate figures. All references to LONG_(MIN|MAX) are
914     changed appropriately.
915
916     The .c changes have the side effect of making cast_uv properly use quad
917     limits if quads are in use, but longs aren't 64 bit. Hopefully this all
918     works, but I don't have any handy Crays to try it out on.
919
920     Add notes on perl's internal types, specifically Quad_t and IV.
921
922 Index: hints/hpux.sh
923
924     Remove the d_bsdpgrp hint.  The defaults should be ok.
925
926 Index: hints/irix_6_2.sh
927
928     Change optimize=-g to optimize=none to avoid pulling in -DDEBUGGING,
929     unless that's what the user really wants.
930
931 Index: hints/mpeix.sh
932
933     Change optimize=-g to optimize=none to avoid pulling in -DDEBUGGING,
934     unless that's what the user really wants.
935
936 Index: hints/os2.sh
937
938     Fixes for sh vs. bin_sh + cleanup.
939
940 Index: hints/ultrix_4.sh
941
942     Don't call optimize=-g, just call optimize=none.  The -g
943     pulls in -DDEBUGGING, which might not be wanted.
944
945 Index: lib/ExtUtils/MM_Unix.pm
946
947     .C$(obj_ext) removed under OS/2 - conflicts with .c$(obj_ext).
948
949 Index: lib/ExtUtils/xsubpp
950
951     Fix SCOPE?  (See pod/perlxs.pod).
952     Up version number to 1.938.
953
954 Index: lib/Test/Harness.pm
955
956     Add a return value to runtests - non-zero if all tests ran ok,
957     zero otherwise.
958
959 Index: lib/perl5db.pl
960
961     Ilya's debugger patch.
962         Undefined subroutine &Carp::longmess called at
963             /opt/perl5.003_03/lib/perl5db.pl line 1423.
964
965
966     Make perl5db compatible with the recent 'strict refs' enforcement
967     in %SIG.
968
969 Index: malloc.c
970
971     A patch to perl5.003_02/malloc to give a sensible error abort() message
972     in ANSI C, and to give it to stderr instead of stdout.
973
974     Use config_h's STRINGIFY macro instead of pre-ANSI "p".
975
976 Index: mg.c
977
978     Subject: FAKE typeglobs seriously busted (with patch)
979
980     Handling of fake typeglobs (scalars that are really globs
981     in disguise) is seriously busted since 5.002 (it wasn't
982     so in 5.001n).
983     The problem is that mg_get() on a glob calls gv_efullname()
984     which might coerce its first arg to a string.
985
986     Sub-critical patch to conceivably fix some %SIG problems. (Shared hash key
987     weren't being properly detected by some of the sig magic, but as shared
988     hash keys wouldn't normally be used in %SIG it's unlikely this is a
989     significant problem.)
990
991     This patch changes neither behavior nor performance.  However, it does
992     reduce code size and improve maintainability by combining some common
993     code in gv_fullname() and gv_efullname().
994
995 Index: myconfig
996
997     Update perlio-related variables.
998
999 Index: op.c
1000
1001     This patch changes neither behavior nor performance.  However, it does
1002     reduce code size and improve maintainability by combining some common
1003     code in gv_fullname() and gv_efullname().
1004
1005 Index: opcode.h
1006
1007     Updated.  See opcode.pl.
1008
1009 Index: opcode.pl
1010
1011     Subject: Re: truncate with file name does not work (with patch)
1012
1013     The prototype for truncate was changed so that perl won't die
1014     with C<use strict;> when the first arg is a bareword (filehandle).
1015     I think it was Tom (as in "tchrist") who brought this up.
1016
1017     Here's a patch that undoes the damage, makes it work with
1018     C<use strict;>, and adds to the testsuite.
1019
1020 Index: os2/Makefile.SHs
1021
1022     perllib vs. LIBPERL
1023
1024 Index: os2/diff.configure
1025
1026     Updated.
1027
1028 Index: os2/os2.c
1029
1030     SH_PATH_INI vs. BIN_SH
1031
1032 Index: os2/os2ish.h
1033
1034     SH_PATH_INI added (needed to redefine SH_PATH for binary
1035             distribution).
1036     SH_PATH is redefined.
1037
1038 Index: patchlevel.h
1039
1040     SUBVERSION 4.
1041
1042 Index: perl.h
1043
1044     Subject: Patch for LONG_MAX & co.
1045
1046     Sorry about adding yet another #ifdef forest, but hopefully this
1047     should resolve the *_MAX issues permanently. It adds to the
1048     previously defined PERL_LONG_MAX, PERL_LONG_MIN, and PERL_ULONG_MAX
1049     symbols the complete set of
1050     /PERL_U?(CHAR|SHORT|INT|LONG)_(MAX|MIN)/, and installs aliases to
1051     those from /(I|U)(8|16|32|V)_(MAX|MIN)/ so that for any standard
1052     Perl typedef, like I32 or UV, you can reference I32_MAX or UV_MIN,
1053     and get appropriate figures. All references to LONG_(MIN|MAX) are
1054     changed appropriately.
1055
1056     The .c changes have the side effect of making cast_uv properly use quad
1057     limits if quads are in use, but longs aren't 64 bit. Hopefully this all
1058     works, but I don't have any handy Crays to try it out on.
1059
1060     Add notes on perl's internal types, specifically Quad_t and IV.
1061
1062 Index: perlio.c
1063
1064     Removes an incorrect prototype for setlinebuf from
1065     perlio.c because it conflicts with the correct declaration in
1066     MachTen's stdio.h (and possibly other stdio's as well).
1067
1068     Secondly, the code in perlio.c is not handling the (!PERLIO_IS_STDIO &
1069     HAS_F[GS]ETPOS) case.  The patch fixes this omission (in a rather lumpen
1070     manner).  I don't think this should affect platforms which try to hack a
1071     different path through the #ifdef forest, but this assertion would benefit
1072     from testing...
1073
1074     Dominic Dunlop
1075
1076 Index: plan9/config.plan9
1077
1078     Updated.
1079
1080 Index: plan9/fndvers
1081
1082     Updated.
1083
1084 Index: plan9/mkfile
1085
1086     Updated.
1087
1088 Index: plan9/setup.rc
1089
1090     Updated.
1091
1092 Index: pod/perldiag.pod
1093
1094     Subject: lval substr() coredumps with refs (with patch)
1095
1096     substr() coredumps with a target that is a ref, when it is used in
1097     an lvalue context.
1098     The patch below corrects the problem by stringifying the reference
1099     first (and emitting a warning when appropriate).
1100
1101 Index: pod/perlxs.pod
1102
1103     document xsubpp SCOPE:
1104
1105 Index: pp.c
1106
1107     Subject: lval substr() fails to clear lexicals in re-entered scopes (with patch)
1108
1109     substr() in lvalue context interacts in buggy fashion with SVs that
1110     are !SvOK.  This manifests itself with lexicals that have a REFCNT of
1111     1, since these are merely "cleared in place" by setting SvOK_off.
1112
1113     Subject: lval substr() coredumps with refs (with patch)
1114
1115     substr() coredumps with a target that is a ref, when it is used in
1116     an lvalue context.
1117     The patch below corrects the problem by stringifying the reference
1118     first (and emitting a warning when appropriate).
1119
1120     Subject: Patch for LONG_MAX & co.
1121
1122 Index: pp_ctl.c
1123
1124     This patch changes neither behavior nor performance.  However, it does
1125     reduce code size and improve maintainability by combining some common
1126     code in gv_fullname() and gv_efullname().
1127
1128 Index: pp_hot.c
1129
1130     Subject: Patch for LONG_MAX & co.
1131
1132     This patch changes neither behavior nor performance.  However, it does
1133     reduce code size and improve maintainability by combining some common
1134     code in gv_fullname() and gv_efullname().
1135
1136 Index: pp_sys.c
1137
1138     This patch changes neither behavior nor performance.  However, it does
1139     reduce code size and improve maintainability by combining some common
1140     code in gv_fullname() and gv_efullname().
1141
1142 Index: proto.h
1143
1144     This patch changes neither behavior nor performance.  However, it does
1145     reduce code size and improve maintainability by combining some common
1146     code in gv_fullname() and gv_efullname().
1147
1148 Index: run.c
1149
1150     This patch changes neither behavior nor performance.  However, it does
1151     reduce code size and improve maintainability by combining some common
1152     code in gv_fullname() and gv_efullname().
1153
1154 Index: sv.c
1155
1156     Subject: random cleanup
1157
1158     This patch removes a few obvious redundancies in the source.
1159
1160     Subject: sv_setsv patch
1161
1162     This patch changes neither behavior nor performance.  However, it does
1163     reduce code size and improve maintainability by combining some common
1164     code in gv_fullname() and gv_efullname().
1165
1166     From: Chip Salzenberg <salzench@nielsenmedia.com>
1167     Subject: Track SVs for destruction when -DPURIFY
1168
1169     When checking for memory leaks, I compiled Perl with "-DPURIFY".
1170     Although that flag improves the leak checking, it also breaks
1171     destruction of global objects, because SVs aren't kept in captive
1172     arenas any more.
1173
1174     This patch rectifies the problem by providing an alternative
1175     method for keeping track of SVs when Perl is compiled for Purify.
1176     It has no effect on normal operation.
1177
1178
1179     Add comment about assert(len >=0) when len is unsigned anyway.
1180
1181 Index: t/io/fs.t
1182
1183     Subject: Re: truncate with file name does not work (with patch)
1184
1185     The prototype for truncate was changed so that perl won't die
1186     with C<use strict;> when the first arg is a bareword (filehandle).
1187     I think it was Tom (as in "tchrist") who brought this up.
1188
1189     Here's a patch that undoes the damage, makes it work with
1190     C<use strict;>, and adds to the testsuite.
1191
1192     The "not implemented" branch is missing a "\n".
1193
1194 Index: t/op/gv.t
1195
1196     Subject: FAKE typeglobs seriously busted (with patch)
1197
1198     Handling of fake typeglobs (scalars that are really globs
1199     in disguise) is seriously busted since 5.002 (it wasn't
1200     so in 5.001n).
1201
1202     The problem is that mg_get() on a glob calls gv_efullname()
1203     which might coerce its first arg to a string.
1204
1205 Index: t/op/substr.t
1206
1207
1208     Subject: lval substr() fails to clear lexicals in re-entered scopes (with patch)
1209
1210     substr() in lvalue context interacts in buggy fashion with SVs that
1211     are !SvOK.  This manifests itself with lexicals that have a REFCNT of
1212     1, since these are merely "cleared in place" by setting SvOK_off.
1213
1214     Subject: lval substr() coredumps with refs (with patch)
1215
1216     substr() coredumps with a target that is a ref, when it is used in
1217     an lvalue context.
1218     The patch below corrects the problem by stringifying the reference
1219     first (and emitting a warning when appropriate).
1220
1221 Index: toke.c
1222
1223     Subject: Re: truncate with file name does not work (with patch)
1224
1225     The prototype for truncate was changed so that perl won't die
1226     with C<use strict;> when the first arg is a bareword (filehandle).
1227     I think it was Tom (as in "tchrist") who brought this up.
1228
1229     Here's a patch that undoes the damage, makes it work with
1230     C<use strict;>, and adds to the testsuite.
1231
1232 Index: util.c
1233
1234     Subject: Re: Perl 5.003 dumps core executing caller() in signal handler for
1235             __DIE__ (with patch)
1236
1237     sv_2pv() might call croak() (which is not prepared to handle that
1238     when it calls sv_2pv(), itself).  Likewise for warn() (but under
1239     slightly more esoteric circumstances--mg_get() in sv_2pv() might
1240     trigger a call to warn()).
1241
1242
1243     Subject: Patch for LONG_MAX & co.
1244
1245     PERL_BADLANG is examined by default before issuing a warning during
1246             internationalization.
1247
1248 Index: utils/h2xs.PL
1249
1250     Make leading =head NAME item a paragraph so pod2man finds it.
1251
1252 Index: utils/perldoc.PL
1253
1254     Use col -x to filter out half-line feeds (ESC-9) from
1255     HP-UX nroff -man output.  (col -x isn't portable -- SunOS
1256     doesn't support the -x option.)
1257
1258 ----------------
1259 Version 5.003_03
1260 ----------------
1261
1262 Most of the changes in 5.003_03 are to make the build and installation
1263 process more robust.  The details are described below.  A very brief
1264 summary is:
1265
1266 o Visible Changes to Core Functionality
1267
1268    -Support for tied filehandles.
1269
1270 o Configure enhancements
1271
1272    -How to build and install a shared libperl.so is now documented
1273     and supported, though it's not the default for most platforms.
1274
1275 o Bug fixes
1276
1277    -Support bit operations on strings longer than 15 bytes.
1278
1279    -If a regex supplied to split() contains paranthesized subpatterns
1280     that can result in null matches, perl no longer coredumps.
1281
1282    -Fix problems with each() on tied hashes.
1283
1284    -Make h2ph architecture-independent by using Config at run-time
1285     rather than extraction time.
1286
1287 o Specific Changes
1288
1289 Here are the specific file-by-file changes.
1290
1291 # This is my patch perl5.003_03.pat to perl5.003_02
1292 # The full description is below.
1293 # Please execute the following commands before applying this patch.
1294 # (You can feed this patch to 'sh' to do so.)
1295 #  Andy Dougherty               <doughera@lafcol.lafayette.edu>
1296
1297 # Absorbed into Changes5.002
1298 rm -f Changes.Conf
1299
1300 # Not needed.
1301 rm -f ext/POSIX/mkposixman.pl
1302
1303 # Moved to README.os2.  I'm not sure why the README files are
1304 # here rather than in the appropriate subdirectories.
1305 rm -f os2/README
1306
1307 # Not needed.
1308 rm -f pod/Makefile.PL
1309
1310 # New test for bit ops.
1311 touch t/op/bob.t
1312
1313 # Patches that create new tests don't always make them executable.
1314 chmod +x t/*/*.t
1315
1316 # Create a new directory for Porting and Patching info.
1317 mkdir Porting
1318
1319 exit 0
1320
1321 This is patch perl5.003_03.pat to perl version 5.003_02.
1322 This takes you from 5.003_02 to 5.003_03.
1323
1324 To apply this patch, run the above commands,
1325 cd to your perl source directory and then type
1326
1327         patch -p1 -N < perl5.003_03.pat
1328
1329 The changes are described after each /^Index/ line below.  This is
1330 designed so you can examine each change with a command such as
1331
1332         csplit -k perl5.003_03.pat '/^Index:/' '{99}'
1333
1334 Patch and enjoy,
1335
1336     Andy Dougherty              doughera@lafcol.lafayette.edu
1337     Dept. of Physics
1338     Lafayette College, Easton PA 18042
1339
1340 Index: Changes
1341
1342         Include 5.003_03 change notes.
1343
1344         Move older change notes to separate files.
1345
1346 Index: Changes5.000
1347
1348         New file.  Changes from perl4.036 to 5.000.
1349
1350 Index: Changes5.001
1351
1352         New file.  Changes from 5.000 to 5.001
1353
1354 Index: Changes5.002
1355
1356         New file.  Changes from 5.001 to 5.002
1357
1358 Index: Changes5.003
1359
1360         New file.  Changes from 5.002 to 5.003
1361
1362 Index: Configure
1363
1364         Relaxed warning about ksh on exotic machines.
1365
1366         Changed usesafe to useopcode.
1367
1368         Add search for gzip and zip.
1369
1370         Look more carefully for $sh (the Bourne-ish shell).
1371         Use that info to set $startsh correctly.
1372
1373         Change prompts for PerlIO interface.  See INSTALL
1374         for how this is supposed to work.  The default is
1375         still the same as in 5.003_02, namely don't use
1376         any fancy new PerlIO stuff.
1377
1378         Don't look for sigvec() since we don't actually use it.
1379         (Plus, it used to print an alarming misleading message about
1380         race conditions.)
1381
1382         Look for stdio's _filbuf under the possible names of
1383         _filbuf, __filbuf, and _fill.
1384
1385         New $useshrplib variable to control whether we build a shared
1386         libperl.so.  The name of the library is in $libperl.
1387         Always install it in $installarchlib/CORE/$libperl.
1388
1389         Check for <sys/resource.h> and <sys/wait.h> for NetBSD.
1390
1391         Replace old $altmake stuff with newer autoconf-ish
1392         $make_set_make, which checks if $make sets $(MAKE).  Now you
1393         choose an alternate make with sh Configure -Dmake=gmake (or
1394         whatever).
1395
1396         Remove 'ln' for the list of essential commands.  Simulate
1397         it with 'cp' if necessary.
1398
1399         Change `logname` prompts to handle extra gratuitous spaces in
1400         Ultrix output.
1401
1402         Autodetect os2.
1403
1404         Fix silly bug in checking for fully-qualified names in /etc/hosts.
1405
1406         Generalize Gconvert tests.  Give correct and more useful
1407         error messages.
1408
1409         Use $obj_ext instead of literal '.o' in the dynaloader test.
1410
1411         Include appropriate header files in bcopy() and memcpy()
1412         tests.  Note whether memmove is available.
1413
1414         Check whether struct sigaction works (needed for Solaris 2.5
1415         with -Xc).
1416
1417         Include appropriate header files for randbits test.
1418
1419 Index: INSTALL
1420
1421         Add note about space requirements.
1422
1423         Update to match Configure changes (Opcode vs. Safe,
1424         useperlio, useshrplib, etc.)
1425
1426         Reorganize the structure of some of the hints.
1427
1428         Miscellaneous clarifications.
1429
1430 Index: MANIFEST
1431
1432         Updated.  5.003_02 introduced some massive patches, mostly
1433         due to spacing changes.  I didn't bother to sort them all out;
1434         I just started with 5.003's MANIEFST.
1435
1436 Index: Makefile.SH
1437
1438         Support the new simplified shared libperl mechanism.
1439
1440         Use new $make_set_make directive.
1441
1442         Remove redundant libperl Make variable.
1443
1444         Remove unnecessary MAB variable.
1445
1446         Remove dependency of minitest on lib/Config.pm, since it could
1447         well have been a failure of configpm that inspired testing
1448         miniperl in the first place!
1449
1450 Index: Porting/Glossary
1451
1452         New file describing all the config.sh variables.
1453         Eventually, I hope to fill this directory with other useful
1454         stuff.
1455
1456 Index: README.os2
1457
1458         Replace old README.os2 with more up-to-date os2/README.
1459
1460 Index: config_H
1461
1462         Updated to match current Configure and config_h.SH.
1463         Some rearrangement of parts has occurred due to new
1464         dependencies in the metaconfig units.
1465
1466 Index: config_h.SH
1467
1468         Updated to match current Configure and config_h.SH.
1469         Some rearrangement of parts has occurred due to new
1470         dependencies in the metaconfig units.
1471
1472         Include full descriptions of ARCHLIB, OLDARCHLIB, PRIVLIB,
1473         SITEARCH, and SITELIB.  Previous versions just included the
1474         ~-expanded names (with unhelpful descriptions).  No functionality
1475         is changed, but maybe it's a little better documented now.
1476
1477 Index: doio.c
1478
1479         Possibly Include <signal.h> and <unistd.h>
1480
1481 Index: doop.c
1482
1483         No longer prefer bcmp over memcmp when order doesn't matter.
1484
1485         Support bit operations on strings longer than 15 bytes.
1486
1487 Index: embed.h
1488
1489         Auto-generated.
1490
1491 Index: embed.pl
1492
1493         Expand warning at the top.
1494
1495 Index: ext/IO/IO.pm
1496
1497         Clean up docmentation installation errors.
1498
1499 Index: ext/IO/lib/IO/Seekable.pm
1500
1501         Clean up docmentation installation errors.
1502
1503 Index: ext/IO/lib/IO/Select.pm
1504
1505         Clean up docmentation installation errors.
1506
1507 Index: ext/Opcode/Opcode.xs
1508
1509         Add support for tied filehandles.
1510
1511 Index: ext/SDBM_File/sdbm/sdbm.h
1512
1513         Change the Mymalloc to match Perl_malloc in perl.h.
1514
1515 Index: ext/util/make_ext
1516
1517         Typo change.
1518         Get rid of unused altmake.
1519
1520 Index: global.sym
1521
1522         Fix problems with each() on tied hashes.
1523
1524 Index: handy.h
1525
1526         Change safe*alloc functions to have prototypes that
1527         match the system's malloc and free types.  That is, use
1528         Malloc_t instead of char *, and Free_t instead of void.
1529         This is necessary so . . .
1530
1531         Safefree cast matches type of free() whether it's perl's
1532         malloc/free or the system's malloc/free.
1533
1534 Index: hints/README.hints
1535
1536         Remove out-of-date info.
1537
1538         Document a bit about how hint files work.
1539
1540 Index: hints/aix.sh
1541
1542         qmaxmem hint doesn't apply to gcc.
1543
1544 Index: hints/dgux.sh
1545
1546         Configure will now automatically detect shared libperl stuff.
1547
1548 Index: hints/dynixptx.sh
1549
1550         Fix typo in comment.
1551         
1552         Configure will now automatically detect shared libperl stuff.
1553
1554 Index: hints/epix.sh
1555
1556         Use glibpth instead of libpth.  This allows Configure to
1557         add local directories, such as /opt/local/lib, etc.
1558
1559 Index: hints/irix_6_2.sh
1560
1561         Include some info on cc -n32 compile.
1562
1563 Index: hints/linux.sh
1564
1565         Configure now tests gcvt() more thoroughly.
1566
1567 Index: hints/machten_2.sh
1568
1569         Update where to find dld.
1570
1571 Index: hints/mips.sh
1572
1573         Use glibpth instead of libpth.
1574
1575 Index: hints/next_3.sh
1576
1577         Build up $mab dynamically.  Since $mab isn't used anywhere
1578         anymore, this is useless.  However, $mab was never used for
1579         next_3.sh anyway, so there's been no change in functionality.
1580
1581 Index: hints/next_4.sh
1582
1583         Get rid of extraneous isnext_4 variable.  Configure and
1584         Makefile.SH will use $osname and $osvers instead.
1585
1586         Build up $mab dynamically based on available architectures.
1587
1588         Absorb $mab into ccflags and ccdlflags.  I hope that will
1589         cover everything.  (Configure should automatically remove
1590         the -arch stuff from cppflags.)
1591
1592         Configure now knows next4 needs to use a shared libperl.5.so.
1593
1594         Allow users to use -Dprefix.
1595
1596 Index: hints/os2.sh
1597
1598         Try to update to reflect newer shared libperl stuff.
1599         I probably goofed :-).
1600
1601 Index: hints/sco.sh
1602
1603         Additional notes on using icc.
1604
1605         Additional flags for dynamic loading.
1606
1607 Index: hints/solaris_2.sh
1608
1609         Perl.h no longer prefers bcmp, so it's again ok if Configure
1610         finds them, since perl will prefer the mem* versions anyway.
1611
1612 Index: hints/sunos_4_0.sh
1613
1614         Don't include <unistd.h>
1615
1616 Index: hints/sunos_4_1.sh
1617
1618         Add brief note about GNU as and ld.
1619
1620         Don't include <unistd.h>
1621
1622         Add notes about WHOA THERE messages.
1623
1624 Index: hints/titanos.sh
1625
1626         Include sfio in libswanted.
1627
1628         Don't set libpth any more.
1629
1630 Index: hints/umips.sh
1631
1632         New hint file.
1633
1634 Index: hv.c
1635
1636         Use memcmp even in cases where ordering doesn't matter.
1637
1638         Fix problems with each() on tied hashes.
1639
1640 Index: installperl
1641
1642         Simplify installation of shared libperl.so.
1643
1644         Avoid reaching Command Failed!!! with /usr/bin/perl.
1645
1646 Index: lib/AutoSplit.pm
1647
1648         Clean up docmentation installation errors.
1649
1650 Index: lib/ExtUtils/MM_Unix.pm
1651
1652         Remove MAB references.
1653
1654         Use 'useshrplib' instead of 'd_shrplib'
1655
1656 Index: lib/ExtUtils/MakeMaker.pm
1657
1658         Remove mab references.
1659
1660 Index: lib/FindBin.pm
1661
1662         Clean up docmentation installation errors.
1663
1664 Index: lib/Symbol.pm
1665
1666         Put back in the BEGIN { require 5.002; }.  The version in
1667         5.003_02 wouldn't work in 5.002 anyway.  Further, the whole
1668         point of the construct is to catch 5.001m, so we can't use
1669         syntax introduced after 5.001m to do that.
1670
1671 Index: lib/Text/Wrap.pm
1672
1673         Remove double 'use strict'.
1674
1675 Index: lib/perl5db.pl
1676
1677         Add explicit '&' to avoid warnings under strict refs.
1678
1679 Index: lib/sigtrap.pm
1680
1681         Clean up docmentation installation errors.
1682
1683 Index: makedepend.SH
1684
1685         Use Configure's $sh and $make_set_make variables.
1686
1687 Index: mg.c
1688
1689         Include <unistd.h>
1690
1691         Use Safefree() macro instead of safefree() function with
1692         a (possibly) incorrect cast.  The whole point of the
1693         Safefree() macro is that it does the correct cast for you.
1694
1695
1696 Index: patchlevel.h
1697
1698         Change to SUBVERSION 3.
1699
1700 Index: perl.c
1701
1702         Include <unistd.h>
1703
1704 Index: perl.h
1705
1706         No longer prefer bcmp slightly for comparisons that don't care
1707         about ordering.
1708
1709         Rely on Configure setting SH_PATH.
1710
1711         Change the function name to Pause() instead of pause() to
1712         avoid potential prototype problems.  (This naming convention
1713         is similar to the Fwrite and Fflush macros.)
1714
1715         Fix problems with each() on tied hashes.
1716
1717         Work around crypt prototype problem on NeXT.
1718
1719 Index: perlio.c
1720
1721         Fixes to support non-std stdio.
1722
1723 Index: perlio.h
1724
1725         Try to document the various #defines a bit.  This is far from
1726         finished.
1727
1728         Remove a lot of trailing whitespace.  (It's of no consequence, but
1729         but I'm not going to redo the patch just to put back in the trailing
1730         whitespace either.)
1731
1732 Index: perlsdio.h
1733
1734         Fixes to support non-std stdio.
1735
1736 Index: perly.c
1737
1738         Restore use of Safefree() macro.
1739
1740 Index: perly.c.diff
1741
1742         Restore use of Safefree() macro.
1743
1744 Index: perly.h
1745
1746         Delete duplicate line.
1747
1748 Index: plan9/buildinfo
1749
1750         Update.
1751
1752 Index: pod/perlapio.pod
1753
1754         Clean up docmentation installation errors.
1755
1756 Index: pod/perlipc.pod
1757
1758         Fix typo.
1759
1760         Untaint port number.
1761
1762 Index: pod/perlmod.pod
1763
1764         Fix a minor nit regarding Exporter.
1765
1766 Index: pod/perlre.pod
1767
1768         Clean up docmentation installation errors.
1769
1770 Index: pod/perltie.pod
1771
1772         Add support for tied filehandles.
1773
1774 Index: pod/perltrap.pod
1775
1776         Clean up docmentation installation errors.
1777
1778 Index: pod/perlxstut.pod
1779
1780         Clean up docmentation installation errors.
1781
1782 Index: pod/pod2man.PL
1783
1784         Clean up docmentation installation errors.
1785
1786 Index: pp.c
1787
1788         Add support for tied filehandles.
1789
1790         If a regex supplied to split() contains paranthesized subpatterns
1791         that can result in null matches, perl coredumps.
1792
1793 Index: pp_hot.c
1794
1795         Use memcmp instead of bcmp even when we don't care about order.
1796
1797         Add support for tied filehandles.
1798
1799 Index: pp_sys.c
1800
1801         Include <unistd.h>, <sys/wait.h>, and <sys/resource.h>.
1802         (The latter two are especially for NetBSD.)
1803
1804         Don't assume sys/time.h and sys/select.h can't coexist.
1805
1806         Use Pause macro.
1807
1808 Index: proto.h
1809
1810         Fix safe*alloc and safefree prototypes.
1811
1812 Index: regexec.c
1813
1814         Use memcmp instead of bcmp even when we don't care about order.
1815
1816 Index: sv.c
1817
1818         Use memcmp instead of bcmp even when we don't care about order.
1819
1820 Index: t/lib/opcode.t
1821
1822         Add support for tied filehandles.
1823
1824 Index: t/op/bop.t
1825
1826         Support bit operations on strings longer than 15 bytes.
1827
1828 Index: t/op/misc.t
1829
1830         Add support for tied filehandles.
1831
1832 Index: t/op/split.t
1833
1834         If a regex supplied to split() contains paranthesized subpatterns
1835         that can result in null matches, perl coredumps.
1836
1837 Index: toke.c
1838
1839         Include <unistd.h>.
1840
1841         Use memcmp instead of bcmp even when we don't care about order.
1842
1843 Index: util.c
1844
1845         Include <unistd.h>.
1846
1847         Use correct types for safe*alloc and safefree functions.
1848
1849 Index: utils/h2ph.PL
1850
1851         Make h2ph architecture-independent by using Config at run-time
1852         rather than extraction time.
1853
1854 Index: writemain.SH
1855
1856         Remove unnecessary curlies.  (They are a leftover from
1857         an older auto_init mechanism.)
1858
1859 Index: x2p/Makefile.SH
1860
1861         Use Configure's $sh and $make_set_make.
1862
1863         Remove MAB stuff, since it's now in ccflags.
1864
1865         Keep 5.003's RCS info.
1866
1867 Index: x2p/a2p.h
1868
1869         Keep 5.003's RCS info.
1870
1871 Index: x2p/str.c
1872
1873         Use Configure's FILE_filbuf macro instead of a raw _filbuf.
1874
1875 ----------------
1876 Version 5.003_02
1877 ----------------
1878 o Visible Changes to Core Functionality
1879   - Redefining constant subs, or changing sub's prototype now give warnings.
1880   - Fixes for ++/-- of values close to max/min size of an integer 
1881   - Warning for un-qualified bareword as handler in $SIG{}. 
1882   - UNIVERSAL::isa can now be called as static method. 
1883
1884 o Changes in Core Internals
1885   - PerlIO abstraction added.
1886     Perl core and standard extensions no longer assume ANSI C's stdio is IO
1887     mechanism, Default Configure mode is still to use stdio via set of C macros.
1888     Alternate modes are to use stdio via one perlio.c module, or 
1889     to use sfio if available.
1890     
1891   - Several bug fixs from perl5-porters
1892       - Make sources non-ANSI C correct again.
1893       - SUPER in gv.c 
1894       - Last of shared-hash-key patches
1895       - eval '(0,1..3)'; # --> SegFault
1896       - coredumps after simple subsitutes.
1897       - Correction to UNIVERSAL::VERSION docs.
1898       - Fixed io_udp test.
1899       - Fixed another abuse of malloc'ed memory.
1900   - Enabled DEBUGING_MSTATS whenever perl's malloc() is used.
1901   - Reverted to default of not hiding perl's malloc (if used). 
1902
1903 o Changes in the Standard Library and Utilities
1904   - Fixed MakeMaker for static SDBM and builing in a link tree.
1905   - Upgraded to IO-1.09, and includes latest (still experimental) IO::Select. 
1906   - Documentation/test tweak to DB_File
1907   - h2xs upgrade to allow use C::Scan module 
1908
1909 o Changes in OS-specific and Build-time Support
1910   - Attempted to re-created 5.003_01's NeXT support with metaconfig units.
1911   - Updated MANIFEST 
1912   - make minitest now depends on lib/Config.pm, as some of tests require it. 
1913   - Included latest plan9 sub-directory
1914   - Applied OS/2 patches.
1915   - Typo patch for VMS.
1916
1917 ----------------
1918 Version 5.003_01
1919 ----------------
1920
1921 Version 5.003_01 contains bugfixes and additions accumulated since
1922 version 5.002_01, since the patch to version 5.003 was deliberately
1923 kept simple.  In addition to numerous small bugfixes in the core,
1924 library files, and documentation, this patch contains several
1925 significant revisions, summarized below:
1926
1927 o Visible Changes to Core Functionality
1928
1929   - A port to Plan9 has been started, and changes are integrated into
1930     the standard distribution.  As of this release, the Perl core
1931     and several common extensions are working.
1932
1933   - A set of basic methods in the UNIVERSAL class have been added to
1934     the Perl core.  Since UNIVERSAL is an implicit member of every
1935     class's @ISA, the methods can be called via any object.
1936
1937   - A mandatory warning has been added for 'declarations' of lexical
1938     variables using the "my" operator which mask an existing lexical
1939     variable declared in the same scope, making the previous variable
1940     inaccessible by its name.
1941
1942   - The "use" and "require" operators have been extended to allow
1943     checking of the required module's version.  The "use" operator
1944     can now be used for an immediate version check of Perl itself.
1945
1946   - A new "strict" pragma, "strict untie", has been added, which
1947     produces an error if a tied value is untied when other references
1948     exist to the internal object implementing the tie.
1949
1950   - Barewords used as associative array keys (i.e. when specifying
1951     an associative array element like $foo{__BAR} or on the left
1952     side of the => operator) may now begin with an underscore as
1953     well as an alphabetic character.
1954
1955   - Some of the configuration information previously produced by the
1956     -v switch has been moved to the -V switch, in order to keep -v
1957     output concise.
1958
1959 o Changes in Core Internals
1960
1961   - Symbol table and method lookups have been made faster.
1962
1963   - Perl subroutines which just return a constant value are now
1964     optimized at compile time into inline constants.
1965
1966   - Management of keys for associative arrays has been improved to
1967     conserve space when the same keys are reused frequently, and
1968     to pass true Perl values to tie functions, instead of stringified
1969     representations.
1970
1971   - Messages normally output to stderr may be directed to another
1972     stream when Perl is built.  This allows some platforms to
1973     present diagnostic output in a separate window from normal
1974     program results.
1975
1976   - A bug which caused suiperl to fail silently, albeit securely,
1977     in version 5.003 on some systems has been fixed.
1978
1979   - Management of Unix-style signal handlers via the %SIG associative
1980     array has been made safer.
1981
1982   - Several global C symbols have been renamed to eliminate collisions
1983     with system C header files or libraries on some platforms.
1984     Unfortunately, this means that dynamic extensions compiled under
1985     previous versions of Perl will need to be rebuilt for Perl
1986     5.003_01.  We're in the process of cleaning up Perl's C
1987     namespace to make it easier to link Perl with other binaries,
1988     so this will probably happen again between now and version 5.004.
1989     After that, we'll do our best to maintain binary compatibility
1990     between versions.
1991
1992   - An alternate allocation strategy has been added to Perl's
1993     optional private memory management routines.  This strategy,
1994     which may be selected when Perl is built, is designed to
1995     conserve memory in programs which allocate many small
1996     chunks of memory with sizes near a power of 2, as is often
1997     the case in Perl programs.
1998
1999   - Several memory leaks in the creation and destruction of
2000     multiple interpreters have been fixed.
2001
2002 o Changes in the Standard Library and Utilities
2003
2004   - The Opcode extension, which allows you to control a program's
2005     access to Perl operations, has been added to the standard
2006     distribution.  This extends the work begun in the original
2007     Safe extension, and subsumes it.  The Safe interface is still
2008     available.
2009
2010   - The IO extension, which provides a set of classes for object-
2011     oriented handling of common I/O tasks, has been added to the
2012     standard distribution.  The IO classes will form the basis
2013     for future development of Perl's I/O interface, and will
2014     subsume the FileHandle class in the near future.  The default
2015     class to which all Perl I/O handles belong is now IO::Handle,
2016     rather than FileHandle.
2017
2018   - The ExtUtils::Embed library module, which provides a set
2019     of utility function to help in embedding Perl in other
2020     applications, has been added to the standard distribution.
2021
2022   - The Fatal library module, which provides a simple interface
2023     for creating "do-or-die" equivalents of existing functions,
2024     has been added to the standard distribution.
2025
2026   - The FindBin library module, which determines the full path
2027     to the currently executing program, has been added to the
2028     standard distribution.
2029
2030   - The DB_File extension, and the Getopt::Long, Test::Harness,
2031     Text::Tabs, Text::Wrap, Time::Local and sigtrap library modules
2032     have been updated to the authors' latest versions.
2033
2034   - The Carp library module now considers the @ISA chain when
2035     determining the caller's package for inclusion in error messages.
2036
2037   - The h2xs, perlbug, and xsubpp utilities have been updated.
2038
2039   - The standard Perl debugger has been updated, and the information
2040     provided to the debugger when an XSUB is called has been improved,
2041     making it possible for alternate debuggers (such as Devel::DProf)
2042     to do a better job of tracking XSUB calls.
2043
2044   - The pod documentation formatting tools in the standard distribution
2045     can now handle characters in the input stream whose high bit is set.
2046
2047   - The cperl-mode EMACS editing mode has been updated.
2048
2049 o Changes in Documentation
2050
2051   - Typographic and formatting errors have been corrected in the pod
2052     documentation for the core and standard library files
2053
2054   - Explanations of several core operators have been improved
2055
2056   - The perldebug, perlembed, perlipc, perlsec, and perltrap documents
2057     extensively revised.
2058
2059 o Changes in OS-specific and Build-time Support
2060
2061   - Support for the NeXT platform has been extended through
2062     NeXTSTEP/OPENSTEP 4.0, and now includes the ability to create MABs.
2063
2064   - Support for OS/2 has been extended as well, and now includes
2065     options for building a.out binaries.
2066
2067   - Support for VMS has also been extended, incorporating improved
2068     processing of file specification strings, optional suppression of
2069     carriage control interpretation for record-structured files,
2070     improved support for the -S command line switch, a number of
2071     VMS-specific bugfixes, and significantly improved performance
2072     in line-oriented reading of files.
2073
2074   - Several hints files have been added or updated: aux.sh (updated),
2075     convexos.sh (updated), irix_4.sh (updated), irix_5.sh (updated),
2076     irix_6_2.sh (updated), next_3.sh (updated), next_3_2.sh (new),
2077     next_3_3.sh (new), next_4.sh (new), os2/sh (updated),
2078     sco.sh (updated), and solaris_2.sh (updated).
2079
2080   - The test driver for the regression tests now reports when a set
2081     of tests have been skipped (presumable because the operation
2082     they're designed to test isn't supported on the current system).