summaryrefslogtreecommitdiff
path: root/msdos/README.msdos
diff options
context:
space:
mode:
Diffstat (limited to 'msdos/README.msdos')
-rw-r--r--msdos/README.msdos80
1 files changed, 80 insertions, 0 deletions
diff --git a/msdos/README.msdos b/msdos/README.msdos
index 2d6a276b78..3a5c38fcae 100644
--- a/msdos/README.msdos
+++ b/msdos/README.msdos
@@ -113,3 +113,83 @@ front of %0.bat).
Myrsinis 1
GR-145 62 Kifissia
Greece
+
+--------------------------------------------------------------------------
+
+ Revisions to the MS-DOS support in Perl 4.0
+ Tom Dinger, 18 March 1991
+
+The DOS compatibility added to Perl sometime in release 3.x was not
+maintained, and Perl as distributed could not be built without changes.
+
+Both myself and Len Reed more or less "rediscovered" how to get Perl built
+and running reliably for MS-DOS, using the Microsoft C compiler. He and I
+have communicated, and will be putting together additional patches for the
+DOS version of Perl.
+
+1. Compiling Perl
+
+ For now, I have not supplied a makefile, as there is no standard for
+ make utilities under DOS. All the files can be compiled with Microsoft
+ C 5.1, using the switches "-AL -Ox" for Large memory model, maximum
+ optimization (this turned out a few code generation bugs in MSC 5.1).
+ The code will also compile with MSC 6.00A, with the optimization
+ "-Oacegils /Gs" for all files (regcomp.c has special case code to change
+ the aliasing optimizations).
+
+ Generally, you follow the instructions given above to compile and build
+ Perl 4.0 for DOS. I used the output of SunOS yacc run on perly.y,
+ without modification, but I expect both Bison and Berkeley-YACC will work
+ also. From inspection of the generated code, however, I believe AT&T
+ derived YACC produces the smallest tables, i.e. uses the least memory.
+ This is important for a 300K executable file.
+
+2. Editing in-place.
+
+ You will need the file suffix.c from the os2 subdirectory -- it will
+ create a backup file with much less danger for DOS.
+
+3. A "Smarter" chdir() function.
+
+ I have added to the DOS version of Perl 4.0 a replacement chdir()
+ function. Unlike the "normal" behavior, it is aware of drive letters
+ at the start of paths for DOS. So for example:
+
+ perl_chdir( "B:" ) changes to the default directory, on drive B:
+ perl_chdir( "C:\FOO" ) changes to the specified directory, on drive C:
+ perl_chdir( "\BAR" ) changes to the specified directory on the
+ current drive.
+
+4. *.BAT Scripts as Perl scripts
+
+ The strategy described above for turning a Perl script into a *.BAT
+ script do not work. I have been using the following lines at the
+ beginning of a Perl *.BAT script:
+
+ @REM=(qq!
+ @perl -S %0.bat %1 %2 %3 %4 %5 %6 %7 %8 %9
+ @goto end !) if 0 ;
+
+ and the following at the end of the *.BAT script:
+
+ @REM=(qq!
+ :end !) if 0 ;
+
+ If you like, with the proper editor you can replace the four '!'
+ characters with some untypeable character, such as Ctrl-A. This will
+ allow you to pass any characters, including ".." strings as arguments.
+
+4. Things to Come
+
+ * Better temporary file handling.
+ * A real Makefile -- Len Reed has one for Dmake 3.6
+ * Swapping code -- swaps most of Perl out of memory (to EMS, XMS or
+ disk) before running a sub-program or pipe.
+ * MKS command line support, both into Perl, and to other programs
+ spawned by Perl.
+ * Smarter pipe functions, not using COMMAND.COM.
+
+
+ Tom Dinger
+ tdinger@East.Sun.COM
+ Martch 18, 1991