X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=README.os2;h=a69ea0d4ce8d2e7d2ea6ce4e960ae23780285e10;hb=2a4bf7730d252fcadf5e50c3a9c740b5c94acfe3;hp=e6782e3dc127220ae031b4dfd98614d09fac5888;hpb=df3ef7a9a68db503d1aecd7cb40d5f974fa0066b;p=p5sagit%2Fp5-mst-13.2.git
diff --git a/README.os2 b/README.os2
index e6782e3..a69ea0d 100644
--- a/README.os2
+++ b/README.os2
@@ -27,9 +27,15 @@ A copy of a Win* viewer is contained in the "Just add OS/2 Warp" package
ftp://ftp.software.ibm.com/ps/products/os2/tools/jaow/jaow.zip
-in F. This gives one an access to B's
+in F. This gives one an access to EMX's
F<.INF> docs as well (text form is available in F in
-B's distribution).
+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
@@ -43,12 +49,13 @@ Contents
- Target
- Other OSes
- Prerequisites
- - Starting Perl programs under OS/2
- - Starting OS/2 programs under Perl
+ - Starting Perl programs under OS/2 (and DOS and...)
+ - Starting OS/2 (and DOS) programs under Perl
Frequently asked questions
- I cannot run external programs
- I cannot embed perl into my program, or use perl.dll from my program.
- `` and pipe-open do not work under DOS.
+ - Cannot start find.exe "pattern" file
INSTALLATION
- Automatic binary installation
- Manual binary installation
@@ -77,9 +84,10 @@ Contents
- Some problem (forget which ;-)
- Library ... not found
- Segfault in make
- Specific (mis)features of OS/2 port
+ Specific (mis)features of EMX port
- setpriority, getpriority
- system()
+ - extproc on the first line
- Additional modules:
- Prebuilt methods:
- Misfeatures
@@ -104,6 +112,7 @@ Contents
- Threading
- Calls to external programs
- Memory allocation
+ - Threads
AUTHOR
SEE ALSO
@@ -113,7 +122,8 @@ Contents
The target is to make OS/2 the best supported platform for
using/building/developing Perl and I, as well as
-make Perl the best language to use under OS/2.
+make Perl the best language to use under OS/2. The secondary target is
+to try to make this work under DOS and Win* as well (but not B hard).
The current state is quite close to this target. Known limitations:
@@ -131,10 +141,10 @@ to use PM code in your application (like the forthcoming Perl/Tk).
=item *
-There is no simple way to access B objects. The only way I know
+There is no simple way to access WPS objects. The only way I know
is via C extension (see L), and we do not have access to
-convenience methods of B. (Is it possible at all? I know
-of no B API.)
+convenience methods of Object-REXX. (Is it possible at all? I know
+of no Object-REXX API.)
=back
@@ -142,7 +152,7 @@ Please keep this list up-to-date by informing me about other items.
=head2 Other OSes
-Since OS/2 port of perl uses a remarkable B environment, it can
+Since OS/2 port of perl uses a remarkable EMX environment, it can
run (and build extensions, and - possibly - be build itself) under any
environment which can run EMX. The current list is DOS,
DOS-inside-OS/2, Win0.3*, Win0.95 and WinNT. Out of many perl flavors,
@@ -150,7 +160,7 @@ only one works, see L<"perl_.exe">.
Note that not all features of Perl are available under these
environments. This depends on the features the I - most
-probably C - decided to implement.
+probably RSX - decided to implement.
Cf. L.
@@ -158,22 +168,23 @@ Cf. L.
=over 6
-=item B
+=item EMX
-B runtime is required (may be substituted by B). Note that
+EMX runtime is required (may be substituted by RSX). Note that
it is possible to make F to run under DOS without any
external support by binding F/F to it, see L. Note
-that under DOS for best results one should use B runtime, which
+that under DOS for best results one should use RSX runtime, which
has much more functions working (like C, C and so on). In
-fact B is required if there is no C present. Note the
-B requires C.
+fact RSX is required if there is no VCPI present. Note the
+RSX requires DPMI.
-Only the latest runtime is supported, currently C<0.9c>.
+Only the latest runtime is supported, currently C<0.9c>. Perl may run
+under earlier versions of EMX, but this is not tested.
-One can get different parts of B from, say
+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.
@@ -184,41 +195,56 @@ does not need to specify them explicitly (though this
will work as well.)
-=item B
+=item RSX
-To run Perl on C platforms one needs B runtime. This is
+To run Perl on DPMI platforms one needs RSX runtime. This is
needed under DOS-inside-OS/2, Win0.3*, Win0.95 and WinNT (see
-L<"Other OSes">). B would not work with C
-only, as B would, it requires C.
+L<"Other OSes">). RSX would not work with VCPI
+only, as EMX would, it requires DMPI.
-Having B and the latest F one gets a fully functional
+Having RSX and the latest F one gets a fully functional
B<*nix>-ish environment under DOS, say, C, C<``> and
pipe-C work. In fact, MakeMaker works (for static build), so one
can have Perl development environment under DOS.
-One can get B from, say
+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 B
+=item HPFS
Perl does not care about file systems, but to install the whole perl
library intact one needs a file system which supports long file names.
Note that if you do not plan to build the perl itself, it may be
-possible to fool B to truncate file names. This is not supported,
-read B docs to see how to do it.
+possible to fool EMX to truncate file names. This is not supported,
+read EMX docs to see how to do it.
+
+=item pdksh
+
+To start external programs with complicated command lines (like with
+pipes in between, and/or quoting of arguments), Perl uses an external
+shell. With EMX port such shell should be named , and located
+either in the wired-in-during-compile locations (usually F),
+or in configurable location (see L<"PERL_SH_DIR">).
+
+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.zip
=back
-=head2 Starting Perl programs under OS/2
+=head2 Starting Perl programs under OS/2 (and DOS and...)
Start your Perl program F with arguments C the
same way as on any other platform, by
@@ -230,33 +256,28 @@ opposed to to your program), use
perl -my_opts foo.pl arg1 arg2 arg3
-Alternately, if you use OS/2-ish shell, like C or C<4os2>, put
+Alternately, if you use OS/2-ish shell, like CMD or 4os2, put
the following at the start of your perl script:
- extproc perl -x -S
- #!/usr/bin/perl -my_opts
+ extproc perl -S -my_opts
rename your program to F, and start it by typing
foo arg1 arg2 arg3
-(Note that having *nixish full path to perl F is not
-necessary, F would be enough, but having full path would make it
-easier to use your script under *nix.)
-
Note that because of stupid OS/2 limitations the full path of the perl
script is not available when you use C, thus you are forced to
use C<-S> perl switch, and your script should be on path. As a plus
side, if you know a full path to your script, you may still start it
with
- perl -x ../../blah/foo.cmd arg1 arg2 arg3
+ perl ../../blah/foo.cmd arg1 arg2 arg3
-(note that the argument C<-my_opts> is taken care of by the C<#!> line
-in your script).
+(note that the argument C<-my_opts> is taken care of by the C line
+in your script, see L on the first line>).
To understand what the above I does, read perl docs about C<-S>
-and C<-x> switches - see L, and cmdref about C:
+switch - see L, and cmdref about C:
view perl perlrun
man perlrun
@@ -266,11 +287,14 @@ and C<-x> switches - see L, and cmdref about C:
or whatever method you prefer.
There are also endless possibilities to use I of
-B<4OS2>, I of B and so on... However, if you use
+4os2, I of WPS and so on... However, if you use
*nixish shell (like F supplied in the binary distribution),
you need to follow the syntax specified in L.
-=head2 Starting OS/2 programs under Perl
+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
L), and I (see L)
@@ -278,14 +302,90 @@ are for. (Avoid exec() (see L) unless you know what you
do).
Note however that to use some of these operators you need to have a
-C-syntax shell installed (see L<"Pdksh">,
+sh-syntax shell installed (see L<"Pdksh">,
L<"Frequently asked questions">), and perl should be able to find it
(see L<"PERL_SH_DIR">).
-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.
+The cases when the shell is used are:
+
+=over
+
+=item 1
+
+One-argument system() (see L), exec() (see L)
+with redirection or shell meta-characters;
+
+=item 2
+
+Pipe-open (see L) with the command which contains redirection
+or shell meta-characters;
+
+=item 3
+
+Backticks C<``> (see L) with the command which contains
+redirection or shell meta-characters;
+
+=item 4
+
+If the executable called by system()/exec()/pipe-open()/C<``> is a script
+with the "magic" C<#!> line or C line which specifies shell;
+
+=item 5
+
+If the executable called by system()/exec()/pipe-open()/C<``> is a script
+without "magic" line, and C<$ENV{EXECSHELL}> is set to shell;
+
+=item 6
+
+If the executable called by system()/exec()/pipe-open()/C<``> is not
+found;
+
+=item 7
+
+For globbing (see L, L).
+
+=back
+
+For the sake of speed for a common case, in the above algorithms
+backslashes in the command name are not considered as shell metacharacters.
+
+Perl starts scripts which begin with cookies
+C or C<#!> directly, without an intervention of shell. Perl uses the
+same algorithm to find the executable as F: if the path
+on C<#!> line does not work, and contains C>, then the executable
+is searched in F<.> and on C. To find arguments for these scripts
+Perl uses a different algorithm than F: up to 3 arguments are
+recognized, and trailing whitespace is stripped.
+
+If a script
+does not contain such a cooky, then to avoid calling F, Perl uses
+the same algorithm as F: if C<$ENV{EXECSHELL}> is set, the
+script is given as the first argument to this command, if not set, then
+C<$ENV{COMSPEC} /c> is used (or a hardwired guess if C<$ENV{COMSPEC}> is
+not set).
+
+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
@@ -296,7 +396,7 @@ meta-characters.
=item
Did you run your programs with C<-w> switch? See
-L.
+L.
=item
@@ -312,12 +412,12 @@ program.
=over 4
-=item Is your program B-compiled with C<-Zmt -Zcrtdll>?
+=item Is your program EMX-compiled with C<-Zmt -Zcrtdll>?
If not, you need to build a stand-alone DLL for perl. Contact me, I
did it once. Sockets would not work, as a lot of other stuff.
-=item Did you use C?
+=item Did you use L?
I had reports it does not work. Somebody would need to fix it.
@@ -326,12 +426,29 @@ I had reports it does not work. Somebody would need to fix it.
=head2 C<``> and pipe-C do not work under DOS.
This may a variant of just L<"I cannot run external programs">, or a
-deeper problem. Basically: you I B (see L<"Prerequisites">)
+deeper problem. Basically: you I RSX (see L<"Prerequisites">)
for these commands to work, and you may need a port of F which
understands command arguments. One of such ports is listed in
-L<"Prerequisites"> under B.
+L<"Prerequisites"> under RSX. Do not forget to set variable
+C> as well.
+
+DPMI is required for RSX.
+
+=head2 Cannot start C
+
+Use one of
+
+ system 'cmd', '/c', 'find "pattern" file';
+ `cmd /c 'find "pattern" file'`
-C is required for B.
+This would start F via F via C via
+C, but this is a price to pay if you want to use
+non-conforming program. In fact F cannot be started at all
+using C library API only. Otherwise the following command-lines were
+equivalent:
+
+ find "pattern" file
+ find pattern file
=head1 INSTALLATION
@@ -342,9 +459,9 @@ F. Just follow the instructions, and 99% of the
installation blues would go away.
Note however, that you need to have F on your path, and
-B environment I. The latter means that if you just
-installed B, and made all the needed changes to F,
-you may need to reboot in between. Check B runtime by running
+EMX environment I. The latter means that if you just
+installed EMX, and made all the needed changes to F,
+you may need to reboot in between. Check EMX runtime by running
emxrev
@@ -358,7 +475,7 @@ B
=item C
may be needed if you change your codepage I perl installation,
-and the new value is not supported by B. See L<"PERL_BADLANG">.
+and the new value is not supported by EMX. See L<"PERL_BADLANG">.
=item C
@@ -377,19 +494,23 @@ data, please keep me informed if you find one.
=back
+B. Because of a typo the binary installer of 5.00305
+would install a variable C into F. Please
+remove this variable and put C> instead.
+
=head2 Manual binary installation
As of version 5.00305, OS/2 perl binary distribution comes split
into 11 components. Unfortunately, to enable configurable binary
-installation, the file paths in the C files are not absolute, but
+installation, the file paths in the zip files are not absolute, but
relative to some directory.
Note that the extraction with the stored paths is still necessary
-(default with C, specify C<-d> to C). However, you
+(default with unzip, specify C<-d> to pkunzip). However, you
need to know where to extract the files. You need also to manually
change entries in F to reflect where did you put the
files. Note that if you have some primitive unzipper (like
-C), you may get a lot of warnings/errors during
+pkunzip), you may get a lot of warnings/errors during
unzipping. Upgrade to C<(w)unzip>.
Below is the sample of what to do to reproduce the configuration on my
@@ -402,20 +523,20 @@ machine:
unzip perl_exc.zip *.exe *.ico -d f:/emx.add/bin
unzip perl_exc.zip *.dll -d f:/emx.add/dll
-(have the directories with C<*.exe> on C, and C<*.dll> on
-C);
+(have the directories with C<*.exe> on PATH, and C<*.dll> on
+LIBPATH);
=item Perl_ VIO executable (statically linked)
unzip perl_aou.zip -d f:/emx.add/bin
-(have the directory on C);
+(have the directory on PATH);
=item Executables for Perl utilities
unzip perl_utl.zip -d f:/emx.add/bin
-(have the directory on C);
+(have the directory on PATH);
=item Main Perl library
@@ -447,25 +568,25 @@ C in F, see L<"PERLLIB_PREFIX">.
unzip perl_man.zip -d f:/perllib/man
This directory should better be on C. You need to have a
-working C to access these files.
+working man to access these files.
=item Manpages for Perl modules
unzip perl_mam.zip -d f:/perllib/man
This directory should better be on C. You need to have a
-working C to access these files.
+working man to access these files.
=item Source for Perl documentation
unzip perl_pod.zip -d f:/perllib/lib
This is used by by C program (see L), and may be used to
-generate B documentation usable by WWW browsers, and
+generate HTML documentation usable by WWW browsers, and
documentation in zillions of other formats: C, C,
C, C and so on.
-=item Perl manual in .INF format
+=item Perl manual in F<.INF> format
unzip perl_inf.zip -d d:/os2/book
@@ -482,7 +603,7 @@ metacharacters>. It is also used instead of explicit F.
Set C (see L<"PERL_SH_DIR">) if you move F from
the above location.
-B It may be possible to use some other C-compatible shell
+B It may be possible to use some other sh-compatible shell
(I).
=back
@@ -511,7 +632,7 @@ identical) Perl documentation in the following formats:
=head2 OS/2 F<.INF> file
-Most probably the most convenient form. View it as
+Most probably the most convenient form. Under OS/2 view it as
view perl
view perl perlfunc
@@ -519,7 +640,7 @@ Most probably the most convenient form. View it as
view perl ExtUtils::MakeMaker
(currently the last two may hit a wrong location, but this may improve
-soon).
+soon). Under Win* see L<"SYNOPSIS">.
If you want to build the docs yourself, and have I, run
@@ -535,7 +656,7 @@ BOOKSHELF path.
=head2 Plain text
If you have perl documentation in the source form, perl utilities
-installed, and B C installed, you may use
+installed, and GNU groff installed, you may use
perldoc perlfunc
perldoc less
@@ -548,7 +669,7 @@ Alternately, try running pod2text on F<.pod> files.
=head2 Manpages
-If you have C installed on your system, and you installed perl
+If you have man installed on your system, and you installed perl
manpages, use something like this:
man perlfunc
@@ -568,11 +689,11 @@ on our C, like this
set MANPATH=c:/man;f:/perllib/man
-=head2 B
+=head2 HTML
If you have some WWW browser available, installed the Perl
documentation in the source form, and Perl utilities, you can build
-B docs. Cd to directory with F<.pod> files, and do like this
+HTML docs. Cd to directory with F<.pod> files, and do like this
cd f:/perllib/lib/pod
pod2html
@@ -582,11 +703,11 @@ directory, and go ahead with reading docs, like this:
explore file:///f:/perllib/lib/pod/perl.html
-Alternatively you may be able to get these docs prebuilt from C.
+Alternatively you may be able to get these docs prebuilt from CPAN.
-=head2 B C files
+=head2 GNU C files
-Users of C would appreciate it very much, especially with
+Users of Emacs would appreciate it very much, especially with
C mode loaded. You need to get latest C from C,
or, alternately, prebuilt info pages.
@@ -606,8 +727,8 @@ Here we discuss how to build Perl under OS/2. There is an alternative
=head2 Prerequisites
-You need to have the latest B development environment, the full
-B tool suite (C renamed to C, and B F
+You need to have the latest EMX development environment, the full
+GNU tool suite (gawk renamed to awk, and GNU F
earlier on path than the OS/2 F, same with F, to
check use
@@ -616,13 +737,22 @@ check use
). You need the latest version of F installed as F.
+Check that you have B libraries and headers installed, and -
+optionally - Berkeley DB headers and libraries, and crypt.
+
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
@@ -636,17 +766,17 @@ latter condition by
if you use something like F or latest versions of F<4os2.exe>.
-Make sure your C is good for C<-Zomf> linking: run C
+Make sure your gcc is good for C<-Zomf> linking: run C
script in F directory.
-Check that you have C installed. It comes standard with OS/2,
+Check that you have link386 installed. It comes standard with OS/2,
but may be not installed due to customization. If typing
link386
shows you do not have it, do I, and choose C in I. If you get into
-C, press C.
+link386, press C.
=head2 Getting perl source
@@ -675,30 +805,40 @@ Extract it like this
You may see a message about errors while extracting F. This is
because there is a conflict with a similarly-named file F.
-Rename F to F. Extract F like this
-
- tar --case-sensitive -vzxf perl5.00409.tar.gz perl5.00409/Configure
-
Change to the directory of extraction.
=head2 Application of the patches
-You need to apply the patches in F<./os2/diff.*> and
-F<./os2/POSIX.mkfifo> like this:
+You need to apply the patches in F<./os2/diff.*> like this:
- gnupatch -p0 < os2\POSIX.mkfifo
gnupatch -p0 < os2\diff.configure
You may also need to apply the patches supplied with the binary
distribution of perl.
-Note also that the F and F from the B distribution
+Note also that the F and F from the EMX distribution
are not suitable for multi-threaded compile (note that currently perl
-is not multithreaded, but is compiled as multithreaded for
-compatibility with B-OS/2). Get a corrected one from
+is not multithread-safe, but is compiled as multithreaded for
+compatibility with XFree86-OS/2). Get a corrected one from
ftp://ftp.math.ohio-state.edu/pub/users/ilya/os2/db_mt.zip
+To make C<-p> filetest work, one may also need to apply the following patch
+to EMX headers:
+
+ --- /emx/include/sys/stat.h.orig Thu May 23 13:48:16 1996
+ +++ /emx/include/sys/stat.h Sun Jul 12 14:11:32 1998
+ @@ -53,7 +53,7 @@ struct stat
+ #endif
+
+ #if !defined (S_IFMT)
+ -#define S_IFMT 0160000 /* Mask for file type */
+ +#define S_IFMT 0170000 /* Mask for file type */
+ #define S_IFIFO 0010000 /* Pipe */
+ #define S_IFCHR 0020000 /* Character device */
+ #define S_IFDIR 0040000 /* Directory */
+
+
=head2 Hand-editing
You may look into the file F<./hints/os2.sh> and correct anything
@@ -708,12 +848,12 @@ wrong you find there. I do not expect it is needed anywhere.
sh Configure -des -D prefix=f:/perllib
-Prefix means where to install the resulting perl library. Giving
+C means: where to install the resulting perl library. Giving
correct prefix you may avoid the need to specify C,
see L<"PERLLIB_PREFIX">.
I, and about C<-c> option to
-C>. In fact if you can trace where the latter spurious warning
+tr>. In fact if you can trace where the latter spurious warning
comes from, please inform me.
Now
@@ -723,64 +863,86 @@ Now
At some moment the built may die, reporting a I or
I>. This means that most of the build has been
finished, and it is the time to move the constructed F to
-some I location in C. After this done the build
-should finish without a lot of fuss. I on C.>
+some I location in LIBPATH. After this is done the build
+should finish without a lot of fuss. I on LIBPATH, but
+probably this is not needed anymore, since F is linked
+statically now.>
Warnings which are safe to ignore: I inside
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
-Some tests (4..6) should fail. Some perl invocations should end in a
-segfault (system error C). To get finer error reports,
+All tests should succeed (with some of them skipped). Note that on one
+of the systems I see intermittent failures of F subtest 9.
+Any help to track what happens with this test is appreciated.
- cd t
- perl -I ../lib harness
+Some tests may generate extra messages similar to
-The report you get may look like
+=over 4
- Failed Test Status Wstat Total Fail Failed List of failed
- ---------------------------------------------------------------
- io/fs.t 26 11 42.31% 2-5, 7-11, 18, 25
- lib/io_pipe.t 3 768 6 ?? % ??
- lib/io_sock.t 3 768 5 ?? % ??
- op/stat.t 56 5 8.93% 3-4, 20, 35, 39
- Failed 4/140 test scripts, 97.14% okay. 27/2937 subtests failed, 99.08% okay.
+=item A lot of C
-Note that using `make test' target two more tests may fail: C
-because of (mis)feature of C, and C, which checks
-that the buffers are not flushed on C<_exit> (this is a bug in the test
-which assumes that tty output is buffered).
+in database tests related to Berkeley DB. This is a confirmed bug of
+DB. You may disable this warnings, see L<"PERL_BADFREE">.
-I submitted a patch to B which makes it possible to fork() with EMX
-dynamic libraries loaded, which makes F tests pass. This means
-that soon the number of failing tests may decrease yet more.
+There is not much we can do with it (but apparently it does not cause
+any real error with data).
-However, the test F is disabled, since it never terminates, I
-do not know why. Comments/fixes welcome.
+=item Process terminated by SIGTERM/SIGINT
-The reasons for failed tests are:
+This is a standard message issued by OS/2 applications. *nix
+applications die in silence. It is considered a feature. One can
+easily disable this by appropriate sighandlers.
-=over 8
+However the test engine bleeds these message to screen in unexpected
+moments. Two messages of this kind I be present during
+testing.
+
+=back
+
+Two F tests may generate popups (system error C),
+but should succeed anyway. This is due to a bug of EMX related to
+fork()ing with dynamically loaded libraries.
+
+I submitted a patch to EMX which makes it possible to fork() with EMX
+dynamic libraries loaded, which makes F tests pass without
+skipping offended tests. This means that soon the number of skipped tests
+may decrease yet more.
+
+To get finer test reports, call
+
+ perl t/harness
-=item F
+The report with F failing may look like this:
-Checks I operations. Tests:
+ Failed Test Status Wstat Total Fail Failed List of failed
+ ------------------------------------------------------------
+ io/pipe.t 12 1 8.33% 9
+ 7 tests skipped, plus 56 subtests skipped.
+ Failed 1/195 test scripts, 99.49% okay. 1/6542 subtests failed, 99.98% okay.
-=over 10
+The reasons for most important skipped tests are:
-=item 2-5, 7-11
+=over 8
-Check C and C - nonesuch under OS/2.
+=item F
+
+=over 4
=item 18
-Checks C and C of C - I could not understand this test.
+Checks C and C of C - unfortunately, HPFS
+provides only 2sec time granularity (for compatibility with FAT?).
=item 25
@@ -791,12 +953,12 @@ know why this should or should not work.
=item F
-Checks C module. Some feature of B - test fork()s with
+Checks C module. Some feature of EMX - test fork()s with
dynamic extension loaded - unsupported now.
=item F
-Checks C module. Some feature of B - test fork()s
+Checks C module. Some feature of EMX - test fork()s
with dynamic extension loaded - unsupported now.
=item F
@@ -805,78 +967,38 @@ Checks C. Tests:
=over 4
-=item 3
-
-Checks C - nonesuch under OS/2.
-
=item 4
-Checks C and C of C - I could not understand this test.
-
-=item 20
-
-Checks C<-x> - determined by the file extension only under OS/2.
-
-=item 35
-
-Needs F.
-
-=item 39
-
-Checks C<-t> of F. Should not fail!
+Checks C