VM/ESA updates.
Jarkko Hietaniemi [Tue, 3 Nov 1998 07:42:46 +0000 (07:42 +0000)]
p4raw-id: //depot/cfgperl@2184

MANIFEST
README.vmesa [new file with mode: 0644]
pod/perlfunc.pod
pod/perlport.pod

index 5c60c2a..7ba415a 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -41,6 +41,7 @@ README.plan9          Notes about Plan9 port
 README.posix-bc                Notes about BC2000 POSIX port
 README.qnx             Notes about QNX port
 README.threads         Notes about multithreading
+README.vmesa           Notes about VM/ESA port
 README.vms             Notes about VMS port
 README.vos             Notes about Stratus VOS port
 README.win32           Notes about Win32 port
diff --git a/README.vmesa b/README.vmesa
new file mode 100644 (file)
index 0000000..a6bb96b
--- /dev/null
@@ -0,0 +1,76 @@
+README.vmesa
+
+This is a fully ported perl for VM/ESA 2.3.0.  It may work on
+other versions, but that's the one we've tested it on.
+
+If you've downloaded the binary distribution, it needs to be
+installed below /usr/local.  Source code distributions have an
+automated `make install` step that means you do not need to extract
+the source code below /usr/local (though that is where it will be
+installed by default).  You may need to worry about the networking
+configuration files discussed in the last bullet below.
+
+To extract an ASCII tar archive on VM/ESA, try this:
+
+   pax -o to=IBM-1047,from=ISO8859-1 -r < latest.tar
+
+GNU make for VM/ESA, which may be required for the build of perl,
+is available from:
+
+  http://pucc.princeton.edu/~neale/vmoe.html
+
+Once you've unpacked the distribution, run Configure (see INSTALL for
+full discussion of the Configure options), and then run make, then
+"make test" then "make install" (this last step may require UID=0
+privileges)
+
+There is a "hints" file for vmesa that specifies the correct values
+for most things.  Some things to watch out for are
+
+       - this port does support dynamic loading but it's not had much testing
+
+       - Don't turn on the compiler optimization flag "-O".  There's
+         a bug in the compiler (APAR PQ18812) that generates some bad code
+         the optimizer is on.
+
+       - As VM/ESA doesn't fully support the fork() API programs relying on
+         this call will not work. I've replaced fork()/exec() with spawn()
+         and the standalone exec() with spawn(). This has a side effect when
+         opening unnamed pipes in a shell script: there is no child process
+         generated under.
+
+       - At the moment the hints file for VM/ESA basically bypasses all of the
+         automatic configuration process. This is because Configure relies on:
+         1. The header files living in the Byte File System (you could put the
+            there if you want;
+         2. The C preprocessor including the #include statements in the
+            preprocessor output (.i) file.
+       
+When using perl on VM/ESA please keep in mind that the EBCDIC and ASCII
+character sets are different.  Perl builtin functions that may behave
+differently under EBCDIC are mentioned in the perlport.pod document.
+
+OpenEdition (UNIX System Services) does not (yet) support the #! means
+of script invokation.
+See:
+
+    head `whence perldoc`
+
+for an example of how to use the "eval exec" trick to ask the shell to
+have perl run your scripts for you.
+
+If you are interested in the VM and OS/390 ports of perl then see the
+perl-mvs mailing list: The Perl Institute (http://www.perl.org/)
+maintains a mailing list of interest to all folks building and/or
+using perl on EBCDIC platforms.  To subscibe, send a message of:
+
+    subscribe perl-mvs
+
+to majordomo@perl.org.
+
+Regression tests: as the 5.005 kit was was being assembled
+the following "failures" were known to appear on some machines
+during `make test` (mostly due to ASCII vs. EBCDIC conflicts),
+your results may differ:
+
+[the list of failures being compiled]
index e72624f..e5b0e85 100644 (file)
@@ -3915,8 +3915,8 @@ system-dependent; they are available via the standard module C<Fcntl>.
 For historical reasons, some values work on almost every system
 supported by perl: zero means read-only, one means write-only, and two
 means read/write.  We know that these values do I<not> work under
-OS/390 Unix and on the Macintosh; you probably don't want to use them
-in new code.
+OS/390 & VM/ESA Unix and on the Macintosh; you probably don't want to
+use them in new code.
 
 If the file named by FILENAME does not exist and the C<open()> call creates
 it (typically because MODE includes the C<O_CREAT> flag), then the value of
index fce35ac..918827c 100644 (file)
@@ -799,15 +799,16 @@ the message body to majordomo@list.stratagy.com.
 =head2 EBCDIC Platforms
 
 Recent versions of Perl have been ported to platforms such as OS/400 on
-AS/400 minicomputers as well as OS/390 for IBM Mainframes.  Such computers
-use EBCDIC character sets internally (usually Character Code Set ID 00819
-for OS/400 and IBM-1047 for OS/390).  Note that on the mainframe perl
-currently works under the "Unix system services for OS/390" (formerly
-known as OpenEdition).
+AS/400 minicomputers as well as OS/390 & VM/ESA for IBM Mainframes.  Such
+computers use EBCDIC character sets internally (usually Character Code
+Set ID 00819 for OS/400 and IBM-1047 for OS/390 & VM/ESA).  Note that on
+the mainframe perl currently works under the "Unix system services
+for OS/390" (formerly known as OpenEdition) and VM/ESA OpenEdition.
 
-As of R2.5 of USS for OS/390 that Unix sub-system did not support the
-C<#!> shebang trick for script invocation.  Hence, on OS/390 perl scripts
-can executed with a header similar to the following simple script:
+As of R2.5 of USS for OS/390 and Version 2.3 of VM/ESA these Unix
+sub-systems do not support the C<#!> shebang trick for script invocation.
+Hence, on OS/390 and VM/ESA perl scripts can be executed with a header
+similar to the following simple script:
 
     : # use perl
         eval 'exec /usr/local/bin/perl -S $0 ${1+"$@"}'
@@ -825,12 +826,13 @@ and C<|>, not to mention dealing with socket interfaces to ASCII computers
 
 Fortunately, most web servers for the mainframe will correctly translate
 the C<\n> in the following statement to its ASCII equivalent (note that
-C<\r> is the same under both Unix and OS/390):
+C<\r> is the same under both Unix and OS/390 & VM/ESA):
 
     print "Content-type: text/html\r\n\r\n";
 
 The value of C<$^O> on OS/390 is "os390".
 
+The value of C<$^O> on VM/ESA is "vmesa".
 Some simple tricks for determining if you are running on an EBCDIC
 platform could include any of the following (perhaps all):
 
@@ -1094,7 +1096,7 @@ Does nothing, but won't fail. (Win32)
 
 =item chroot
 
-Not implemented. (S<Mac OS>, Win32, VMS, Plan9, S<RISC OS>, VOS)
+Not implemented. (S<Mac OS>, Win32, VMS, Plan9, S<RISC OS>, VOS, VM/ESA)
 
 =item crypt PLAINTEXT,SALT
 
@@ -1123,6 +1125,7 @@ Invokes VMS debugger. (VMS)
 
 Not implemented. (S<Mac OS>)
 
+Implemented via Spawn. (VM/ESA)
 =item fcntl FILEHANDLE,FUNCTION,SCALAR
 
 Not implemented. (Win32, VMS)
@@ -1135,7 +1138,7 @@ Available only on Windows NT (not on Windows 95). (Win32)
 
 =item fork
 
-Not implemented. (S<Mac OS>, Win32, AmigaOS, S<RISC OS>, VOS)
+Not implemented. (S<Mac OS>, Win32, AmigaOS, S<RISC OS>, VOS, VM/ESA)
 
 =item getlogin
 
@@ -1151,7 +1154,7 @@ Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>)
 
 =item getpriority WHICH,WHO
 
-Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>, VOS)
+Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>, VOS, VM/ESA)
 
 =item getpwnam NAME
 
@@ -1191,11 +1194,11 @@ Not implemented. (S<Mac OS>)
 
 =item getpwent
 
-Not implemented. (S<Mac OS>, Win32)
+Not implemented. (S<Mac OS>, Win32, VM/ESA)
 
 =item getgrent
 
-Not implemented. (S<Mac OS>, Win32, VMS)
+Not implemented. (S<Mac OS>, Win32, VMS, VM/ESA)
 
 =item gethostent
 
@@ -1239,11 +1242,11 @@ Not implemented. (Plan9, Win32, S<RISC OS>)
 
 =item endpwent
 
-Not implemented. (S<Mac OS>, Win32)
+Not implemented. (S<Mac OS>, Win32, VM/ESA)
 
 =item endgrent
 
-Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>)
+Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>, VM/ESA)
 
 =item endhostent
 
@@ -1379,7 +1382,7 @@ Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>, VOS)
 
 =item socketpair SOCKET1,SOCKET2,DOMAIN,TYPE,PROTOCOL
 
-Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>, VOS)
+Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>, VOS, VM/ESA)
 
 =item stat FILEHANDLE
 
@@ -1403,14 +1406,14 @@ Not implemented. (Win32, VMS, S<RISC OS>)
 
 =item syscall LIST
 
-Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>, VOS)
+Not implemented. (S<Mac OS>, Win32, VMS, S<RISC OS>, VOS, VM/ESA)
 
 =item sysopen FILEHANDLE,FILENAME,MODE,PERMS
 
 The traditional "0", "1", and "2" MODEs are implemented with different
 numeric values on some systems.  The flags exported by C<Fcntl>
 (O_RDONLY, O_WRONLY, O_RDWR) should work everywhere though.  (S<Mac
-OS>, OS/390)
+OS>, OS/390, VM/ESA)
 
 =item system LIST
 
@@ -1519,8 +1522,10 @@ Tom Christiansen E<lt>tchrist@perl.comE<gt>,
 Nicholas Clark E<lt>Nicholas.Clark@liverpool.ac.ukE<gt>,
 Andy Dougherty E<lt>doughera@lafcol.lafayette.eduE<gt>,
 Dominic Dunlop E<lt>domo@vo.luE<gt>,
+Neale Ferguson E<lt>neale@mailbox.tabnsw.com.auE<gt>
 Paul Green E<lt>Paul_Green@stratus.comE<gt>,
 M.J.T. Guy E<lt>mjtg@cus.cam.ac.ukE<gt>,
+Jarkko Hietaniemi E<lt>jhi@iki.fi<gt>,
 Luther Huffman E<lt>lutherh@stratcom.comE<gt>,
 Nick Ing-Simmons E<lt>nick@ni-s.u-net.comE<gt>,
 Andreas J. KE<ouml>nig E<lt>koenig@kulturbox.deE<gt>,
@@ -1543,5 +1548,3 @@ This document is maintained by Chris Nandor.
 
 Version 1.35, last modified 09 September 1998.
 
-
-