home *** CD-ROM | disk | FTP | other *** search
/ PC World 2004 November / PCWorld_2004-11_cd.bin / software / topware / activeperl / ActivePerl-5.8.4.810-MSWin32-x86.exe / ActivePerl-5.8.4.810 / RELEASE.txt < prev   
Text File  |  2004-06-01  |  24KB  |  499 lines

  1. ActivePerl 5.8.4.810 -- Release Notes
  2.     Welcome, and thanks for downloading ActivePerl. This release corresponds
  3.     to Perl version 5.8.4.
  4.  
  5.     Please note that ActivePerl 800 series builds are NOT binary-compatible
  6.     with the older 600 and 500 series builds. In particular, do not attempt
  7.     to use extensions or PPM packages built for the 600 and 500 series
  8.     builds with ActivePerl 800 series builds and vice versa.
  9.  
  10.     The following platforms are supported:
  11.  
  12.     *       Linux x86 for Red Hat 6.2 or later
  13.  
  14.     *       Linux x86 for Debian 2.2 or later
  15.  
  16.     *       Solaris sparc for Solaris 2.6 or later
  17.  
  18.     *       Windows x86 for Windows 9x, NT, Me, 2000, XP and 2003
  19.  
  20.     For a chronological list of changes included in this and past releases,
  21.     see the ActivePerl 5.8 Change Log.
  22.  
  23. Incompatibilities
  24.     The following list is a general summary of the known incompatibilities
  25.     between the Perl 5.8.0 source code release and earlier releases based on
  26.     Perl 5.6.0. Be sure to consider these very carefully before upgrading.
  27.  
  28.     Please check perl581delta, perl582delta and perl583delta for additional
  29.     incompatible changes made in Perl 5.8.1, Perl 5.8.2 and Perl 5.8.3
  30.     respectively. There are a few new incompatibilities, but also mechanisms
  31.     to better control some of the incompatibilities introduced by Perl
  32.     5.8.0. For example, filehandles are no longer automatically set to UTF-8
  33.     by locale settings.
  34.  
  35.   Binary incompatibility
  36.     Perl 5.8 is not binary compatible with earlier releases of Perl.
  37.  
  38.     You have to recompile your XS modules.
  39.  
  40.     Pure Perl modules should continue to work, subject to the other
  41.     incompatibilities listed here.
  42.  
  43.   New Unicode semantics (no more "use utf8", almost)
  44.     In general, the interfaces and implementation of Unicode support has
  45.     changed significantly from the 5.6 release.
  46.  
  47.     Previously in Perl 5.6 to use Unicode one would say "use utf8" and then
  48.     the operations (like string concatenation) were Unicode-aware in that
  49.     lexical scope.
  50.  
  51.     This was found to be an inconvenient interface, and in Perl 5.8 the
  52.     Unicode model has completely changed: now the "Unicodeness" is bound to
  53.     the data itself, and for most of the time "use utf8" is not needed at
  54.     all. The only remaining use of "use utf8" is when the Perl script itself
  55.     has been written in the UTF-8 encoding of Unicode. (UTF-8 has not been
  56.     made the default since there are many Perl scripts out there that are
  57.     using various national eight-bit character sets, which would be illegal
  58.     in UTF-8.)
  59.  
  60.     See perluniintro for the explanation of the current model, and utf8 for
  61.     the current use of the utf8 pragma.
  62.  
  63.   Incompatible, but reliable, signals implementation
  64.     The new safe signals implementation postpones handling of signals until
  65.     it's safe (in between the execution of low level opcodes).
  66.  
  67.     This change may have surprising side effects because signals no longer
  68.     interrupt Perl instantly. Perl will now first finish whatever it was
  69.     doing, like finishing an internal operation (such as sort()) or an
  70.     external operation (like an I/O operation), and only then look at any
  71.     arrived signals (but before starting the next operation). This means
  72.     that the signal handler may be called at a different point than before,
  73.     conceivably when it is no longer useful. Note that breaking out from
  74.     potentially blocking operations should still work, though.
  75.  
  76.   Perl debugger commands are different
  77.     The command line Perl debugger ("perl5db.pl") has been modified to
  78.     present a more consistent command interface. To use the old style
  79.     commands, enter "o CommandSet=pre580" at the debugger prompt.
  80.  
  81.   Attributes for "my" variables now handled at run-time
  82.     The "my EXPR : ATTRS" syntax now applies variable attributes at
  83.     run-time. (Subroutine and "our" variables still get attributes applied
  84.     at compile-time.) See attributes for additional details. In particular,
  85.     however, this allows variable attributes to be useful for "tie"
  86.     interfaces, which was a deficiency of earlier releases. Note that the
  87.     new semantics doesn't work with the Attribute::Handlers module (as of
  88.     version 0.76).
  89.  
  90.   References to references stringify as REF(...), not SCALAR(...)
  91.     A reference to a reference now stringifies as "REF(0x81485ec)" instead
  92.     of "SCALAR(0x81485ec)" in order to be more consistent with the return
  93.     value of ref().
  94.  
  95.   glob() now returns filenames in alphabetical order
  96.     The list of filenames from glob() (or <...>) is now by default sorted
  97.     alphabetically to be csh-compliant (which is what happened before in
  98.     most UNIX platforms). (bsd_glob() continues to sort platform natively,
  99.     ASCII or EBCDIC, unless GLOB_ALPHASORT is specified.)
  100.  
  101.     This change was already included in Perl 5.6.1.
  102.  
  103.   Time::Local::timelocal() and fractional seconds
  104.     Time::Local::timelocal() does not handle fractional seconds anymore. The
  105.     rationale is that neither does localtime(), and timelocal() and
  106.     localtime() are supposed to be inverses of each other.
  107.  
  108.   bless(REF, REF) no longer supported
  109.     The semantics of bless(REF, REF) were unclear and until someone proves
  110.     it to make some sense, it is forbidden.
  111.  
  112.   Self-ties are unsupported
  113.     Self-ties of arrays and hashes are no longer supported. Attempts to do
  114.     this will cause fatal errors.
  115.  
  116.   Tied hash methods EXISTS and DELETE are mandatory
  117.     Tied hash interfaces are now required to have the EXISTS and DELETE
  118.     methods (either own or inherited).
  119.  
  120.   Perl hashes remain unordered, only differently so
  121.     Although "you shouldn't do that", it was possible to write code that
  122.     depends on Perl's hashed key order (Data::Dumper does this). The new
  123.     algorithm "One-at-a-Time" produces a different hashed key order. More
  124.     details are in perl58delta, "Performance Enhancements".
  125.  
  126.   "use" may fail if module does not define a $VERSION
  127.     If you specify a required minimum version when loading a module with
  128.     "use", and that module does not define a $VERSION, a fatal error is
  129.     produced.
  130.  
  131.   chat2.pl has been removed
  132.     The obsolete chat2 library that should never have been allowed to escape
  133.     the laboratory has been decommissioned.
  134.  
  135.   chdir('') and chdir(undef) are deprecated
  136.     Using chdir('') or chdir(undef) instead of explicit chdir() is doubtful.
  137.     A failure (think chdir(some_function()) can lead into unintended chdir()
  138.     to the home directory, therefore this behaviour is deprecated.
  139.  
  140.   dump() should now be spelled CORE::dump()
  141.     The builtin dump() function has probably outlived most of its
  142.     usefulness. The core-dumping functionality remains available as an
  143.     explicit call to "CORE::dump()", but in future releases the behaviour of
  144.     an unqualified "dump()" call may change.
  145.  
  146.   Unimplemented POSIX regex features are now fatal
  147.     The unimplemented POSIX regex features [[.cc.]] and [[=c=]] are still
  148.     recognised but now cause fatal errors. The previous behaviour of
  149.     ignoring them by default and warning if requested was unacceptable since
  150.     it, in a way, falsely promised that the features could be used.
  151.  
  152.   ":raw" and ":crlf" disciplines no longer have inverse behaviors
  153.     Previous versions of perl and some readings of some sections of Camel
  154.     III implied that the ":raw" "discipline" was the inverse of ":crlf".
  155.     Turning off "clrfness" is no longer enough to make a stream truly
  156.     binary. So the PerlIO ":raw" layer (or "discipline", to use the Camel
  157.     book's older terminology) is now formally defined as being equivalent to
  158.     binmode(FH) - which is in turn defined as doing whatever is necessary to
  159.     pass each byte as-is without any translation. In particular binmode(FH)
  160.     - and hence ":raw" - will now turn off both CRLF and UTF-8 translation
  161.     and remove other layers (e.g. :encoding()) which would modify byte
  162.     stream.
  163.  
  164.   pack/unpack D/F recycled
  165.     The undocumented pack/unpack template letters D/F have been recycled for
  166.     better use: now they stand for long double (if supported by the
  167.     platform) and NV (Perl internal floating point type). (They used to be
  168.     aliases for d/f, but you never knew that.)
  169.  
  170.   EQ, NE, LT, LE, GE, GT operators no longer part of the language
  171.     The long deprecated uppercase aliases for the string comparison
  172.     operators (EQ, NE, LT, LE, GE, GT) have now been removed.
  173.  
  174.   tr///CU has been removed
  175.     The tr///C and tr///U features have been removed and will not return;
  176.     the interface was a mistake. Sorry about that. For similar
  177.     functionality, see pack('U0', ...) and pack('C0', ...).
  178.  
  179.     This change was already included in Perl 5.6.1.
  180.  
  181.   New warnings and deprecations
  182.     *       The (bogus) escape sequences \8 and \9 now give an optional
  183.             warning ("Unrecognized escape passed through"). There is no need
  184.             to \-escape any "\w" character.
  185.  
  186.     *       *glob{FILEHANDLE} is deprecated. Use *glob{IO} instead.
  187.  
  188.     *       The "package;" syntax ("package" without an argument) has been
  189.             deprecated. Its semantics were never that clear and its
  190.             implementation even less so. If you have used that feature to
  191.             disallow all but fully qualified variables, "use strict;"
  192.             instead.
  193.  
  194.     *       The current user-visible implementation of pseudo-hashes (the
  195.             weird use of the first array element) is deprecated starting
  196.             from Perl 5.8.0 and will be removed in Perl 5.10.0, and the
  197.             feature will be implemented differently. Not only is the current
  198.             interface rather ugly, but the current implementation slows down
  199.             normal array and hash use quite noticeably. The "fields" pragma
  200.             interface will remain available. The *restricted hashes*
  201.             interface is expected to be the replacement interface (see
  202.             Hash::Util). If your existing programs depends on the underlying
  203.             implementation, consider using "Class::PseudoHash" from CPAN.
  204.  
  205.     *       After years of trying, suidperl is considered to be too complex
  206.             to ever be considered truly secure. The suidperl functionality
  207.             is likely to be removed in a future release.
  208.  
  209.     *       Earlier Perls treated "sub foo (@bar)" as equivalent to "sub foo
  210.             (@)". The prototypes are now checked better at compile-time for
  211.             invalid syntax. An optional warning is generated ("Illegal
  212.             character in prototype...") but this may be upgraded to a fatal
  213.             error in a future release.
  214.  
  215.     *       The "exec LIST" and "system LIST" operations now produce
  216.             warnings on tainted data and in some future release they will
  217.             produce fatal errors.
  218.  
  219.     *       The existing behaviour when localising tied arrays and hashes is
  220.             wrong, and will be changed in a future release, so do not rely
  221.             on the existing behaviour.
  222.  
  223.     *       The arguments of WriteMakefile() in Makefile.PL are now checked
  224.             for sanity much more carefully than before. This may cause new
  225.             warnings when modules are being installed. See
  226.             ExtUtils::MakeMaker for more details.
  227.  
  228.     *       Using arrays or hashes as references (e.g. "%foo->{bar}" has
  229.             been deprecated for a while. Now these constructs will elicit an
  230.             optional warning.
  231.  
  232.     *       Use of the "/c" match modifier without an accompanying "/g"
  233.             modifier elicits a new warning: "Use of /c modifier is
  234.             meaningless without /g".
  235.  
  236.             Use of "/c" in substitutions, even with "/g", elicits the "Use
  237.             of /c modifier is meaningless in s///" warning.
  238.  
  239.             Use of "/g" with "split" elicits the "Use of /g modifier is
  240.             meaningless in split" warning.
  241.  
  242.     *       Ambiguous ranges in the transliteration operator (such as
  243.             "a-z-9") now provoke warnings.
  244.  
  245.     *       "push @a;" and "unshift @a;" (with no values to push or unshift)
  246.             now produce a warning. This may be a problem for generated code.
  247.  
  248.     *       Many other new warnings have been added (see perl58delta for a
  249.             complete list). All of them are optional, and are only enabled
  250.             when running perl with the "-w" switch or with "use warnings".
  251.             Warnings can be suppressed in specific lexical scopes using "no
  252.             warnings".
  253.  
  254. Known Issues
  255.   All Platforms
  256.     The definitive summary of platform-independent changes and known issues
  257.     in this release is available in perl58delta, perl581delta, perldelta and
  258.     in the Change Log that comes with the ActivePerl distribution.
  259.  
  260.     Only the significant known issues from perl58delta are listed here.
  261.  
  262.     The Compiler Suite Is Still Very Experimental
  263.             The compiler suite is slowly getting better but it continues to
  264.             be highly experimental. Use in production environments is
  265.             discouraged.
  266.  
  267.     Localising Tied Arrays and Hashes Is Broken
  268.                 local %tied_array;
  269.  
  270.             doesn't work as one would expect: the old value is restored
  271.             incorrectly. This will be changed in a future release, but we
  272.             don't know yet what the new semantics will exactly be. In any
  273.             case, the change will break existing code that relies on the
  274.             current (ill-defined) semantics, so just avoid doing this in
  275.             general.
  276.  
  277.     Self-tying Problems
  278.             Self-tying of arrays and hashes is broken in rather deep and
  279.             hard-to-fix ways. As a stop-gap measure to avoid people from
  280.             getting frustrated at the mysterious results (core dumps, most
  281.             often), it is forbidden for now (you will get a fatal error even
  282.             from an attempt).
  283.  
  284.             A change to self-tying of globs has caused them to be
  285.             recursively referenced (see: perlobj, "Two-Phased Garbage
  286.             Collection"). You will now need an explicit untie to destroy a
  287.             self-tied glob. This behaviour may be fixed at a later date.
  288.  
  289.             Self-tying of scalars and IO objects works.
  290.  
  291.     Tied/Magical Array/Hash Elements Do Not Autovivify
  292.             For normal arrays "$foo = \$bar[1]" will assign "undef" to
  293.             $bar[1] (assuming that it didn't exist before), but for
  294.             tied/magical arrays and hashes such autovivification does not
  295.             happen because there is currently no way to catch the reference
  296.             creation. The same problem affects slicing over non-existent
  297.             indices/keys of a tied/magical array/hash.
  298.  
  299.     Unicode in package/class and subroutine names does not work
  300.             One can have Unicode in identifier names, but not in
  301.             package/class or subroutine names. While some limited
  302.             functionality towards this does exist as of Perl 5.8.0, that is
  303.             more accidental than designed; use of Unicode for the said
  304.             purposes is unsupported.
  305.  
  306.             One reason for this incompleteness is its (currently) inherent
  307.             non-portability: since both package names and subroutine names
  308.             may need to be mapped to file and directory names, the Unicode
  309.             capability of the filesystem becomes important, and there
  310.             unfortunately aren't portable answers.
  311.  
  312.   Linux and Solaris
  313.     *       Some versions of tar on Solaris have bugs that prevent proper
  314.             extraction of files in a package that has long path names. Most
  315.             other versions of tar on Solaris use a different method than GNU
  316.             tar to encode pathnames longer than 100 characters. GNU tar is
  317.             therefore required to extract the package into the filesystem
  318.             correctly. A precompiled version of GNU tar for the sparc
  319.             platform is available from:
  320.  
  321.                 http://www.sunfreeware.com/
  322.  
  323.             You can also get the source package for GNU tar from:
  324.  
  325.                 http://www.gnu.org/
  326.  
  327.     *       The suidperl executable is not included in this package due to
  328.             potential security issues. If you wish to use suidperl in your
  329.             installation, we recommend building Perl from source. The source
  330.             code for ActivePerl is available at:
  331.  
  332.                 http://www.ActiveState.com
  333.  
  334.   Windows
  335.     *       ActivePerl depends on MSVCRT.DLL being installed on the target
  336.             system. This file ships with all versions of Windows except for
  337.             Windows 95. If you do not have this file installed on your
  338.             system you may experience problems installing and/or running
  339.             components within ActivePerl.
  340.  
  341.             You can download a self extracting executable that contains
  342.             MSVCRT.DLL from:
  343.  
  344.                 ftp://ftp.microsoft.com/softlib/mslfiles/msvcrt.exe
  345.  
  346.             Save the file in a temporary directory and double click on it to
  347.             extract the files. Follow the instructions in the ReadMe.txt
  348.             file contained in the package in order to install the missing
  349.             file.
  350.  
  351.     *       The fork() emulation has known limitations. See perlfork for a
  352.             detailed summary. In particular, fork() emulation will not work
  353.             correctly with extensions that are either not thread-safe, or
  354.             maintain internal state that cannot be cloned in the
  355.             psuedo-child process. This caveat currently applies to
  356.             extensions such as Tk and Storable.
  357.  
  358.     *       It seems that some people are having problems with the
  359.             ActivePerl MSI installer.
  360.  
  361.             The first thing to note is that you CANNOT install ActivePerl
  362.             5.8 over an older version of ActivePerl based on 5.6 or 5.005,
  363.             such as build 633 or any other 600 or 500 series build.
  364.  
  365.             We have determined that one cause of this error message is due
  366.             to other installations of Perl that may be pointed at by
  367.             something in the environment.
  368.  
  369.             Workaround
  370.  
  371.             The sure-fire solution is to make absolutely certain that no
  372.             other installations of Perl are on the target machine. Realizing
  373.             that this is not always possible, you can follow these steps to
  374.             ensure the other installations will not interfere.
  375.  
  376.             1) Stop the "Windows Installer" service. This can be
  377.             accomplished from the command prompt using the following
  378.             command:
  379.  
  380.                 c:\> net stop "Windows Installer"
  381.  
  382.             2) Temporarily remove or rename PERLLIB and PERL5LIB environment
  383.             variables in the system environment.
  384.  
  385.             3) Temporarily remove or rename the following registry values:
  386.  
  387.                 [\\HKEY_LOCAL_MACHINE\Software\Perl] lib = <directory> (REG_SV)
  388.                 [\\HKEY_LOCAL_MACHINE\Software\Perl] sitelib = <directory> (REG_SV)
  389.                 [\\HKEY_LOCAL_MACHINE\Software\Perl] lib-<PerlVersion> = <directory> (REG_SV)
  390.                 [\\HKEY_LOCAL_MACHINE\Software\Perl] sitelib-<PerlVersion> = <directory>(REG_SV)
  391.  
  392.             4) Proceed with the installation.
  393.  
  394.             Once the installation has completed successfully, the above
  395.             actions may be undone although restoring the environment
  396.             variables or the registry values may interfere with the proper
  397.             operation of your new ActivePerl installation.
  398.  
  399.             In order to perform all of the above steps, you will need to
  400.             have Administrative privileges on the target machine. If you do
  401.             not have the required privileges you should contact you
  402.             Administrator.
  403.  
  404.     *       Norton AntiVirus 2000 detects VBS.NewLove.A in the file
  405.             ActivePerl-Winfaq12.html.
  406.  
  407.             Workaround
  408.  
  409.             This is a false positive by Norton AntiVirus.
  410.             ActivePerl-Winfaq12.html has been examined by hand, and it is
  411.             likely that the following example code is what causes the false
  412.             report.
  413.  
  414.                 <BLOCKQUOTE>
  415.                 <P><CODE>use strict;<BR>
  416.                   use Win32::OLE;<BR>
  417.                   use Win32::OLE::Const 'Microsoft Outlook';<BR>
  418.                   <BR>
  419.                   my $Outlook = Win32::OLE->new('Outlook.Application', 'Quit');<BR>
  420.                   my $ol = Win32::OLE::Const->Load($Outlook);<BR>
  421.                   <BR>
  422.                   my $namespace = $Outlook->GetNamespace("MAPI");<BR>
  423.                   my $Folder = $namespace->GetDefaultFolder(olFolderInbox);<BR>
  424.                   my $NewFolder = $Folder->Folders->Add("Test1");</CODE></P>
  425.                 </BLOCKQUOTE>
  426.  
  427.             This can be tested by removing the above code from the
  428.             ActivePerl-Winfaq12.html file and rescanning with Norton
  429.             AntiVirus. Norton AntiVirus will no longer detect VBS.NewLove.A.
  430.  
  431.             Symantec has been notified of this issue.
  432.  
  433.     *       The following Microsoft knowledge base articles may be helpful
  434.             in solving MSI problems:
  435.  
  436.             Q236597 - OFF2000: Error Message: The Installation Package Could
  437.             Not Be Opened ...
  438.             http://support.microsoft.com/support/kb/articles/Q236/5/97.ASP
  439.  
  440.             Q224094 - OFF2000: Error Message: This Application Requires the
  441.             Windows Installer to Run
  442.             http://support.microsoft.com/support/kb/articles/Q224/0/94.ASP
  443.  
  444.             Q247532 - Works 2000 Err Msg: Installer Terminated Prematurely
  445.             http://support.microsoft.com/support/kb/articles/Q247/5/32.ASP
  446.  
  447.             "Error 1303. The installer has insufficient privileges..."
  448.             Running Office Setup
  449.             http://support.microsoft.com/support/kb/articles/Q228/6/58.ASP
  450.  
  451.             Error Message: Error 1316 Running Setup for Admin Installation
  452.             http://support.microsoft.com/support/kb/articles/Q228/5/92.ASP
  453.  
  454.             Error 1327 Invalid Drive During Office Installation
  455.             http://support.microsoft.com/support/kb/articles/Q217/6/66.ASP
  456.  
  457.     *       On Windows 9x, the system must be rebooted for the PATH
  458.             environment variable to take effect.
  459.  
  460.             On Windows 9x, the PATH environment variable settings are not
  461.             removed after an uninstall.
  462.  
  463.   Further Information
  464.     The Perl distribution comes with extensive documentation. On Unix
  465.     platforms, all the standard documentation is installed as man pages
  466.     under the Perl install location. The location of the man pages may need
  467.     to be added to the MANPATH environment variable in order to access them.
  468.     For example, in the C shell:
  469.  
  470.         % setenv MANPATH /usr/local/ActivePerl-5.8/man:$MANPATH
  471.  
  472.     The documentation is installed in HTML format on all platforms. If
  473.     ActivePerl was installed in /usr/local/ActivePerl-5.8 then the HTML
  474.     documentation would be located in /usr/local/ActivePerl-5.8/html.
  475.  
  476.     On Windows, the standard documentation along with Windows-specific Perl
  477.     documentation is installed in HTML format, and is accessible from the
  478.     "Start" menu.
  479.  
  480.     Updated versions of the HTML documentation will always be available at
  481.     the ActiveState website:
  482.  
  483.         http://www.ActiveState.com/ActivePerl/
  484.  
  485. Reporting Problems
  486.     Please report any problems you encounter with this release at the
  487.     following location:
  488.  
  489.         http://bugs.ActiveState.com/ActivePerl/
  490.  
  491.     If you do not have web access, reports can be also sent via email to
  492.     ActivePerl-Bugs@ActiveState.com. Please be sure to include detailed
  493.     information about the platform in your message.
  494.  
  495.     As far as possible, please ensure that there is enough information in
  496.     the report to reproduce the bug elsewhere. It also helps to submit a
  497.     minimal test case that exhibits the bug.
  498.  
  499.