This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Change to subversion 6.
[perl5.git] / Changes
CommitLineData
e4a57b87 1Please note: This file provides a summary of significant changes
bde20468
PP
2between versions and sub-versions of Perl, not necessarily a complete
3list of each modification. If you'd like more detailed information,
e4a57b87
PP
4please consult the comments in the patches on which the relevant
5release of Perl is based. (Patches can be found on any CPAN
6site, in the .../src/5.0 directory for full version releases,
7or in the .../src/5/0/unsupported directory for sub-version
8releases.)
9
760ac839 10----------------
bde20468
PP
11Version 5.003_05
12----------------
13
14This patch was primarily to fix bugs and to clean up some of
15the remaining issues from in 5.003_04. The details are described below.
16A very brief summary is:
17
18o 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
31o 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
48o 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
57o Specific Changes
58
59Here 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.
69touch t/io/read.t
70chmod +x t/io/read.t
71
72exit 0
73
74
75This is patch perl5.003_05.pat to perl version 5.003_04.
76This takes you from 5.003_04 to 5.003_05.
77
78To apply this patch, run the above commands,
79cd to your perl source directory and then type
80
81 patch -p1 -N < perl5.003_05.pat
82
83The changes are described after each /^Index/ line below. This is
84designed so you can examine each change with a command such as
85
86 csplit -k perl5.003_05.pat '/^Index:/' '{99}'
87
88Patch and enjoy,
89
90 Andy Dougherty doughera@lafcol.lafayette.edu
91 Dept. of Physics
92 Lafayette College, Easton PA 18042
93
94Index: Changes
95
96 Updated for 5.003_05.
97
98Index: 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
126Index: 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
137Index: 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
145Index: Makefile.SH
146
147 A new heredoc tag in Makefile.SH needs to be quoted.
148
149 shrpenv stuff moved to Configure.
150
151Index: Porting/Glossary
152
153 Updated to match Configure.
154
155Index: README.vms
156
157 VMS 5.003_05 Update.
158
159Index: 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
167Index: config_H
168
169 Updated to match newest config_h.SH.
170
171Index: 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
178Index: emacs/cperl-mode.el
179
180 From: Ilya Zakharevich <ilya@math.ohio-state.edu>
181 Subject: Newer CPerl-mode
182
183Index: ext/DB_File/DB_File.pm
184
185 Update to DB_File 1.03.
186
187Index: ext/DB_File/DB_File.xs
188
189 Update to DB_File 1.03.
190
191Index: 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
199Index: 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
206Index: ext/ODBM_File/ODBM_File.xs
207
208 Attempt to correct for "Bad free" in Ultrix and HPUX versions of
209 odbm.
210
211Index: ext/ODBM_File/hints/hpux.pl
212
213 Try to work around "bad free" in dbmclose().
214
215Index: ext/ODBM_File/hints/ultrix.pl
216
217 Try to work around "bad free" in dbmclose().
218
219Index: 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
228Index: handy.h
229
230 Make a little more C++-friendly for IBM's CSET++ compiler.
231
232Index: hints/convexos.sh
233
234 Remove [gs]etpgrp workaround. Configure & perl.h should handle
235 this now.
236
237Index: 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
244Index: hints/sco.sh
245
246 Turn off optimization for stock cc. This appears to
247 prevent miniperl core dumps.
248
249Index: 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
254Index: hints/sunos_4_1.sh
255
256 Describe solution for the __lib_version problem with acc on
257 SunOS.
258
259Index: 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
280Index: 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
292Index: 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
304Index: 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
318Index: lib/ExtUtils/Install.pm
319
320 Updated to MakeMaker-5.38.
321
322 Fix for VMS utime.
323
324Index: lib/ExtUtils/Liblist.pm
325
326 Updated to MakeMaker-5.38.
327
328Index: lib/ExtUtils/MM_Unix.pm
329 Updated to MakeMaker-5.38.
330
331Index: 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
337Index: lib/ExtUtils/Manifest.pm
338
339 Updated to MakeMaker-5.38.
340
341Index: lib/ExtUtils/Mkbootstrap.pm
342
343 Updated to MakeMaker-5.38.
344
345Index: lib/ExtUtils/Mksymlists.pm
346
347 Updated to MakeMaker-5.38.
348
349Index: 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
358Index: 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
367Index: 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
372Index: 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
382Index: 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
387Index: 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
410Index: 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
418Index: nostdio.h
419
420 Add _STDIO_LOADED (VMS) to list of guard symbols.
421
422Index: op.c
423
424 From: Gurusamy Sarathy <gsar@engin.umich.edu>
425 Subject: Re: \ ( @array ) busted for lexical @array (once more)
426
427Index: patchlevel.h
428
429 Change to subversion 5.
430
431Index: perl.c
432
433 Make floating point constants Locale-friendly.
434
435Index: 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
446Index: perlio.c
447
448 Eliminate potential "signed vs. unsigned" warning
449
450 Add PerlIO_reopen and PerlIO_cgetname functions.
451
452Index: 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
464Index: 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
470Index: 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
476Index: pod/perlfunc.pod
477
478 Document correct C<use POSIX ":wait_h";> usage.
479
480 Add notes about POSIX [gs]etpgrp.
481
482Index: pod/perlipc.pod
483
484 Document correct C<use POSIX ":wait_h";> usage.
485
486Index: pod/perlref.pod
487
488 From: Gurusamy Sarathy <gsar@engin.umich.edu>
489 Subject: Re: \ ( @array ) busted for lexical @array (once more)
490
491Index: 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
499Index: 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
514Index: 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
521Index: 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
536Index: 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
551Index: 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
563Index: 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
579Index: t/io/read.t
580
581 Clear any buffer space exposed by by read().
582 This is almost certainly a bug-fix.
583
584Index: t/lib/db-btree.t
585
586 Update to DB_File 1.03.
587
588Index: t/lib/db-hash.t
589
590 Update to DB_File 1.03.
591
592Index: t/lib/db-recno.t
593
594 Update to DB_File 1.03.
595
596Index: 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
611Index: 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
616Index: 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
624Index: 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
630Index: t/op/ref.t
631
632 From: Gurusamy Sarathy <gsar@engin.umich.edu>
633 Subject: Re: \ ( @array ) busted for lexical @array (once more)
634
635Index: 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
644Index: 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
649Index: util.c
650
651 One last LONG & co. fix (yet another cut'n'paste error) and a few
652 minor cleanups. Nothing crucial.
653
654Index: 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
678Index: utils/perlbug.PL
679
680 Fix typo $Config{'has_sockets'} ought to be $Config{'d_socket'};
681
682Index: 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
690Index: vms/Makefile
691
692 VMS 5.003_05 Update.
693
694Index: vms/config.vms
695
696 VMS 5.003_05 Update.
697
698Index: vms/descrip.mms
699
700 VMS 5.003_05 Update.
701
702Index: vms/ext/Stdio/Stdio.pm
703
704 VMS 5.003_05 Update.
705
706Index: vms/ext/filespec.t
707
708 VMS 5.003_05 Update.
709
710Index: vms/gen_shrfls.pl
711
712 VMS 5.003_05 Update.
713
714Index: vms/perlvms.pod
715
716 VMS 5.003_05 Update.
717
718Index: vms/vms.c
719
720 VMS 5.003_05 Update.
721
722Index: vms/vmsish.h
723
724 VMS 5.003_05 Update.
725
726----------------
395b538b
PP
727Version 5.003_04
728----------------
729
730This patch was primarily to fix bugs and to clean up some of
731the changes made in 5.003_03. The details are described below.
732A very brief summary is:
733
734o 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
741o 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
749o 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
759o Specific Changes
760
761Here 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.
770rm -f hints/dnix.sh
771# Obsolete
772rm -f os2/notes
773
774# We'll create a new test, but patch won't automatically make it
775# executable.
776touch t/op/gv.t
777chmod +x t/op/gv.t
778
779exit 0
780
781
782This is patch perl5.003_04.pat to perl version 5.003_03.
783This takes you from 5.003_03 to 5.003_04.
784
785To apply this patch, run the above commands,
786cd to your perl source directory and then type
787
788 patch -p1 -N < perl5.003_04.pat
789
790The changes are described after each /^Index/ line below. This is
791designed so you can examine each change with a command such as
792
793 csplit -k perl5.003_04.pat '/^Index:/' '{99}'
794
795Patch and enjoy,
796
797 Andy Dougherty doughera@lafcol.lafayette.edu
798 Dept. of Physics
799 Lafayette College, Easton PA 18042
800
801
802Index: Changes
803
804 Updated for 5.003_04.
805
806Index: 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
814Index: 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
822Index: MANIFEST
823
824 os2/notes removed
825
826 obsolete hints/dnix.sh removed.
827
828 New typeglob test.
829
830Index: Makefile.SH
831
832 For building shared libperl, relocate whole rule to
833 inside the if test -f $osname/Makefile.SHs case.
834
835Index: Porting/Glossary
836
837 Updated.
838
839Index: README.os2
840
841 Updated.
842
843Index: 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
851Index: config_H
852
853 Updated. Note new comments to make AIX happy.
854
855Index: 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
865Index: 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
871Index: 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
880Index: 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
889Index: 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
896Index: 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
902Index: 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
922Index: hints/hpux.sh
923
924 Remove the d_bsdpgrp hint. The defaults should be ok.
925
926Index: 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
931Index: 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
936Index: hints/os2.sh
937
938 Fixes for sh vs. bin_sh + cleanup.
939
940Index: 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
945Index: lib/ExtUtils/MM_Unix.pm
946
947 .C$(obj_ext) removed under OS/2 - conflicts with .c$(obj_ext).
948
949Index: lib/ExtUtils/xsubpp
950
951 Fix SCOPE? (See pod/perlxs.pod).
952 Up version number to 1.938.
953
954Index: lib/Test/Harness.pm
955
956 Add a return value to runtests - non-zero if all tests ran ok,
957 zero otherwise.
958
959Index: 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
969Index: 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
976Index: 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
995Index: myconfig
996
997 Update perlio-related variables.
998
999Index: 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
1005Index: opcode.h
1006
1007 Updated. See opcode.pl.
1008
1009Index: 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
1020Index: os2/Makefile.SHs
1021
1022 perllib vs. LIBPERL
1023
1024Index: os2/diff.configure
1025
1026 Updated.
1027
1028Index: os2/os2.c
1029
1030 SH_PATH_INI vs. BIN_SH
1031
1032Index: os2/os2ish.h
1033
1034 SH_PATH_INI added (needed to redefine SH_PATH for binary
1035 distribution).
1036 SH_PATH is redefined.
1037
1038Index: patchlevel.h
1039
1040 SUBVERSION 4.
1041
1042Index: 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
1062Index: 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
1076Index: plan9/config.plan9
1077
1078 Updated.
1079
1080Index: plan9/fndvers
1081
1082 Updated.
1083
1084Index: plan9/mkfile
1085
1086 Updated.
1087
1088Index: plan9/setup.rc
1089
1090 Updated.
1091
1092Index: 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
1101Index: pod/perlxs.pod
1102
1103 document xsubpp SCOPE:
1104
1105Index: 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
1122Index: 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
1128Index: 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
1136Index: 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
1142Index: 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
1148Index: 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
1154Index: 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
1181Index: 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
1194Index: 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
1205Index: 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
1221Index: 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
1232Index: 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
1248Index: utils/h2xs.PL
1249
1250 Make leading =head NAME item a paragraph so pod2man finds it.
1251
1252Index: 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----------------
e2cc8666
PP
1259Version 5.003_03
1260----------------
1261
1262Most of the changes in 5.003_03 are to make the build and installation
1263process more robust. The details are described below. A very brief
1264summary is:
1265
1266o Visible Changes to Core Functionality
1267
1268 -Support for tied filehandles.
1269
1270o 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
1275o 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
1287o Specific Changes
1288
1289Here 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
1298rm -f Changes.Conf
1299
1300# Not needed.
1301rm -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.
1305rm -f os2/README
1306
1307# Not needed.
1308rm -f pod/Makefile.PL
1309
1310# New test for bit ops.
1311touch t/op/bob.t
1312
1313# Patches that create new tests don't always make them executable.
1314chmod +x t/*/*.t
1315
1316# Create a new directory for Porting and Patching info.
1317mkdir Porting
1318
1319exit 0
1320
1321This is patch perl5.003_03.pat to perl version 5.003_02.
1322This takes you from 5.003_02 to 5.003_03.
1323
1324To apply this patch, run the above commands,
1325cd to your perl source directory and then type
1326
1327 patch -p1 -N < perl5.003_03.pat
1328
1329The changes are described after each /^Index/ line below. This is
1330designed so you can examine each change with a command such as
1331
1332 csplit -k perl5.003_03.pat '/^Index:/' '{99}'
1333
1334Patch and enjoy,
1335
1336 Andy Dougherty doughera@lafcol.lafayette.edu
1337 Dept. of Physics
1338 Lafayette College, Easton PA 18042
1339
1340Index: Changes
1341
1342 Include 5.003_03 change notes.
1343
1344 Move older change notes to separate files.
1345
1346Index: Changes5.000
1347
1348 New file. Changes from perl4.036 to 5.000.
1349
1350Index: Changes5.001
1351
1352 New file. Changes from 5.000 to 5.001
1353
1354Index: Changes5.002
1355
1356 New file. Changes from 5.001 to 5.002
1357
1358Index: Changes5.003
1359
1360 New file. Changes from 5.002 to 5.003
1361
1362Index: 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
1419Index: 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
1430Index: 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
1436Index: 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
1450Index: 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
1456Index: README.os2
1457
1458 Replace old README.os2 with more up-to-date os2/README.
1459
1460Index: 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
1466Index: 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
1477Index: doio.c
1478
1479 Possibly Include <signal.h> and <unistd.h>
1480
1481Index: 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
1487Index: embed.h
1488
1489 Auto-generated.
1490
1491Index: embed.pl
1492
1493 Expand warning at the top.
1494
1495Index: ext/IO/IO.pm
1496
1497 Clean up docmentation installation errors.
1498
1499Index: ext/IO/lib/IO/Seekable.pm
1500
1501 Clean up docmentation installation errors.
1502
1503Index: ext/IO/lib/IO/Select.pm
1504
1505 Clean up docmentation installation errors.
1506
1507Index: ext/Opcode/Opcode.xs
1508
1509 Add support for tied filehandles.
1510
1511Index: ext/SDBM_File/sdbm/sdbm.h
1512
1513 Change the Mymalloc to match Perl_malloc in perl.h.
1514
1515Index: ext/util/make_ext
1516
1517 Typo change.
1518 Get rid of unused altmake.
1519
1520Index: global.sym
1521
1522 Fix problems with each() on tied hashes.
1523
1524Index: 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
1534Index: hints/README.hints
1535
1536 Remove out-of-date info.
1537
1538 Document a bit about how hint files work.
1539
1540Index: hints/aix.sh
1541
1542 qmaxmem hint doesn't apply to gcc.
1543
1544Index: hints/dgux.sh
1545
1546 Configure will now automatically detect shared libperl stuff.
1547
1548Index: hints/dynixptx.sh
1549
1550 Fix typo in comment.
1551
1552 Configure will now automatically detect shared libperl stuff.
1553
1554Index: 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
1559Index: hints/irix_6_2.sh
1560
1561 Include some info on cc -n32 compile.
1562
1563Index: hints/linux.sh
1564
1565 Configure now tests gcvt() more thoroughly.
1566
1567Index: hints/machten_2.sh
1568
1569 Update where to find dld.
1570
1571Index: hints/mips.sh
1572
1573 Use glibpth instead of libpth.
1574
1575Index: 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
1581Index: 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
1596Index: hints/os2.sh
1597
1598 Try to update to reflect newer shared libperl stuff.
1599 I probably goofed :-).
1600
1601Index: hints/sco.sh
1602
1603 Additional notes on using icc.
1604
1605 Additional flags for dynamic loading.
1606
1607Index: 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
1612Index: hints/sunos_4_0.sh
1613
1614 Don't include <unistd.h>
1615
1616Index: 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
1624Index: hints/titanos.sh
1625
1626 Include sfio in libswanted.
1627
1628 Don't set libpth any more.
1629
1630Index: hints/umips.sh
1631
1632 New hint file.
1633
1634Index: hv.c
1635
1636 Use memcmp even in cases where ordering doesn't matter.
1637
1638 Fix problems with each() on tied hashes.
1639
1640Index: installperl
1641
1642 Simplify installation of shared libperl.so.
1643
1644 Avoid reaching Command Failed!!! with /usr/bin/perl.
1645
1646Index: lib/AutoSplit.pm
1647
1648 Clean up docmentation installation errors.
1649
1650Index: lib/ExtUtils/MM_Unix.pm
1651
1652 Remove MAB references.
1653
1654 Use 'useshrplib' instead of 'd_shrplib'
1655
1656Index: lib/ExtUtils/MakeMaker.pm
1657
1658 Remove mab references.
1659
1660Index: lib/FindBin.pm
1661
1662 Clean up docmentation installation errors.
1663
1664Index: 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
1671Index: lib/Text/Wrap.pm
1672
1673 Remove double 'use strict'.
1674
1675Index: lib/perl5db.pl
1676
1677 Add explicit '&' to avoid warnings under strict refs.
1678
1679Index: lib/sigtrap.pm
1680
1681 Clean up docmentation installation errors.
1682
1683Index: makedepend.SH
1684
1685 Use Configure's $sh and $make_set_make variables.
1686
1687Index: 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
1696Index: patchlevel.h
1697
1698 Change to SUBVERSION 3.
1699
1700Index: perl.c
1701
1702 Include <unistd.h>
1703
1704Index: 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
1719Index: perlio.c
1720
1721 Fixes to support non-std stdio.
1722
1723Index: 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
1732Index: perlsdio.h
1733
1734 Fixes to support non-std stdio.
1735
1736Index: perly.c
1737
1738 Restore use of Safefree() macro.
1739
1740Index: perly.c.diff
1741
1742 Restore use of Safefree() macro.
1743
1744Index: perly.h
1745
1746 Delete duplicate line.
1747
1748Index: plan9/buildinfo
1749
1750 Update.
1751
1752Index: pod/perlapio.pod
1753
1754 Clean up docmentation installation errors.
1755
1756Index: pod/perlipc.pod
1757
1758 Fix typo.
1759
1760 Untaint port number.
1761
1762Index: pod/perlmod.pod
1763
1764 Fix a minor nit regarding Exporter.
1765
1766Index: pod/perlre.pod
1767
1768 Clean up docmentation installation errors.
1769
1770Index: pod/perltie.pod
1771
1772 Add support for tied filehandles.
1773
1774Index: pod/perltrap.pod
1775
1776 Clean up docmentation installation errors.
1777
1778Index: pod/perlxstut.pod
1779
1780 Clean up docmentation installation errors.
1781
1782Index: pod/pod2man.PL
1783
1784 Clean up docmentation installation errors.
1785
1786Index: 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
1793Index: 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
1799Index: 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
1808Index: proto.h
1809
1810 Fix safe*alloc and safefree prototypes.
1811
1812Index: regexec.c
1813
1814 Use memcmp instead of bcmp even when we don't care about order.
1815
1816Index: sv.c
1817
1818 Use memcmp instead of bcmp even when we don't care about order.
1819
1820Index: t/lib/opcode.t
1821
1822 Add support for tied filehandles.
1823
1824Index: t/op/bop.t
1825
1826 Support bit operations on strings longer than 15 bytes.
1827
1828Index: t/op/misc.t
1829
1830 Add support for tied filehandles.
1831
1832Index: 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
1837Index: toke.c
1838
1839 Include <unistd.h>.
1840
1841 Use memcmp instead of bcmp even when we don't care about order.
1842
1843Index: util.c
1844
1845 Include <unistd.h>.
1846
1847 Use correct types for safe*alloc and safefree functions.
1848
1849Index: utils/h2ph.PL
1850
1851 Make h2ph architecture-independent by using Config at run-time
1852 rather than extraction time.
1853
1854Index: writemain.SH
1855
1856 Remove unnecessary curlies. (They are a leftover from
1857 an older auto_init mechanism.)
1858
1859Index: 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
1867Index: x2p/a2p.h
1868
1869 Keep 5.003's RCS info.
1870
1871Index: x2p/str.c
1872
1873 Use Configure's FILE_filbuf macro instead of a raw _filbuf.
1874
1875----------------
760ac839
LW
1876Version 5.003_02
1877----------------
1878o 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
1884o 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
1903o 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
1909o 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.
e4a57b87
PP
1916
1917----------------
1918Version 5.003_01
1919----------------
1920
1921Version 5.003_01 contains bugfixes and additions accumulated since
1922version 5.002_01, since the patch to version 5.003 was deliberately
1923kept simple. In addition to numerous small bugfixes in the core,
1924library files, and documentation, this patch contains several
1925significant revisions, summarized below:
1926
1927o 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
1959o 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
2002o 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
2049o 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
2059o 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).