For the latest information on ActivePerl, please see:
http://www.ActiveState.com/ActivePerl/
PPM2 and PPM3
PPM3 has not been updated to the latest version PPM 3.1 as shipped with the ActivePerl 5.8 series. PPM 3.1 assumes that PPM 2.x is no longer installed and doesn't synchronize package information with it. Since PPM2 is the default PPM version in ActivePerl 5.6, PPM3 has been kept at version 3.0.
Bug Fixes and Changes
stat()
function has been
fixed.
On Windows, a handle leak in kill()
has been fixed.
On Windows, a memory leak in fork()
has been fixed.
On Windows NT and later, subprocesses are now started via ``cmd /x/d/c''
instead of ``cmd /x/c''. This disables execution of AutoRun command
specified in the registry.
On Windows, the four-argument form of select()
did not report the
$! (errno) value properly after errors. This has been corrected.
Win32::GetOSVersion() returns additional information about the system
(when available, Windows NT SP6 and later).
Perl for ISAPI would sometimes close a filehandle twice. This leads
to a race condition where another thread could have reused the
filehandle before the second close would be executed. This usually
happens in high load scenarios. Typical symptoms include error
messages that Perl could not load standard modules, even though they
are installed on the server.
Perl for ISAPI no longer closes filehandles implicitly and relies now on the application to properly clean up file and socket handle resources.
Perl for ISAPI now avoids closing the special handles STDIN, STDOUT and STDERR, even if the script asked for that explicitly. The following bundled modules have been updated to their latest versions:Archive-Tar Compress-Zlib Digest Digest-MD2 Digest-MD5 Digest-SHA1 File-CounterFile HTML-Parser HTML-Tree libnet libwin32 libwww-perl MD5 MIME-Base64 Storable Test-Harness URI
The following modules have been added to ActivePerl:
Data-Dump IO-Zlib Test-SimpleOther minor bug fixes and documentation updates.
Fixes for Security Issues
crypt()
builtin did not return consistent results.
This has been corrected.
The reval()
and rdo()
methods in the Safe module could be subverted
into executing unsafe code by the callee. This problem has been
corrected.
Other Bug Fixes and Changes
bool
could result in core dumps in some situations.
This has been corrected.
On Windows, sockets opened by code running under PerlScript and
Perl for ISAPI were not fully closed internally. The ensuing leak
resulted in failure to open files or sockets after a certain
number of sockets had been opened and closed under these environments.
This problem was particularly severe when running under ActivePerl
5.6.1.632 or 5.6.1.633, and is now fixed.
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.
PPM3 includes a number of bug fixes for better handling of both PPM2
and PPM3 repositories.
Tk and libwww-perl have been updated to their latest versions.
Win32::EventLog could fail to retrieve messages under some circumstances.
This has been corrected.
Win32::OLE has been updated. Run ``perldoc Win32::OLE::NEWS'' for
a summary.
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.
Win32::Job now propagates environment changes to its subprocesses
correctly.
A Win32::GetFolderPath() builtin is now supported.
Run ``perldoc Win32'' for documentation on this new builtin.
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 634 was not formally released to the public.
Bug Fixes and Changes
Fixes for Security Issues
Other Bug Fixes and Changes
open(STDOUT, "
&=FOO``)> leaked memory
on all platforms. This leak has been fixed.
Race conditions involving backticks, piped open()
have been fixed.
These problems could affect environments where multiple Perl interpreters
execute in concurrent threads.
Use of the range operator on constant numbers, as for example 1..20
,
could result in compile-time stricture checks being disabled for parts
of the program. The problem has been corrected.
XSUBs can now be undefined using undef().
On Unix platforms, %ENV and %SIG handling could result in race conditions.
Changes to %ENV and %SIG are now only propagated to the underlying system
process context within the top level interpreter.
On Unix platforms, ActivePerl now uses reentrant versions of library
functions, where available. This further improves thread-safety in
multiple-interpreter environments.
Win32::GetLongPathName() did not work correctly if there were ``.'' or
``..'' components in the argument. The implementation has been improved
to handle this better.
On Windows platforms, a Win32::SetChildShowWindow() builtin is now
supported. This can be used to set the visibility of child process
windows. See Win32 for more information.
Newer versions of the following modules are included: Digest-MD5,
MIME-Base64, URI, HTML-Parser, libwww-perl, SOAP-Lite, and libnet.
libwin32 has been updated on Windows platforms. There is support for
job objects (available in Windows 2000 and XP) through the new Win32::Job
extension, which can be used to manage a group of processes.
On Windows platforms, the installer ensures that the Microsoft Installer
automatic repair ``feature'' will not be triggered. This ensures that the
repair ``feature'' does not corrupt the ActivePerl installation by ``repairing''
critical files to their unrelocated state.
Documentation for perl programs is now included in the table of contents.
Bug Fixes and Changes
eval "..."
expressions
that create anonymous subroutines. This has been fixed.
On Windows, the behavior of system(@list)
has been further rationalized to
improve compatibility with the behavior before 5.6.1.630. Automatic quoting of
arguments with whitespace is now skipped if the argument already contains
double quotes anywhere within it. Previously, the double quotes needed
to be at both ends in order for further quoting to be skipped.
Bugs in command.com on Windows 9x/Me prevented the system()
enhancements
in ActivePerl 5.6.1.630 from working in some situations. These enhancements
are now disabled under Windows 9x/Me.
Perl for ISAPI and PerlScript had a bug in ActivePerl 5.6.1.630 that
caused system()
and backticks to leak handles, resulting in failure of
these functions after a certain number of invocations. This has been
corrected.
ActivePerl 5.6.1.629 and later had a problem in Perl for ISAPI that
caused %ENV modifications done by the script to affect the real
environment, resulting in incompatible behavior of scripts that assumed
the older behavior. The behavior before 5.6.1.629 has been reinstated.
On Windows, the internal memory allocator used by Perl could fail after
around 1 GB of allocations even though more memory may be available on
the system. Allocating up to and beyond 2GB is now possible if the
system has memory available and allows a single process to allocate
that amount of memory. Note that most Windows systems running on
x86 have a 2GB limit on allocations by a single process.
Non-blocking waitpid()
on any process (a.k.a. waitpid(-1, WNOHANG)) is now
supported on Windows.
Due to popular demand, the following modules are now included by default:
Storable, Tk, and XML-Simple.
PPM v3 beta 3 is included. A number of bugs in beta 2 have been fixed.
Installing from URLs (http, ftp, and file) and installing through a HTTP
proxy server are now supported.
Compress-Zlib and MIME-Base64 have been updated to their latest versions.
Due to popular demand, HTML documentation has been reintroduced into the
default installation for Windows.
Various other minor bugs have been fixed. See the ActivePerl bug database
at http://bugs.ActiveState.com/ for more information.
Bug Fixes and Changes
readline()
(aka ``diamond'') operator now works on ``our'' variables.
On Windows, system()
and backticks behave more sanely with respect to
whitespace in arguments. Any whitespace inside quoted arguments are
correctly preserved. system()
with multiple arguments also automatically
quotes any arguments that contain whitespace by enclosing them in
double-quotes, as necessary. This improves portability of the standard
idiom of calling system()
with multiple arguments.
On Windows, IO::File::new_tmpfile() does not fail after 32767 calls
On Windows, entries in %ENV were sometimes being improperly propagated
to child processes if such entries happened to be at the end of the
internal process environment table. This misbehavior has been corrected.
PerlScript and Perl for ISAPI ignore the \\?\ prefix in new-fangled
file names returned by IIS in Windows XP.
In scripts running under PerlScript or Perl for ISAPI, print()
with
more than one argument did not print the second and subsequent arguments.
This has been fixed.
The style and content of the included online documentation has been
extensively revised. On Windows, all the documentation is now provided
in fully searchable HTML Help format. Documentation in conventional
HTML format continues to be included only for Unix platforms, and can
also be downloaded separately.
Some of the bundled modules have been updated to their latest available
versions: libwin32 v0.18, URI v1.17, and SOAP-Lite v0.51 are now included.
Bug Fixes and Changes
asctime_r()
on Unix platforms, making the corresponding
builtins and POSIX::asctime() thread-safe.
On Windows, child processes launched with Win32::Spawn() now correctly
inherit any modifications to %ENV done by the script.
On Windows, modifications to $ENV{PATH} in the script correctly affect
the lookup of executables in system()
and backticks. Previous versions
did not propagate %ENV modifications completely enough for the underlying
CreateProcess()
system call to notice any changes.
A small number of minor bug fixes from the Perl development track have been
incorporated. See the ActivePerl source code diff for the complete list.
Compress-Zlib has been updated to v1.13.
libwin32 v0.173 is included.
Bug Fixes and Changes
Build 626 is based on Perl 5.6.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.6.0 and 5.6.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 perl561delta for a list of the major changes in Perl. Only additional changes specific to ActivePerl are mentioned here.
Bug Fixes and Changes
For additional information on module updates in Perl 5.6.1, see perl561delta.
A number of fixes to PPM have been included. PPM now displays a download status indicator, and sports a ``getconfig'' command. A large number of documentation updates are included.
Bug Fixes and Changes
Installer now adds Perl/bin directory to the PATH environment variable for Windows 9x. Windows 9x will need to be rebooted for this to take effect.
The PATH settings are not removed after an uninstallation.
PPM updated to 2.1.2. It now uses SOAP-Lite and has drastically reduced bandwidth requirements for SUMMARY requests. This is a prerequisite for supporting the new PPM repository containing most of CPAN. OLE Browser has been fixed to work on IE 5.5. minor bug fixes tofork()
emulation and duplication of socket handles
on Windows 9X.
Bug Fixes and Changes
Bug Fixes and Changes
system()
PerlScript
Documentation
Modules
Bug Fixes and Changes
http://www.ActiveState.com/download/ActivePerl/src/5.6/AP618_diff.txt
Individual patches for each of these changes may also be obtained. See perlhack.
Perl'snewSVrv()
API function could result in corrupt data when coercing an
already initialized value to the right type, and could also lead to memory
leaks. Win32::OLE v0.14 tickled these bugs. newSVrv()
has been fixed to
resolve these issues.
Perl's optimizer could coredump on stacked assignments involving split()
,
such as @a = @b = split(...)
. This is now fixed.
Windows sockets weren't being initialized correctly in child threads if the
parent already initialized it. This resulted in print()
on a socket
created under such conditions not being handled correctly (whereas send()
would do the right thing). The problem has been fixed.
Win32::OLE v0.14 had a bug that could cause strings longer than 256 characters
to be truncated by a single character. This has been corrected.
Bug Fixes and Changes
http://www.ActiveState.com/download/ActivePerl/src/5.6/AP617_diff.txt
Individual patches for each of these changes may also be obtained. See perlhack.
Problems with backticks not returning a proper return code under Windows 9x have been fixed. Linux, Solaris and Windows NT/2000 weren't affected.wait()
and waitpid()
now return the correct pid values for pseudo-pids on
Windows.
New entries added to the end of the environment via %ENV
did not get
inherited by child processes on Windows. This has been corrected.
Build 616 introduced a change that could make close(SOCKET)
return a bogus
return value. This has been corrected.
Various minor PerlScript incompatibilities under Internet Explorer 5.5
on Windows have been corrected.
Perl for ISAPI and PerlScript do not add entries to the EventLog by default.
libnet v1.06 is now included with ActivePerl. To configure the site-specific
defaults for libnet, run $Config{installprefix}/bin/libnetcfg.pl
.
Digest-MD5 v2.11 is now included with ActivePerl.
Several bundled extensions have been upgraded to newer versions. URI v1.09,
libwww-perl v5.48, Compress-Zlib v1.08 and libwin32 v0.17 are now included.
The included HTML documentation has been improved and updated to be current
with the latest modules.
The HtmlHelp.pm module is no longer included with ActivePerl. If you want
this module, please obtain it from a release prior to ActivePerl 617.
Bug Fixes and Changes
http://www.ActiveState.com/download/ActivePerl/src/5.6/AP616_diff.txt
Individual patches for each of these changes may also be obtained. See perlhack.
A bug in Win32::OLE that prevented PerlScript from working properly has been fixed. On Windows, a small memory leak in theaccept()
builtin function has
been fixed.
On Windows, creating sockets in pseudo-child processes did not work
because Winsock was not initialized in the pseudo-process. This has
been rectified.
Bug Fixes and Changes
http://www.ActiveState.com/download/ActivePerl/src/5.6/AP615_diff.txt
Individual patches for each of these changes may also be obtained. See perlhack.
On Unix platforms, ActivePerl is now built with the-Duseithreads
Configure option, just as on Windows. While this provides a functionally
identical perl, it also makes this build binary incompatible with earlier
builds on Unix platforms. If you had installed any extensions (i.e. modules
with XS code) using earlier builds via PPM or otherwise, you will need
to reinstall them under this build. Future builds will maintain binary
compatibility with this one.
On Windows, this build continues to be binary compatible with build 613.
The installation location for the native installations on Unix (Red Hat RPM, Debian dpkg, or Solaris pkgadd) have changed. These packages will now be installed under /usr/local/ActivePerl-5.6/ rather than under /usr/local/perl-5.6. This one-time change avoids confusion with locally installed versions built from the sources, and also avoids installing on top of existing binary-incompatible build 613 installations.The installation location can be chosen as usual on Windows, and when installing using the generic installers on Unix.
On Windows,chdir()
could sometimes fail to return failure when given a
non-existent directory, and UNC paths didn't work correctly. These
problems have been corrected.
The libwin32
v0.16 release from CPAN is included for the Windows
builds.
Various small PPM bugs have been fixed.
A bug in PerlScript that prevented it from working under IIS5 on
Windows 2000 has been fixed.
Bug Fixes and Changes
Bug Fixes and Changes
Bug Fixes and Changes
binmode()
now supports a second optional argument that can be used
to switch a file handle to ``:crlf'' or ``:raw'' mode. (These correspond
to the traditional text and binary modes.) See perlfunc/binmode.
The new open
pragma can be used to set the default mode for
implicitly opened handles in the current lexical scope. This is
useful to set a particular mode for the results of the qx//
operator. See open.
The bundled ActivePerl documentation has been reorganized. Outdated
material has either been reworked to reflect the current status, or
removed when it was no longer applicable.
Many bugs in the beta releases have been fixed.
Bug Fixes and Changes
kill(0,$pid)
on Windows to test if process exists.
There is a new tutorial on Object Oriented Perl for beginners. See
`perlboot'.
The PPM repository has been updated with newer versions of modules for
all supported platforms.
Bug Fixes and Changes
Bug Fixes and Changes
- SOAP - File::CounterFile - Font::AFMSupport for Unicode has changed from previous versions. See perlunicode for details.
Bug Fixes and Changes
fork()
emulation have been fixed. perlfork reflects
these changes.
Bug Fixes and Changes
fork()
is included. See perlfork
for details about this functionality.
Documentation in fully searchable HTMLHelp format is included.
Many of the included extensions from CPAN have been updated to newer
versions.
A large number of minor bugs in the Perl core have been fixed. See the
Changes file in the included sources for a detailed list.
Bug Fixes and Changes
Bug Fixes and Changes
Major Changes