home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / files / language / perl_419 / readme.st < prev    next >
Text File  |  1993-10-23  |  6KB  |  177 lines

  1. Here is a port of perl 4.0 Patchlevel 19 to the atariST series.:
  2.  
  3. Whats new since atariST perl 4.010
  4.     - many minor problems fixed.
  5.  
  6.     - perl will now compile and run correctly with or without
  7.     the malloc that comes with perl.
  8.  
  9.     - FILEs opened for write now correctly contain CR/LF unless
  10.     they are binmode'ed.
  11.  
  12.     - complete support for gemdos/xbios/bios calls. see osbind.pl
  13.     and osexample.pl on how to use this facility.
  14.  
  15.     - tracked perl to Patchlevel 19.
  16.  
  17. known problems:
  18.      - $! still does'nt contain the correct value when there is no error.
  19.     i still have'nt been able to track this down.
  20.  
  21. -------------------------------------------------------------------------
  22.  
  23. Here is a port of perl 4.0 Patchlevel 10 to the atariST series.
  24.  
  25. What you'll need:
  26.     - a decent shell (i use gulam for obvious reasons), other
  27.     highly recommended ones are bash 1.08/1.10, gemini/mufpel, okami,
  28.     microCsh, init from apratt for MiNT. avoid neodesk. avoid the
  29.     desktop like the plague. The shell should be setup to use
  30.     atari/mwc conventions for command lines and environment setup
  31.     and passing. (in gulam be sure to `set env_style mw').
  32.  
  33.     - a decent set of file utils (ls, rm, mv, etc etc) in your $PATH.
  34.     if you dont have these, look on atari.archive. the gnuFileutils
  35.     are available there.
  36.     
  37.     - included here are echo and perlglob that you will need.
  38.  
  39.     - setting UNIXMODE is recommended but not required. If you are
  40.     going to run the perl tests, then set UNIXMODE to atleast
  41.     "/.,LAd", else you will get a lot of unnecessary failures.
  42.     (alternately you will have to go in and edit long path names.
  43.      get rid of things dealing with links, and rename paths
  44.      beginning with "/dev/..." etc)
  45.  
  46.     - if you are going to compile: you'll need gcc distribution,
  47.     (i used gcc-1.40 and libs at Patchlevel 73). Also you will
  48.     need the port of gdbm (i used v1.5). you'll also need bison.
  49.     all these are available on atari.archive, in atari/gnustuff/tos
  50.     (except gdbm, the diffs for gdbm are included here).
  51.     
  52. Compiling:
  53.     - get and install gnu gdbm (i used v1.5 -- see README.ST in
  54.       the gdbm distribution on how to make the gdbm library).
  55.  
  56.     - get the perl kit at Patchlevel 19
  57.  
  58.     - copy config.h atarist.c wildmat.c perlglob.c echo.c 
  59.       makefile.st, makefile.std, makefile.sm and makefile.smd
  60.      from this directory.
  61.  
  62.     - apply the diffs in file `perl.diffs' using patch
  63.  
  64.     - decide which makefile you want to use:
  65.     makefile.st    perl with gcc library malloc
  66.     makefile.std    perl with -DDEBUGGING and library malloc
  67.     makefile.sm    perl with malloc that comes with perl
  68.     makefile.smd    perl with -DDEBUGGING and with perl's malloc.
  69.  
  70.     - hit make -f <MAKEFILE>. (if you are not cross-compiling, 
  71.        you'll have to adjust the makefile yourself -- watchout for
  72.        perly.fixer).
  73.        This will result in 3 executables, perl.ttp, perlglob.ttp
  74.        and echo.ttp. Put all these executables in a sub-directory
  75.        in your $PATH (and depending on your shell, issue a rehash).
  76.     (if you use makefile.std instead of makefile.st, the executable
  77.      will be called perld.ttp. this is perl compiled with
  78.      -DDEBUGGING)
  79.  
  80. Testing:
  81.     - run perl from a decent shell. i use either gulam or bash
  82.     if you are going to be running from gulam, be sure to
  83.         set env_style mw
  84.     (this can be done automatically by including the above
  85.      line in the gulam.g startup file). bash always uses
  86.     atari/mwc conventions so you dont have to do anything special.
  87.     (if you run perl from the desktop, you are asking for trouble!)
  88.  
  89.     - you'll have to run the tests by hand. Almost all the tests
  90.     pass. You'll have to judge for yourself when a test fails
  91.     if it should have. I was able to explain all failures. If you
  92.     cant, ask me via mail. (one day i will cook up a script to
  93.     do this).
  94.  
  95.     - It helps to have all the gnu fileutils in your PATH here.
  96.     especially echo.ttp and perlglob.ttp.
  97.  
  98.     - Also a lot more tests will pass if you have UNIXMODE setup
  99.     i use "/.,LAd". If you dont use UNIXMODE, you'll have to hack
  100.     some of the tests.
  101.  
  102.     - You may have to fix up a few Pathnames in the tests if you
  103.     are cd'ing to a particular test sub-directory to run the tests.
  104.  
  105.     - Compare your tests with the results i got -- see file RESULTS.
  106.     
  107. General:
  108.     - setenv PERLLIB to point at the subdirectory containing lib/*
  109.     (if you want PERLLIB to contain more than one path, seperate
  110.      them with commas)
  111.  
  112.     - UNIXMODE is supported not required.
  113.  
  114.     - Pipes are a little flakey sometimes, but mostly work fine.
  115.     Pipes, `prog`  etc are much more efficient if you have set
  116.     the environment var TEMP tp point to a ramdisk. Note, when
  117.     you set TEMP, it should contain *no* tailing backslash (or slash).
  118.  
  119.     - to force binary mode use "binmode FILE"
  120.  
  121.     - browse thru config.h to see whats supported
  122.  
  123.     - should MiNT'ize this much more.
  124.  
  125.     - avoid using the backtick (`commands`). Use 'open(FOO, "command |")'
  126.     and use the filehandle FOO as appro.
  127.  
  128.     - the command passed to system etc can contain
  129.     redirections of stdin/out, but system does not understand
  130.     fancy pipelines etc.
  131.  
  132.     - syscall() to make gemdos/bios/xbios are fully supported now.
  133.     (note: we dont use ioctl like messy-dos to do this, as we can do
  134.      real ioctl's on devices)
  135.  
  136.     - i still need to cons up the lineA stuff.
  137.       it should be just as easy to cons up aes/vdi outcalls too. imagine
  138.       graphics from perl!.
  139.  
  140.     - watch out for re-directions. TOS blows up if you try to
  141.     re-direct a re-directed handle. atari has greatly improved this
  142.     situation. hopefully, the next general release of TOS will contain
  143.     these fixes.
  144.  
  145.     - in the perl libs (particularly perldb.pl) you will
  146.     need to s?/dev/tty?/dev/console?. perl -d works just fine.
  147.     for instance: (for this to work, UNIXMODE should include the
  148.     'd' option):
  149. *** /home/bammi/etc/src/perl/lib/perldb.pl    Tue Jun 11 17:40:17 1991
  150. --- perldb.pl    Mon Oct  7 21:46:28 1991
  151. ***************
  152. *** 49,56 ****
  153.   # 
  154.   #
  155.   
  156. ! open(IN, "</dev/tty") || open(IN,  "<&STDIN");    # so we don't dingle stdin
  157. ! open(OUT,">/dev/tty") || open(OUT, ">&STDOUT");    # so we don't dongle stdout
  158.   select(OUT);
  159.   $| = 1;                # for DB'OUT
  160.   select(STDOUT);
  161. --- 49,56 ----
  162.   # 
  163.   #
  164.   
  165. ! open(IN, "</dev/console") || open(IN,  "<&STDIN");    # so we don't dingle stdin
  166. ! open(OUT,">/dev/console") || open(OUT, ">&STDOUT");    # so we don't dongle stdout
  167.   select(OUT);
  168.   $| = 1;                # for DB'OUT
  169.   select(STDOUT);
  170.  
  171. cheers,
  172. --
  173. bang:   uunet!cadence!bammi            jwahar r. bammi
  174. domain: bammi@cadence.com
  175. GEnie:    J.Bammi
  176. CIS:    71515,155
  177.