If your environment variables (LC_ALL, LC_CTYPE, LANG, LANGUAGE) look
like you want to use UTF-8 (any of the the variables match C</utf-?8/i>),
your STDIN, STDOUT, STDERR handles and the default open discipline
-(see L<open>) are marked as UTF-8.
+(see L<open>) are marked as UTF-8. (This feature, like other new
+features that combine Unicode and I/O, work only if you are using
+PerlIO, but that's is the default.)
Note that after this Perl really does assume that everything is UTF-8:
for example if some input handle is not, Perl will probably very soon
File access tests now use current process privileges rather than the
user's default privileges, which could sometimes result in a mismatch
-between reported access and actual access.
+between reported access and actual access. This improvement is only
+available on VMS v6.0 and later.
There is a new C<kill> implementation based on C<sys$sigprc> that allows
older VMS systems (pre-7.0) to use C<kill> to send signals rather than
=item *
-accept() no longer leaks memory. [561]
+Signal handling now works better than it used to. It is now implemented
+using a Windows message loop, and is therefore less prone to random
+crashes.
=item *
-Borland C++ v5.5 is now a supported compiler that can build Perl.
-However, the generated binaries continue to be incompatible with those
-generated by the other supported compilers (GCC and Visual C++). [561]
+fork() emulation is now more robust, but still continues to have a few
+esoteric bugs and caveats. See L<perlfork> for details. [561+]
+
+=item *
+
+A failed (pseudo)fork now returns undef and sets errno to EAGAIN. [561]
+
+=item *
+
+The following modules now work on Windows:
+
+ ExtUtils::Embed [561]
+ IO::Pipe
+ IO::Poll
+ Net::Ping
+
+=item *
+
+IO::File::new_tmpfile() is no longer limited to 32767 invocations
+per-process.
=item *
=item *
-Duping socket handles with open(F, ">&MYSOCK") now works under Windows
-9x. [561]
+Compiling perl using the 64-bit Platform SDK tools is now supported.
=item *
-New %ENV entries now propagate to subprocesses. [561]
+The Win32::SetChildShowWindow() builtin can be used to control the
+visibility of windows created by child processes. See L<Win32> for
+details.
=item *
-Current directory entries in %ENV are now correctly propagated to child
-processes. [561]
+Non-blocking waits for child processes (or pseudo-processes) are
+supported via C<waitpid($pid, &POSIX::WNOHANG)>.
=item *
-$ENV{LIB} now used to search for libs under Visual C.
+The behavior of system() with multiple arguments has been rationalized.
+Each unquoted argument will be automatically quoted to protect whitespace,
+and any existing whitespace in the arguments will be preserved. This
+improves the portability of system(@args) by avoiding the need for
+Windows C<cmd> shell specific quoting in perl programs.
+
+Note that this means that some scripts that may have relied on earlier
+buggy behavior may no longer work correctly. For example,
+C<system("nmake /nologo", @args)> will now attempt to run the file
+C<nmake /nologo> and will fail when such a file isn't found.
+On the other hand, perl will now execute code such as
+C<system("c:/Program Files/MyApp/foo.exe", @args)> correctly.
=item *
-fork() emulation has been improved in various ways, but still continues
-to be experimental. See L<perlfork> for known bugs and caveats. [561+]
+The perl header files no longer suppress common warnings from the
+Microsoft Visual C++ compiler. This means that additional warnings may
+now show up when compiling XS code.
=item *
-A failed (pseudo)fork now returns undef and sets errno to EAGAIN.
+Borland C++ v5.5 is now a supported compiler that can build Perl.
+However, the generated binaries continue to be incompatible with those
+generated by the other supported compilers (GCC and Visual C++). [561]
=item *
-Win32::GetCwd() correctly returns C:\ instead of C: when at the drive root.
-Other bugs in chdir() and Cwd::cwd() have also been fixed. [561]
+Duping socket handles with open(F, ">&MYSOCK") now works under Windows 9x.
+[561]
=item *
-HTML files will be installed in c:\perl\html instead of c:\perl\lib\pod\html
+Current directory entries in %ENV are now correctly propagated to child
+processes. [561]
=item *
-The makefiles now provide a single switch to bulk-enable all the
-features enabled in ActiveState ActivePerl (a popular Win32 binary
-distribution). [561]
+New %ENV entries now propagate to subprocesses. [561]
=item *
-Allow REG_EXPAND_SZ keys in the registry.
+Win32::GetCwd() correctly returns C:\ instead of C: when at the drive root.
+Other bugs in chdir() and Cwd::cwd() have also been fixed. [561]
=item *
-Can now send() from all threads, not just the first one. [561]
+The makefiles now default to the features enabled in ActiveState ActivePerl
+(a popular Win32 binary distribution). [561]
=item *
-ExtUtils::MakeMaker now uses $ENV{LIB} to search for libraries.
+HTML files will now be installed in c:\perl\html instead of
+c:\perl\lib\pod\html
=item *
-Fake signal handling reenabled, bugs and all.
+REG_EXPAND_SZ keys are now allowed in registry settings used by perl. [561]
=item *
-%SIG has been enabled under USE_ITHREADS, but its use is completely
-unsupported under all configurations. [561]
+Can now send() from all threads, not just the first one. [561]
+
+=item *
+
+ExtUtils::MakeMaker now uses $ENV{LIB} to search for libraries. [561]
=item *
Less stack reserved per thread so that more threads can run
-concurrently. (Still 16M per thread.)
+concurrently. (Still 16M per thread.) [561]
=item *
=item *
-Non-blocking waits for child processes (or pseudo-processes) are
-supported via C<waitpid($pid, &POSIX::WNOHANG)>.
-
-=item *
-
-Win64 compilation is now supported.
-
-=item *
-
-winsock handle leak fixed. [561]
+A socket handle leak in accept() has been fixed. [561]
=back
signedness handling of the C compiler, as do the 64bitint, arith, and pow
failures. Most of the rest point at problems with SysV IPC.
+=head2 PDL failing some tests
+
+Use PDL 2.3.4 or later.
+
=head2 Term::ReadKey not working on Win32
Use Term::ReadKey 2.20 or later.
./perl -Ilib ext/Time/HiRes/HiRes.t
-=head2 UNICOS
-
- ../lib/Math/Trig.t 26 1 3.85% 25
- ../lib/warnings.t 470 1 0.21% 429
-
-The Trig.t failure is caused by the slighly differing (from IEEE)
-floating point implementation of UNICOS. The warnings.t failure is
-also related: the test assumes a certain floating point output format;
-this assumption fails in UNICOS.
-
=head2 UNICOS/mk
=over 4
Self-tying of scalars and IO thingies works.
+=head2 Tied/Magical Array/Hash Elements Do Not Autovivify
+
+For normal arrays C<$foo = \$bar[1]> will assign C<undef> to
+C<$bar[1]> (assuming that it didn't exist before), but for
+tied/magical arrays and hashes such autovivification does not happen
+because there is currently no way to catch the reference creation.
+The same problem affects slicing over non-existent indices/keys of
+a tied/magical array/hash.
+
=head2 Building Extensions Can Fail Because Of Largefiles
Some extensions like mod_perl are known to have issues with