Perl / perl5

🐪 The Perl programming language
https://dev.perl.org/perl5/
Other
1.85k stars 527 forks source link

Perl v5.6.0 released #1539

Closed p5pRT closed 20 years ago

p5pRT commented 24 years ago

Migrated from rt.perl.org#2756 (status was 'resolved')

Searchable as RT2756$

p5pRT commented 24 years ago

From @gsar

After almost two years of intense deliberation\, patching\, troubleshooting\, and testing\, the Perl Porters are proud to bring you the newest major release of Perl. Welcome to Perl v5.6.0!

Perl v5.6.0 is a major release that incorporates all maintenance and development changes since the last major release\, 5.005. As you may have noticed\, the version numbering has changed. Releases will henceforth be numbered as revision.version.subversion triples. Maintenance releases will have an even version component\, while the version component for development releases will be odd. For example\, the next maintenance update of Perl 5.6.0 will be v5.6.1\, and the development series will begin life at v5.7.0.

There is much more to Perl v5.6.0 than just the fancy version number. A brief summary of the significant changes and known issues is included at the end. A more expansive overview of these changes can be found in the file "pod/perldelta.pod". Specific logs are in the "Changes" file.

You can find Perl v5.6.0 from any of the Comprehensive Perl Archive Network (CPAN) sites worldwide. For example​:

  http​://www.cpan.org/src/perl-5.6.0.tar.gz

and also​:

  http​://www.cpan.org/authors/id/GSAR/perl-5.6.0.tar.gz

Perl continues to build and run on a vast number of platforms. Virtually all known and current Unix derivatives are supported\, as are VMS\, DOS\, OS/2\, Windows\, QNX\, BeOS\, and Darwin. (But see below for platforms that use the EBCDIC character set.) There is a full list of supported platforms in the file "pod/perlport.pod". If you find that your platform is unsupported\, do let us know.

To build and install Perl\, read the "INSTALL" document for Unix-like platforms\, and the port-specific "README.xxx" files for others.

If everything went well\, and all the tests passed\, "make ok" will mail us a report of your build configuration. If not\, run "make nok" and describe your problems in detail. Those two make targets run the "perlbug" utility\, located at "utils/perlbug". If "perlbug" cannot determine how to send mail from your system\, you may have to let it save the report to a file\, and mail it to us at \perlbug@​perl\.com.

The "perlbug" program obviously cannot be used if you were unable to build perl by the suggested methods. If this is the case\, please include the output of the "myconfig" script\, along with a detailed summary of what went wrong\, and send it to \perlbug@​perl\.com. If Perl can be built fine\, but you have been unable to install it properly\, "perlbug" can also be run as "./perl -Ilib utils/perlbug". Run it with the "-h" option to see a short usage summary\, and see the detailed documentation within the program itself for more information on sending well-formed bug reports.

If after having successfully installed Perl\, you find any bugs or incompatibilities that aren't already mentioned in the documentation\, please use "perlbug" to report the problem.

Once again\, be sure to read the "README.xxx"\, "INSTALL"\, and "pod/perldelta.pod" files for important information about this release.

Share and Enjoy!

--The Perl Porters


Short Summary of Changes


Here's a list of the significant changes since the 5.005 release. If you are running a Perl release older than 5.005\, be sure to read through the "pod/perl5005delta.pod" file for other important changes that are not listed here.

