home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / oraperl2.zip / README.prl < prev   
Text File  |  1993-10-29  |  10KB  |  257 lines

  1.            Notes on the OS/2 Perl port
  2.  
  3.                           Kai Uwe Rommel
  4.                    (rommel@jonas.ucrc.sub.org)
  5.  
  6. I picked up the OS/2 port from Raymond Chen at 3.0 with patches 19-28.
  7. When compiling, I found out that os2.c and director.c were missing. I
  8. had to rewrite them because even the original author of the port
  9. (Raymond Chen) did no longer have them.
  10.  
  11. I had directory routines laying around, this was no big deal.
  12. I rewrote os2.c, but did not implement the syscall() as described above.
  13. I had not the time and did not really need it. Feel free ...
  14.  
  15. Changes to above described port:
  16.  
  17. - the small program GLOB is now named PERLGLOB for better ordering in
  18.   my /bin directory
  19.  
  20. - added help page (well, a graphical user interface would be overkill
  21.   but a simple help page should be in every program :-)
  22.  
  23. - several cosmetic changes in standard distribution files because of
  24.   naming conventions etc., #ifdef'd OS2
  25.  
  26. - syscall() not supported as noted above
  27.  
  28. - chdir now recognizes also drive letters and changes also the drive
  29.  
  30. - new mypopen(), mypclose() functions and simulation routines for DOS mode,
  31.   they are selected automatically in real mode
  32. - the new pclose() does not kill the child, my experience is that this is
  33.   not needed.
  34.  
  35. - setpriority is now:   setpriority(class, pid, val)
  36.   see description of DosSetPrty() for class and val meanings
  37. - getpriority is now:   getpriority(dummy, pid)
  38.   see description of DosGetPrty()
  39.  
  40. - kill is now:          kill(pid, sig)
  41.   where sig can be 0 (kill process)
  42.                    1-3 (send process flags A-C, see DosFlagProcess())
  43.   if pid is less than zero, the signal is sent to the whole
  44.   process tree originating at -pid.
  45.  
  46. The following files are now new with patch >=29:
  47.  
  48. readme.os2        this file
  49.  
  50. dir.h             sys/dir.h
  51. director.c        directory routines
  52. os2.c             kernel of OS/2 port (see below)
  53. popen.c           new popen.c
  54. mktemp.c          enhanced mktemp(), uses TMP env. variable, used by popen.c
  55. alarm.c           PD implementation for alarm()
  56. alarm.h          header for alarm.c
  57.  
  58. perl.cs           Compiler Shell script for perl itself
  59. perl.def          linker definition file for perl
  60. perl.bad          names of protect-only API calls for BIND
  61. perlglob.cs       Compiler Shell script for perl globbing program
  62. perlglob.def      linker definition file for perlglob
  63. a2p.cs            Compiler Shell script for a2p (see below)
  64. a2p.def           linker definition file for a2p
  65. makefile          Makefile, not tested
  66.  
  67. perlsh.cmd        the converted perlsh
  68. perldb.dif        changes required for perldb.pl (change for your needs)
  69. selfrun.cmd       sample selfrunning perl script for OS/2
  70. selfrun.bat       sample selfrunning perl script for DOS mode
  71.  
  72. Note: I don't use make but my own utility, the Compiler Shell CS.
  73. It was posted in comp.binaries.os2 or you can ask me for the newest
  74. version. The .CS files are the "makefiles" for it.
  75.  
  76. Note: MS C 6.00 is required. C 5.1 is not capable of compiling perl,
  77. especially not with -DDEBUGGING
  78.  
  79.                                 August 1990
  80.  
  81.                                 Kai Uwe Rommel
  82.                                 rommel@lan.informatik.tu-muenchen.dbp.de
  83.                                 Zennerstr. 1
  84.                                 D-8000 Muenchen 70
  85.  
  86.  
  87. + I have verified with patchlevel 37, that the OS/2 port compiles,
  88.   after doing two minor changes. HPFS filenames support was also added.
  89.   Some bugs were fixed.
  90. + To compile,
  91.   - you need the bison parser generator
  92.   - copy config.h from os2 into the main perl directory (important !)
  93.   - copy perl.cs and perlglob.cs from the os2 subdir to the main dir
  94.   - copy a2p.cs from os2 to x2p
  95.   - say "bison -d perl.y"
  96.       "ren perl_tab.c perl.c" and
  97.       "ren perl_tab.h perly.h"    in the main directory
  98.   - say "cs perl" and
  99.       "cs perlglob" in the main directory
  100.   - say "cs a2p" in the x2p subdir
  101. + If you don't have CS or don't want to use it, you have to
  102.   construct a makefile ...
  103. + If you have GNU gdbm, you can define NDBM in config.h and link with a
  104.   large model library of gdbm.
  105. + I am not sure if I can verify the OS/2 port with each release
  106.   from Larry Wall. Therefore, in future releases there may be
  107.   changes required to compile perl for OS/2.
  108.                  October 1990
  109.                 Kai Uwe Rommel
  110.                 rommel@lan.informatik.tu-muenchen.dbp.de
  111.  
  112.  
  113. Verified patchlevel 40.
  114. Some bugs were fixed. Added alarm() support (using PD implementation).
  115.  
  116.  
  117.                  November 1990
  118.  
  119.                                 Kai Uwe Rommel
  120.                                 rommel@lan.informatik.tu-muenchen.dbp.de
  121.  
  122.  
  123. Verified patchlevel 44.
  124. Only two #ifdefs added to eval.c. Stack size for A2P had to be corrected.
  125. PERLGLOB separated from DOS version because of HPFS support.
  126.  
  127. [Note: instead of #ifdef'ing eval.c I fixed it in perl.h--lwall]
  128.  
  129.                 January 1991
  130.  
  131.                                 Kai Uwe Rommel
  132.                                   rommel@lan.informatik.tu-muenchen.dbp.de
  133.  
  134.  
  135. Verified perl 4.0 at patchlevel 10
  136. Changes:
  137. - some minor corrections and updates in various files
  138. - new os2/config.h created from original config.H
  139. - added support for crypt(), PD routine by A.Tanenbaum in new os2/crypt.c
  140. - added support for wait4pid() in os2.c
  141. - fixed/added support for -P option (requires a standard CPP for OS/2)
  142. - os2/mktemp.c deleted, no longer needed
  143. - new Makefile created for MS C 6.00 and it's NMAKE
  144. - with os2/perl.cs, bison has no longer to be called manually
  145. I have successfully run most tests. Diffs are in os2/tests.dif.
  146. Often, only command names, shell expansion etc. have to be changed.
  147. Test that still don't run are Unix-specific ones or fail because
  148. of CR/LF-problems:
  149. - io/argv.t, io/inplace.t, op/exec.t, op/glob.t  (minor problems)
  150. - io/fs.t, io/pipe.t op/fork.t, op/magic.t, op/time.t
  151.    (under OS/2 not supported features of Unix)
  152. - op/pat.t (bug, not yet fixed)
  153. Remember to remove the HAS_GDBM symbol from os2/config.h or
  154. get GNU gdbm for OS/2.
  155.  
  156.                 June 1991
  157.                                 Kai Uwe Rommel
  158.                                 rommel@lan.informatik.tu-muenchen.dbp.de
  159.  
  160.  
  161. Verified perl 4.0 at patchlevel 19
  162. Minor fixes. Previous fixes at PL10 were not included into distribution.
  163.  
  164.                 November 1991
  165.                                 Kai Uwe Rommel
  166.                                 rommel@informatik.tu-muenchen.dbp.de
  167.  
  168.  
  169. At patchlevel 35, I almost re-did the OS/2 port. I don't use MS C 6.00
  170. any longer. Instead, because we have the 32-bit OS/2 2.0 now, I use
  171. the GNU C compiler, ported by Eberhard Mattes (emx 0.8e).
  172.  
  173. Because the emx C library is good at emulating Unix, much of the code
  174. in .../os2 can be deleted. It contains now:
  175.  
  176. total 111
  177. -rw-a--     1426 Oct 05 00:41 Makefile        main makefile
  178. -rw-a--      613 Oct 05 00:34 Makefile.a2p    makefile in .../x2p
  179. -rw-a--     9628 Oct 05 01:16 README.OLD    previous docs
  180. -rw-a--     6472 Oct 05 01:16 README.OS2    this file
  181. -rw-a--      370 Jun 12 06:43 alarm.pl        sample
  182. -rw-a--    27622 Oct 04 23:08 config.h        OS/2 config.h
  183. -rw-a--      363 Oct 04 23:07 glob.c        for perlglob.exe
  184. -rw-a--     6321 Oct 05 00:29 os2.c        OS/2 support code
  185. -rw-a--       74 Jun 12 06:43 perl.def        linker def. file
  186. -rwxa--      437 Jun 12 06:43 perlsh.cmd    perl shell
  187. -rwxa--    12535 Jun 12 06:42 s2p.cmd        s2p
  188. -rwxa--      126 Jun 12 06:43 selfrun.bat    sample
  189. -rwxa--      134 Jun 12 06:43 selfrun.cmd    sample
  190. -rw-a--     4193 Oct 04 22:03 suffix.c        OS/2 support code
  191. -rw-a--    18098 Oct 05 00:58 tests.dif        patches to tests
  192. -rw-a--    14729 Oct 05 01:17 update.dif    patches to 4.0.35
  193.  
  194. The programs are built by moving Makefile to .. and Makefile.a2p to
  195. ../x2p/Makefile. Use either dmake or nmake in the main perl directory
  196. to make the executables.
  197.  
  198. The resulting executables run under DOS too, for those who are
  199. interested. They are fully 32-bit programs and require the DOS
  200. extender emx.exe. Under OS/2, they require emx.dll in the LIBPATH.
  201. Both are included in the binary distribution.
  202.  
  203. Two features are new:
  204.  
  205. - fork is supported because emx emulates fork on OS/2 (but for
  206.   system(), the spawn function is still used because it is much more
  207.   efficient)
  208.  
  209. - un-dumping is supported (similar to what is done with GNU emacs)
  210.  
  211. To un-dump, i.e. to create a .exe file for a perl script with the
  212. compiled script preloaded, the following steps are required (example
  213. with alarm.pl):
  214.  
  215. - Run perl with -u on the script. This produces a file perldump in the
  216.   current directory:
  217.  
  218.     perl -u alarm.pl
  219.  
  220. - Extract the perl program from your perl.exe into an a.out file named
  221.   perl:
  222.  
  223.     emxbind -x perl.exe aperl
  224.  
  225. - Make a new .exe file and delete aperl and perldump afterwards.
  226.  
  227.     emxbind -cperldump aperl
  228.     del perldump aperl
  229.  
  230. This produces a program called aperl.exe in the current directory.
  231. You can run this program and it appears as if you had entered "perl
  232. alarm.pl" on the command line. The emxbind program is included in the
  233. binary distribution.
  234.  
  235. Note my new e-mail address. Please don't send large mails to it, I
  236. have to pay for incoming mail.
  237.  
  238.                 October 1992
  239.                                 Kai Uwe Rommel
  240.                                 rommel@jonas.ucrc.sub.org
  241.  
  242.  
  243. Verified at patchlevel 36. Minor changes for emx 0.8f instead of 0.8e.
  244. Added sample os2/dump.cmd for dumping preload programs.
  245.  
  246. My patches to PL 35 were not included in 36, hopefully they will be in
  247. the next official patch.
  248.  
  249. Note that my e-mail address changed again. Please don't send large mails
  250. to it, I have to pay for incoming mail.
  251.  
  252.                 February 1993
  253.                                 Kai Uwe Rommel
  254.                                 rommel@jonas.gold.sub.org
  255.  
  256.  
  257.