This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
made eq_array in t/test.pl handle undef values better
[perl5.git] / README.win32
index d0a878b..9d99244 100644 (file)
@@ -43,11 +43,10 @@ following compilers on the Intel x86 architecture:
 
       Borland C++              version 5.02 or later
       Microsoft Visual C++     version 4.2 or later
-      Mingw32 with GCC         version 2.95.2 or better
+      MinGW with gcc           gcc version 2.95.2 or later
 
-The last of these is a high quality freeware compiler.  Support
-for it is still experimental.  (Older versions of GCC are known
-not to work.)
+The last of these is a high quality freeware compiler.  Use version
+3.2.x or later for the best results with this compiler.
 
 This port can also be built on the Intel IA64 using:
 
@@ -123,7 +122,8 @@ See L</"Make"> above.
 
 The nmake that comes with Visual C++ will suffice for building.
 You will need to run the VCVARS32.BAT file, usually found somewhere
-like C:\MSDEV4.2\BIN.  This will set your build environment.
+like C:\MSDEV4.2\BIN or C:\Program Files\Microsoft Visual Studio\VC98\Bin.
+This will set your build environment.
 
 You can also use dmake to build using Visual C++; provided, however,
 you set OSRELEASE to "microsft" (or whatever the directory name
@@ -138,24 +138,19 @@ The nmake that comes with the Platform SDK will suffice for building
 Perl.  Make sure you are building within one of the "Build Environment"
 shells available after you install the Platform SDK from the Start Menu.
 
-=item MinGW32 with gcc
+=item MinGW release 3 with gcc
 
-The latest release of MinGW (at the time of writing) is 2.0.0, which comes 
-with gcc-3.2, and can be downloaded here:
+The latest release of MinGW at the time of writing is 3.1.0, which comes 
+with gcc-3.2.3, and can be downloaded here:
 
-    http://sourceforge.net/projects/mingw
+    http://www.mingw.org/
 
-Perl compiles with earlier releases of gcc (2.95 and up) that can be
-downloaded from the same place. If you use gcc-3.2, comment out the
-line:
-
-    USE_GCC_V3_2       *= define
-
-in win32\makefile.mk
+Perl also compiles with earlier releases of gcc (2.95.2 and up).  See below
+for notes about using earlier versions of MinGW/gcc.
 
 You also need dmake.  See L</"Make"> above on how to get it.
 
-=item MinGW release 1
+=item MinGW release 1 with gcc
 
 The MinGW-1.1 bundle comes with gcc-2.95.3.
 
@@ -203,8 +198,7 @@ Make sure you are in the "win32" subdirectory under the perl toplevel.
 This directory contains a "Makefile" that will work with
 versions of nmake that come with Visual C++ or the Platform SDK, and
 a dmake "makefile.mk" that will work for all supported compilers.  The
-defaults in the dmake makefile are setup to build using Microsoft Visual
-C++ 6.0 or newer.
+defaults in the dmake makefile are setup to build using MinGW/gcc.
 
 =item *
 
@@ -212,6 +206,13 @@ Edit the makefile.mk (or Makefile, if you're using nmake) and change
 the values of INST_DRV and INST_TOP.   You can also enable various
 build flags.  These are explained in the makefiles.
 
+Note that it is generally not a good idea to try to build a perl with
+INST_DRV and INST_TOP set to a path that already exists from a previous
+build.  In particular, this may cause problems with the
+lib/ExtUtils/t/Embed.t test, which attempts to build a test program and
+may end up building against the installed perl's lib/CORE directory rather
+than the one being tested.
+
 You will have to make sure that CCTYPE is set correctly and that 
 CCHOME points to wherever you installed your compiler.
 
@@ -223,7 +224,7 @@ If you have either the source or a library that contains des_fcrypt(),
 enable the appropriate option in the makefile.  A ready-to-use version
 of fcrypt.c, based on the version originally written by Eric Young at
 ftp://ftp.funet.fi/pub/crypt/mirrors/dsi/libdes/, is bundled with the
-distribution. Set CRYPT_SRC to fcrypt.c to use this version.
+distribution and CRYPT_SRC is set to use it.
 Alternatively, if you have built a library that contains des_fcrypt(),
 you can set CRYPT_LIB to point to the library name.
 Perl will also build without des_fcrypt(), but the crypt() builtin will
@@ -288,19 +289,20 @@ Please report any other failures as described under L<BUGS AND CAVEATS>.
 Type "dmake install" (or "nmake install").  This will put the newly
 built perl and the libraries under whatever C<INST_TOP> points to in the
 Makefile.  It will also install the pod documentation under
-C<$INST_TOP\$VERSION\lib\pod> and HTML versions of the same under
-C<$INST_TOP\$VERSION\lib\pod\html>.  To use the Perl you just installed,
-you will need to add two components to your PATH environment variable,
-C<$INST_TOP\$VERSION\bin> and C<$INST_TOP\$VERSION\bin\$ARCHNAME>.
-For example:
+C<$INST_TOP\$INST_VER\lib\pod> and HTML versions of the same under
+C<$INST_TOP\$INST_VER\lib\pod\html>.
+
+To use the Perl you just installed you will need to add a new entry to
+your PATH environment variable: C<$INST_TOP\bin>, e.g.
 
-    set PATH c:\perl\5.6.0\bin;c:\perl\5.6.0\bin\MSWin32-x86;%PATH%
+    set PATH=c:\perl\bin;%PATH%
 
-If you opt to comment out INST_VER and INST_ARCH in the makefiles, the
-installation structure is much simpler.  In that case, it will be
-sufficient to add a single entry to the path, for instance:
+If you opted to uncomment C<INST_VER> and C<INST_ARCH> in the makefile
+then the installation structure is a little more complicated and you will
+need to add two new PATH components instead: C<$INST_TOP\$INST_VER\bin> and
+C<$INST_TOP\$INST_VER\bin\$ARCHNAME>, e.g.
 
-    set PATH c:\perl\bin;%PATH%
+    set PATH=c:\perl\5.6.0\bin;c:\perl\5.6.0\bin\MSWin32-x86;%PATH%
 
 =head2 Usage Hints for Perl on Win32
 
@@ -381,7 +383,7 @@ enclosing the whole argument within double quotes.  The backslash and
 the pair of double quotes surrounding the argument will be stripped by
 the C runtime.
 
-The file redirection characters "<", ">", and "|" can be quoted by
+The file redirection characters "E<lt>", "E<gt>", and "|" can be quoted by
 double quotes (although there are suggestions that this may not always
 be true).  Single quotes are not treated as quotes by the shell or
 the C runtime, they don't get stripped by the shell (just to make
@@ -465,7 +467,7 @@ ensure Config.pm knows about it.  If you don't have nmake, you can
 either get dmake from the location mentioned earlier or get an
 old version of nmake reportedly available from:
 
   ftp://ftp.microsoft.com/Softlib/MSLFILES/nmake15.exe
http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/nmake15.exe
 
 Another option is to use the make written in Perl, available from
 CPAN.
@@ -561,11 +563,11 @@ cannot be built using the generic steps shown in the previous section.
 
 To ensure smooth transitioning of existing code that uses the
 ActiveState port, there is a bundle of Win32 extensions that contains
-all of the ActiveState extensions and most other Win32 extensions from
+all of the ActiveState extensions and several other Win32 extensions from
 CPAN in source form, along with many added bugfixes, and with MakeMaker
 support.  This bundle is available at:
 
-   http://www.cpan.org/authors/id/GSAR/libwin32-0.18.zip
+   http://www.cpan.org/modules/by-module/Win32/libwin32-0.191.zip
 
 See the README in that distribution for building and installation
 instructions.  Look for later versions that may be available at the
@@ -590,6 +592,8 @@ binaries transparently.  This means that you could use a 32-bit build
 of Perl on a 64-bit system.  Given this, why would one want to build
 a 64-bit build of Perl?  Here are some reasons why you would bother:
 
+=over
+
 =item *
 
 A 64-bit native application will run much more efficiently on
@@ -610,6 +614,8 @@ Embedding Perl inside a 64-bit application.
 
 =back
 
+=back
+
 =head2 Running Perl Scripts
 
 Perl scripts on UNIX use the "#!" (a.k.a "shebang") line to
@@ -678,7 +684,9 @@ Here's a diversion:  copy "runperl.bat" to "runperl", and type
 "runperl".  Explain the observed behavior, or lack thereof. :)
 Hint: .gnidnats llits er'uoy fi ,"lrepnur" eteled :tniH
 
-=item Miscellaneous Things
+=back
+
+=head2 Miscellaneous Things
 
 A full set of HTML documentation is installed, so you should be
 able to use it if you have a web browser installed on your
@@ -703,8 +711,6 @@ If you find bugs in perl, you can run C<perlbug> to create a
 bug report (you may have to send it manually if C<perlbug> cannot
 find a mailer on your system).
 
-=back
-
 =head1 BUGS AND CAVEATS
 
 Norton AntiVirus interferes with the build process, particularly if 
@@ -725,7 +731,7 @@ Some of the built-in functions do not act exactly as documented in
 L<perlfunc>, and a few are not implemented at all.  To avoid
 surprises, particularly if you have had prior exposure to Perl
 in other operating environments or if you intend to write code
-that will be portable to other environments.  See L<perlport>
+that will be portable to other environments, see L<perlport>
 for a reasonably definitive list of these differences.
 
 Not all extensions available from CPAN may build or work properly
@@ -733,6 +739,12 @@ in the Win32 environment.  See L</"Building Extensions">.
 
 Most C<socket()> related calls are supported, but they may not
 behave as on Unix platforms.  See L<perlport> for the full list.
+Perl requires Winsock2 to be installed on the system. If you're
+running Win95, you can download Winsock upgrade from here:
+
+http://www.microsoft.com/windows95/downloads/contents/WUAdminTools/S_WUNetworkingTools/W95Sockets2/Default.asp
+
+Later OS versions already include Winsock2 support.
 
 Signal handling may not behave as on Unix platforms (where it
 doesn't exactly "behave", either :).  For instance, calling C<die()>
@@ -743,8 +755,13 @@ variable in the handler.  Using signals under this port should
 currently be considered unsupported.
 
 Please send detailed descriptions of any problems and solutions that 
-you may find to <F<perlbug@perl.com>>, along with the output produced
-by C<perl -V>.
+you may find to E<lt>F<perlbug@perl.org>E<gt>, along with the output
+produced by C<perl -V>.
+
+=head1 ACKNOWLEDGEMENTS
+
+The use of a camel with the topic of Perl is a trademark
+of O'Reilly and Associates, Inc. Used with permission.
 
 =head1 AUTHORS
 
@@ -783,6 +800,6 @@ Win9x support was added in 5.6 (Benjamin Stuhl).
 
 Support for 64-bit Windows added in 5.8 (ActiveState Corp).
 
-Last updated: 20 April 2002
+Last updated: 30 July 2004
 
 =cut