For a more detailed overview of these changes\, see "pod/perldelta.pod" in the source distribution. Incompatibilities and other known issues are summarized further down.

  + Several experimental features\, including​: support for Unicode\,   fork() emulation on Windows\, 64-bit support\, lvalue subroutines\,   weak references\, and new regular expression constructs. See below   for the full list.

  + Standard internal representation for strings is UTF-8. (EBCDIC   support has been discontinued because of this.)

  + Better support for interpreter concurrency.

  + Lexically scoped warning categories.

  + "our" declarations for global variables.

  + String literals can be written using character ordinals. For example\,   v102.111.111 is the same as "foo".

  + New syntax for subroutine attributes. (The attrs pragma is now   deprecated.)

  + Filehandles can be autovivified. For example​:

  open my $foo\, $file or die;

  + open() may be called with three arguments to avoid magic behavior.

  + Support for large files\, where available (will be enabled by   default.)

  + CHECK blocks. These are like END blocks\, but will be called when   the compilation of the main program ends.

  + POSIX character class syntax supported\, e.g. /[[​:alpha​:]]/

  + pack() and unpack() support null-terminated strings\, native data   types\, counted strings\, and comments in templates

  + Support for binary numbers.

  + exists() and delete() work on array elements. Existence of a   subroutine (as opposed to its defined-ness) may also be checked with   exists(&sub)).

  + Where possible\, Perl does the sane thing to deal with buffered data   automatically.

  + binmode() can be used to set :crlf and :raw modes on dosish platforms.   The open pragma does the same in the lexical scope\, allowing the   mode to be set for backticks.

  + Many modules now come standard\, including Devel​::DProf\, Devel​::Peek\,   and Pod​::Parser.

  + Many modules have been substantially revised or rewritten.

  + The JPL ("Java Perl Lingo") distribution comes bundled with Perl.

  + Most platform ports have improved functionality. Support for EBCDIC   platforms has been withdrawn due to standardization on UTF-8.

  + Much new documentation in the form of tutorials and reference   information has been added.

  + Plenty of bug fixes.

The following features are considered experimental. Their interfaces and implementation are subject to change in future versions. Some of these are new features\, and others were experimental features in earlier releases that haven't yet made the grade.

  + Support for Unicode. This is still incomplete\, and has known bugs   and limitations.

  + Support for threading\, and the fork() emulation on Windows. The new   "interpreter threads" support is not yet user-visible (except for the   fork() emulation). The 5.005 model of threads may be eventually   deprecated.

  + 64-bit support. Mileage may vary among individual platforms.

  + The B Compiler suite\, and the perlcc utility.

  + Lvalue subroutines. Behavior of array and hash return values is   undefined.

  + Weak references. This isn't user-visible unless you get the WeakRef   extension from CPAN.

  + The pseudo-hash data type. This has improved much\, but changes are   still to be expected.

  + Internal implementation of file globbing via the File​::Glob extension.   Changes to improve compatibility with the older\, external csh glob   may yet occur.

  + The DB module for access to the source level debugging API.

  + The regular expression constructs (?{ CODE }) and (??{ CODE }).


Tested Platforms


