This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Fix for Unisys UNIX and libperl.so
[perl5.git] / README.vms
index c811a71..9a6a712 100644 (file)
@@ -1,4 +1,4 @@
-Last revised: 14-Dec-1995 by Charles Bailey  bailey@genetics.upenn.edu
+Last revised: 19-Jan-1996 by Charles Bailey  bailey@genetics.upenn.edu
 
 The VMS port of Perl is still under development.  At this time, the Perl
 binaries built under VMS handle internal operations properly, for the most
@@ -12,8 +12,8 @@ you'd like to add something yourself, or join the porting team, we'd love to
 have you!
 
 The current sources and build procedures have been tested on a VAX using VAXC
-and on an AXP using DECC.  If you run into problems with other compilers,
-please let us know.
+and DECC, and on an AXP using DECC.  If you run into problems with other
+compilers, please let us know.
 
 Note to DECC users: Some early versions of the DECCRTL contained a few bugs
 which affect Perl performance:
@@ -49,7 +49,7 @@ stacks available, so it's difficult to automate the process of building Perl
 with socket support in a way which will work on all systems.  
 
 By default, Perl is built without IP socket support.  If you define the macro
-SOCKET when invoking MMS, however, socket support will be included.  As
+SOCKET when invoking MMK, however, socket support will be included.  As
 distributed, Perl for VMS includes support for the SOCKETSHR socket library,
 which is layered on MadGoat software's vendor-independent NETLIB interface. 
 This provides support for all socket calls used by Perl except the
@@ -114,7 +114,10 @@ subdirectory contains several files, among which are the following:
   WriteMain.Pl   - Perl script to generate Perlmain.C
 The [.Ext...] directories contain VMS-specific extensions distributed with
 Perl.  There may also be other files in [.VMS...] pertaining to features under
-development; for the most part, you can ignore them.
+development; for the most part, you can ignore them.  Note that packages in
+[.ext.*] are not built with Perl by default; you build the ones you want
+once the basic Perl build is complete (see the perlvms docs for instructions
+on building extensions.)
 
 Config.VMS and Decrip.MMS/Makefile are set up to build a version of Perl which
 includes all features known to work when this release was assembled.  If you
@@ -141,7 +144,7 @@ it specifically from Config.
 Examine the information at the beginning of Descrip.MMS for information about
 specifying alternate C compilers or building a version of Perl with debugging
 support.  For instance, if you want to use DECC, you'll need to include the
-/macro="decc=1" qualifier to MMS  (If you're using make, these options are not
+/macro="decc=1" qualifier to MMK  (If you're using make, these options are not
 supported.)  If you're on an AXP system, define the macro __AXP__ (MMK does
 this for you), and DECC will automatically be selected.
 
@@ -162,15 +165,25 @@ Makefile to build Miniperl.Exe, and then run the Perl script MMS2Make.pl,
 found in the [.VMS] subdirectory, to generate a new Makefile with the options
 appropriate to your site.
 
-Note for sites using DECC:  A bug in some early versions of the DECC RTL on the
-AXP causes newlines to be lost when writing to a pipe.  This causes
-Gen_ShrFls.pl to fail, since it can't read the preprocessor output to identify
-global variables and routines.  A different bug in the DECC preprocessor itself
-for some patched versions of DECC 4.0 on the VAX also makes it impossible for
-Gen_ShrFls.pl to parse the preprocessor output.  In either case, the problem is
-generally manifested as missing global symbols when linking PerlShr.Exe or
-Perl.Exe.  You can work around this problem by defining the macro
-DECC_PIPES_BROKEN when you invoke MMS or MMK.
+If you are using MM[SK], and you decide to rebuild Perl with a different set
+of parameters (e.g. changing the C compiler, or adding socket support), be
+sure to say
+$ MMK/Descrip=[.VMS] realclean
+first, in order to remove files generated during the previous build.  If
+you omit this step, you risk ending up with a copy of Perl which
+composed partially of old files and partially of new ones, which may lead
+to strange effects when you try to run Perl.
+
+A bug in some early versions of the DECC RTL on the AXP causes newlines
+to be lost when writing to a pipe.  A different bug in some patched versions
+of DECC 4.0 for VAX can also scramble preprocessor output.  Finally, gcc 2.7.2
+has yet another preprocessor bug, which causes line breaks to be inserted
+into the output at inopportune times.  Each of these bugs causes Gen_ShrFls.pl
+to fail, since it can't parse the preprocessor output to identify global
+variables and routines.  This problem is generally manifested as missing
+global symbols when linking PerlShr.Exe or Perl.Exe.  You can work around
+it by defining the macro PIPES_BROKEN when you invoke MMS or MMK.
+
 
 This will build the following files:
   Miniperl.Exe        - a stand-alone version of without any extensions.
