summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MANIFEST1
-rw-r--r--README.vmesa76
-rw-r--r--pod/perlfunc.pod4
-rw-r--r--pod/perlport.pod45
4 files changed, 103 insertions, 23 deletions
diff --git a/MANIFEST b/MANIFEST
index 5c60c2a83d..7ba415ab8c 100644
--- 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
index 0000000000..a6bb96b37f
--- /dev/null
+++ b/README.vmesa
@@ -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]
diff --git a/pod/perlfunc.pod b/pod/perlfunc.pod
index e72624faa0..e5b0e85a8b 100644
--- a/pod/perlfunc.pod
+++ b/pod/perlfunc.pod
@@ -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
diff --git a/pod/perlport.pod b/pod/perlport.pod
index fce35ac5a1..918827c9d7 100644
--- a/pod/perlport.pod
+++ b/pod/perlport.pod
@@ -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.
-
-