This release is known to build and pass all tests (with some expected exceptions) on the following platforms​:

  ARCHNAME OSVER CC NOTES   ------------------------------------------------------------------------   alpha-dec_osf 4.0 cc   alpha-dec_osf 4.0 gcc 2.95.1 lib/sdbm fails   alpha-dec_osf-thread 4.0 cc
  aix 4.1.5.0 cc   aix 4.3.1.0 cc   aix-64all 4.3.2.0 cc   CRAY_T3E-unicosmk 2.0.5.24 cc   cygwin 1.1.0 gcc 2.95.2   dos-djgpp DOS gcc 2.95.2 posix.t#4 fails   i386-AT386-gnu 0.2 gcc 2.95.2 warnings.t#370 fails   i386-freebsd 5.0-cur gcc 2.95.2   i386-freebsd 4.0-cur gcc 2.95.2   i386-freebsd 4.0-sta gcc 2.95.2   i386-freebsd 3.3-sta gcc 2.7.2.3   i386-freebsd 3.4-sta gcc 2.7.2.3   i386-freebsd 3.2-sta gcc 2.7.2.1   i386-freebsd-thread 5.0-cur gcc 2.95.2 thr5005.t#19 fails   i386-freebsd-thread 4.0-sta gcc 2.95.2 thr5005.t#19 fails   i386-freebsd-thread 3.4-sta gcc 2.7.2.3 thr5005.t#19 fails   i386-freebsd-thread 3.3-sta gcc 2.7.2.3 thr5005.t#19 fails   i386-freebsd-thread 3.2-sta gcc 2.7.2.1 thr5005.t#19 fails   i386-freebsd-thread-multi 5.0-cur gcc 2.95.2   i386-freebsd-thread-multi 4.0-sta gcc 2.95.2   i386-freebsd-thread-multi 3.4-sta gcc 2.7.2.3   i386-freebsd-thread-multi 3.3-sta gcc 2.7.2.3   i386-freebsd-thread-multi 3.2-sta gcc 2.7.2.1   i386-linux 2.2.12-20 egcs 2.91.66   i386-lynxos-coff 3.1.0 gcc 2.9-gnupro-98r2   i586-linux 2.2.4 egcs 2.91.60   i686-linux 2.2.5-15 egcs 2.91.66   i686-linux 2.2.13 egcs 2.91.66   i686-linux 2.0.36 gcc 2.7.2.3   i686-linux 2.2.14 gcc 2.95.2   i686-linux-64int 2.2.14 gcc 2.7.2.3   i686-linux-multi 2.2.5 egcs 2.91.66   i686-linux-thread 2.2.14 gcc 2.95.2   i686-linux-thread-multi 2.2.5-15 egcs 2.91.66   i686-linux-thread-multi 2.0.36 gcc 2.7.2.3   i686-linux-thread-64int 2.2.14 gcc 2.95.2   i86pc-solaris 2.7 gcc 2.95.1   IP27-irix 6.5 cc -n32   IP27-irix-64bit 6.5 cc -n32   IP27-irix-64all 6.5 cc -64   MSWin32-x86 NT4.0 Borland C 5.02   MSWin32-x86 NT4.0 gcc 2.95.2 io_xs.t may fail   MSWin32-x86 NT4.0 Visual C 6.0   MSWin32-x86-multi NT4.0 Borland C 5.02   MSWin32-x86-multi NT4.0 gcc 2.95.2 io_xs.t may fail   MSWin32-x86-multi NT4.0 Visual C 6.0   MSWin32-x86-thread NT4.0 Borland C 5.02 thr5005.t#19 fails   MSWin32-x86-thread NT4.0 gcc 2.95.2 thr5005.t#19\, io_xs.t may fail   MSWin32-x86-thread NT4.0 Visual C 6.0 thr5005.t#19 fails   MSWin32-x86-multi-thread NT4.0 Borland C 5.02   MSWin32-x86-multi-thread NT4.0 gcc 2.95.2 io_xs.t may fail   MSWin32-x86-multi-thread NT4.0 Visual C 6.0   os2 2.30 gcc 2.8.1   ppc-linux 2.2.14 gcc 2.95.2   ppc-linux 2.2.15p3 gcc 2.95.2   ppc-linux-64int 2.2.15p3 gcc 2.95.2   ppc-linux-thread-multi 2.2.15p3 gcc 2.95.2   ppc-linux-thread-multi-64int 2.2.15p3 gcc 2.95.2   ppc-powerux 4.3 ec   powerpc-machten 4.1.4 gcc 2.8.1 warnings.t#257 fails   PA-RISC1.1 10.20 gcc 2.95.2   PA-RISC1.1 11.00 gcc 2.95.2   PA-RISC1.1 11.00 cc lib/odbm fails   PA-RISC2.0 10.20 gcc 2.95.2   PA-RISC2.0 11.00 cc   PA-RISC2.0-64bitall 11.00 cc lib/io_multihomed may hang   RM600-svr4 5.42 cc   sun4-solaris 2.8 gcc 2.8.1   sun4-solaris 2.7 gcc 2.8.1   sun4-solaris 2.7 gcc 2.95.2   sun4-solaris 2.6 cc   sun4-solaris 2.6 gcc 2.7.2.3   sun4-solaris 2.6 gcc 2.8.1   sun4-solaris-64bit 2.6 gcc 2.8.1   sun4-solaris-64int 2.7 gcc 2.95.1   sun4-solaris-multi 2.6 gcc 2.7.2.3   sun4-solaris-thread 2.6 gcc 2.7.2.3 thr5005.t#19 fails   sun4-solaris-thread-multi 2.6 gcc 2.7.2.3   sun4-solaris 2.5.1 gcc 2.95.2   x86-qnx 424 cc


Incompatibilities


