perl 5.003_04: ext/IO/lib/IO/File.pm
[p5sagit/p5-mst-13.2.git] / Changes
CommitLineData
e4a57b87 1Please note: This file provides a summary of significant changes
2between versions and sub-versions of Perl, not a complete list
3of each modification. If you'd like more detailed information,
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----------------
395b538b 11Version 5.003_04
12----------------
13
14This patch was primarily to fix bugs and to clean up some of
15the changes made in 5.003_03. The details are described below.
16A very brief summary is:
17
18o Visible Changes to Core Functionality
19
20 -Allow and document permissions for FileHandle::new and
21 IO::File::new.
22 -glob in Safe compartment used to allow shell access; now
23 it's in the same category as `` and system().
24
25o Configure and build enhancements
26
27 -perl library name is again -lperl, not -lperl5 in some cases.
28 -Several hint files no longer set -g -DDEBUGGING by default.
29 Instead, they just turn off optimization, since that is
30 probably what was intended.
31 -Include OS/2 and Plan9 updates.
32
33o Bug fixes
34
35 -SEGV with $_[0] and circular references fixed.
36 -Ilya's debugger patch.
37 -FAKE typeglobs fixed.
38 -truncate with file name now works.
39 -lval substr() no longer coredumps with refs
40 -lval substr now clears lexicals in re-entered scopes.
41 -core dump in caller() for signal handler for __DIE__.
42
43o Specific Changes
44
45Here are the specific file-by-file changes.
46
47# This is my patch perl5.003_04.pat to perl5.003_03
48# The full description is below.
49# Please execute the following commands before applying this patch.
50# (You can feed this patch to 'sh' to do so.)
51# Andy Dougherty <doughera@lafcol.lafayette.edu>
52
53# Obsolete perl4 hint file.
54rm -f hints/dnix.sh
55# Obsolete
56rm -f os2/notes
57
58# We'll create a new test, but patch won't automatically make it
59# executable.
60touch t/op/gv.t
61chmod +x t/op/gv.t
62
63exit 0
64
65
66This is patch perl5.003_04.pat to perl version 5.003_03.
67This takes you from 5.003_03 to 5.003_04.
68
69To apply this patch, run the above commands,
70cd to your perl source directory and then type
71
72 patch -p1 -N < perl5.003_04.pat
73
74The changes are described after each /^Index/ line below. This is
75designed so you can examine each change with a command such as
76
77 csplit -k perl5.003_04.pat '/^Index:/' '{99}'
78
79Patch and enjoy,
80
81 Andy Dougherty doughera@lafcol.lafayette.edu
82 Dept. of Physics
83 Lafayette College, Easton PA 18042
84
85
86Index: Changes
87
88 Updated for 5.003_04.
89
90Index: Configure
91
92 Change name of shared libperl library back to libperl.so.xxx,
93 so that a simple -lperl picks up either libperl.a or
94 libperl.so.xxx.
95
96 Check if $sh='' in case we've reloaded an old config.sh
97
98Index: INSTALL
99
100 Change name of shared perl library to libperl, instead of
101 libperl5.
102
103 Add notes about fragility of shared libperl and the usefulness
104 of archlib to separate different binaries.
105
106Index: MANIFEST
107
108 os2/notes removed
109
110 obsolete hints/dnix.sh removed.
111
112 New typeglob test.
113
114Index: Makefile.SH
115
116 For building shared libperl, relocate whole rule to
117 inside the if test -f $osname/Makefile.SHs case.
118
119Index: Porting/Glossary
120
121 Updated.
122
123Index: README.os2
124
125 Updated.
126
127Index: av.c
128
129 Subject: Re: SEGV with $_[0] and circular references
130
131 Subject: random cleanup
132
133 This patch removes a few obvious redundancies in the source.
134
135Index: config_H
136
137 Updated. Note new comments to make AIX happy.
138
139Index: config_h.SH
140
141 Change /*#define../**/ into /*#define../ **/
142 to make IBM's xlc compiler shut up about nested comments.
143 The /*#define FOO /**/ is a perfectly legal un-nested comment, and
144 I wish IBM would fix it's blasted compiler instead. In the meantime
145 we'll take mercy on the poor AIX user and get rid of the screenfulls
146 of stupid warning messages. Thanks to Hallvard B Furuseth
147 <h.b.furuseth@usit.uio.no> for the fix.
148
149Index: dump.c
150
151 This patch changes neither behavior nor performance. However, it does
152 reduce code size and improve maintainability by combining some common
153 code in gv_fullname() and gv_efullname().
154
155Index: ext/FileHandle/FileHandle.pm
156
157 This patch documents the behavior of FileHandle::{new,open} with
158 regard to open modes. It also documents the exportation of Fcntl
159 constants.
160
161 This patch fixes a bug observed by Tom Christiansen: FileHandle::new
162 didn't allow for file permissions after the file mode. Here's a patch.
163
164Index: ext/IO/lib/IO/File.pm
165
166 This patch fixes a bug observed by Tom Christiansen: IO::File::new
167 didn't allow for file permissions after the file mode. Here's a patch.
168
169 This patch documents the behavior of IO::File::{new,open} with
170 regard to open modes. It also documents the exportation of Fcntl
171 constants.
172
173Index: ext/Opcode/Opcode.pm
174
175 Subject: Re: glob in Safe compartment allows shell access
176
177 I've moved the glob op into the same opcode tag as backticks and system
178 and added a comment.
179
180Index: gv.c
181
182 This patch changes neither behavior nor performance. However, it does
183 reduce code size and improve maintainability by combining some common
184 code in gv_fullname() and gv_efullname().
185
186Index: handy.h
187
188 Subject: Patch for LONG_MAX & co.
189
190 Sorry about adding yet another #ifdef forest, but hopefully this
191 should resolve the *_MAX issues permanently. It adds to the
192 previously defined PERL_LONG_MAX, PERL_LONG_MIN, and PERL_ULONG_MAX
193 symbols the complete set of
194 /PERL_U?(CHAR|SHORT|INT|LONG)_(MAX|MIN)/, and installs aliases to
195 those from /(I|U)(8|16|32|V)_(MAX|MIN)/ so that for any standard
196 Perl typedef, like I32 or UV, you can reference I32_MAX or UV_MIN,
197 and get appropriate figures. All references to LONG_(MIN|MAX) are
198 changed appropriately.
199
200 The .c changes have the side effect of making cast_uv properly use quad
201 limits if quads are in use, but longs aren't 64 bit. Hopefully this all
202 works, but I don't have any handy Crays to try it out on.
203
204 Add notes on perl's internal types, specifically Quad_t and IV.
205
206Index: hints/hpux.sh
207
208 Remove the d_bsdpgrp hint. The defaults should be ok.
209
210Index: hints/irix_6_2.sh
211
212 Change optimize=-g to optimize=none to avoid pulling in -DDEBUGGING,
213 unless that's what the user really wants.
214
215Index: hints/mpeix.sh
216
217 Change optimize=-g to optimize=none to avoid pulling in -DDEBUGGING,
218 unless that's what the user really wants.
219
220Index: hints/os2.sh
221
222 Fixes for sh vs. bin_sh + cleanup.
223
224Index: hints/ultrix_4.sh
225
226 Don't call optimize=-g, just call optimize=none. The -g
227 pulls in -DDEBUGGING, which might not be wanted.
228
229Index: lib/ExtUtils/MM_Unix.pm
230
231 .C$(obj_ext) removed under OS/2 - conflicts with .c$(obj_ext).
232
233Index: lib/ExtUtils/xsubpp
234
235 Fix SCOPE? (See pod/perlxs.pod).
236 Up version number to 1.938.
237
238Index: lib/Test/Harness.pm
239
240 Add a return value to runtests - non-zero if all tests ran ok,
241 zero otherwise.
242
243Index: lib/perl5db.pl
244
245 Ilya's debugger patch.
246 Undefined subroutine &Carp::longmess called at
247 /opt/perl5.003_03/lib/perl5db.pl line 1423.
248
249
250 Make perl5db compatible with the recent 'strict refs' enforcement
251 in %SIG.
252
253Index: malloc.c
254
255 A patch to perl5.003_02/malloc to give a sensible error abort() message
256 in ANSI C, and to give it to stderr instead of stdout.
257
258 Use config_h's STRINGIFY macro instead of pre-ANSI "p".
259
260Index: mg.c
261
262 Subject: FAKE typeglobs seriously busted (with patch)
263
264 Handling of fake typeglobs (scalars that are really globs
265 in disguise) is seriously busted since 5.002 (it wasn't
266 so in 5.001n).
267 The problem is that mg_get() on a glob calls gv_efullname()
268 which might coerce its first arg to a string.
269
270 Sub-critical patch to conceivably fix some %SIG problems. (Shared hash key
271 weren't being properly detected by some of the sig magic, but as shared
272 hash keys wouldn't normally be used in %SIG it's unlikely this is a
273 significant problem.)
274
275 This patch changes neither behavior nor performance. However, it does
276 reduce code size and improve maintainability by combining some common
277 code in gv_fullname() and gv_efullname().
278
279Index: myconfig
280
281 Update perlio-related variables.
282
283Index: op.c
284
285 This patch changes neither behavior nor performance. However, it does
286 reduce code size and improve maintainability by combining some common
287 code in gv_fullname() and gv_efullname().
288
289Index: opcode.h
290
291 Updated. See opcode.pl.
292
293Index: opcode.pl
294
295 Subject: Re: truncate with file name does not work (with patch)
296
297 The prototype for truncate was changed so that perl won't die
298 with C<use strict;> when the first arg is a bareword (filehandle).
299 I think it was Tom (as in "tchrist") who brought this up.
300
301 Here's a patch that undoes the damage, makes it work with
302 C<use strict;>, and adds to the testsuite.
303
304Index: os2/Makefile.SHs
305
306 perllib vs. LIBPERL
307
308Index: os2/diff.configure
309
310 Updated.
311
312Index: os2/os2.c
313
314 SH_PATH_INI vs. BIN_SH
315
316Index: os2/os2ish.h
317
318 SH_PATH_INI added (needed to redefine SH_PATH for binary
319 distribution).
320 SH_PATH is redefined.
321
322Index: patchlevel.h
323
324 SUBVERSION 4.
325
326Index: perl.h
327
328 Subject: Patch for LONG_MAX & co.
329
330 Sorry about adding yet another #ifdef forest, but hopefully this
331 should resolve the *_MAX issues permanently. It adds to the
332 previously defined PERL_LONG_MAX, PERL_LONG_MIN, and PERL_ULONG_MAX
333 symbols the complete set of
334 /PERL_U?(CHAR|SHORT|INT|LONG)_(MAX|MIN)/, and installs aliases to
335 those from /(I|U)(8|16|32|V)_(MAX|MIN)/ so that for any standard
336 Perl typedef, like I32 or UV, you can reference I32_MAX or UV_MIN,
337 and get appropriate figures. All references to LONG_(MIN|MAX) are
338 changed appropriately.
339
340 The .c changes have the side effect of making cast_uv properly use quad
341 limits if quads are in use, but longs aren't 64 bit. Hopefully this all
342 works, but I don't have any handy Crays to try it out on.
343
344 Add notes on perl's internal types, specifically Quad_t and IV.
345
346Index: perlio.c
347
348 Removes an incorrect prototype for setlinebuf from
349 perlio.c because it conflicts with the correct declaration in
350 MachTen's stdio.h (and possibly other stdio's as well).
351
352 Secondly, the code in perlio.c is not handling the (!PERLIO_IS_STDIO &
353 HAS_F[GS]ETPOS) case. The patch fixes this omission (in a rather lumpen
354 manner). I don't think this should affect platforms which try to hack a
355 different path through the #ifdef forest, but this assertion would benefit
356 from testing...
357
358 Dominic Dunlop
359
360Index: plan9/config.plan9
361
362 Updated.
363
364Index: plan9/fndvers
365
366 Updated.
367
368Index: plan9/mkfile
369
370 Updated.
371
372Index: plan9/setup.rc
373
374 Updated.
375
376Index: pod/perldiag.pod
377
378 Subject: lval substr() coredumps with refs (with patch)
379
380 substr() coredumps with a target that is a ref, when it is used in
381 an lvalue context.
382 The patch below corrects the problem by stringifying the reference
383 first (and emitting a warning when appropriate).
384
385Index: pod/perlxs.pod
386
387 document xsubpp SCOPE:
388
389Index: pp.c
390
391 Subject: lval substr() fails to clear lexicals in re-entered scopes (with patch)
392
393 substr() in lvalue context interacts in buggy fashion with SVs that
394 are !SvOK. This manifests itself with lexicals that have a REFCNT of
395 1, since these are merely "cleared in place" by setting SvOK_off.
396
397 Subject: lval substr() coredumps with refs (with patch)
398
399 substr() coredumps with a target that is a ref, when it is used in
400 an lvalue context.
401 The patch below corrects the problem by stringifying the reference
402 first (and emitting a warning when appropriate).
403
404 Subject: Patch for LONG_MAX & co.
405
406Index: pp_ctl.c
407
408 This patch changes neither behavior nor performance. However, it does
409 reduce code size and improve maintainability by combining some common
410 code in gv_fullname() and gv_efullname().
411
412Index: pp_hot.c
413
414 Subject: Patch for LONG_MAX & co.
415
416 This patch changes neither behavior nor performance. However, it does
417 reduce code size and improve maintainability by combining some common
418 code in gv_fullname() and gv_efullname().
419
420Index: pp_sys.c
421
422 This patch changes neither behavior nor performance. However, it does
423 reduce code size and improve maintainability by combining some common
424 code in gv_fullname() and gv_efullname().
425
426Index: proto.h
427
428 This patch changes neither behavior nor performance. However, it does
429 reduce code size and improve maintainability by combining some common
430 code in gv_fullname() and gv_efullname().
431
432Index: run.c
433
434 This patch changes neither behavior nor performance. However, it does
435 reduce code size and improve maintainability by combining some common
436 code in gv_fullname() and gv_efullname().
437
438Index: sv.c
439
440 Subject: random cleanup
441
442 This patch removes a few obvious redundancies in the source.
443
444 Subject: sv_setsv patch
445
446 This patch changes neither behavior nor performance. However, it does
447 reduce code size and improve maintainability by combining some common
448 code in gv_fullname() and gv_efullname().
449
450 From: Chip Salzenberg <salzench@nielsenmedia.com>
451 Subject: Track SVs for destruction when -DPURIFY
452
453 When checking for memory leaks, I compiled Perl with "-DPURIFY".
454 Although that flag improves the leak checking, it also breaks
455 destruction of global objects, because SVs aren't kept in captive
456 arenas any more.
457
458 This patch rectifies the problem by providing an alternative
459 method for keeping track of SVs when Perl is compiled for Purify.
460 It has no effect on normal operation.
461
462
463 Add comment about assert(len >=0) when len is unsigned anyway.
464
465Index: t/io/fs.t
466
467 Subject: Re: truncate with file name does not work (with patch)
468
469 The prototype for truncate was changed so that perl won't die
470 with C<use strict;> when the first arg is a bareword (filehandle).
471 I think it was Tom (as in "tchrist") who brought this up.
472
473 Here's a patch that undoes the damage, makes it work with
474 C<use strict;>, and adds to the testsuite.
475
476 The "not implemented" branch is missing a "\n".
477
478Index: t/op/gv.t
479
480 Subject: FAKE typeglobs seriously busted (with patch)
481
482 Handling of fake typeglobs (scalars that are really globs
483 in disguise) is seriously busted since 5.002 (it wasn't
484 so in 5.001n).
485
486 The problem is that mg_get() on a glob calls gv_efullname()
487 which might coerce its first arg to a string.
488
489Index: t/op/substr.t
490
491
492 Subject: lval substr() fails to clear lexicals in re-entered scopes (with patch)
493
494 substr() in lvalue context interacts in buggy fashion with SVs that
495 are !SvOK. This manifests itself with lexicals that have a REFCNT of
496 1, since these are merely "cleared in place" by setting SvOK_off.
497
498 Subject: lval substr() coredumps with refs (with patch)
499
500 substr() coredumps with a target that is a ref, when it is used in
501 an lvalue context.
502 The patch below corrects the problem by stringifying the reference
503 first (and emitting a warning when appropriate).
504
505Index: toke.c
506
507 Subject: Re: truncate with file name does not work (with patch)
508
509 The prototype for truncate was changed so that perl won't die
510 with C<use strict;> when the first arg is a bareword (filehandle).
511 I think it was Tom (as in "tchrist") who brought this up.
512
513 Here's a patch that undoes the damage, makes it work with
514 C<use strict;>, and adds to the testsuite.
515
516Index: util.c
517
518 Subject: Re: Perl 5.003 dumps core executing caller() in signal handler for
519 __DIE__ (with patch)
520
521 sv_2pv() might call croak() (which is not prepared to handle that
522 when it calls sv_2pv(), itself). Likewise for warn() (but under
523 slightly more esoteric circumstances--mg_get() in sv_2pv() might
524 trigger a call to warn()).
525
526
527 Subject: Patch for LONG_MAX & co.
528
529 PERL_BADLANG is examined by default before issuing a warning during
530 internationalization.
531
532Index: utils/h2xs.PL
533
534 Make leading =head NAME item a paragraph so pod2man finds it.
535
536Index: utils/perldoc.PL
537
538 Use col -x to filter out half-line feeds (ESC-9) from
539 HP-UX nroff -man output. (col -x isn't portable -- SunOS
540 doesn't support the -x option.)
541
542----------------
e2cc8666 543Version 5.003_03
544----------------
545
546Most of the changes in 5.003_03 are to make the build and installation
547process more robust. The details are described below. A very brief
548summary is:
549
550o Visible Changes to Core Functionality
551
552 -Support for tied filehandles.
553
554o Configure enhancements
555
556 -How to build and install a shared libperl.so is now documented
557 and supported, though it's not the default for most platforms.
558
559o Bug fixes
560
561 -Support bit operations on strings longer than 15 bytes.
562
563 -If a regex supplied to split() contains paranthesized subpatterns
564 that can result in null matches, perl no longer coredumps.
565
566 -Fix problems with each() on tied hashes.
567
568 -Make h2ph architecture-independent by using Config at run-time
569 rather than extraction time.
570
571o Specific Changes
572
573Here are the specific file-by-file changes.
574
575# This is my patch perl5.003_03.pat to perl5.003_02
576# The full description is below.
577# Please execute the following commands before applying this patch.
578# (You can feed this patch to 'sh' to do so.)
579# Andy Dougherty <doughera@lafcol.lafayette.edu>
580
581# Absorbed into Changes5.002
582rm -f Changes.Conf
583
584# Not needed.
585rm -f ext/POSIX/mkposixman.pl
586
587# Moved to README.os2. I'm not sure why the README files are
588# here rather than in the appropriate subdirectories.
589rm -f os2/README
590
591# Not needed.
592rm -f pod/Makefile.PL
593
594# New test for bit ops.
595touch t/op/bob.t
596
597# Patches that create new tests don't always make them executable.
598chmod +x t/*/*.t
599
600# Create a new directory for Porting and Patching info.
601mkdir Porting
602
603exit 0
604
605This is patch perl5.003_03.pat to perl version 5.003_02.
606This takes you from 5.003_02 to 5.003_03.
607
608To apply this patch, run the above commands,
609cd to your perl source directory and then type
610
611 patch -p1 -N < perl5.003_03.pat
612
613The changes are described after each /^Index/ line below. This is
614designed so you can examine each change with a command such as
615
616 csplit -k perl5.003_03.pat '/^Index:/' '{99}'
617
618Patch and enjoy,
619
620 Andy Dougherty doughera@lafcol.lafayette.edu
621 Dept. of Physics
622 Lafayette College, Easton PA 18042
623
624Index: Changes
625
626 Include 5.003_03 change notes.
627
628 Move older change notes to separate files.
629
630Index: Changes5.000
631
632 New file. Changes from perl4.036 to 5.000.
633
634Index: Changes5.001
635
636 New file. Changes from 5.000 to 5.001
637
638Index: Changes5.002
639
640 New file. Changes from 5.001 to 5.002
641
642Index: Changes5.003
643
644 New file. Changes from 5.002 to 5.003
645
646Index: Configure
647
648 Relaxed warning about ksh on exotic machines.
649
650 Changed usesafe to useopcode.
651
652 Add search for gzip and zip.
653
654 Look more carefully for $sh (the Bourne-ish shell).
655 Use that info to set $startsh correctly.
656
657 Change prompts for PerlIO interface. See INSTALL
658 for how this is supposed to work. The default is
659 still the same as in 5.003_02, namely don't use
660 any fancy new PerlIO stuff.
661
662 Don't look for sigvec() since we don't actually use it.
663 (Plus, it used to print an alarming misleading message about
664 race conditions.)
665
666 Look for stdio's _filbuf under the possible names of
667 _filbuf, __filbuf, and _fill.
668
669 New $useshrplib variable to control whether we build a shared
670 libperl.so. The name of the library is in $libperl.
671 Always install it in $installarchlib/CORE/$libperl.
672
673 Check for <sys/resource.h> and <sys/wait.h> for NetBSD.
674
675 Replace old $altmake stuff with newer autoconf-ish
676 $make_set_make, which checks if $make sets $(MAKE). Now you
677 choose an alternate make with sh Configure -Dmake=gmake (or
678 whatever).
679
680 Remove 'ln' for the list of essential commands. Simulate
681 it with 'cp' if necessary.
682
683 Change `logname` prompts to handle extra gratuitous spaces in
684 Ultrix output.
685
686 Autodetect os2.
687
688 Fix silly bug in checking for fully-qualified names in /etc/hosts.
689
690 Generalize Gconvert tests. Give correct and more useful
691 error messages.
692
693 Use $obj_ext instead of literal '.o' in the dynaloader test.
694
695 Include appropriate header files in bcopy() and memcpy()
696 tests. Note whether memmove is available.
697
698 Check whether struct sigaction works (needed for Solaris 2.5
699 with -Xc).
700
701 Include appropriate header files for randbits test.
702
703Index: INSTALL
704
705 Add note about space requirements.
706
707 Update to match Configure changes (Opcode vs. Safe,
708 useperlio, useshrplib, etc.)
709
710 Reorganize the structure of some of the hints.
711
712 Miscellaneous clarifications.
713
714Index: MANIFEST
715
716 Updated. 5.003_02 introduced some massive patches, mostly
717 due to spacing changes. I didn't bother to sort them all out;
718 I just started with 5.003's MANIEFST.
719
720Index: Makefile.SH
721
722 Support the new simplified shared libperl mechanism.
723
724 Use new $make_set_make directive.
725
726 Remove redundant libperl Make variable.
727
728 Remove unnecessary MAB variable.
729
730 Remove dependency of minitest on lib/Config.pm, since it could
731 well have been a failure of configpm that inspired testing
732 miniperl in the first place!
733
734Index: Porting/Glossary
735
736 New file describing all the config.sh variables.
737 Eventually, I hope to fill this directory with other useful
738 stuff.
739
740Index: README.os2
741
742 Replace old README.os2 with more up-to-date os2/README.
743
744Index: config_H
745
746 Updated to match current Configure and config_h.SH.
747 Some rearrangement of parts has occurred due to new
748 dependencies in the metaconfig units.
749
750Index: config_h.SH
751
752 Updated to match current Configure and config_h.SH.
753 Some rearrangement of parts has occurred due to new
754 dependencies in the metaconfig units.
755
756 Include full descriptions of ARCHLIB, OLDARCHLIB, PRIVLIB,
757 SITEARCH, and SITELIB. Previous versions just included the
758 ~-expanded names (with unhelpful descriptions). No functionality
759 is changed, but maybe it's a little better documented now.
760
761Index: doio.c
762
763 Possibly Include <signal.h> and <unistd.h>
764
765Index: doop.c
766
767 No longer prefer bcmp over memcmp when order doesn't matter.
768
769 Support bit operations on strings longer than 15 bytes.
770
771Index: embed.h
772
773 Auto-generated.
774
775Index: embed.pl
776
777 Expand warning at the top.
778
779Index: ext/IO/IO.pm
780
781 Clean up docmentation installation errors.
782
783Index: ext/IO/lib/IO/Seekable.pm
784
785 Clean up docmentation installation errors.
786
787Index: ext/IO/lib/IO/Select.pm
788
789 Clean up docmentation installation errors.
790
791Index: ext/Opcode/Opcode.xs
792
793 Add support for tied filehandles.
794
795Index: ext/SDBM_File/sdbm/sdbm.h
796
797 Change the Mymalloc to match Perl_malloc in perl.h.
798
799Index: ext/util/make_ext
800
801 Typo change.
802 Get rid of unused altmake.
803
804Index: global.sym
805
806 Fix problems with each() on tied hashes.
807
808Index: handy.h
809
810 Change safe*alloc functions to have prototypes that
811 match the system's malloc and free types. That is, use
812 Malloc_t instead of char *, and Free_t instead of void.
813 This is necessary so . . .
814
815 Safefree cast matches type of free() whether it's perl's
816 malloc/free or the system's malloc/free.
817
818Index: hints/README.hints
819
820 Remove out-of-date info.
821
822 Document a bit about how hint files work.
823
824Index: hints/aix.sh
825
826 qmaxmem hint doesn't apply to gcc.
827
828Index: hints/dgux.sh
829
830 Configure will now automatically detect shared libperl stuff.
831
832Index: hints/dynixptx.sh
833
834 Fix typo in comment.
835
836 Configure will now automatically detect shared libperl stuff.
837
838Index: hints/epix.sh
839
840 Use glibpth instead of libpth. This allows Configure to
841 add local directories, such as /opt/local/lib, etc.
842
843Index: hints/irix_6_2.sh
844
845 Include some info on cc -n32 compile.
846
847Index: hints/linux.sh
848
849 Configure now tests gcvt() more thoroughly.
850
851Index: hints/machten_2.sh
852
853 Update where to find dld.
854
855Index: hints/mips.sh
856
857 Use glibpth instead of libpth.
858
859Index: hints/next_3.sh
860
861 Build up $mab dynamically. Since $mab isn't used anywhere
862 anymore, this is useless. However, $mab was never used for
863 next_3.sh anyway, so there's been no change in functionality.
864
865Index: hints/next_4.sh
866
867 Get rid of extraneous isnext_4 variable. Configure and
868 Makefile.SH will use $osname and $osvers instead.
869
870 Build up $mab dynamically based on available architectures.
871
872 Absorb $mab into ccflags and ccdlflags. I hope that will
873 cover everything. (Configure should automatically remove
874 the -arch stuff from cppflags.)
875
876 Configure now knows next4 needs to use a shared libperl.5.so.
877
878 Allow users to use -Dprefix.
879
880Index: hints/os2.sh
881
882 Try to update to reflect newer shared libperl stuff.
883 I probably goofed :-).
884
885Index: hints/sco.sh
886
887 Additional notes on using icc.
888
889 Additional flags for dynamic loading.
890
891Index: hints/solaris_2.sh
892
893 Perl.h no longer prefers bcmp, so it's again ok if Configure
894 finds them, since perl will prefer the mem* versions anyway.
895
896Index: hints/sunos_4_0.sh
897
898 Don't include <unistd.h>
899
900Index: hints/sunos_4_1.sh
901
902 Add brief note about GNU as and ld.
903
904 Don't include <unistd.h>
905
906 Add notes about WHOA THERE messages.
907
908Index: hints/titanos.sh
909
910 Include sfio in libswanted.
911
912 Don't set libpth any more.
913
914Index: hints/umips.sh
915
916 New hint file.
917
918Index: hv.c
919
920 Use memcmp even in cases where ordering doesn't matter.
921
922 Fix problems with each() on tied hashes.
923
924Index: installperl
925
926 Simplify installation of shared libperl.so.
927
928 Avoid reaching Command Failed!!! with /usr/bin/perl.
929
930Index: lib/AutoSplit.pm
931
932 Clean up docmentation installation errors.
933
934Index: lib/ExtUtils/MM_Unix.pm
935
936 Remove MAB references.
937
938 Use 'useshrplib' instead of 'd_shrplib'
939
940Index: lib/ExtUtils/MakeMaker.pm
941
942 Remove mab references.
943
944Index: lib/FindBin.pm
945
946 Clean up docmentation installation errors.
947
948Index: lib/Symbol.pm
949
950 Put back in the BEGIN { require 5.002; }. The version in
951 5.003_02 wouldn't work in 5.002 anyway. Further, the whole
952 point of the construct is to catch 5.001m, so we can't use
953 syntax introduced after 5.001m to do that.
954
955Index: lib/Text/Wrap.pm
956
957 Remove double 'use strict'.
958
959Index: lib/perl5db.pl
960
961 Add explicit '&' to avoid warnings under strict refs.
962
963Index: lib/sigtrap.pm
964
965 Clean up docmentation installation errors.
966
967Index: makedepend.SH
968
969 Use Configure's $sh and $make_set_make variables.
970
971Index: mg.c
972
973 Include <unistd.h>
974
975 Use Safefree() macro instead of safefree() function with
976 a (possibly) incorrect cast. The whole point of the
977 Safefree() macro is that it does the correct cast for you.
978
979
980Index: patchlevel.h
981
982 Change to SUBVERSION 3.
983
984Index: perl.c
985
986 Include <unistd.h>
987
988Index: perl.h
989
990 No longer prefer bcmp slightly for comparisons that don't care
991 about ordering.
992
993 Rely on Configure setting SH_PATH.
994
995 Change the function name to Pause() instead of pause() to
996 avoid potential prototype problems. (This naming convention
997 is similar to the Fwrite and Fflush macros.)
998
999 Fix problems with each() on tied hashes.
1000
1001 Work around crypt prototype problem on NeXT.
1002
1003Index: perlio.c
1004
1005 Fixes to support non-std stdio.
1006
1007Index: perlio.h
1008
1009 Try to document the various #defines a bit. This is far from
1010 finished.
1011
1012 Remove a lot of trailing whitespace. (It's of no consequence, but
1013 but I'm not going to redo the patch just to put back in the trailing
1014 whitespace either.)
1015
1016Index: perlsdio.h
1017
1018 Fixes to support non-std stdio.
1019
1020Index: perly.c
1021
1022 Restore use of Safefree() macro.
1023
1024Index: perly.c.diff
1025
1026 Restore use of Safefree() macro.
1027
1028Index: perly.h
1029
1030 Delete duplicate line.
1031
1032Index: plan9/buildinfo
1033
1034 Update.
1035
1036Index: pod/perlapio.pod
1037
1038 Clean up docmentation installation errors.
1039
1040Index: pod/perlipc.pod
1041
1042 Fix typo.
1043
1044 Untaint port number.
1045
1046Index: pod/perlmod.pod
1047
1048 Fix a minor nit regarding Exporter.
1049
1050Index: pod/perlre.pod
1051
1052 Clean up docmentation installation errors.
1053
1054Index: pod/perltie.pod
1055
1056 Add support for tied filehandles.
1057
1058Index: pod/perltrap.pod
1059
1060 Clean up docmentation installation errors.
1061
1062Index: pod/perlxstut.pod
1063
1064 Clean up docmentation installation errors.
1065
1066Index: pod/pod2man.PL
1067
1068 Clean up docmentation installation errors.
1069
1070Index: pp.c
1071
1072 Add support for tied filehandles.
1073
1074 If a regex supplied to split() contains paranthesized subpatterns
1075 that can result in null matches, perl coredumps.
1076
1077Index: pp_hot.c
1078
1079 Use memcmp instead of bcmp even when we don't care about order.
1080
1081 Add support for tied filehandles.
1082
1083Index: pp_sys.c
1084
1085 Include <unistd.h>, <sys/wait.h>, and <sys/resource.h>.
1086 (The latter two are especially for NetBSD.)
1087
1088 Don't assume sys/time.h and sys/select.h can't coexist.
1089
1090 Use Pause macro.
1091
1092Index: proto.h
1093
1094 Fix safe*alloc and safefree prototypes.
1095
1096Index: regexec.c
1097
1098 Use memcmp instead of bcmp even when we don't care about order.
1099
1100Index: sv.c
1101
1102 Use memcmp instead of bcmp even when we don't care about order.
1103
1104Index: t/lib/opcode.t
1105
1106 Add support for tied filehandles.
1107
1108Index: t/op/bop.t
1109
1110 Support bit operations on strings longer than 15 bytes.
1111
1112Index: t/op/misc.t
1113
1114 Add support for tied filehandles.
1115
1116Index: t/op/split.t
1117
1118 If a regex supplied to split() contains paranthesized subpatterns
1119 that can result in null matches, perl coredumps.
1120
1121Index: toke.c
1122
1123 Include <unistd.h>.
1124
1125 Use memcmp instead of bcmp even when we don't care about order.
1126
1127Index: util.c
1128
1129 Include <unistd.h>.
1130
1131 Use correct types for safe*alloc and safefree functions.
1132
1133Index: utils/h2ph.PL
1134
1135 Make h2ph architecture-independent by using Config at run-time
1136 rather than extraction time.
1137
1138Index: writemain.SH
1139
1140 Remove unnecessary curlies. (They are a leftover from
1141 an older auto_init mechanism.)
1142
1143Index: x2p/Makefile.SH
1144
1145 Use Configure's $sh and $make_set_make.
1146
1147 Remove MAB stuff, since it's now in ccflags.
1148
1149 Keep 5.003's RCS info.
1150
1151Index: x2p/a2p.h
1152
1153 Keep 5.003's RCS info.
1154
1155Index: x2p/str.c
1156
1157 Use Configure's FILE_filbuf macro instead of a raw _filbuf.
1158
1159----------------
760ac839 1160Version 5.003_02
1161----------------
1162o Visible Changes to Core Functionality
1163 - Redefining constant subs, or changing sub's prototype now give warnings.
1164 - Fixes for ++/-- of values close to max/min size of an integer
1165 - Warning for un-qualified bareword as handler in $SIG{}.
1166 - UNIVERSAL::isa can now be called as static method.
1167
1168o Changes in Core Internals
1169 - PerlIO abstraction added.
1170 Perl core and standard extensions no longer assume ANSI C's stdio is IO
1171 mechanism, Default Configure mode is still to use stdio via set of C macros.
1172 Alternate modes are to use stdio via one perlio.c module, or
1173 to use sfio if available.
1174
1175 - Several bug fixs from perl5-porters
1176 - Make sources non-ANSI C correct again.
1177 - SUPER in gv.c
1178 - Last of shared-hash-key patches
1179 - eval '(0,1..3)'; # --> SegFault
1180 - coredumps after simple subsitutes.
1181 - Correction to UNIVERSAL::VERSION docs.
1182 - Fixed io_udp test.
1183 - Fixed another abuse of malloc'ed memory.
1184 - Enabled DEBUGING_MSTATS whenever perl's malloc() is used.
1185 - Reverted to default of not hiding perl's malloc (if used).
1186
1187o Changes in the Standard Library and Utilities
1188 - Fixed MakeMaker for static SDBM and builing in a link tree.
1189 - Upgraded to IO-1.09, and includes latest (still experimental) IO::Select.
1190 - Documentation/test tweak to DB_File
1191 - h2xs upgrade to allow use C::Scan module
1192
1193o Changes in OS-specific and Build-time Support
1194 - Attempted to re-created 5.003_01's NeXT support with metaconfig units.
1195 - Updated MANIFEST
1196 - make minitest now depends on lib/Config.pm, as some of tests require it.
1197 - Included latest plan9 sub-directory
1198 - Applied OS/2 patches.
1199 - Typo patch for VMS.
e4a57b87 1200
1201----------------
1202Version 5.003_01
1203----------------
1204
1205Version 5.003_01 contains bugfixes and additions accumulated since
1206version 5.002_01, since the patch to version 5.003 was deliberately
1207kept simple. In addition to numerous small bugfixes in the core,
1208library files, and documentation, this patch contains several
1209significant revisions, summarized below:
1210
1211o Visible Changes to Core Functionality
1212
1213 - A port to Plan9 has been started, and changes are integrated into
1214 the standard distribution. As of this release, the Perl core
1215 and several common extensions are working.
1216
1217 - A set of basic methods in the UNIVERSAL class have been added to
1218 the Perl core. Since UNIVERSAL is an implicit member of every
1219 class's @ISA, the methods can be called via any object.
1220
1221 - A mandatory warning has been added for 'declarations' of lexical
1222 variables using the "my" operator which mask an existing lexical
1223 variable declared in the same scope, making the previous variable
1224 inaccessible by its name.
1225
1226 - The "use" and "require" operators have been extended to allow
1227 checking of the required module's version. The "use" operator
1228 can now be used for an immediate version check of Perl itself.
1229
1230 - A new "strict" pragma, "strict untie", has been added, which
1231 produces an error if a tied value is untied when other references
1232 exist to the internal object implementing the tie.
1233
1234 - Barewords used as associative array keys (i.e. when specifying
1235 an associative array element like $foo{__BAR} or on the left
1236 side of the => operator) may now begin with an underscore as
1237 well as an alphabetic character.
1238
1239 - Some of the configuration information previously produced by the
1240 -v switch has been moved to the -V switch, in order to keep -v
1241 output concise.
1242
1243o Changes in Core Internals
1244
1245 - Symbol table and method lookups have been made faster.
1246
1247 - Perl subroutines which just return a constant value are now
1248 optimized at compile time into inline constants.
1249
1250 - Management of keys for associative arrays has been improved to
1251 conserve space when the same keys are reused frequently, and
1252 to pass true Perl values to tie functions, instead of stringified
1253 representations.
1254
1255 - Messages normally output to stderr may be directed to another
1256 stream when Perl is built. This allows some platforms to
1257 present diagnostic output in a separate window from normal
1258 program results.
1259
1260 - A bug which caused suiperl to fail silently, albeit securely,
1261 in version 5.003 on some systems has been fixed.
1262
1263 - Management of Unix-style signal handlers via the %SIG associative
1264 array has been made safer.
1265
1266 - Several global C symbols have been renamed to eliminate collisions
1267 with system C header files or libraries on some platforms.
1268 Unfortunately, this means that dynamic extensions compiled under
1269 previous versions of Perl will need to be rebuilt for Perl
1270 5.003_01. We're in the process of cleaning up Perl's C
1271 namespace to make it easier to link Perl with other binaries,
1272 so this will probably happen again between now and version 5.004.
1273 After that, we'll do our best to maintain binary compatibility
1274 between versions.
1275
1276 - An alternate allocation strategy has been added to Perl's
1277 optional private memory management routines. This strategy,
1278 which may be selected when Perl is built, is designed to
1279 conserve memory in programs which allocate many small
1280 chunks of memory with sizes near a power of 2, as is often
1281 the case in Perl programs.
1282
1283 - Several memory leaks in the creation and destruction of
1284 multiple interpreters have been fixed.
1285
1286o Changes in the Standard Library and Utilities
1287
1288 - The Opcode extension, which allows you to control a program's
1289 access to Perl operations, has been added to the standard
1290 distribution. This extends the work begun in the original
1291 Safe extension, and subsumes it. The Safe interface is still
1292 available.
1293
1294 - The IO extension, which provides a set of classes for object-
1295 oriented handling of common I/O tasks, has been added to the
1296 standard distribution. The IO classes will form the basis
1297 for future development of Perl's I/O interface, and will
1298 subsume the FileHandle class in the near future. The default
1299 class to which all Perl I/O handles belong is now IO::Handle,
1300 rather than FileHandle.
1301
1302 - The ExtUtils::Embed library module, which provides a set
1303 of utility function to help in embedding Perl in other
1304 applications, has been added to the standard distribution.
1305
1306 - The Fatal library module, which provides a simple interface
1307 for creating "do-or-die" equivalents of existing functions,
1308 has been added to the standard distribution.
1309
1310 - The FindBin library module, which determines the full path
1311 to the currently executing program, has been added to the
1312 standard distribution.
1313
1314 - The DB_File extension, and the Getopt::Long, Test::Harness,
1315 Text::Tabs, Text::Wrap, Time::Local and sigtrap library modules
1316 have been updated to the authors' latest versions.
1317
1318 - The Carp library module now considers the @ISA chain when
1319 determining the caller's package for inclusion in error messages.
1320
1321 - The h2xs, perlbug, and xsubpp utilities have been updated.
1322
1323 - The standard Perl debugger has been updated, and the information
1324 provided to the debugger when an XSUB is called has been improved,
1325 making it possible for alternate debuggers (such as Devel::DProf)
1326 to do a better job of tracking XSUB calls.
1327
1328 - The pod documentation formatting tools in the standard distribution
1329 can now handle characters in the input stream whose high bit is set.
1330
1331 - The cperl-mode EMACS editing mode has been updated.
1332
1333o Changes in Documentation
1334
1335 - Typographic and formatting errors have been corrected in the pod
1336 documentation for the core and standard library files
1337
1338 - Explanations of several core operators have been improved
1339
1340 - The perldebug, perlembed, perlipc, perlsec, and perltrap documents
1341 extensively revised.
1342
1343o Changes in OS-specific and Build-time Support
1344
1345 - Support for the NeXT platform has been extended through
1346 NeXTSTEP/OPENSTEP 4.0, and now includes the ability to create MABs.
1347
1348 - Support for OS/2 has been extended as well, and now includes
1349 options for building a.out binaries.
1350
1351 - Support for VMS has also been extended, incorporating improved
1352 processing of file specification strings, optional suppression of
1353 carriage control interpretation for record-structured files,
1354 improved support for the -S command line switch, a number of
1355 VMS-specific bugfixes, and significantly improved performance
1356 in line-oriented reading of files.
1357
1358 - Several hints files have been added or updated: aux.sh (updated),
1359 convexos.sh (updated), irix_4.sh (updated), irix_5.sh (updated),
1360 irix_6_2.sh (updated), next_3.sh (updated), next_3_2.sh (new),
1361 next_3_3.sh (new), next_4.sh (new), os2/sh (updated),
1362 sco.sh (updated), and solaris_2.sh (updated).
1363
1364 - The test driver for the regression tests now reports when a set
1365 of tests have been skipped (presumable because the operation
1366 they're designed to test isn't supported on the current system).