perl 5.003_03: hints/sunos_4_1.sh
[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----------------
e2cc8666 11Version 5.003_03
12----------------
13
14Most of the changes in 5.003_03 are to make the build and installation
15process more robust. The details are described below. A very brief
16summary is:
17
18o Visible Changes to Core Functionality
19
20 -Support for tied filehandles.
21
22o Configure enhancements
23
24 -How to build and install a shared libperl.so is now documented
25 and supported, though it's not the default for most platforms.
26
27o Bug fixes
28
29 -Support bit operations on strings longer than 15 bytes.
30
31 -If a regex supplied to split() contains paranthesized subpatterns
32 that can result in null matches, perl no longer coredumps.
33
34 -Fix problems with each() on tied hashes.
35
36 -Make h2ph architecture-independent by using Config at run-time
37 rather than extraction time.
38
39o Specific Changes
40
41Here are the specific file-by-file changes.
42
43# This is my patch perl5.003_03.pat to perl5.003_02
44# The full description is below.
45# Please execute the following commands before applying this patch.
46# (You can feed this patch to 'sh' to do so.)
47# Andy Dougherty <doughera@lafcol.lafayette.edu>
48
49# Absorbed into Changes5.002
50rm -f Changes.Conf
51
52# Not needed.
53rm -f ext/POSIX/mkposixman.pl
54
55# Moved to README.os2. I'm not sure why the README files are
56# here rather than in the appropriate subdirectories.
57rm -f os2/README
58
59# Not needed.
60rm -f pod/Makefile.PL
61
62# New test for bit ops.
63touch t/op/bob.t
64
65# Patches that create new tests don't always make them executable.
66chmod +x t/*/*.t
67
68# Create a new directory for Porting and Patching info.
69mkdir Porting
70
71exit 0
72
73This is patch perl5.003_03.pat to perl version 5.003_02.
74This takes you from 5.003_02 to 5.003_03.
75
76To apply this patch, run the above commands,
77cd to your perl source directory and then type
78
79 patch -p1 -N < perl5.003_03.pat
80
81The changes are described after each /^Index/ line below. This is
82designed so you can examine each change with a command such as
83
84 csplit -k perl5.003_03.pat '/^Index:/' '{99}'
85
86Patch and enjoy,
87
88 Andy Dougherty doughera@lafcol.lafayette.edu
89 Dept. of Physics
90 Lafayette College, Easton PA 18042
91
92Index: Changes
93
94 Include 5.003_03 change notes.
95
96 Move older change notes to separate files.
97
98Index: Changes5.000
99
100 New file. Changes from perl4.036 to 5.000.
101
102Index: Changes5.001
103
104 New file. Changes from 5.000 to 5.001
105
106Index: Changes5.002
107
108 New file. Changes from 5.001 to 5.002
109
110Index: Changes5.003
111
112 New file. Changes from 5.002 to 5.003
113
114Index: Configure
115
116 Relaxed warning about ksh on exotic machines.
117
118 Changed usesafe to useopcode.
119
120 Add search for gzip and zip.
121
122 Look more carefully for $sh (the Bourne-ish shell).
123 Use that info to set $startsh correctly.
124
125 Change prompts for PerlIO interface. See INSTALL
126 for how this is supposed to work. The default is
127 still the same as in 5.003_02, namely don't use
128 any fancy new PerlIO stuff.
129
130 Don't look for sigvec() since we don't actually use it.
131 (Plus, it used to print an alarming misleading message about
132 race conditions.)
133
134 Look for stdio's _filbuf under the possible names of
135 _filbuf, __filbuf, and _fill.
136
137 New $useshrplib variable to control whether we build a shared
138 libperl.so. The name of the library is in $libperl.
139 Always install it in $installarchlib/CORE/$libperl.
140
141 Check for <sys/resource.h> and <sys/wait.h> for NetBSD.
142
143 Replace old $altmake stuff with newer autoconf-ish
144 $make_set_make, which checks if $make sets $(MAKE). Now you
145 choose an alternate make with sh Configure -Dmake=gmake (or
146 whatever).
147
148 Remove 'ln' for the list of essential commands. Simulate
149 it with 'cp' if necessary.
150
151 Change `logname` prompts to handle extra gratuitous spaces in
152 Ultrix output.
153
154 Autodetect os2.
155
156 Fix silly bug in checking for fully-qualified names in /etc/hosts.
157
158 Generalize Gconvert tests. Give correct and more useful
159 error messages.
160
161 Use $obj_ext instead of literal '.o' in the dynaloader test.
162
163 Include appropriate header files in bcopy() and memcpy()
164 tests. Note whether memmove is available.
165
166 Check whether struct sigaction works (needed for Solaris 2.5
167 with -Xc).
168
169 Include appropriate header files for randbits test.
170
171Index: INSTALL
172
173 Add note about space requirements.
174
175 Update to match Configure changes (Opcode vs. Safe,
176 useperlio, useshrplib, etc.)
177
178 Reorganize the structure of some of the hints.
179
180 Miscellaneous clarifications.
181
182Index: MANIFEST
183
184 Updated. 5.003_02 introduced some massive patches, mostly
185 due to spacing changes. I didn't bother to sort them all out;
186 I just started with 5.003's MANIEFST.
187
188Index: Makefile.SH
189
190 Support the new simplified shared libperl mechanism.
191
192 Use new $make_set_make directive.
193
194 Remove redundant libperl Make variable.
195
196 Remove unnecessary MAB variable.
197
198 Remove dependency of minitest on lib/Config.pm, since it could
199 well have been a failure of configpm that inspired testing
200 miniperl in the first place!
201
202Index: Porting/Glossary
203
204 New file describing all the config.sh variables.
205 Eventually, I hope to fill this directory with other useful
206 stuff.
207
208Index: README.os2
209
210 Replace old README.os2 with more up-to-date os2/README.
211
212Index: config_H
213
214 Updated to match current Configure and config_h.SH.
215 Some rearrangement of parts has occurred due to new
216 dependencies in the metaconfig units.
217
218Index: config_h.SH
219
220 Updated to match current Configure and config_h.SH.
221 Some rearrangement of parts has occurred due to new
222 dependencies in the metaconfig units.
223
224 Include full descriptions of ARCHLIB, OLDARCHLIB, PRIVLIB,
225 SITEARCH, and SITELIB. Previous versions just included the
226 ~-expanded names (with unhelpful descriptions). No functionality
227 is changed, but maybe it's a little better documented now.
228
229Index: doio.c
230
231 Possibly Include <signal.h> and <unistd.h>
232
233Index: doop.c
234
235 No longer prefer bcmp over memcmp when order doesn't matter.
236
237 Support bit operations on strings longer than 15 bytes.
238
239Index: embed.h
240
241 Auto-generated.
242
243Index: embed.pl
244
245 Expand warning at the top.
246
247Index: ext/IO/IO.pm
248
249 Clean up docmentation installation errors.
250
251Index: ext/IO/lib/IO/Seekable.pm
252
253 Clean up docmentation installation errors.
254
255Index: ext/IO/lib/IO/Select.pm
256
257 Clean up docmentation installation errors.
258
259Index: ext/Opcode/Opcode.xs
260
261 Add support for tied filehandles.
262
263Index: ext/SDBM_File/sdbm/sdbm.h
264
265 Change the Mymalloc to match Perl_malloc in perl.h.
266
267Index: ext/util/make_ext
268
269 Typo change.
270 Get rid of unused altmake.
271
272Index: global.sym
273
274 Fix problems with each() on tied hashes.
275
276Index: handy.h
277
278 Change safe*alloc functions to have prototypes that
279 match the system's malloc and free types. That is, use
280 Malloc_t instead of char *, and Free_t instead of void.
281 This is necessary so . . .
282
283 Safefree cast matches type of free() whether it's perl's
284 malloc/free or the system's malloc/free.
285
286Index: hints/README.hints
287
288 Remove out-of-date info.
289
290 Document a bit about how hint files work.
291
292Index: hints/aix.sh
293
294 qmaxmem hint doesn't apply to gcc.
295
296Index: hints/dgux.sh
297
298 Configure will now automatically detect shared libperl stuff.
299
300Index: hints/dynixptx.sh
301
302 Fix typo in comment.
303
304 Configure will now automatically detect shared libperl stuff.
305
306Index: hints/epix.sh
307
308 Use glibpth instead of libpth. This allows Configure to
309 add local directories, such as /opt/local/lib, etc.
310
311Index: hints/irix_6_2.sh
312
313 Include some info on cc -n32 compile.
314
315Index: hints/linux.sh
316
317 Configure now tests gcvt() more thoroughly.
318
319Index: hints/machten_2.sh
320
321 Update where to find dld.
322
323Index: hints/mips.sh
324
325 Use glibpth instead of libpth.
326
327Index: hints/next_3.sh
328
329 Build up $mab dynamically. Since $mab isn't used anywhere
330 anymore, this is useless. However, $mab was never used for
331 next_3.sh anyway, so there's been no change in functionality.
332
333Index: hints/next_4.sh
334
335 Get rid of extraneous isnext_4 variable. Configure and
336 Makefile.SH will use $osname and $osvers instead.
337
338 Build up $mab dynamically based on available architectures.
339
340 Absorb $mab into ccflags and ccdlflags. I hope that will
341 cover everything. (Configure should automatically remove
342 the -arch stuff from cppflags.)
343
344 Configure now knows next4 needs to use a shared libperl.5.so.
345
346 Allow users to use -Dprefix.
347
348Index: hints/os2.sh
349
350 Try to update to reflect newer shared libperl stuff.
351 I probably goofed :-).
352
353Index: hints/sco.sh
354
355 Additional notes on using icc.
356
357 Additional flags for dynamic loading.
358
359Index: hints/solaris_2.sh
360
361 Perl.h no longer prefers bcmp, so it's again ok if Configure
362 finds them, since perl will prefer the mem* versions anyway.
363
364Index: hints/sunos_4_0.sh
365
366 Don't include <unistd.h>
367
368Index: hints/sunos_4_1.sh
369
370 Add brief note about GNU as and ld.
371
372 Don't include <unistd.h>
373
374 Add notes about WHOA THERE messages.
375
376Index: hints/titanos.sh
377
378 Include sfio in libswanted.
379
380 Don't set libpth any more.
381
382Index: hints/umips.sh
383
384 New hint file.
385
386Index: hv.c
387
388 Use memcmp even in cases where ordering doesn't matter.
389
390 Fix problems with each() on tied hashes.
391
392Index: installperl
393
394 Simplify installation of shared libperl.so.
395
396 Avoid reaching Command Failed!!! with /usr/bin/perl.
397
398Index: lib/AutoSplit.pm
399
400 Clean up docmentation installation errors.
401
402Index: lib/ExtUtils/MM_Unix.pm
403
404 Remove MAB references.
405
406 Use 'useshrplib' instead of 'd_shrplib'
407
408Index: lib/ExtUtils/MakeMaker.pm
409
410 Remove mab references.
411
412Index: lib/FindBin.pm
413
414 Clean up docmentation installation errors.
415
416Index: lib/Symbol.pm
417
418 Put back in the BEGIN { require 5.002; }. The version in
419 5.003_02 wouldn't work in 5.002 anyway. Further, the whole
420 point of the construct is to catch 5.001m, so we can't use
421 syntax introduced after 5.001m to do that.
422
423Index: lib/Text/Wrap.pm
424
425 Remove double 'use strict'.
426
427Index: lib/perl5db.pl
428
429 Add explicit '&' to avoid warnings under strict refs.
430
431Index: lib/sigtrap.pm
432
433 Clean up docmentation installation errors.
434
435Index: makedepend.SH
436
437 Use Configure's $sh and $make_set_make variables.
438
439Index: mg.c
440
441 Include <unistd.h>
442
443 Use Safefree() macro instead of safefree() function with
444 a (possibly) incorrect cast. The whole point of the
445 Safefree() macro is that it does the correct cast for you.
446
447
448Index: patchlevel.h
449
450 Change to SUBVERSION 3.
451
452Index: perl.c
453
454 Include <unistd.h>
455
456Index: perl.h
457
458 No longer prefer bcmp slightly for comparisons that don't care
459 about ordering.
460
461 Rely on Configure setting SH_PATH.
462
463 Change the function name to Pause() instead of pause() to
464 avoid potential prototype problems. (This naming convention
465 is similar to the Fwrite and Fflush macros.)
466
467 Fix problems with each() on tied hashes.
468
469 Work around crypt prototype problem on NeXT.
470
471Index: perlio.c
472
473 Fixes to support non-std stdio.
474
475Index: perlio.h
476
477 Try to document the various #defines a bit. This is far from
478 finished.
479
480 Remove a lot of trailing whitespace. (It's of no consequence, but
481 but I'm not going to redo the patch just to put back in the trailing
482 whitespace either.)
483
484Index: perlsdio.h
485
486 Fixes to support non-std stdio.
487
488Index: perly.c
489
490 Restore use of Safefree() macro.
491
492Index: perly.c.diff
493
494 Restore use of Safefree() macro.
495
496Index: perly.h
497
498 Delete duplicate line.
499
500Index: plan9/buildinfo
501
502 Update.
503
504Index: pod/perlapio.pod
505
506 Clean up docmentation installation errors.
507
508Index: pod/perlipc.pod
509
510 Fix typo.
511
512 Untaint port number.
513
514Index: pod/perlmod.pod
515
516 Fix a minor nit regarding Exporter.
517
518Index: pod/perlre.pod
519
520 Clean up docmentation installation errors.
521
522Index: pod/perltie.pod
523
524 Add support for tied filehandles.
525
526Index: pod/perltrap.pod
527
528 Clean up docmentation installation errors.
529
530Index: pod/perlxstut.pod
531
532 Clean up docmentation installation errors.
533
534Index: pod/pod2man.PL
535
536 Clean up docmentation installation errors.
537
538Index: pp.c
539
540 Add support for tied filehandles.
541
542 If a regex supplied to split() contains paranthesized subpatterns
543 that can result in null matches, perl coredumps.
544
545Index: pp_hot.c
546
547 Use memcmp instead of bcmp even when we don't care about order.
548
549 Add support for tied filehandles.
550
551Index: pp_sys.c
552
553 Include <unistd.h>, <sys/wait.h>, and <sys/resource.h>.
554 (The latter two are especially for NetBSD.)
555
556 Don't assume sys/time.h and sys/select.h can't coexist.
557
558 Use Pause macro.
559
560Index: proto.h
561
562 Fix safe*alloc and safefree prototypes.
563
564Index: regexec.c
565
566 Use memcmp instead of bcmp even when we don't care about order.
567
568Index: sv.c
569
570 Use memcmp instead of bcmp even when we don't care about order.
571
572Index: t/lib/opcode.t
573
574 Add support for tied filehandles.
575
576Index: t/op/bop.t
577
578 Support bit operations on strings longer than 15 bytes.
579
580Index: t/op/misc.t
581
582 Add support for tied filehandles.
583
584Index: t/op/split.t
585
586 If a regex supplied to split() contains paranthesized subpatterns
587 that can result in null matches, perl coredumps.
588
589Index: toke.c
590
591 Include <unistd.h>.
592
593 Use memcmp instead of bcmp even when we don't care about order.
594
595Index: util.c
596
597 Include <unistd.h>.
598
599 Use correct types for safe*alloc and safefree functions.
600
601Index: utils/h2ph.PL
602
603 Make h2ph architecture-independent by using Config at run-time
604 rather than extraction time.
605
606Index: writemain.SH
607
608 Remove unnecessary curlies. (They are a leftover from
609 an older auto_init mechanism.)
610
611Index: x2p/Makefile.SH
612
613 Use Configure's $sh and $make_set_make.
614
615 Remove MAB stuff, since it's now in ccflags.
616
617 Keep 5.003's RCS info.
618
619Index: x2p/a2p.h
620
621 Keep 5.003's RCS info.
622
623Index: x2p/str.c
624
625 Use Configure's FILE_filbuf macro instead of a raw _filbuf.
626
627----------------
760ac839 628Version 5.003_02
629----------------
630o Visible Changes to Core Functionality
631 - Redefining constant subs, or changing sub's prototype now give warnings.
632 - Fixes for ++/-- of values close to max/min size of an integer
633 - Warning for un-qualified bareword as handler in $SIG{}.
634 - UNIVERSAL::isa can now be called as static method.
635
636o Changes in Core Internals
637 - PerlIO abstraction added.
638 Perl core and standard extensions no longer assume ANSI C's stdio is IO
639 mechanism, Default Configure mode is still to use stdio via set of C macros.
640 Alternate modes are to use stdio via one perlio.c module, or
641 to use sfio if available.
642
643 - Several bug fixs from perl5-porters
644 - Make sources non-ANSI C correct again.
645 - SUPER in gv.c
646 - Last of shared-hash-key patches
647 - eval '(0,1..3)'; # --> SegFault
648 - coredumps after simple subsitutes.
649 - Correction to UNIVERSAL::VERSION docs.
650 - Fixed io_udp test.
651 - Fixed another abuse of malloc'ed memory.
652 - Enabled DEBUGING_MSTATS whenever perl's malloc() is used.
653 - Reverted to default of not hiding perl's malloc (if used).
654
655o Changes in the Standard Library and Utilities
656 - Fixed MakeMaker for static SDBM and builing in a link tree.
657 - Upgraded to IO-1.09, and includes latest (still experimental) IO::Select.
658 - Documentation/test tweak to DB_File
659 - h2xs upgrade to allow use C::Scan module
660
661o Changes in OS-specific and Build-time Support
662 - Attempted to re-created 5.003_01's NeXT support with metaconfig units.
663 - Updated MANIFEST
664 - make minitest now depends on lib/Config.pm, as some of tests require it.
665 - Included latest plan9 sub-directory
666 - Applied OS/2 patches.
667 - Typo patch for VMS.
e4a57b87 668
669----------------
670Version 5.003_01
671----------------
672
673Version 5.003_01 contains bugfixes and additions accumulated since
674version 5.002_01, since the patch to version 5.003 was deliberately
675kept simple. In addition to numerous small bugfixes in the core,
676library files, and documentation, this patch contains several
677significant revisions, summarized below:
678
679o Visible Changes to Core Functionality
680
681 - A port to Plan9 has been started, and changes are integrated into
682 the standard distribution. As of this release, the Perl core
683 and several common extensions are working.
684
685 - A set of basic methods in the UNIVERSAL class have been added to
686 the Perl core. Since UNIVERSAL is an implicit member of every
687 class's @ISA, the methods can be called via any object.
688
689 - A mandatory warning has been added for 'declarations' of lexical
690 variables using the "my" operator which mask an existing lexical
691 variable declared in the same scope, making the previous variable
692 inaccessible by its name.
693
694 - The "use" and "require" operators have been extended to allow
695 checking of the required module's version. The "use" operator
696 can now be used for an immediate version check of Perl itself.
697
698 - A new "strict" pragma, "strict untie", has been added, which
699 produces an error if a tied value is untied when other references
700 exist to the internal object implementing the tie.
701
702 - Barewords used as associative array keys (i.e. when specifying
703 an associative array element like $foo{__BAR} or on the left
704 side of the => operator) may now begin with an underscore as
705 well as an alphabetic character.
706
707 - Some of the configuration information previously produced by the
708 -v switch has been moved to the -V switch, in order to keep -v
709 output concise.
710
711o Changes in Core Internals
712
713 - Symbol table and method lookups have been made faster.
714
715 - Perl subroutines which just return a constant value are now
716 optimized at compile time into inline constants.
717
718 - Management of keys for associative arrays has been improved to
719 conserve space when the same keys are reused frequently, and
720 to pass true Perl values to tie functions, instead of stringified
721 representations.
722
723 - Messages normally output to stderr may be directed to another
724 stream when Perl is built. This allows some platforms to
725 present diagnostic output in a separate window from normal
726 program results.
727
728 - A bug which caused suiperl to fail silently, albeit securely,
729 in version 5.003 on some systems has been fixed.
730
731 - Management of Unix-style signal handlers via the %SIG associative
732 array has been made safer.
733
734 - Several global C symbols have been renamed to eliminate collisions
735 with system C header files or libraries on some platforms.
736 Unfortunately, this means that dynamic extensions compiled under
737 previous versions of Perl will need to be rebuilt for Perl
738 5.003_01. We're in the process of cleaning up Perl's C
739 namespace to make it easier to link Perl with other binaries,
740 so this will probably happen again between now and version 5.004.
741 After that, we'll do our best to maintain binary compatibility
742 between versions.
743
744 - An alternate allocation strategy has been added to Perl's
745 optional private memory management routines. This strategy,
746 which may be selected when Perl is built, is designed to
747 conserve memory in programs which allocate many small
748 chunks of memory with sizes near a power of 2, as is often
749 the case in Perl programs.
750
751 - Several memory leaks in the creation and destruction of
752 multiple interpreters have been fixed.
753
754o Changes in the Standard Library and Utilities
755
756 - The Opcode extension, which allows you to control a program's
757 access to Perl operations, has been added to the standard
758 distribution. This extends the work begun in the original
759 Safe extension, and subsumes it. The Safe interface is still
760 available.
761
762 - The IO extension, which provides a set of classes for object-
763 oriented handling of common I/O tasks, has been added to the
764 standard distribution. The IO classes will form the basis
765 for future development of Perl's I/O interface, and will
766 subsume the FileHandle class in the near future. The default
767 class to which all Perl I/O handles belong is now IO::Handle,
768 rather than FileHandle.
769
770 - The ExtUtils::Embed library module, which provides a set
771 of utility function to help in embedding Perl in other
772 applications, has been added to the standard distribution.
773
774 - The Fatal library module, which provides a simple interface
775 for creating "do-or-die" equivalents of existing functions,
776 has been added to the standard distribution.
777
778 - The FindBin library module, which determines the full path
779 to the currently executing program, has been added to the
780 standard distribution.
781
782 - The DB_File extension, and the Getopt::Long, Test::Harness,
783 Text::Tabs, Text::Wrap, Time::Local and sigtrap library modules
784 have been updated to the authors' latest versions.
785
786 - The Carp library module now considers the @ISA chain when
787 determining the caller's package for inclusion in error messages.
788
789 - The h2xs, perlbug, and xsubpp utilities have been updated.
790
791 - The standard Perl debugger has been updated, and the information
792 provided to the debugger when an XSUB is called has been improved,
793 making it possible for alternate debuggers (such as Devel::DProf)
794 to do a better job of tracking XSUB calls.
795
796 - The pod documentation formatting tools in the standard distribution
797 can now handle characters in the input stream whose high bit is set.
798
799 - The cperl-mode EMACS editing mode has been updated.
800
801o Changes in Documentation
802
803 - Typographic and formatting errors have been corrected in the pod
804 documentation for the core and standard library files
805
806 - Explanations of several core operators have been improved
807
808 - The perldebug, perlembed, perlipc, perlsec, and perltrap documents
809 extensively revised.
810
811o Changes in OS-specific and Build-time Support
812
813 - Support for the NeXT platform has been extended through
814 NeXTSTEP/OPENSTEP 4.0, and now includes the ability to create MABs.
815
816 - Support for OS/2 has been extended as well, and now includes
817 options for building a.out binaries.
818
819 - Support for VMS has also been extended, incorporating improved
820 processing of file specification strings, optional suppression of
821 carriage control interpretation for record-structured files,
822 improved support for the -S command line switch, a number of
823 VMS-specific bugfixes, and significantly improved performance
824 in line-oriented reading of files.
825
826 - Several hints files have been added or updated: aux.sh (updated),
827 convexos.sh (updated), irix_4.sh (updated), irix_5.sh (updated),
828 irix_6_2.sh (updated), next_3.sh (updated), next_3_2.sh (new),
829 next_3_3.sh (new), next_4.sh (new), os2/sh (updated),
830 sco.sh (updated), and solaris_2.sh (updated).
831
832 - The test driver for the regression tests now reports when a set
833 of tests have been skipped (presumable because the operation
834 they're designed to test isn't supported on the current system).