X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=README.os2;h=903702aa0dda9cff0e3b5ff22c6dd58f6aaafa29;hb=4a71ed0cc11f5be9a856b29b19af5c91a1bd76cb;hp=c0a19601f36306d9e135d582e656b4389c332d6f;hpb=aa6893958c2bfb6fa4ab923c8466c188c65748fd;p=p5sagit%2Fp5-mst-13.2.git diff --git a/README.os2 b/README.os2 index c0a1960..903702a 100644 --- a/README.os2 +++ b/README.os2 @@ -31,6 +31,12 @@ in F. This gives one an access to EMX's F<.INF> docs as well (text form is available in F in EMX's distribution). +Note that if you have F installed, you can follow WWW links +from this document in F<.INF> format. If you have EMX docs installed +correctly, you can follow library links (you need to have C +working by setting C environment variable as it is described +in EMX docs). + =cut Contents @@ -176,8 +182,8 @@ under earlier versions of EMX, but this is not tested. One can get different parts of EMX from, say - ftp://ftp.cdrom.com/pub/os2/emx0.9c/ - ftp://hobbes.nmsu.edu/os2/unix/gnu/ + ftp://ftp.cdrom.com/pub/os2/emx09c/ + ftp://hobbes.nmsu.edu/os2/unix/emx09c/ The runtime component should have the name F. @@ -202,14 +208,15 @@ can have Perl development environment under DOS. One can get RSX from, say - ftp://ftp.cdrom.com/pub/os2/emx0.9c/contrib + ftp://ftp.cdrom.com/pub/os2/emx09c/contrib ftp://ftp.uni-bielefeld.de/pub/systems/msdos/misc + ftp://ftp.leo.org/pub/comp/os/os2/leo/devtools/emx+gcc/contrib Contact the author on C. The latest F with DOS hooks is available at - ftp://ftp.math.ohio-state.edu/pub/users/ilya/os2/sh_dos.exe + ftp://ftp.math.ohio-state.edu/pub/users/ilya/os2/sh_dos.zip =item HPFS @@ -232,7 +239,7 @@ For best results use EMX pdksh. The soon-to-be-available standard binary (5.2.12?) runs under DOS (with L) as well, meanwhile use the binary from - ftp://ftp.math.ohio-state.edu/pub/users/ilya/os2/sh_dos.exe + ftp://ftp.math.ohio-state.edu/pub/users/ilya/os2/sh_dos.zip =back @@ -283,6 +290,9 @@ There are also endless possibilities to use I of *nixish shell (like F supplied in the binary distribution), you need to follow the syntax specified in L. +Note that B<-S> switch enables a search with additional extensions +F<.cmd>, F<.btm>, F<.bat>, F<.pl> as well. + =head2 Starting OS/2 (and DOS) programs under Perl This is what system() (see L), C<``> (see @@ -298,7 +308,31 @@ L<"Frequently asked questions">), and perl should be able to find it The only cases when the shell is not used is the multi-argument system() (see L)/exec() (see L), and one-argument version thereof without redirection and shell -meta-characters. +meta-characters. Perl may also start scripts which start with cookies +C or C<#!> directly, without an intervention of shell. + +If starting scripts directly, Perl will use exactly the same algorithm as for +the search of script given by B<-S> command-line option: it will look in +the current directory, then on components of C<$ENV{PATH}> using the +following order of appended extensions: no extension, F<.cmd>, F<.btm>, +F<.bat>, F<.pl>. + +Note that Perl will start to look for scripts only if OS/2 cannot start the +specified application, thus C will not look for a script if +there is an executable file F I on C. + +Note also that executable files on OS/2 can have an arbitrary extension, +but F<.exe> will be automatically appended if no dot is present in the name. +The workaround as as simple as that: since F and F denote the +same file, to start an executable residing in file F (no +extension) give an argument C to system(). + +The last note is that currently it is not straightforward to start PM +programs from VIO (=text-mode) Perl process and visa versa. Either ensure +that shell will be used, as in C, or start it using +optional arguments to system() documented in C module. This +is considered a bug and should be fixed soon. + =head1 Frequently asked questions @@ -652,11 +686,17 @@ check use Possible locations to get this from are - ftp://hobbes.nmsu.edu/os2/unix/gnu/ + ftp://hobbes.nmsu.edu/os2/unix/ ftp://ftp.cdrom.com/pub/os2/unix/ ftp://ftp.cdrom.com/pub/os2/dev32/ - ftp://ftp.cdrom.com/pub/os2/emx0.9c/ + ftp://ftp.cdrom.com/pub/os2/emx09c/ +It is reported that the following archives contain enough utils to +build perl: gnufutil.zip, gnusutil.zip, gnututil.zip, gnused.zip, +gnupatch.zip, gnuawk.zip, gnumake.zip and ksh527rt.zip. Note that +all these utilities are known to be available from LEO: + + ftp://ftp.leo.org/pub/comp/os/os2/leo/gnu Make sure that no copies or perl are currently running. Later steps of the build may fail since an older version of perl.dll loaded into @@ -764,6 +804,10 @@ F. =head2 Testing +If you haven't yet moved perl.dll onto LIBPATH, do it now(alternatively, if +you have a previous perl installation you'd rather not disrupt until this one +is installed, copy perl.dll to the t directory). + Now run make test @@ -895,6 +939,8 @@ to 1. =head2 Installing the built perl +If you haven't yet moved perl.dll onto LIBPATH, do it now. + Run make install @@ -1006,7 +1052,7 @@ C, are included into my ftp directory, mirrored on CPAN. =item C -used by C, see L. +used by C, see L. =item C @@ -1069,21 +1115,44 @@ eventually). =item -Since is present in EMX, but is not functional, the same is -true for perl. Here is the list of things which may be "broken" on +Since L is present in EMX, but is not functional, it is +emulated by perl. To disable the emulations, set environment variable +C. + +=item + +Here is the list of things which may be "broken" on EMX (from EMX docs): - - The functions recvmsg(), sendmsg(), and socketpair() are not - implemented. - - sock_init() is not required and not implemented. - - flock() is not yet implemented (dummy function). - - kill: - Special treatment of PID=0, PID=1 and PID=-1 is not implemented. - - waitpid: +=over + +=item * + +The functions L, L, and L are not +implemented. + +=item * + +L is not required and not implemented. + +=item * + +L is not yet implemented (dummy function). (Perl has a workaround.) + +=item * + +L: Special treatment of PID=0, PID=1 and PID=-1 is not implemented. + +=item * + +L: + WUNTRACED Not implemented. waitpid() is not implemented for negative values of PID. +=back + Note that C does not work with the current version of EMX. =item @@ -1124,6 +1193,12 @@ a dummy implementation. C special-cases F and F. +=item C + +Since L is present in EMX, but is not functional, it is +emulated by perl. To disable the emulations, set environment variable +C. + =back =head1 Perl flavors @@ -1281,7 +1356,11 @@ substituted with F. Should be used if the perl library is moved from the default location in preference to C, since this would not leave wrong -entries in <@INC>. +entries in @INC. Say, if the compiled version of perl looks for @INC +in F, and you want to install the library in +F, do + + set PERLLIB_PREFIX=f:/perllib/lib;h:/opt/gnu =head2 C @@ -1299,6 +1378,12 @@ memory handling code is buggy. Specific for EMX port. Gives the directory part of the location for F. +=head2 C + +Specific for EMX port. Since L is present in EMX, but is not +functional, it is emulated by perl. To disable the emulations, set +environment variable C. + =head2 C or C Specific for EMX port. Used as storage place for temporary files, most