@@ -191,6 +204,17 @@ This will build the following files:
                         used to build PerlShr.Exe.  It should be used when
                         rebuilding PerlShr.Exe via MakeMaker-produced
                         Descrip.MMS files for static extensions.
+  c2ph                - Perl program which generates template code to access
+                        C struct members from Perl.
+  h2ph                - Perl program which generates template code to access
+                        #defined constants in a C header file from Perl,
+                        using the "old-style" interface.  (Largely supplanted
+                        by h2xs.)
+  h2xs                - Perl program which generates template files for creating
+                        XSUB extensions, optionally beginning with the #defined
+                        constants in a C header file.
+  [.lib.pod]perldoc   - A Perl program which locates and displays documentation
+                        for Perl and its extensions.
   [.Lib]Config.pm     - the Perl extension which saves configuration information
                         about Perl and your system.
   [.Lib]DynaLoader.pm - The Perl extension which performs dynamic linking of
@@ -201,13 +225,40 @@ There are, of course, a number of other files created for use during the build.
 Once you've got the binaries built, you may wish to `build' the `tidy' or
 `clean' targets to remove extra files.
 
+If you run into problems during the build, you can get help from the VMSPerl
+or perl5-porters mailing lists (see below).  When you report the problem,
+please include the following information:
+  - The version of Perl you're trying to build.  Please include any
+    "letter" patchlevel, in addition to the version number.  If the
+    build successfully created Miniperl.Exe, you can check this by
+    saying '$ MCR Sys$Disk:[]Miniperl -v'.  Also, please mention
+    where you obtained the distribution kit; in particular, note
+    whether you were using a basic Perl kit or the VMS test kit
+    (see below).
+  - The exact command you issued to build Perl.
+  - A copy of all error messages which were generated during the build.
+    Please include enough of the build log to establish the context of
+    the error messages.
+  - A summary of your configuration.  If the build progressed far enough
+    to generate Miniperl.Exe and [.Lib]Config.pm, you can obtain this
+    by saying '$ MCR Sys$Disk:[]Miniperl "-V"' (note the "" around -V).
+    If not, then you can say '$ MMK/Descrip=[.VMS] printconfig' to
+    produce the summary.
+This may sound like a lot of information to send, but it'll often make
+it easier for someone to spot the problem, instead of having to give
+a spectrum of possibilities.
+  
+
 
 * Installing Perl once it's built
 
 Once the build is complete, you'll need to do the following:
   - Put PerlShr.Exe in a common directory, and make it world-readable.
     If you place it in a location other than Sys$Share, you'll need to
-    define the logical name PerlShr to point to the image.
+    define the logical name PerlShr to point to the image.  (If you're
+    installing on a VMScluster, be sure that each node is using the
+    copy of PerlShr you expect [e.g. if you put PerlShr.Exe in Sys$Share,
+    do they all share Sys$Share?]).
   - Put Perl.Exe in a common directory, and make it world-executable.
   - Define a foreign command to invoke Perl, using a statement like
     $ Perl == "$dev:[dir]Perl.Exe"
@@ -227,33 +278,39 @@ Once the build is complete, you'll need to do the following:
     is written in a simple markup format which can be easily read.  In this
     directory as well are pod2man and pod2html translators to reformat the
     docs for common display engines; a pod2hlp translator is under development.
