# ActivePerl 5.8 Change Log

For the latest information on ActivePerl, please see:

        http://www.ActiveState.com/ActivePerl/

## Build 810 Monday, Jun 7, 2004

Build 810 is based on Perl 5.8.4.

Bug Fixes and Changes

Perl 5.8.4 has been incorporated. See perl584delta for a list of changes.

Many bundled modules have been updated to their latest versions:

        Archive-Tar-1.08
        Compress-Zlib-1.33
        Data-Dump-1.03
        Digest-1.08
        Digest-MD5-2.33
        Digest-SHA1-2.10
        File-CounterFile-1.04
        Font-AFM-1.19
        HTML-Parser-3.36
        MD5-2.03
        MIME-Base64-3.01
        Tk-804.027
        URI-1.30
        XML-Simple-2.12
        XML-XSLT-0.48 (only for HP-UX))
        libnet-1.18
        libwww-perl-5.79
        perl-ldap-0.31 (only for HP-UX))

## Build 809 Monday, Feb 2, 2004

Build 809 is based on Perl 5.8.3.

Bug Fixes and Changes

Perl 5.8.3 has been incorporated. See perl583delta for a list of changes.

The Win32 module now includes the Win32::IsAdminUser() function that checks if the current interpreter runs with Administrator privileges.

The access violations of detached threads on thread exit have been fixed.

Time::HiRes now provides high resolution on Windows too.

## Build 808 Thursday, Dec 6, 2003

Build 808 is based on Perl 5.8.2.

Changes

Perl 5.8.2 has been incorporated. See perl582delta for a list of changes.

ActivePerl build 808 is still being compiled with the `-DNO_HASH_SEED` option to maintain binary compatibility with earlier releases. Perl 5.8.2 implements a new rehashing scheme that will kick in dynamically based on the actual data being stored in a hash. This new scheme is backwards compatible and is enabled in ActivePerl build 808.

The following modules are bundled with ActivePerl for HP-UX and have been updated to their latest versions:

        Convert-ASN1-0.18
        XML-DOM-1.43
        XML-XPath-1.13
        XML-XSLT-0.45
        perl-ldap-0.30

## Build 807 Thursday, Nov 6, 2003

Build 807 is based on Perl 5.8.1. This is the first release of ActivePerl based on this new maintenance release of Perl. This release is meant for use in production systems. However, owing to the sheer volume of changes between Perl 5.8.0 and 5.8.1 that have been incorporated, please be sure to test it thoroughly in a non-critical environment before you upgrade your production systems.

Please check perl581delta for a list of the major changes in Perl. Only additional changes specific to ActivePerl are mentioned here.

Bug Fixes and Changes

Perl 5.8.1 has been incorporated. See perl581delta for a list of changes.

Important note: The new Hash Randomisation feature has been disabled in ActivePerl because it is not compatible with Perl 5.8.0. If we enabled this feature then some modules compiled with 5.8.0 would not work correctly with 5.8.1 and most modules compiled with 5.8.1 would not work at all with Perl 5.8.0. This would require maintaining separate PPM module repositories for 5.8.0 and 5.8.1.

To enable the Hash Randomisation feature you must recompile ActivePerl from source and remove the `-DNO_HASH_SEED` definition from the C compiler options. In that case you must compile all CPAN modules yourself too because the PPM repository binaries will not be compatible.

Windows 2003 Server is now officially supported. The installer adds entries to the IIS6 ``Web Services Extensions'' list for both ``Perl CGI'' and ``Perl ISAPI''. Both are set to ``Prohibited'' by default and must be explicitly changed to ``Allow'' in the IIS Manager.

Win32::GetOSName() detects the release version of Windows 2003 correctly.

ActiveState::Rx module has been included. This module is necessary to use the Rx Toolkit in ActiveState Visual Perl. You must upgrade Visual Perl to version 1.8.1 to use the Rx Toolkit with Perl 5.8.

Many bundled modules have been updated to their latest versions:

        Archive-Tar-1.07
        Compress-Zlib-1.22
        Data-Dump-1.01
        Digest-MD2-2.03
        Digest-MD5-2.30
        Digest-SHA1-2.06
        File-CounterFile-1.01
        HTML-Parser-3.34
        HTML-Tree-3.18
        URI-1.27
        XML-Parser-2.34
        XML-Simple-2.09
        libwin32-0.21
        libwww-perl-5.75

