From: Jarkko Hietaniemi Date: Tue, 3 Nov 1998 07:42:46 +0000 (+0000) Subject: VM/ESA updates. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=7c5ffed331e27cfa0bc5b3c2be27e3e684e078bd;p=p5sagit%2Fp5-mst-13.2.git VM/ESA updates. p4raw-id: //depot/cfgperl@2184 --- diff --git a/MANIFEST b/MANIFEST index 5c60c2a..7ba415a 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 0000000..a6bb96b --- /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 e72624f..e5b0e85 100644 --- a/pod/perlfunc.pod +++ b/pod/perlfunc.pod @@ -3915,8 +3915,8 @@ system-dependent; they are available via the standard module C. 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 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 call creates it (typically because MODE includes the C flag), then the value of diff --git a/pod/perlport.pod b/pod/perlport.pod index fce35ac..918827c 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, Win32, VMS, Plan9, S, VOS) +Not implemented. (S, Win32, VMS, Plan9, S, VOS, VM/ESA) =item crypt PLAINTEXT,SALT @@ -1123,6 +1125,7 @@ Invokes VMS debugger. (VMS) Not implemented. (S) +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, Win32, AmigaOS, S, VOS) +Not implemented. (S, Win32, AmigaOS, S, VOS, VM/ESA) =item getlogin @@ -1151,7 +1154,7 @@ Not implemented. (S, Win32, VMS, S) =item getpriority WHICH,WHO -Not implemented. (S, Win32, VMS, S, VOS) +Not implemented. (S, Win32, VMS, S, VOS, VM/ESA) =item getpwnam NAME @@ -1191,11 +1194,11 @@ Not implemented. (S) =item getpwent -Not implemented. (S, Win32) +Not implemented. (S, Win32, VM/ESA) =item getgrent -Not implemented. (S, Win32, VMS) +Not implemented. (S, Win32, VMS, VM/ESA) =item gethostent @@ -1239,11 +1242,11 @@ Not implemented. (Plan9, Win32, S) =item endpwent -Not implemented. (S, Win32) +Not implemented. (S, Win32, VM/ESA) =item endgrent -Not implemented. (S, Win32, VMS, S) +Not implemented. (S, Win32, VMS, S, VM/ESA) =item endhostent @@ -1379,7 +1382,7 @@ Not implemented. (S, Win32, VMS, S, VOS) =item socketpair SOCKET1,SOCKET2,DOMAIN,TYPE,PROTOCOL -Not implemented. (S, Win32, VMS, S, VOS) +Not implemented. (S, Win32, VMS, S, VOS, VM/ESA) =item stat FILEHANDLE @@ -1403,14 +1406,14 @@ Not implemented. (Win32, VMS, S) =item syscall LIST -Not implemented. (S, Win32, VMS, S, VOS) +Not implemented. (S, Win32, VMS, S, 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 (O_RDONLY, O_WRONLY, O_RDWR) should work everywhere though. (S, OS/390) +OS>, OS/390, VM/ESA) =item system LIST @@ -1519,8 +1522,10 @@ Tom Christiansen Etchrist@perl.comE, Nicholas Clark ENicholas.Clark@liverpool.ac.ukE, Andy Dougherty Edoughera@lafcol.lafayette.eduE, Dominic Dunlop Edomo@vo.luE, +Neale Ferguson Eneale@mailbox.tabnsw.com.auE Paul Green EPaul_Green@stratus.comE, M.J.T. Guy Emjtg@cus.cam.ac.ukE, +Jarkko Hietaniemi Ejhi@iki.fi, Luther Huffman Elutherh@stratcom.comE, Nick Ing-Simmons Enick@ni-s.u-net.comE, Andreas J. KEnig Ekoenig@kulturbox.deE, @@ -1543,5 +1548,3 @@ This document is maintained by Chris Nandor. Version 1.35, last modified 09 September 1998. - -