-    Information on Perl can also be gleaned from the files in the [.doc]
-    subdirectory (internals documents and summaries of changes), and from
-    the test scripts in the [.t...] subdirectories.  For this reason,
-    you may wish to copy these subtrees into directories under Perl_Root.
+    These files are copied to [.lib.pod] during the installation.
+  - Define a foreign command to execute perldoc, such as
+    $ Perldoc == "''Perl' Perl_Root:[lib.pod]Perldoc -t"
+    This will allow users to retrieve documentation using Perldoc.  For
+    more details, say "perldoc perldoc".
 That's it.
 
+If you run into a bug in Perl, please submit a bug report.  The PerlBug
+program, found in the [.lib] directory, will walk you through the process
+of assembling the necessary information into a bug report, and sending
+of to the Perl bug reporting address, perlbug@perl.com.
 
 * For more information
 
-If you're interested in more information on Perl in general, consult the Usenet
-newsgroups comp.lang.perl.announce and comp.lang.perl.misc.  The FAQ for these
-groups provides pointers to other online sources of information, as well as
-books describing Perl in depth.
+If you're interested in more information on Perl in general, you may wish to
+consult the Usenet newsgroups comp.lang.perl.announce and comp.lang.perl.misc.
+The FAQ for these groups provides pointers to other online sources of
+information, as well as books describing Perl in depth.
 
 If you're interested in up-to-date information on Perl development and
 internals, you might want to subscribe to the perl5-porters mailing list.  You
 can do this by sending a message to perl5-porters-request@nicoh.com, containing
 the single line
 subscribe perl5-porters
-This is a moderately high-volume list at the moment (25-50 messages/day).
+This is a high-volume list at the moment (>50 messages/day).
 
 If you're interested in ongoing information about the VMS port, you can
-subscribe to the VMSperl mailing list by sending a request to
-bailey@genetics.upenn.edu (it's to a human, not a list server - this is a small
-operation at the moment).  And, as always, we welcome any help or code you'd
+subscribe to the VMSPerl mailing list by sending a request to
+vmsperl-request@genetics.upenn.edu, containing the single line
+subscribe VMSPerl
+as the body of the message.  And, as always, we welcome any help or code you'd
 like to offer - you can send mail to bailey@genetics.upenn.edu or directly to
-the VMSperl list at vmsperl@genetics.upenn.edu.
+the VMSPerl list at vmsperl@genetics.upenn.edu.
 
 Finally, if you'd like to try out the latest changes to VMS Perl, you can
 retrieve a test distribution kit by anonymous ftp from genetics.upenn.edu, in
@@ -285,16 +342,17 @@ missed someone.  That said, special thanks are due to the following:
      for the getredirection() code
   Rich Salz <rsalz@bbn.com>
      for readdir() and related routines
-  Denis Haskin <DWH@epub.ziff.com>
-     for work on a pod-to-hlp translator for the Perl documentation
-  Richard Dyson <dyson@blaze.physics.uiowa.edu> and
-  Kent Covert <kacovert@miavx1.acs.muohio.edu>
-     for additional testing on the AXP.
+  Peter Prymmer <pvhp@lns62.lns.cornell.edu)
+     for extensive testing, as well as development work on
+     configuration and documentation for VMS Perl,
+  the Stanford Synchrotron Radiation Laboratory and the
+     Laboratory of Nuclear Studies at Cornell University for
+     the the opportunity to test and develop for the AXP,
 and to the entire VMSperl group for useful advice and suggestions.  In addition
 the perl5-porters, especially Andy Dougherty <doughera@lafcol.lafayette.edu>
 and Tim Bunce <Tim.Bunce@ig.co.uk>,  deserve credit for their creativity and
 willingness to work with the VMS newcomers.  Finally, the greatest debt of
-gratitude is due to Larry Wall <lwall@netlabs.com>, for having the ideas which
+gratitude is due to Larry Wall <larry@wall.org>, for having the ideas which
 have made our sleepless nights possible.
 
 Thanks,