In addition, IO::Zlib version 1.01 is now included with ActivePerl.

PPM

The upgrade command has been fixed.

It is now possible to install from a file URL while not being connected to the internet.

PPM now works on Windows even when the Term::InKey module is installed.

Perl for ISAPI

Perl for ISAPI no longer uses line buffering for STDOUT. This is especially important for running under IIS6 which bypasses TCP/IP nagling and directly sends every packet individually.

Perl for ISAPI used to close all open file handles before shutting down the Perl interpreter. The intention was to prevent file handle leaks from buggy Perl scripts while running inside the IIS process. Unfortunately Perl may still execute END blocks or call DESTROY methods during final destruction and some file handles may get closed twice in this scenario.

This creates a race condition: the file handle may already have been re-opened by a different thread before the second close happens. Perl then closes a file handle it doesn't own anymore. This may cause a different page request to fail.

To avoid this race condition Perl for ISAPI will no longer try to automatically close open file handles. Therefore it is possible that broken Perl applications will now start leaking file handles if they don't close them correctly themselves.

## Build 806 Monday, March 31, 2003

Bug Fixes and Changes

Several bug fixes and other improvements have been merged from the Perl development track. In particular, many of these fixes address problems in the PerlIO implementation. See the ActivePerl source code diff for the complete list of included changes.

Other minor bug fixes and documentation updates.

PPM

PPM has been upgraded to version 3.1. It fixes most of the known problems, including:

PPM 3.1 now provides all the functionality of PPM 2.0 and 3.0. PPM 2.0 is therefore no longer included in ActivePerl 5.8.

PPM now works correctly through a proxy server requiring basic authentication. Previous versions of PPM 3.0 only supported proxy servers that did not require authentication.

PPM is now more robust in handling user-defined repository URLs. For instance, URLs with a trailing slash no longer result in fatal errors.

Support for ASPN Perl profiles has been much improved. However, at the time of this writing, the ActivePerl 5.8 repositories do not yet support profiles. This is expected to become available shortly.

In previous versions of PPM 3, incorrect search results from the repository (such as package names that do not have corresponding PPD files) could crash the PPM3 client. PPM now generates meaningful error messages under these circumstances.

## Build 805 Thursday, Feb 6, 2003

Bug Fixes and Changes

Several bug fixes and other improvements have been merged from the Perl development track. In particular, many of these fixes address weaknesses in Unicode support. See the ActivePerl source code diff for the complete list of included changes.

Bugs in the Perl 5.8 integration of Perl for ISAPI and PerlScript that resulted in failure to flush output correctly at the termination of the script have been fixed.

On Windows, `system()` and backticks could return invalid status when running under environments where the process has to handle Windows messages. PerlScript and Perl for ISAPI fall under this category. The problem has been corrected.

On Windows, PerlScript and Perl for ISAPI were affected by a reentrancy problem, which meant that recursive invocation of these two engines could fail. This problem has been corrected.

Tk and libwww-perl has been updated to their latest versions.

Win32::Shortcut no longer calls `CoUninitialize()` within an END block. This avoids random coredumps from this module when its DESTROY methods happen to get called after the END block executes.

PPM v2 and v3 can now optionally generate HTML documentation when installing packages if POD documentation is found in the package. This is controlled by the rebuildhtml option in PPM v2 and the rebuild-html option in PPM v3.

Other minor bug fixes and documentation updates.

## Build 804 Friday, Nov 29, 2002

What's new in the 800 Series

This build corresponds to the Perl 5.8.0 source code release.

The 800 series builds of ActivePerl are not binary compatible with builds in the 500 or 600 series. Any extensions built using binaries from the ActivePerl 500 or 600 series will need to be recompiled. Note especially that this applies to PPM packages that may have been built for 500 or 600 series builds.

Significant changes that have occurred in the 5.8.0 release are documented in perl58delta.

Support has been enabled for large file access on all platforms, meaning that file manipulation facilities within perl can cope with files larger than 2GB or 4GB.

Many new modules are included as a standard part of perl 5.8.0. See ``Modules and Pragmata'' in perl58delta for a detailed list. In addition, the Data::Dump module is now included with ActivePerl. Many other modules have been updated to their latest versions.

PPM v3 is now included as the default `ppm` executable. PPM v2 continues to be available, and can be executed as `ppm2`.