home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / perl / perl40 / readme.dos < prev   
Text File  |  1993-03-14  |  28KB  |  733 lines

  1.                    "BIGPERL"
  2.              Perl 4.0 patchlevel 36
  3.             Mon Mar 15 00:36:19 1993
  4.           By Darryl Okahata (Internet: darrylo@sr.hp.com)
  5.             (Compuserve: 75206,3074)
  6.  
  7.  
  8.      This version of Perl 4.0 has been compiled using the WATCOM C/386
  9. compiler, which generates flat, 32-bit code that runs under MSDOS and
  10. Windows (with some limitations -- see below).
  11.  
  12. *************
  13. * IMPORTANT *
  14. *************
  15.      The basic Perl sources belong to:
  16.              Copyright (c) 1989,1990,1991, Larry Wall
  17.               All rights reserved.
  18.  
  19.      Most of the MSDOS portions belong to:
  20.         Copyright (c) 1987, 1988, 1990 Diomidis Spinellis.
  21.               All rights reserved.
  22.  
  23.      The changes specific to MSDOS and WATCOM C/386 belong to:
  24.         Copyright (c) 1993, Darryl Okahata
  25.               All rights reserved.
  26.  
  27.      The GNU dbm libraries belong to the FSF and fall under the GNU
  28.     Public License.  See the file called "COPYING" in the directory
  29.     containing the GNU dbm sources for copyright and copying
  30.     information.
  31.  
  32.      The 32-bit DOS extender, "DOS/4GW", belongs to Rational Systems, Inc:
  33.         Copyright (c) Rational Systems, Inc. 1990-1992
  34.     This DOS extender may be redistributed as part of a program
  35.     compiled with WATCOM C/386.  It may not be redistributed as a
  36.     separate, standalone entity.
  37.  
  38. -------------------------------------------------------------------------------
  39. The basic Perl sources can be redistributed under the following conditions:
  40.  
  41. [ The following was taken from the "README" file.  Here, "I" refers to "Larry
  42.   Wall".  ]
  43.  
  44.     This program is free software; you can redistribute it and/or modify
  45.     it under the terms of either:
  46.     
  47.     a) the GNU General Public License as published by the Free
  48.     Software Foundation; either version 1, or (at your option) any
  49.     later version, or
  50.  
  51.     b) the "Artistic License" which comes with this Kit.
  52.  
  53.     This program is distributed in the hope that it will be useful,
  54.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  55.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See either
  56.     the GNU General Public License or the Artistic License for more details.
  57.  
  58.     You should have received a copy of the Artistic License with this
  59.     Kit, in the file named "Artistic".  If not, I'll be glad to provide one.
  60.  
  61.     You should also have received a copy of the GNU General Public License
  62.     along with this program; if not, write to the Free Software
  63.     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  64.  
  65.     For those of you that choose to use the GNU General Public License,
  66.     my interpretation of the GNU General Public License is that no Perl
  67.     script falls under the terms of the GPL unless you explicitly put
  68.     said script under the terms of the GPL yourself.  Furthermore, any
  69.     object code linked with uperl.o does not automatically fall under the
  70.     terms of the GPL, provided such object code only adds definitions
  71.     of subroutines and variables, and does not otherwise impair the
  72.     resulting interpreter from executing any standard Perl script.  I
  73.     consider linking in C subroutines in this manner to be the moral
  74.     equivalent of defining subroutines in the Perl language itself.  You
  75.     may sell such an object file as proprietary provided that you provide
  76.     or offer to provide the Perl source, as specified by the GNU General
  77.     Public License.  (This is merely an alternate way of specifying input
  78.     to the program.)  You may also sell a binary produced by the dumping of
  79.     a running Perl script that belongs to you, provided that you provide or
  80.     offer to provide the Perl source as specified by the GPL.  (The
  81.     fact that a Perl interpreter and your code are in the same binary file
  82.     is, in this case, a form of mere aggregation.)  This is my interpretation
  83.     of the GPL.  If you still have concerns or difficulties understanding
  84.     my intent, feel free to contact me.  Of course, the Artistic License
  85.     spells all this out for your protection, so you may prefer to use that.
  86.  
  87. -------------------------------------------------------------------------------
  88.  
  89. [ Enough legal crud.  Time for the "meat". ]
  90.  
  91. The requirements, features, and problems of this version are:
  92.  
  93. * A 386 or 486 is required.  This version will NOT work with anything else.
  94.  
  95. * 4MB or more of RAM is required.
  96.  
  97. * It is strongly recommended that a memory management program like
  98.   HIMEM/EMM386 or QEMM be used.  NOTE: machines with 64MB or more RAM
  99.   should use use either QEMM or no memory manager; supposedly, on these
  100.   machines, HIMEM/EMM386 and the dos extender (used for this version of
  101.   perl) do not work well together.
  102.  
  103. * Large amounts of memory is supported.  This version of perl will use
  104.   up to 32MB of memory.
  105.  
  106. * Virtual memory is supported.  By using a swapfile on your hard disk,
  107.   this version can still access up to 32MB of memory, even though you
  108.   may not have this much physical RAM.  However, you must explicitly
  109.   enable virtual memory by setting an enviroment variable (see the
  110.   section called, "The DOS/4GW DOS extender", for more details).
  111.  
  112. * This version will work under Windows 3.1.  However, inside Windows,
  113.   perl cannot spawn another copy of perl; this can be done outside of
  114.   Windows.
  115.  
  116. * The size of the stack is fixed at 128K.  To change this requires
  117.   relinking perl.
  118.  
  119. * This version does not support entering scripts on the command line via
  120.   the -e option.  While nothing has been done to prevent it, the MSDOS
  121.   128-byte command-line-length limitation and the fact that MSDOS shells
  122.   do not suport quoted arguments will probably frustrate any attempts at
  123.   using -e.
  124.  
  125. * The distributed perlglob.exe will perform filename globbing on
  126.   directories.  For example:
  127.  
  128.     @files = <*.*>;
  129.  
  130.   will return a SORTED list of all normal+directory files.  Hidden &
  131.   system files will not be returned.
  132.  
  133. * The perl debugger works.
  134.  
  135. * The exec() and ioctl() functions are not supported.  The exec()
  136.   function is not supported because the DOS extender doesn't support it,
  137.   and ioctl() is not supported because of problems translating data
  138.   structures between real and protected modes.
  139.  
  140. * To avoid a bug in perl or the DOS extender, this version of perl turns
  141.   control-break checking off (it does the equivalent of typing "break
  142.   off" at the DOS prompt).  This was done because pressing Ctrl-C or
  143.   Ctrl-Break very rapidly while perl is running would crash the system
  144.   (pressing it only once would work, but pressing it rapidly would cause
  145.   a crash).  The problem with this is that this version of perl can now
  146.   only be interrupted while it is doing console I/O.  I don't know if
  147.   this will ever be fixed.
  148.  
  149.   Note that the original state of the control-break checking flag is
  150.   saved at startup, and will be restored if perl terminates normally
  151.   (pressing control-break will NOT cause the original state to be
  152.   restored, however).
  153.  
  154. * The perl library files (in perl-4.036/lib/*.*) have not been tested.
  155.   They may or may not work with MSDOS.
  156.  
  157. * Because many MSDOS shells treat "/" as the beginning of an option,
  158.   MSDOS perl scripts will have to use the "\" character in paths to
  159.   commands.  For example, the following will not work:
  160.  
  161.     system("./perl");
  162.  
  163.   This fails because MSDOS tries to execute the command "." with the
  164.   option "/perl".  Instead, you must specify:
  165.  
  166.     system(".\\perl");
  167.  
  168.   Disgusting, but true.
  169.  
  170. * The default location for the perl library support files is
  171.   "c:\perl\lib".  This can be changed through the use of the PERLLIB
  172.   environment variable, or by recompiling perl.
  173.  
  174. * A formatted version of the perl manual is stored in the file
  175.   "perlman.txt".
  176.  
  177. * This version of perl says that it is version "4.0M1".  This was done
  178.   to provide a means of identifying which MSDOS version of perl this is.
  179.   [ Ideally, I would have liked to have said that this is "patchlevel
  180.   36a", but the code doesn't readily support this. ]
  181.  
  182. * The a2p and s2p programs have NOT been ported.
  183.  
  184. *******************************************************************************
  185. ***** Installing the executables:
  186.  
  187.      *************
  188.      * IMPORTANT *
  189.      *************
  190.      +---------------------------------------------------------------------
  191.      | If you have any of the following machines, you MUST set the
  192.      | DOS16M environment variable before you can use this version of
  193.      | perl:
  194.      |
  195.      |        NEC 98-series
  196.      |        Fujitsu FMR-60,-70
  197.      |        Hitachi B32
  198.      |        OKI if800
  199.      |
  200.      | See the section on "The DOS/4GW DOS extender" for details.
  201.      +---------------------------------------------------------------------
  202.  
  203.      In order to use this version of perl, the following must be done:
  204.  
  205. 1. Environment variables have to be set in AUTOEXEC.BAT.
  206.  
  207.    For most people, the only environment variable that has to be set is:
  208.  
  209.     set DOS4G=quiet
  210.  
  211.    This will suppress the DOS/4GW startup message when you run perl.
  212.    See the section on "The DOS/4GW DOS extender" for information on
  213.    other environment variables that can be set.
  214.  
  215. 2. The executable programs (perl.exe, perlglob.exe, and dos4g.exe) must
  216.    be placed somewhere in %PATH.  The easiest way to simply copy all
  217.    of the .exe files to some convenient directory in your %PATH.
  218.  
  219. 3. The perl library files (the ones in the "lib" subdirectory) need to
  220.    be installed somewhere.  By default, this version of perl will look
  221.    for these library files in "c:\perl\lib"; you can change this by
  222.    using the PERLLIB environment variable or by recompiling perl.  If
  223.    you want to use c:\perl\lib for the library directory, you can use
  224.    the following commands to install the library files (this assumes
  225.    that the current directory is the same directory in which this
  226.    README.DOS file lies):
  227.  
  228.     mkdir c:\perl
  229.     mkdir c:\perl\lib
  230.     copy lib\*.* c:\perl\lib
  231.  
  232.  
  233. *******************************************************************************
  234. ***** The DOS/4GW DOS extender:
  235.  
  236.      *************
  237.      * IMPORTANT *
  238.      *************
  239.      +---------------------------------------------------------------------
  240.      | If you have any of the following machines, you MUST set the
  241.      | DOS16M environment variable before you can use this version of
  242.      | perl:
  243.      |
  244.      |        NEC 98-series
  245.      |        Fujitsu FMR-60,-70
  246.      |        Hitachi B32
  247.      |        OKI if800
  248.      |
  249.      | See below for more information.
  250.      +---------------------------------------------------------------------
  251.  
  252.      The DOS/4GW DOS extender, used by this version of perl, is a
  253. royalty-free DOS extender from Rational Systems.  It must be placed in a
  254. directory in %PATH, and it can be controlled through through the use of
  255. the following environment variables:
  256.  
  257.     DOS4G    -- Suppresses printout of DOS/4GW startup message.
  258.     DOS16M    -- Controls how 32-bit memory is used and accessed.
  259.     DOS4GVM -- Enables and controls virtual memory.
  260.  
  261. * DOS4G:
  262.  
  263.      The DOS4G variable can only be set to "quiet", which suppresses the
  264. display of the DOS/4GW startup message, e.g.,
  265.  
  266.     set DOS4G=QUIET
  267.  
  268.  
  269. * DOS16M:
  270.  
  271. [ Note: not all options for the DOS16M variable are documented in the
  272.   following. ]
  273.  
  274.      The DOS16M variable takes values of the form:
  275.  
  276.      [<switch_mode>][@<start_address>[-<end_address>]][:<size>]
  277.  
  278. The "<switch_mode>" value, which MUST be specified if you have an NEC
  279. 98-series, Fujitsu FMR-60,-70, Hitachi B32, or OKI if800 machine, can
  280. take one of the following values:
  281.  
  282.     Value        Meaning
  283.        --------------------------------------------------------------------
  284.     0        Use DPMI to access 32-bit memory (automatically
  285.             set if present).
  286.     1        Use a method specific to the NEC 98-series
  287.             machine.  You MUST specify a start/stop range of
  288.             memory to use.
  289.     2        Use a method specific to the PS/2 (automatically
  290.             set if necessary).
  291.     3        Use a method specific to a generic 386/486
  292.             machine (automatically set if necessary).
  293.     INBOARD        Use a method specific for a 386 with an Intel
  294.             Inboard (automatically set if necessary).
  295.     5        Use a method specific to the Fujitsu FMR-70
  296.             machine.  You MUST specify a start/stop range of
  297.             memory to use.
  298.     11        Use VCPI to access 32-bit memory (automatically
  299.             set if present).
  300.     14        Use a method specific to the Hitachi B32
  301.             machine.  You MUST specify a start/stop range of
  302.             memory to use.
  303.     15        Use a method specific to the OKI if800 machine.
  304.             You MUST specify a start/stop range of memory to
  305.             use.
  306.     16        Use a method specific to PS/55s.  This setting
  307.             may be needed for some PS/55s, and note that
  308.             this is NOT automatically detected and used.
  309.  
  310. Note that, for most machines, the correct value for "<switch_mode>" is
  311. automatically detected and used.
  312.  
  313.      The "<start_address>" and "<end_address>" values specify a range of
  314. extended memory to use.  This is only necessary if neither DPMI nor VCPI
  315. is available (these values are ignored if DMPI or VCPI is available).
  316. Values can be specified as decimal or hexadecimal (prefixed with "0x"),
  317. and are assumed to be values in kilobytes, unless an "M" (for
  318. "megabytes") is appended to the end of the number.
  319.  
  320.      The "<size>" value specifies the maximum amount of memory that can
  321. be allocated.  Values can be specified as decimal or hexadecimal
  322. (prefixed with "0x"), and are assumed to be values in kilobytes, unless
  323. an "M" (for "megabytes") is appended to the end of the number.
  324.  
  325.      If both a memory range ("<start_address"/"<end_address>") and a
  326. "<size>" are given, the more restrictive of the two are used.
  327.  
  328.      Examples:
  329.  
  330.     set DOS16M=:2M
  331.  
  332. Use up to 2MB of extended memory.  The method used to access 32-bit
  333. memory will be automatically determined (for those machines where it can
  334. be done).
  335.  
  336.     set DOS16M=14@4M-8M
  337.  
  338. This tells DOS/4GW that an Hitachi B32 machine is being used, and that
  339. memory from address 0x00400000 (4 megabytes) to address 0x00800000 (8
  340. megabytes) should be used.
  341.  
  342.  
  343. * DOS4GVM:
  344.  
  345. [ Note: not all options for the DOS4GVM variable are documented in the
  346.   following. ]
  347.  
  348.      The DOS4GVM variable is used to enable and control virtual memory.
  349. To enable virtual memory support, you can set DOS4GVM to one of the
  350. following values:
  351.  
  352.     set DOS4GVM=1
  353.     set DOS4GVM=@<control_filename>
  354.  
  355. The first form, "set DOS4GVM=1", enables virtual memory with default
  356. values for all parameters.  The second form enables virtual memory, and
  357. allows you to specify a file that contains values for some or all
  358. parameters (the filename must have the extension ".VMC").
  359.  
  360.      The settable parameters are (all numeric values must be specified
  361. in kilobytes):
  362.  
  363.     VIRTUALSIZE
  364.         This is the size of the virtual memory space.  The
  365.         default is 16384KB (16MB).
  366.     MINMEM
  367.         This is the minimum amount of RAM to manage.  The
  368.         default is 512KB.
  369.     MAXMEM
  370.         This is the maximum amount of RAM to manage.  The
  371.         default is 4096KB (4MB).
  372.     SWAPMIN
  373.         This is the minimum or initial size of the swap file.
  374.         If this is not specified, the initial size will be based
  375.         upon the "VIRTUALSIZE" parameter.
  376.     SWAPINC
  377.         This is the size by which the swap size grows, if the
  378.         swap has to grow.
  379.     SWAPNAME
  380.         This is the name of the swapfile.  The default name is
  381.         "DOS4GVM.SWP", and is placed in the root directory of
  382.         the CURRENT drive (not the boot drive).  It's best if
  383.         you specify a complete pathname (w/drive letter) here.
  384.     DELETESWAP
  385.         If given, the swapfile is deleted when the program
  386.         exits.  Normally, the swapfile is NOT deleted when the
  387.         program exits, which means that the program will startup
  388.         faster the next time (it doesn't have to recreate the
  389.         swapfile).  Unlike the other options, this parameter
  390.         does not take any values.
  391.  
  392. IMPORTANT: The file containing the parameters must NOT have any blank
  393. lines, as parameter processing STOPS at the first blank line.
  394.  
  395.      An example of a .VMC file is:
  396.  
  397. ! Example .VMC file.
  398. ! Comments start with "!".
  399. ! Set the virtual memory size:
  400. virtualsize = 32768
  401. ! The minimum amount of ram used is:
  402. minmem = 4096
  403. ! The maximum amount of ram used is:
  404. maxmem = 8192
  405. ! Delete the swapfile when the program terminates:
  406. deleteswap
  407. ! The name of the swapfile is:
  408. swapname = c:\myswap.swp
  409.  
  410. *******************************************************************************
  411. ***** Compiling perl under WATCOM C/396 9.0:
  412.  
  413. 1. Go to \watcom\src\startup and compile the wildargv.c program (this
  414.    file came with your copy of WATCOM C):
  415.  
  416.       wcc386 /j wildargv.c
  417.  
  418. 2. Compile gdbm, e.g.:
  419.  
  420.       cd gdbm-1.5        # or whereever it is, whatever the latest
  421.                       #    version is called.
  422.       wmake /u            # Compile the library.
  423.  
  424.    Note that "wmake" MUST be used.  Using other make programs may not
  425.    work.  This takes about 1.5 minutes on my 33MHz 486DX.
  426.  
  427. 3. Currently, a limitation of the DOS/4GW dos extender supplied by
  428.    WATCOM is that, under Windows 3.1, a DOS/4GW program (e.g., perl)
  429.    cannot spawn another DOS/4GW program.  This doesn't seem like much of
  430.    a limitation until you realize that perl spawns perlglob.exe to do
  431.    filename globbing (e.g., "foreach (<*.c>) { ... }").  If perlglob.exe
  432.    is compiled using WATCOM C, you will be unable to do filename
  433.    globbing in Windows.  However, if perlglob.exe is compiled using a
  434.    plain 16-bit C compiler, filename globbing in Windows will work.
  435.  
  436.    The Makefile supports creating perlglob.exe using either the WATCOM C
  437.    or the Borland C++ 3.1 compiler (which is all that I have).  Note
  438.    that the default is to build perlglob.exe using WATCOM C.
  439.  
  440.    While the Borland-compiled version works, there is a bug in Borland's
  441.    wildcard expansion routines: filenames that use "/" as a directory
  442.    separator do not always get properly expanded.  Another problem is
  443.    that directories are not expanded, as they are under Unix.
  444.    Fortunately, if you have the Borland library sources, fixing these
  445.    problems is simple:
  446.  
  447.    a) Edit the file "\borlandc\crtl\clib\setargv.asm".
  448.  
  449.    b) At line 183, change the value of "wild_attr" from "0" to "10H".
  450.       This will enable expansion of directories.
  451.  
  452.    c) At line 418, change the line:
  453.  
  454.                 cmp     al, '\'
  455.  
  456.       to:
  457.  
  458.                 cmp     al, '/'
  459.  
  460.       This will fix the bug that prevents paths with only "/"s from
  461.       being properly expanded.
  462.  
  463.    d) Save the file to disk, cd to \borlandc\crtl, and execute the
  464.       following lines:
  465.  
  466.     set model=s
  467.     build clib
  468.  
  469.       This will rebuild the small memory model (only) of the C library.
  470.       The modified library will be placed in \borlandc\crtl\lib\cs.lib
  471.       (note that the original Borland library is still in
  472.       \borlandc\lib\cs.lib).  Don't copy the modified library over the
  473.       original one; sometimes, Borland supplies library patches, which
  474.       you want to apply only to the original.
  475.  
  476. 4. If, for some reason, you edit perly.y, you'll have to do one of the
  477.    following:
  478.  
  479.    a) Get an MSDOS version of byacc or bison that can convert perly.y.
  480.       If you find such a version, install it somewhere in %PATH, and set
  481.       the "YACC" variable in the Makefile; the Makefile will, hopefully,
  482.       then take care of the rest.
  483.  
  484.    b) On some Unix, run yacc on perly.y to create perly.c and perly.h.
  485.  
  486.    If you don't touch perly.y, you won't have to do a thing.  However,
  487.    if perly.y is touched, you'll have to somehow rebuild perly.c and
  488.    perly.h from perly.y.
  489.  
  490.    The perly.c and perly.h in this distribution were created by byacc.
  491.  
  492. 5. Edit the Makefile, and change the following Makefile variables:
  493.  
  494.       WATCOM_WILD    -- Contains the full pathname to the WATCOM
  495.                wildargv.obj compiled in step #1.
  496.       LIBS_PATH        -- Points to the directory containing gdbm.lib.
  497.       DESTDIR        -- Your desired destination directory for
  498.                executables. Note that the perl library
  499.                support files are NOT installed; this needs
  500.                to be fixed.
  501.       PERL_STACKSIZE    -- The size of the call stack.  The default is
  502.                128K.
  503.       DEBUG        -- Contains either debugging or optimization
  504.                compiler flags.
  505.  
  506.    For full functionality under Windows 3.1, you need to compile
  507.    perlglob.exe with a compiler other than Watcom C/386.  I used Borland
  508.    C++ 3.1.  If you want to use Borland C++, you MUST follow the
  509.    instructions in step #2, and then set the following Makefile
  510.    variables:
  511.  
  512.       BORLAND_WILDARGS        -- Full pathname to the Borland
  513.                    wildargs.obj file (typically,
  514.                    \borlandc\lib\wildargs.obj, but don't
  515.                    forget the drive letter).
  516.       BORLAND_CLIB_SMALL    -- Full pathname to the modified Borland
  517.                          small-memory model C library (this
  518.                    will be something like
  519.                    \borlandc\crtl\lib\cs.lib, but don't
  520.                    forget the drive letter).
  521.  
  522. 6. Edit config.h.  The only entries that you should have to change are
  523.    (see the comments in config.h for details):
  524.  
  525.       BIN        -- default is c:/perl/bin
  526.       SCRIPTDIR        -- default is c:/perl/bin
  527.       PRIVLIB        -- default is c:/perl/lib
  528.  
  529. 7. Execute:
  530.  
  531.     wmake /u
  532.  
  533.    Note that "wmake" MUST be used.  Using other make programs may not
  534.    work.  The "/u" is also very important; if you don't specify it, you
  535.    won't like the results.  On my PC, this step takes about 6-7 minutes.
  536.  
  537. 8. If you want to compile perlglob.exe using the Borland C++ compiler,
  538.    execute the following:
  539.  
  540.     wmake /u bperlglob.exe
  541.  
  542. 9. At this point, you should have a working perl.exe and perlglob.exe.
  543.    Note that perlglob.exe must be installed somewhere in %PATH, as
  544.    perl.exe uses this program to do filename globbing (e.g, "foreach
  545.    (<*.obj>) ...").  See the above section on installation for more
  546.    instructions.
  547.  
  548.     **************
  549.     * IMPORTANT! *
  550.     **************
  551.     DO NOT PACK THE .EXE FILE USING ANY FORM OF .EXE COMPRESSION
  552.     (e.g., exepack).  Doing so will make the perl binary totally
  553.     unusable, as the WATCOM stub loader (a 16-bit program) does an
  554.     exec() of the 32-bit DOS/4GW extender, and this extender has to
  555.     be able to read and parse the .EXE file (which it cannot, if the
  556.     .EXE file has been packed).
  557.  
  558. 10. That's all, folks!
  559.  
  560.  
  561. *******************************************************************************
  562. ***** Notes:
  563.  
  564. * While compiling regcomp.c, the WATCOM C compiler will output the
  565.   following message:
  566.  
  567.       regcomp.c(229): Warning! W105: Assignment found in boolean expression
  568.  
  569.   Believe it or not, the code is correct.  If you look at the code,
  570.   you'll swear that it's wrong, but it's right.
  571.  
  572.  
  573. *******************************************************************************
  574. ***** Here is a list of perl regression tests in Perl 4.0 pl36, and
  575.       whether or not they pass.
  576.  
  577.      Note: there is a perl script, called "t/test.dos", that runs all
  578. tests that are known to pass 100% (which is 60-70% of the tests).
  579.  
  580. ===============================================================================
  581. base/cond.t    -- Passes
  582. base/if.t    -- Passes
  583. base/lex.t    -- Mostly passes.  There is a single failure (test #12), due
  584.            to differences between Unix and MSDOS.  (Under Unix, 'sh
  585.            -c "echo ok 12\n"' produces only one line of output.  Two
  586.            lines are output with MSDOS.)
  587. base/pat.t    -- Passes
  588. base/term.t    -- Passes, if references to "/dev/null" are changed to "nul".
  589. cmd/elsif.t    -- Passes
  590. cmd/for.t    -- Passes
  591. cmd/mod.t    -- Passes
  592. cmd/subval.t    -- Passes
  593. cmd/switch.t    -- Passes
  594. cmd/while.t    -- Passes, if references to the file "Cmd.while.tmp" are
  595.            changed to reference "Cmd_while.tmp".
  596. comp/cmdopt.t    -- Passes
  597. comp/cpp.t    -- Fails (cpp is not implemented)
  598. comp/decl.t    -- Passes
  599. comp/multilin.t    -- Passes, if references to "rm" and "cat" are changed to
  600.            "del" and "type".
  601. comp/package.t    -- Passes
  602. comp/script.t    -- Fails, due to differences between Unix and MSDOS.
  603.            (Testing under MSDOS would require adding code to properly
  604.            parse quoted command-line arguments.)
  605. comp/term.t    -- Passes
  606. io/argv.t    -- Fails, due to differences between Unix and MSDOS.
  607.            (Testing under MSDOS would require adding code to properly
  608.            parse quoted command-line arguments.)
  609. io/dup.t    -- Mostly passes.  Test #5 fails because MSDOS can't handle
  610.            redirection of stderr.
  611. io/fs.t        -- Fails, due to differences between Unix and MSDOS.
  612.            (Unix has the concept of a multiple file access
  613.            permissions: user, group, other.  MSDOS has no such
  614.            concepts.)
  615. io/inplace.t    -- Not tested.
  616. io/pipe.t    -- Fails.  Needs a working exec(), which is not supported
  617.            with this version of MSDOS perl.
  618. io/print.t    -- Passes
  619. io/tell.t    -- Passes
  620. lib/big.t    -- Passes
  621. op/append.t    -- Passes
  622. op/array.t    -- Passes
  623. op/auto.t    -- Passes
  624. op/chop.t    -- Passes
  625. op/cond.t    -- Passes
  626. op/dbm.t    -- Mostly passes with GNU dbm, if the following is done:
  627.             1. At the beginning of the test, the lines that test
  628.                to see if /usr/include/dbm.h or /usr/include/ndbm.h
  629.                exist are deleted.
  630.             2. References to the file "Op.dbmx" are changed to
  631.                "Op_dbmx".
  632.             3. References to the file "Op.dbmx.pag" are changed to
  633.                "Op_dbmx".
  634.            Test #2 fails due to file permission differences between
  635.            Unix and MSDOS.
  636. op/delete.t    -- Passes
  637. op/do.t        -- Passes
  638. op/each.t    -- Passes
  639. op/eval.t    -- Passes
  640. op/exec.t    -- Fails (exec() not implemented)
  641. op/exp.t    -- Passes
  642. op/flip.t    -- Passes
  643. op/fork.t    -- Fails (fork() not implemented)
  644. op/glob.t    -- Passes, if a patch is applied to glob.t (this patch is
  645.            listed at the end of this list).  This patch may be
  646.            questionable.
  647. op/goto.t    -- Mostly passes.  Test #3 fails due to differences between
  648.            Unix and MSDOS.  (Testing under MSDOS would require
  649.            adding code to properly parse quoted command-line
  650.            arguments.)
  651. op/groups.t    -- Fails.  MSDOS has no concept of "groups".
  652. op/index.t    -- Passes
  653. op/int.t    -- Passes
  654. op/join.t    -- Passes
  655. op/list.t    -- Passes
  656. op/local.t    -- Passes
  657. op/magic.t    -- Fails, due to differences between Unix and MSDOS.
  658.            (Testing under MSDOS would require adding code to
  659.            properly parse quoted command-line arguments.)
  660. op/mkdir.t    -- Mostly passes.  Parts fail due to different error
  661.            messages output by Unix and MSDOS.
  662. op/oct.t    -- Passes
  663. op/ord.t    -- Passes
  664. op/pack.t    -- Passes
  665. op/pat.t    -- Passes
  666. op/push.t    -- Passes
  667. op/range.t    -- Passes
  668. op/read.t    -- Passes
  669. op/readdir.t    -- Passes
  670. op/regexp.t    -- Passes
  671. op/repeat.t    -- Passes
  672. op/s.t        -- Passes
  673. op/sleep.t    -- Passes
  674. op/sort.t    -- Passes
  675. op/split.t    -- Mostly passes.  Test #11 fails due to differences between
  676.            Unix and MSDOS.  (Testing under MSDOS would require
  677.            adding code to properly parse quoted command-line
  678.            arguments.)
  679. op/sprintf.t    -- Passes
  680. op/stat.t    -- Fails (contains numerous Unix-isms, like "ls -l /dev",
  681.            "/usr/bin", "/dev/null", "/dev/tty", etc.)
  682. op/study.t    -- Passes
  683. op/substr.t    -- Passes
  684. op/time.t    -- Fails ("times" not implemented)
  685. op/undef.t    -- Passes
  686. op/unshift.t    -- Passes
  687. op/vec.t    -- Passes
  688. op/write.t    -- Passes
  689.  
  690. ===============================================================================
  691. Patch for op/glob.t (already applied to op/glob.t -- it is reproduced here so
  692. that you can see what was changed):
  693. -------------------------------------------------------------------------------
  694. *** glob.old    Thu Jun 11 22:43:38 1992
  695. --- glob.t    Sun Mar 07 23:30:56 1993
  696. ***************
  697. *** 4,19 ****
  698.   
  699.   print "1..4\n";
  700.   
  701. ! @ops = <op/*>;
  702.   $list = join(' ',@ops);
  703.   
  704. ! chop($otherway = `echo op/*`);
  705.   
  706. ! print $list eq $otherway ? "ok 1\n" : "not ok 1\n$list\n$otherway\n";
  707.   
  708.   print $/ eq "\n" ? "ok 2\n" : "not ok 2\n";
  709.   
  710. ! while (<jskdfjskdfj* op/* jskdjfjkosvk*>) {
  711.       $not = "not " unless $_ eq shift @ops;
  712.       $not = "not at all " if $/ eq "\0";
  713.   }
  714. --- 4,19 ----
  715.   
  716.   print "1..4\n";
  717.   
  718. ! @ops = <op/*.*>;
  719.   $list = join(' ',@ops);
  720.   
  721. ! chop($otherway = `perlglob -s op/*.*`);
  722.   
  723. ! print $list eq $otherway ? "ok 1\n" : "not ok 1\n'$list'\n'$otherway'\n";
  724.   
  725.   print $/ eq "\n" ? "ok 2\n" : "not ok 2\n";
  726.   
  727. ! while (<jskdfjskdfj*.* op/*.* jskdjfjkosvk*.*>) {
  728.       $not = "not " unless $_ eq shift @ops;
  729.       $not = "not at all " if $/ eq "\0";
  730.   }
  731.  
  732. -------------------------------------------------------------------------------
  733.