For the latest information on ActivePerl, please see:
http://www.ActiveState.com/ActivePerl/
Build 824 is based on Perl 5.8.8, but also includes all changes from
the Perl 5.8 maintenance branch up to change 34096 plus additional
selected changes from the Perl development branch.
Bug Fixes and Changes since build 822.2
-
Many updates and bug fixes in the Perl internals have been applied.
See the Changes file in the source distribution for the complete
list.
-
Minimum system requirements have been changed: Windows 2000 and later
are supported Windows versions and Solaris 2.8 is the minimum Solaris
version.
-
PPM v4.3 is now included. This version of PPM should be considerable
faster at parsing the package.xml file and in updating the local
database. This version also supports installing packages from
.ppmx files.
-
PPM on Windows and Linux will use the "new" ActiveState PPM
repositories currently at http://ppm.activestate.com/beta which have a
bigger selection of modules available and will allow updating of
bundled core modules when updates become available.
The new repositories are configured on the server side; other
platforms will be switched to the new repositories once they become
available for them automatically.
-
ActivePerl::Config on Windows now dynamically sets the
$Config{ccversion} to the version of cl.exe. This allows
ExtUtils::MakeMaker to generate and embed manifest files into
extension DLL when required by the specific version of the C compiler.
-
The GCC support for Windows in ActivePerl::Config now adds the
-mms-bitfields option to the ccflags when compiling with GCC.
This forces identical struct layouts with Visual C++, which is used to
compile ActivePerl itself. This has become important because core
Perl 5.10 now uses bit-fields for some important structures.
-
The tkkit libraries used by the Tkx module have been updated with
the latest changes from ActiveTcl 8.5.4.
-
CVE-2006-4484 has been addressed in Tk.
-
On OS X the supplied sitecustomize.pl script adds the
~/Library/ActivePerl/lib directory to @INC, and PPM will install
into this directory by default because the
/usr/local/ActivePerl-5.8/site/lib directory isn't writable
without sudo. Unfortunately ~/Library/ActivePerl/lib was also
used by ActivePerl 5.10, so you could end up with a mixture of 5.8 and
5.10 modules in that directory. This release uses
~/Library/ActivePerl-5.8/lib as a per-user Perl 5.8 specific
module area.
-
On Windows there is a special form of them system() function to start
processes asynchronously: system(1, $cmd). It returns the
process id instead of the exit status so that the spawning application
can eventually use waitpid() to wait for the external process to
terminate. Previous Perl releases only returned the lower 16 bits of
the process id; this version returns all 32 bits.
-
The following modules have been added to ActivePerl:
Algorithm-Diff 1.1902
Bit-Vector 6.4
BSD-Resource 1.2901
Carp-Clan 6.00
Compress-Raw-Zlib 2.012
Class-Accessor 0.31
Crypt-SSLeay 0.57
Date-Calc 5.4
DBD-CSV 0.22
DBD-ODBC 1.16
DBD-Oracle 1.21
Digest-SHA 5.47
ExtUtils-CBuilder 0.24
File-HomeDir 0.80
File-Next 1.02
File-Which 0.05
GD 2.39
GDGraph 1.4308
GDTextUtil 0.86
HTML-Template 2.9
IO-Compress-Base 2.012
IO-Compress-Zlib 2.012
JSON 2.12
JSON-XS 2.2222
Module-Build 0.2808_01
mylib 1.02
Net-Telnet 3.3
Pod-Escapes 1.04
Pod-Simple 3.07
PPM-Repositories 0.15
SQL-Statement 1.15
Sub-Uplevel 0.1901
Test-Differences 0.48
Test-Exception 0.27
Text-CSV_XS 0.52
Text-Diff 0.35
Text-Glob 0.08
Time-Piece 1.13
version 0.76
WWW-Mechanize 1.34
YAML-LibYAML 0.27
The DBD::Oracle module is only included in the 32-bit releases of
ActivePerl for Windows and Linux. It does not include the Oracle
client libraries; instead it requires that either the regular client
libraries or the Oracle Instant Client is already installed and
configured on the system.
ActiveState recommends DBI and DBD::ODBC for accessing databases
using ODBC. The Win32::ODBC module continues to be provided for
backwards compatibility, but new code should exclusively use
DBD::ODBC.
The PPM-Repositories module supplies a list of PPM repositories
provided by sources outside ActiveState. It makes it easier to
discover and configure additional repositories in PPM. For example
you can display a list of repositories available for the current
platform with:
ppm repo suggest
Adding e.g. the University of Winnipeg repository maintained by Randy
Kobes is then as easy as:
ppm repo add uwinnipeg
The PPM-Repositories list is used by the PPM GUI client as well.
-
The following bundled modules have been updated to their latest
versions:
Archive-Tar 1.32 to 1.38
bignum 0.22 to 0.23
CGI 3.29 to 3.41
Compress-Zlib 1.4201 to 2.012
Data-Dump 1.08 to 1.11
DBI 1.58 to 1.605
Font-AFM 1.19 to 1.20
HTML-Stream 1.55 to 1.59
HTML-Tagset 3.10 to 3.20
IO-Zlib 1.04 to 1.09
libwww-perl 5.808 to 5.814
Math-BigInt 1.82 to 1.89
Math-BigInt-FastCalc 0.15 to 0.19
Math-BigRat 0.18 to 0.22
Math-Complex 1.37 to 1.54
perl-ldap 0.34 to 0.36
Tcl 0.89 to 0.95
Thread-Queue 2.00 to 2.11
Thread-Semaphore 2.01 to 2.09
threads 1.63 to 1.71
threads-shared 1.12 to 1.26
Time-HiRes 1.9707 to 1.9715
Tkx 1.04 to 1.05
URI 1.35 to 1.37
XML-Parser 2.34 to 2.36
XML-Simple 2.16 to 2.18
-
The libwin32 module collection has been replaced by its individual
modules, each of which has been updated to the latest version from
CPAN:
Win32-Clipboard 0.55
Win32-Console 0.09
Win32-EventLog 0.076
Win32-File 0.06
Win32-FileSecurity 1.08
Win32-Internet 0.84
Win32-IPC 1.07
Win32-Job 0.03
Win32-NetAdmin 0.11
Win32-NetResource 0.56
Win32-ODBC 0.034
Win32-OLE 0.1709
Win32-PerfLib 0.06
Win32-Pipe 0.024
Win32-Process 0.14
Win32-Registry 0.10
Win32-Service 0.06
Win32-Shortcut 0.07
Win32-Sound 0.49
Win32-TieRegistry 0.25
Win32-WinError 0.03
Win32API-File 0.1001
Win32API-Net 0.12
Win32API-Registry 0.30
Known Issues
-
ActivePerl 824 on Unix (AIX, Linux, OS X, Solaris) is incompatible
with PerlApp from the Perl Dev Kit 7.2. This issue will be fixed in
Perl Dev Kit 7.3 and does not affect the Windows release of 824.
Please continue to use ActivePerl 822 with PerlApp on Unix until
the Perl Dev Kit 7.3 has been released.
Build 823 was only distributed for HP-UX.
Build 822.2 is a rebuild for HP-UX.
Bug Fixes and Changes since build 822.1
-
The following security vulnerabilities are addressed in this release:
-
CVE-2007-5116
Buffer overflow in the polymorphic opcode support in the Regular
Expression Engine (regcomp.c) in Perl 5.8 allows context-dependent
attackers to execute arbitrary code by switching from byte to Unicode
(UTF8) characters in a regular expression.
-
Directory traversal vulnerability in Archive-Tar
Archive-Tar would extract files to locations outside the current
working directory if the tarball contained either absolute paths, or
relative paths containing "../" sequences.
This behavior is now disabled by default. The
$Archive::Tar::INSECURE_EXTRACT_MODE variable can be set to a true
value to restore the old behavior. The ptar utility now requires
the -I option to enable the insecure extraction mode.
Note that this vulnerability fix is not backwards compatible. You can
set $Archive::Tar::INSECURE_EXTRACT_MODE in your sitecustomize.pl
file to restore the insecure operation globally.
-
ActivePerl 822 on HP-UX does not include PPM4 and therefore also
doesn't include the corresponding changes to the directory layout and
@INC directory order. However, all additional modules were still
installed into the lib instead of the site_lib tree, breaking
PPM3. In build 822.2 all non-core modules are installed in the
site_lib tree again.
-
The following bundled modules have been updated to their latest
versions:
ActivePerl-DocTools-2.2
Archive-Tar-1.37.2
DBI-1.601
XML-Simple-2.18
Build 822.1 is a rebuild of build 822 for HP-UX on PA-RISC. The
original release had several modules compiled so that they would only
work on PA-RISC2.0 machines. All modules in 822.1 are compatible with
the PA-RISC1.1 architecture again.
Build 822 is based on Perl 5.8.8, but also includes all changes from the
Perl 5.8 maintenance branch up to change 31223 plus additional selected
changes from the Perl 5.9 development branch.
Bug Fixes and Changes since build 821
-
Additional updates and bug fixes in the Perl internals have been applied (on
top of the changes in build 821, which was only released on HP-UX). See the
Changes file in the source distribution for the complete list.
-
kill(0, $pid) was always returning TRUE in build 820 on Windows. It now
returning the correct values again (bug 67519).
-
It is now possible to send "INT" signals to subprocesses on Windows, as long
as they are also running ActivePerl Build 822 or later. For arbitrary
subprocesses, only "BREAK" and "TERM" signals will be delivered (bug 67871).
-
The MSI installer would under certain conditions insert invalid script
mappings into the IIS metabase, which could disable all script mappings
until the invalid entries have been manually removed. This situation could
only happen if the user used the "Back" button in the installer to get back
to the component selection dialog, and then de-selected some previously
selected components (PerlEx and/or Perl for ISAPI).
The control flow in the installer has been fixed, and the code manipulating
the metabase has been safeguarded to prevent these invalid mappings (bug
68446).
-
The installer.bat installer on Windows could create an incorrect script
mapping for the .pl file extension (to "Perl " with the trailing
space). It now correctly maps to the "Perl" association (bug 68656).
-
$Config{installsitescript} now points to the same directory as
$Config{installsitebin} instead of defaulting back to $Config{installscript}
(bug 70844).
-
MinGW extension compilation support has been improved. Build 820 added
support for $Config{lib_ext}, but broke in turn $Config{obj_ext} (bug
69025). This has been corrected, and $Config{ldflags} is now adjusted
too. ActivePerl will also automatically search the MinGW/lib directory
for additional libraries, and support linking against both .lib and .a
files.
Note that some MinGW support may get broken if ExtUtils::MakeMaker is being
updated directly to a newer version from CPAN (so don't do that if you are
using MinGW).
-
Many bundled modules have been updated to their latest versions:
ANSIColor-1.12
Archive-Tar-1.32
Archive-Zip-1.20
CGI-3.29
CPAN-1.9102
DBI-1.58
Encode-2.23
Filter_Util-Call-1.07
PathTools-3.25
Tie-RefHash-1.37
Win32-0.30
base-2.12
libnet-1.21
libwww-perl-5.806
threads-1.63
threads-shared-1.12
Known Issues
-
Build 822 is no longer compatible with the PDK 6 (Perl Dev Kit). Please
stay with build 820 if you need to use PDK 6, or upgrade to PDK 7 if you
want to use ActivePerl 822.
-
The diagnostics module from build 822 will not work correctly with
PerlApp from PDK 7 (on Windows only) because the perldiag.pod file has
been moved from the lib/Pod to the lib/pods directory. This will
be fixed in the PDK 7.1 release.
Build 821 is based on Perl 5.8.8, but also includes all changes from
the Perl 5.8 maintenance branch up to change 31223 plus additional
selected changes from the Perl 5.9 development branch.
Build 821 was only distributed for HP-UX.
Special configuration of build 821 for HP-UX
Build 821 on HP-UX does not include PPM4 or the Tkx module, and it
also does not have the simplified directory layout nor the changed
order of directories in @INC. These changes will be introduced
for HP-UX in ActivePerl 5.10.
Bug Fixes and Changes since build 820
-
Many updates and bug fixes in the Perl internals have been applied.
See the Changes file in the source distribution for the complete
list.
-
Setting the ACTIVEPERL_CONFIG_CC environment variable to gcc will
force the ActivePerl::Config module to use a GCC configuration even
when the vendor compiler is available on the PATH. This option is
supported on HP-UX, Solaris, and Windows.
-
Windows NT support (broken in build 820) has been restored.
-
The command history of the debugger is now being saved and restored
between debugging sessions.
-
The various manpages including the FAQs have been updated in many
places. Especially the documentation regarding regular expressions,
and regarding Unicode has been expanded. The Perl Unicode FAQ has
been added as perlunifaq.pod and the Perl Unicode Tutorial as
perlunitut.pod.
-
The Unicode Character Database was updated from version 4.1.0 to
5.0.0.
-
stat() and -X file tests now work on dirhandles too.
-
sort() function can now be recursive.
-
The ${^CHILD_ERROR_NATIVE} variable now contains the native status
returned by the last pipe close, backtick (``) command, successful
call to wait() or waitpid(), or from the system() operator.
-
If the ${^WIN32_SLOPPY_STAT} variable is set to a true value, then
stat() on Windows will not try to open the file. This means that the
link count cannot be determined and file attributes may be out of date
if additional hardlinks to the file exist. On the other hand, not
opening the file is considerably faster, especially for files on
network drives.
-
The perl*.pod files are now installed into the lib/pods directory
on Windows. Previously they were copied to the lib/Pod directory
because the filesystem on Windows is not case sensitive.
-
The $Config{d_pseudofork} variable has been introduced to differentiate
between platforms with real fork() support and the fork() emulation
currently implemented on Windows.
-
The following module has been added to ActivePerl:
Module-Pluggable-3.6
-
Many bundled modules have been updated to their latest versions:
ANSIColor-1.11
AutoLoader-5.63
Benchmark-1.10
Carp-1.0701
CGI-3.28
CPAN-1.9101
DB_File-1.815
Data-Dumper-2.121_12
Digest-1.15
DynaLoader-1.08
Encode-2.20
Errno-1.10
Exporter-5.60
ExtUtils-Command-1.13
ExtUtils-MakeMaker-6.32
ExtUtils-Manifest-1.51
ExtUtils-ParseXS-2.15
Fatal-1.05
File-Compare-1.1005
File-Copy-2.10
File-Find-1.11
File-Glob-1.06
File-Path-1.09
File-Temp-0.18
FindBin-1.48
Getopt-Long-2.36
Math-BigFloat-1.54
Math-BigInt-1.82
Math-BigInt-FastCalc-0.13
Math-BigRat-0.18
Math-Complex-1.37
POSIX-1.12
PathTools-3.24
PerlIO-encoding-0.10
PerlIO-scalar-0.05
PerlIO-via-0.04
Pod-Html-1.08
Pod-Parser-1.35
Scalar-List-Utils-1.19
Shell-0.72
Storable-2.16
Switch-2.13
Sys-Syslog-0.18
Text-Balanced-2.0.0
Test-Harness-2.64
Test-Simple-0.70
Text-Soundex-3.02
Text-Tabs+Wrap-2006.1117
Tie::RefHash-1.34
Time-HiRes-1.9707
Time-Local-1.17
Unicode-Normalize-1.01
Win32-0.29
XSLoader-0.08
bignum-0.20
libnet-1.20
threads-1.61
threads-shared-1.11
Build 820 is based on Perl 5.8.8.
Bug Fixes and Changes since build 819
-
PPM has been upgraded to version 4.01.
-
The PPM UI now supports install and uninstall of modules with
post-install or uninstall scripts.
-
PPM now always uses package.xml for the ActiveState repository and
doesn't fall back to downloading thousands of PPDs if the package.xml
file is temporarily unavailable.
-
PPM now runs post-install scripts in dependency order.
-
The --force option to 'ppm install' now allows files already installed
by other packages to be overwritten. Ownership of these files is
transferred to the new package.
-
Added --no-sync option to the 'ppm search', 'ppm install' and
'ppm upgrade' commands.
-
Added --max-ppd option to 'ppm repo sync' command.
-
Added 'ppm config' command.
-
Added 'ppm tree' command.
-
The 'ppm repo sync' command now always checks the server to see if
updates to the repository are available.
-
Improved compatiblity with PPD files from PPM3 repositories.
-
PPM4 now supports ZIP archives as the codebase of PPD files.
-
The 'ppm-shell' command on Windows now uses Term::ReadLine::Stub
for terminal I/O to provide command history recall.
-
On Windows, PPM state data is now stored in LOCAL_APPDATA instead of
APPDATA. The database can be quite large and is therefore not suitable
for the roaming profile.
-
PPM now picks up modules from site; but still looks in the perl
area first. This allows you to install Crypt-SSLeay in order to be
able to access https://...-repositories.
-
Fixed a problem causing PPM to sometimes download package tarballs from
the wrong repository.
-
The PPM GUI now shows which repository a package comes from. The
Repository column is hidden by default.
-
The PPM GUI now warns about downgrades on modules selected for
installation which have a lower version number than the currently
installed version.
-
The PPM GUI used to drop all dependencies if some of them failed. It
now keeps any remaining dependencies.
-
In the PPM GUI, package selection is not cleared if the install fails.
This makes it possible to retry without having to select all the same
packages again.
-
The PPM GUI now shows a download progress bar.
-
New PPM icon on Mac OS.
-
There have been various improvements in Unicode handling on Windows.
Most of them rely on the fact that Windows stores a short 8.3 name for
each filename that is longer, or contains characters not in the system
codepage. By using the short name Perl is able to access these files
throught the byte stream APIs that the Perl core is using.
If the generation of short filenames has been disabled, then filenames
containing characters outside the system codepage will still not be
accessible. Since the short file names are stored by the file system,
this mechanism will also only work for existing files. There is no
way to determine a short file name for files that have not yet been
created.
-
readdir() and glob() will return the short name if the long name
cannot be represented in the system codepage.
-
The PATH environment variable is preprocessed and all entries using
characters that are not in the system codepage will be replaced with
their short name versions. This preprocessing step will also remove
surrounding quote characters from all entries in the PATH variable.
The PATH cleanup happens early enough that perl.exe will be able to
find scripts via the -S commandline option in those "inaccessible"
directories.
-
Both $^X and the @INC entries derived from $^X (lib and site/lib
directories) will be converted to the short form, if necessary.
Note that installing ActivePerl into a directory whose name cannot be
represented in the system codepage is still discouraged.
-
Win32::GetCwd() will return a short name, if necessary, and
Win32::SetCwd() can accept a Unicode name.
-
The new Win32::GetANSIPathName() accepts a pathname that may contain
Unicode characters and returns the name in the system codepage.
The file or directory must already exist; otherwise characters not in
the system codepage will be translated using replacement characters
(usually '?'), resulting in a potentially invalid filename.
-
Win32::GetLongPathName() may return Unicode characters now.
-
Win32::GetFullPathName() will return a short name, if necessary. Call
Win32::GetLongPathName() on the return value (in scalar context) to
get the full pathname in Unicode:
-
Win32::GetFolderPath() will return a short name, if necessary. Call
Win32::GetLongPathName() on the return value to get the full pathname
in Unicode.
-
Win32::ExpandEnvironmentStrings() may return Unicode characters
because it will use the Unicode process environment directly.
Any changes to %ENV however will be propagated to the process
environment, and %ENV only stores byte strings. There is currently
no API to set environment variables to a Unicode string.
-
Win32::MsgBox() now accepts Unicode strings for both the MESSAGE
and TITLE paramters.
-
Win32::LoginName() may return Unicode characters.
-
The builtin Perl kill() function now support killing process trees by
using negative signal numbers on Windows too. Currently kill() on
Windows will still only terminate processes owned by the same user,
even when the user is a member of the Administrators group.
-
Perl on Windows could hang indefinitely under certain conditions
involving more than one of: alarm(), sleep(), waitpid(), system() and a
GUI toolkit like Tk, wxPerl, Win32::GUI (or any other function that uses
a messageloop). This indefinite loop should no longer occur.
-
The Windows installer now puts site\bin in the PATH.
-
The Windows installer now detects and prevents installation on top of
ActivePerl 817 or earlier. This is necessary because the changed
order of lib and site/lib in @INC would otherwise put old
modules from the previous installation in front of the new modules
bundled with this release.
Also see the installation guide for help on saving and restoring your
installed PPM modules with PPM-Profile.
-
The Windows installer for 64-bit ActivePerl will default the install
location to C:\Perl64 instead of C:\Perl. Installing both the
32 and 64 bit versions of ActivePerl into the same directory is not
supported.
The Start menu shortcut and the Add Remove Programs entry for the
64 bit version are marked with a " (64-bit)" suffix to differentiate
them from the 32 bit versions.
-
Improved MingW compatiblity on Windows.
-
The lwp-request aliases GET, HEAD, POST are no longer installed; use
lwp-request directly instead. These aliases created problems on
case-insensitive systems where they shadowed other commands.
-
Make HTTP::Daemon deal properly with 'HEAD' requests. It used to
generate a content body for these causing confusion on persistent
connections.
-
The self-contained tkkits required by the Tcl module have been updated.
-
Restored the old (pre 818) behaviour of
ActivePerl::DocTools::WriteTOC(). It now only warns if it can't
write to the perltoc.html file.
-
ActiveState::Browser now also looks for xdg-open, galeon and
opera on Unix. It also knows how to detect KDE/Gnome properly.
-
ActiveState::Scineplex now has a JSON output mode.
-
Long hostnames are now supported on HP-UX.
-
Many bundled modules have been updated to their latest versions:
Archive-Zip-1.18
Data-Dump-1.08
DBD-SQLite-1.13
HTML-Parser-3.56
HTML-Tree-3.23
Mac-Apps-Launch-1.93
Mac-Errors-1.13
Mac-Glue-1.30
Win32-0.28
XML-Simple-2.16
-
A patch has been applied to DBI-1.52 to make it more robust against
drivers not handling multiple result sets with different numbers of
columns correctly. DBI wasn't upgraded to version 1.53 because that
one breaks compatibility with DBD-Sybase.
Build 819 is based on Perl 5.8.8.
Bug Fixes and Changes since build 818
-
HTML table of contents did not get updated as packages were
installed/removed.
-
libwww-perl package was not properly recorded by PPM.
-
Term-ReadLine-Perl was missing.
-
Upgradable packages no longer show packages with equal version number
in the PPM GUI.
Build 818 is based on Perl 5.8.8.
Bug Fixes and Changes since build 817
-
This is the first non-beta release of 64 bit ActivePerl. It is
available for Windows and Linux on x64 as well as Solaris on Sparc.
The 64 bit Windows release does not include PerlScript, PerlEx, Perl
for ISAPI or PerlEz.
The 64 bit releases do not yet contain the Tcl and Tkx modules.
-
PPM has been rewritten; see Release Notes and ppm for details.
-
All bundled modules and scripts are now installed in the perl area
and the site area is now completely empty in a new ActivePerl
installation.
-
Rearranged order of @INC; modules installed in site area now
take precedence over the bundled modules.
-
Simplified directory layout on Unix; no more architecture and version
specific directories. This makes the layout the same as the Windows
version of ActivePerl.
-
Term::ReadLine console fix for Windows.
-
Avoid trying to read C:\dev\urandom at startup on Windows.
-
The gridRemove method has been enabled for Tk.pm.
-
The Win32::OLE module in libwin32 package has been upgraded from
version 0.1704 to version 0.1707.
-
add special support for tlbinf32.dll from Microsoft
-
add support for receiving VT_RECORD and arrays of VT_RECORD
-
improve error handling logic
-
fix memory leak in Win32::OLE::Enum::All() and Win32::OLE::Enum::Next()
-
in ClearVariantObject() check IDispatch/IUnknown variants
for NULL before calling Release() on them
-
Double quotes are now displayed properly in the HTML documentation.
-
DynaLoader.o has now been moved into libperl.so on Unix. This
makes it easier to embed perl and is the same arrangement as perl on
Windows.
-
Added ActiveState::Browser module to ActiveState-Utils.
-
Most files of the Perl installation are now readonly on Windows.
-
Added a workaround for Module::Install brokenness that affected
ActivePerl::Config (introduced in build 815). This prevented some
modules to install under the CPAN shell.
-
Added error checks after execing PL_cshname or PL_sh_path.
-
Many bundled modules have been updated to their latest versions:
Archive-Tar-1.30
CGI 3.20
Compress-Zlib-1.42
HTML-Parser-3.55
HTML-Tree-3.20
Mac-AppleEvents-Simple-1.18
Mac-Carbon-0.77
Mac-Errors-1.12
Mac-Glue-1.27
threads 1.31
threads-shared 1.01
Term-ReadLine-Perl-1.0302
-
New bundled modules:
DBI-1.52
DBD-SQLite-1.12
Math-BigInt-FastCalc-0.10
Tcl-0.89
Tkx-1.04
Introduce PPM graphical interface and Tkx.
Introduce rearranged order of @INC and the new PPM command line client.
Build 817 is based on Perl 5.8.8.
Bug Fixes and Changes
-
Upgraded the core threads and threads::shared modules with
threads-1.12 and threads-shared-0.99 from CPAN. This fixes the handle
leakage on Windows and allows setting the stack size for new threads.
It also fixes both the '!=' comparison operator for thread objects and
the crashes while joining threads that go re-introduced in build 816.
-
Fixed several bugs in the new implementation of alarm() for Windows.
They did manifest themselves by signals not being delivered, or by GUI
applications randomly hanging.
-
Restored binary compatibility for SvPV_nolen() and similar macros.
This incompatibility made it impossible to use perlapp for Unix on Tk
based applications.
-
Reintroduce PL_memory_wrap for binary compatibility.
-
The require builtin now ignores directories matching the given name
when searching @INC.
Build 816 is based on Perl 5.8.8.
Bug Fixes and Changes
-
Perl 5.8.8 has been incorporated. See perl588delta.pod for a list
of changes.
-
ActivePerl build 816 is now also available as a 64 bit Beta release
for Windows and Linux on x86_64 as well as Solaris on Sparc. The 64
bit Windows Beta does not include PerlScript, PerlEx, Perl for ISAPI
or PerlEz.
-
The ActivePerl Community License has been clarified. It now
explicitly allows you to redistribute certain parts of ActivePerl as
part of applications generated by wrapping tools such as by PAR,
PerlApp and Perl2Exe. Please refer to the license text for actual
terms and conditions.
-
ActivePerl for Mac OS X is now a Universal binary that supports all
Macintosh hardware natively.
-
ActivePerl for Solaris is now built with the vendor compiler.
Previous releases were built with the GNU compiler (gcc).
-
ActivePerl::Config on Solaris and HP-UX now provide compatibility so
that extensions can be built using gcc. This happens automatically if
the vendor compiler is not available on the target system.
-
ActivePerl now ships with a preinitialized CPAN::Config module.
This avoids the need to go through the configuration dialog the first
the CPAN shell is invoked. The configuration dialog can still be
invoked by the o conf init command to the CPAN shell.
-
Syntax colored documentation and ActiveState::Scineplex is now
supported for all the Unix platforms.
-
Passive transfer mode is now the default for Net::FTP. This mode
is more likely to work with modern firewall setups.
-
Problem where 'perl -s' wasn't able to parse -foo=bar switches has
been corrected.
-
The stat() builtin would not return the expected result when passed a
directory name with trailing slashes on Windows. This problem has
been fixed.
This problem caused the rmtree() function of the File::Path
module introduced in build 815 to fail for such directory names on
Windows.
-
The IO::Socket::INET is now more efficient and it does not rely on
getprotobyname("tcp") to be functional any more.
-
A problem where long groups entries could cause memory exhaustion has
been fixed.
-
A problem with the alarm() function on Windows 2003 has been fixed.
-
The Tk module would sometimes fail to update the -cursor attribute
of widgets for 64-bit builds of perl. This problem has now been fixed.
-
Many bundled modules have been updated to their latest versions:
Digest-SHA1-2.11
HTML-Tagset-3.10
HTML-Parser-3.50
HTML-Tree-3.1901
IO-String-1.08
libwww-perl-5.805
Mac-Errors-1.11
Win32-OLE-0.1704
Build 815 is based on Perl 5.8.7.
Bug Fixes and Changes
-
The PerlEx plugin for IIS has been added to ActivePerl for Windows.
It caches precompiled CGI scripts in memory to increase their
performance.
-
The table of contents for the HTML documentation has been reverted
back to the format used before build 813 (it no longer requires
JavaScript to be enabled).
-
ExtUtils::MakeMaker now generates and installs HTML documentation
automatically. Regardless how modules are being installed (via PPM,
through the CPAN shell, or by manual compilation and installation),
the HTML documentation is always kept up-to-date.
-
Code snippets in the HTML documentation are syntax colored. This
feature is currently only available on Windows and Mac OS X.
-
ActiveState::Scineplex has been added on Windows and Mac OS X. This
module analyzes source code for various programming languages and is
being used to colorize the code snippets in the HTML documentation.
-
The ActivePerl::Config module has been added. It allows perl's
configuration options to be overridden. The module can also
automatically reconfigure ActivePerl for alternative compilation
environments when the default compiler cannot be found.
On Windows, MakeMaker will use the gcc.exe compiler from MinGW and
the dmake.exe utility if the Microsoft Visual C++ compiler
cl.exe and the nmake.exe utility are not available on the
PATH. This will also work automatically from within the CPAN shell.
-
The perl-static executable on Unix will now pick up a matching
Config.pm (there is no statically linked Perl on Windows).
-
File::Path's rmtree() function has been replaced to address
security vulnerability CAN-2005-0448.
-
Fixed incompatibility problem with Tk and Encode version 2.10 which was
introduced in build 813 (perl-5.8.7).
-
Win32::GetOSName() can now identify Windows Vista.
-
Various ActiveState::* utility modules have been added.
-
libwin32 has been updated to version 0.26:
-
Win32API::File
New GetFileAttributes() function and corresponding constants.
Added GetFileSize(), getFileSize(), setFilePointer(), and
GetOverlappedResult() functions. The file position operations can use
Math::BigInt objects.
Experimental new object oriented interface added. This will be moved
into a separate module in a later release.
-
Win32API::Registry
Added DELETE/READ_CONTROL/WRITE_DAC/WRITE_OWNER/SYNCHRONIZE as KEY_*.
-
Win32::Clipboard
GetBitmap() should now work correctly with 1 bit, 4 bit, 8 bit,
16 bit, 24 bit, and 32 bit colors.
-
Win32::Console
Renamed GRAY to LIGHTGRAY and added definitions for the "real" GRAY
colors.
Added get_Win32_IPC_HANDLE() method so that Win32::IPC can wait
on a console handle.
Added SetIcon() method to change the icon of the window.
Don't export the scalar variables to %main:: but into the callers
namespace.
-
Win32::Process
Added get_Win32_IPC_HANDLE() method for Win32::IPC compatibility.
Added STILL_ACTIVE constant for GetExitCode().
Win32::Process::Open() now records the process ID correctly
for GetProcessID(). It also creates handle now that can be
used with the Wait() method.
-
Win32::Shortcut
The Save() function now calls Win32::GetLongPathName() on the filename
to make sure to use a fully qualified pathname.
The Save() will store the new filename as the 'File' property unless
the Shortcut object already has a 'File' property.
-
Many bundled modules have been updated to their latest versions:
Archive-Tar-1.26
Archive-Zip-1.16
Compress-Zlib-1.41
HTML-Parser-3.46
IO-String-1.07
Mac-Apps-Launch-1.92
Mac-OSA-Simple-1.09
Time-HiRes-1.76
Unicode-String-1.09
Build 814 Beta is based on Perl 5.8.7. This release is provided as a
Windows MSI installer only.
Bug Fixes and Changes
-
Bundled PerlEx, an ISAPI plugin for the IIS web server.
-
Built in ActivePerl:: module providing version information.
-
The gedi program now actually runs. This is a demo program
installed by the Tk package.
-
Text-Autoformat module updated to version 1.13.
Build 813 is based on Perl 5.8.7.
Bug Fixes and Changes
-
ActivePerl is now supported on the Mac OS X, Solaris (x86), and AIX platforms.
-
New improved HTML documentation which requires JavaScript enabled
browser.
-
Installation of the HTML documentation is now optional.
-
Perl 5.8.7 has been incorporated. See perl587delta.pod for a list of changes.
-
ActivePerl will now evaluate 'sitecustomize.pl' at startup if present.
The ActivePerl distribution does not ship with this file, but it is a
hook that the system administrator can use to set up set up additional
site specific @INC entries.
-
Fixed Net::Ping's ICMP implementation to not give up waiting for the
echo reply until it either receives an unreachable reply or times out.
Previous versions would for instance give up if they received a source
quench reply.
-
Many bundled modules have been updated to their latest versions:
Archive-Tar-1.23
Compress-Zlib-1.34
Convert-ASN1-0.19 (only for HP-UX)
HTML-Parser-3.45
HTML-Tagset-3.04
libwww-perl-5.803
XML-Simple-2.14
-
New modules
Mac-AppleEvents-Simple-1.17
Mac-Apps-Launch-1.91
Mac-Carbon-0.74
Mac-Errors-1.10
Mac-Glue-1.25
Mac-OSA-Simple-1.08
MLDBM-2.01 (only for Mac OS X)
Text-Autoformat-1.12
Text-Reform-1.11
Time-Epoch-0.02 (only for Mac OS X)
Unicode-String-2.07
The "Mac-" modules are only present for Mac OS X as well.
-
The ActiveState-Rx module has been dropped from the distribution.
Build 812 is based on Perl 5.8.6.
Bug Fixes and Changes
-
On Unix, provide a destructor for libperl. This allows libperl to be
repeatedly loaded and unloaded by e.g. mod_perl without running out of
thread local storage slots. On Windows this was already handled
correctly.
-
The reloc_perl -a option has been fixed. It is now possible to relocate
from a shorter to a longer path.
Build 811 is based on Perl 5.8.6.
Bug Fixes and Changes
-
Perl 5.8.6 has been incorporated. See perl585delta.pod and
the perl586delta manpage for a list of changes.
-
Fixed stack corruption in the Tk-804.027 module. This would sometimes
make Tk programs crash.
-
Fixed handling of Unicode in XML-DOM-1.43. Some Unicode strings would
end up UTF-8 encoded when they should not be. The XML::DOM module is
only distributed as part of ActivePerl on HP-UX.
-
Many bundled modules have been updated to their latest versions:
Archive-Tar-1.22
Data-Dump-1.06
Digst-MD4-1.4
Encode-2.09
HTML-Parser-3.38
IO-Zlib-1.04
libwin32-0.24 (only for Windows)
libwww-perl-5.801
libxml-perl-0.08 (only for HP-UX)
perl-ldap-0.3202
URI-1.35
In addition, IO::String version 1.06 is now included with
ActivePerl.
Build 810 is based on Perl 5.8.4.
Bug Fixes and Changes
-
Perl 5.8.4 has been incorporated. See the perl584delta manpage for a list
of changes.
-
The default install location on Unix is now /opt/ActivePerl-5.8.
Earlier versions installed into /usr/local/ActivePerl-5.8 by
default.
-
Many bundled modules have been updated to their latest versions:
Archive-Tar-1.08
Compress-Zlib-1.33
Data-Dump-1.03
Digest-SHA1-2.10
File-CounterFile-1.04
Font-AFM-1.19
HTML-Parser-3.36
libwww-perl-5.79
MD5-2.03
perl-ldap-0.31 (only for HP-UX))
Tk-804.027
URI-1.30
XML-Simple-2.12
XML-XSLT-0.48 (only for HP-UX))
Build 809 is based on Perl 5.8.3.
Bug Fixes and Changes
-
Perl 5.8.3 has been incorporated. See the perl583delta manpage 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 is based on Perl 5.8.2.
Changes
-
Perl 5.8.2 has been incorporated. See the perl582delta manpage 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 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 the perl581delta manpage 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 the perl581delta manpage for a list of changes.
Important note: The new Hash Randomization 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 Randomization 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.
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.
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.
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 the perl58delta manpage.
-
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 the perl58delta manpage 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.
|