Note that any new warnings that have been introduced are not considered incompatibilities. For details and potential workarounds\, see "pod/perldelta.pod".

  + Compatibility macros for global variables are not available by   default\, to control namespace pollution. If older extensions don't   build because of missing symbols\, try "perl Makefile.PL POLLUTE=1"   first.

  + Subroutines named CHECK are considered special\, and will be   automatically executed when the compilation of the main program ends.   Rename such functions to lower/mixed case.

  + $English​::PERL_VERSION is now an alias for $^V (a string) rather   than $] (a number). You may need to use the "%vd" sprintf format   to display this correctly.

  + Literals of the form 1.2.3 parse as C\<chr(1) . chr(2) . chr(3)>   rather than as C\<"1.2" . 3>.

  + rand() may yield a different (but usually more random) sequence due   to internal changes.

  + Iterating over hashes may yield a different order than before due   to changes in the hashing function used.

  + The C\ operator raises an exception when applied to read-only   values.

  + The close-on-exec bit is now set on pipe and socket handles as well\,   if you set $^F high enough.

  + C\<"$$1"> always means C\<"${$1}" now\, rather than C\<$$ . "1"> (which   was deprecated in 5.004).

  + delete()\, each()\, values() and \(%h) operate on aliases to values\,   instead of on copies. You may need to copy the values explicitly   where needed.

  + vec() will raise an exception if the BITS argument is not a   power-of-two integer.

  + C\ followed by parentheses behaves like a list operator. This   allows C\<grep not($_)\, @​things> to work as expected\, but also changes   C\<not (1\,2\,3)[0]> to mean C\<(not(1\,2\,3))[0]> instead of   C\<not((1\,2\,3)[0])>.

  + The semantics of the bareword prototype (*) has changed to make it   possible to pass barewords\, as in many builtins.

  + Bitwise operators on 64-bit platforms operate on the entire native   width rather than just the lower 32 bits. (You must mask off the   excess bits if you don't want them.)

  + More builtins taint their results due to higher security paranoia.   Run Configure with -Accflags=-DINCOMPLETE_TAINTS if you don't want   the excess tainting behaviors.

  + Specifying one of usemultiplicity\, usethreads or any of the 64-bit   support options to Configure will build a perl that will not be   binary compatible with 5.005. You will need to recompile all   extensions if you do this. Accepting all the Configure defaults   should generally provide binary compatibility with a perl 5.005   built in the same way.  
  + If you have a perl installation older than 5.005\, note that 5.6.0   won't be binary compatible with it. You will need to recompile   all extensions when upgrading from installations older than 5.005.


Known Issues


The following issues have come to our attention at the time of writing\, and since the 5.6.0 release. They will be addressed in a future maintenance version of Perl.

  + UNIVERSAL​::isa() may report a bogus value after the base pragma has   been used. This is due to a bug in the caching done by   UNIVERSAL​::isa() that also exists in 5.005_0x. The problem is   now tickled by the new version of base.pm\, which happens to use   UNIVERSAL​::isa() internally.

  + Unicode support still has various known bugs.

  * join() misinterprets its first argument as bytes even if the   bytes pragma has not been enabled. (This only impacts results   if the first argument is Unicode.)

  * $str1 eq $str2 may not compare correctly if only one of the   arguments came from a Unicode source.

  * A literal such as v2000 may be incorrectly parsed as a bareword   rather than as a Unicode character if Perl is expecting to read   a statement. Use +v2000 if you hit this bug.

  + Results of building Perl on AIX (in particular\, 4.2.x) have been   mixed. Disabling compiler optimizations seems to build a working   perl.

p5pRT commented 24 years ago

From [Unknown Contact. See original ticket]

On Tue\, Mar 28\, 2000 at 07​:46​:13AM -0800\, "Gurusamy Sarathy" wrote​:

After almost two years of intense deliberation\, patching\, troubleshooting\, and testing\, the Perl Porters are proud to bring you the newest major release of Perl. Welcome to Perl v5.6.0!

Go P5P!

mark

P.S. Thank you Sarathy!

-- markm@​nortelnetworks.com/mark@​mielke.cc/markm@​ncf.ca __________________________ . . _ ._ . . .__ . . ._. .__ . . . .__ | SIR Tools (7H12) |\/| |_| |_| |/ |_ |\/| | |_ | |/ |_ | Nortel Networks | | | | | \ | \ |__ . | | .|. |__ |__ | \ |__ | Ottawa\, Ontario\, Canada

  One ring to rule them all\, one ring to find them\, one ring to bring them all   and in the darkness bind them...

  http​://mark.mielke.cc/