Add missing ";" to pp_umask (spotted by Jarkko Hietaniemi).
[p5sagit/p5-mst-13.2.git] / README.os2
index 4cef16f..903702a 100644 (file)
@@ -290,6 +290,9 @@ There are also endless possibilities to use I<executable extensions> of
 *nixish shell (like F<sh.exe> supplied in the binary distribution),
 you need to follow the syntax specified in L<perlrun/"Switches">.
 
+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<perlfunc/system>), C<``> (see
@@ -305,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<perlfunc/system>)/exec() (see L<perlfunc/exec>), and
 one-argument version thereof without redirection and shell
-meta-characters.
+meta-characters.  Perl may also start scripts which start with cookies
+C<extproc> 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<system 'blah'> will not look for a script if 
+there is an executable file F<blah.exe> I<anywhere> on C<PATH>.  
+
+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<blah.> and F<blah> denote the 
+same file, to start an executable residing in file F<n:/bin/blah> (no 
+extension) give an argument C<n:/bin/blah.> 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<system 'cmd /c epm'>, or start it using
+optional arguments to system() documented in C<OS2::Process> module.  This
+is considered a bug and should be fixed soon.
+
 
 =head1 Frequently asked questions
 
@@ -777,6 +804,10 @@ F<POSIX.c>.
 
 =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
@@ -908,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
@@ -1082,8 +1115,13 @@ eventually).
 
 =item
 
-Since L<flock(3)> 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<flock(3)> is present in EMX, but is not functional, it is 
+emulated by perl.  To disable the emulations, set environment variable
+C<USE_PERL_FLOCK=0>.
+
+=item
+
+Here is the list of things which may be "broken" on
 EMX (from EMX docs):
 
 =over
@@ -1099,7 +1137,7 @@ L<sock_init(3)> is not required and not implemented.
 
 =item *
 
-L<flock(3)> is not yet implemented (dummy function).
+L<flock(3)> is not yet implemented (dummy function).  (Perl has a workaround.)
 
 =item *
 
@@ -1155,6 +1193,12 @@ a dummy implementation.
 
 C<os2_stat> special-cases F</dev/tty> and F</dev/con>.
 
+=item C<flock>
+
+Since L<flock(3)> is present in EMX, but is not functional, it is 
+emulated by perl.  To disable the emulations, set environment variable
+C<USE_PERL_FLOCK=0>.
+
 =back
 
 =head1 Perl flavors
@@ -1334,6 +1378,12 @@ memory handling code is buggy.
 Specific for EMX port. Gives the directory part of the location for
 F<sh.exe>.
 
+=head2 C<USE_PERL_FLOCK>
+
+Specific for EMX port. Since L<flock(3)> is present in EMX, but is not 
+functional, it is emulated by perl.  To disable the emulations, set 
+environment variable C<USE_PERL_FLOCK=0>.
+
 =head2 C<TMP> or C<TEMP>
 
 Specific for EMX port. Used as storage place for temporary files, most