home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl560.zip / README.mpeix < prev    next >
Text File  |  1999-07-20  |  10KB  |  261 lines

  1. Perl/iX for HP 3000 MPE
  2.  
  3. http://www.cccd.edu/~markb/perlix.html
  4. Perl language for MPE
  5. Last updated July 15, 1998 @ 2030 UTC
  6.  
  7.   ------------------------------------------------------------------------
  8.  
  9. What's New
  10.  
  11.    * July 15, 1998
  12.         o Changed startperl to #!/PERL/PUB/perl so that Perl will recognize
  13.           scripts more easily and efficiently.
  14.    * July 8, 1998
  15.         o Updated to version 5.004_70 (internal developer release) which is
  16.           now MPE-ready.  The next public freeware release of Perl should
  17.           compile "straight out of the box" on MPE.  Note that this version
  18.           of Perl/iX was strictly internal to me and never publicly
  19.           released.  Note that BIND/iX is now required (well, the include
  20.           files and libbind.a) if you wish to compile Perl/iX.
  21.    * November 6, 1997
  22.         o Updated to version 5.004_04.  No changes in MPE-specific
  23.           functionality.
  24.  
  25.   ------------------------------------------------------------------------
  26.  
  27. Welcome
  28.  
  29. This is the official home page for the HP 3000 MPE port of the Perl
  30. scripting language which gives you all of the power of C, awk, sed, and sh
  31. in a single language. Check here for the latest news, implemented
  32. functionality, known bugs, to-do list, etc. Status reports about major
  33. milestones will also be posted to the HP3000-L mailing list and its
  34. associated gatewayed newsgroup comp.sys.hp.mpe.
  35.  
  36. I'm doing this port because I can't live without Perl on the HPUX machines
  37. that I administer for the Coast Community College District, and I want to
  38. have the same power available to me on MPE.
  39.  
  40. Please send your comments, questions, and bug reports directly to me, Mark
  41. Bixby, by e-mailing to markb@cccd.edu. Or just post them to HP3000-L. You
  42. can also telephone me at +1 714 438-4647 Monday-Friday 0815-1745 PDT
  43. (1615-0145 UTC).
  44.  
  45. The platform I'm using to do this port is an HP 3000 969KS200 running
  46. MPE/iX 5.5 and using the gcc 2.8 compiler from
  47. http://www.interex.org/sources/freeware.html.
  48.  
  49. The combined porting wisdom from all of my ports can be found in my MPE/iX
  50. Porting Guide.
  51.  
  52.   ------------------------------------------------------------------------
  53.  
  54. System Requirements
  55.  
  56.    * MPE/iX 5.5 or later. This version of Perl/iX does NOT run on MPE/iX
  57.      5.0 or earlier, nor does it run on "classic" MPE/V machines.
  58.    * The Perl binary requires that you must have converted your NMRL
  59.      libraries in /lib/lib*.a and /usr/lib/lib*.a to NMXL libraries
  60.      /lib/lib*.sl and /usr/lib/lib*.sl via the LIBSHP3K script that comes
  61.      with the GNUCORE portion of the  FREEWARE tape.
  62.    * If you wish to recompile Perl, you must install both GNUCORE and
  63.      GNUGCC from the FREEWARE tape.
  64.    * Perl/iX will be happier if you install the MPEKX76A additional POSIX
  65.      filename characters patch, but this is optional.
  66.    * If you will be compiling Perl/iX yourself, you will also need the
  67.      /BIND/PUB/include and /BIND/PUB/lib portions of BIND/iX.
  68.  
  69.   ------------------------------------------------------------------------
  70.  
  71. Demos
  72.  
  73. Here is a brief selection of some sample Perl/iX uses:
  74.  
  75.    * A web feedback CGI form that lets a web browser user enter some data
  76.      and send e-mail to the person responsible for reading the feedback
  77.      comments.  The CGI is written in Perl and requires Sendmail/iX.
  78.  
  79.   ------------------------------------------------------------------------
  80.  
  81. How to Obtain Perl/iX
  82.  
  83.   1. Download Perl using either FTP.ARPA.SYS or some other client
  84.   2. Extract the installation script
  85.   3. Edit the installation script
  86.   4. Run the installation script
  87.  
  88. Download Perl using FTP.ARPA.SYS from your HP 3000 (the preferred
  89. method).....
  90.  
  91. :HELLO MANAGER.SYS
  92. :XEQ FTP.ARPA.SYS
  93. open ftp.cccd.edu
  94. anonymous
  95. your@email.address
  96. bytestream
  97. cd /pub/mpe
  98. get perl5.005.tar.Z /tmp/perl.tar.Z
  99. exit
  100.  
  101. .....Or download using some other generic web or ftp client (the alternate
  102. method)
  103.  
  104. Download the following files (make sure that you use "binary mode" or
  105. whatever client feature that is 8-bit clean):
  106.  
  107.    * Perl from http://www.cccd.edu/ftp/pub/mpe/perl5.005.tar.Z or
  108.      ftp://ftp.cccd.edu/pub/mpe/perl5.005.tar.Z
  109.  
  110. Upload those files to your HP 3000 in an 8-bit clean bytestream manner to:
  111.  
  112.    * /tmp/perl.tar.Z
  113.  
  114. Then extract the installation script (after both download methods)
  115.  
  116. :CHDIR /tmp
  117. :XEQ TAR.HPBIN.SYS 'xvfopz /tmp/perl.tar.Z INSTALL'
  118.  
  119. Edit the installation script
  120.  
  121. Examine the accounting structure creation commands and modify if necessary
  122. (adding additional capabilities, choosing a non-system volume set, etc).
  123.  
  124. :XEQ VI.HPBIN.SYS /tmp/INSTALL
  125.  
  126. Run the installation script
  127.  
  128. The accounting structure will be created and then all files will be
  129. extracted from the archive.
  130.  
  131. :XEQ SH.HPBIN.SYS /tmp/INSTALL
  132.  
  133.   ------------------------------------------------------------------------
  134.  
  135. Distribution Contents Highlights
  136.  
  137. README
  138.      The file you're reading now.
  139. INSTALL
  140.      Perl/iX Installation script.
  141. PERL
  142.      Perl NMPRG executable.  A version-numbered backup copy also exists.
  143.      You might wish to "ln -s /PERL/PUB/PERL /usr/local/bin/perl".
  144. lib/
  145.      Perl libraries, both core and add-on.
  146. man/
  147.      Perl man page documentation.
  148. public_html/feedback.cgi
  149.      Sample feedback CGI form written in Perl.
  150. src/perl5.005
  151.      Source code.
  152.  
  153.   ------------------------------------------------------------------------
  154.  
  155. How to Compile Perl/iX
  156.  
  157.   1. cd src/perl5.005
  158.   2. Read the INSTALL file for the official instructions
  159.   3. ./Configure
  160.   4. make
  161.   5. ./mpeix/relink
  162.   6. make test (expect 31 out of 5899 subtests to fail, mostly due to MPE
  163.      not supporting hard links and handling exit() return codes improperly)
  164.   7. make install
  165.   8. Optionally create symbolic links that point to the Perl executable,
  166.      i.e. ln -s /usr/local/bin/perl /PERL/PUB/PERL
  167.  
  168. The summary test results from "cd t; ./perl -I../lib harness":
  169.  
  170. Failed Test  Status Wstat Total Fail  Failed  List of failed
  171. -------------------------------------------------------------------------------
  172. io/fs.t                      26    8  30.77%  2-5, 7-9, 11
  173. io/pipe.t                    12    2  16.67%  11-12
  174. lib/posix.t                  18    1   5.56%  12
  175. op/die_exit.t                16   16 100.00%  1-16
  176. op/exec.t                     8    2  25.00%  5-6
  177. op/stat.t                    58    2   3.45%  3, 35
  178. Failed 6/183 test scripts, 96.72% okay. 31/5899 subtests failed, 99.47% okay.
  179.  
  180.   ------------------------------------------------------------------------
  181.  
  182. Getting Started with Perl/iX
  183.  
  184. Create your Perl script files with "#!/PERL/PUB/perl" (or an equivalent
  185. symbolic link) as the first line.  Use the chmod command to make sure that
  186. your script has execute permission. Run your script!
  187.  
  188. If you want to use Perl to write web server CGI scripts, obtain and install
  189. CGI.pm. Build CGI.pm and all other add-on modules below /PERL/PUB/src/.
  190.  
  191. Be sure to take a look at the CPAN module list. A wide variety of free Perl
  192. software is available.
  193.  
  194.   ------------------------------------------------------------------------
  195.  
  196. MPE/iX Implementation Considerations
  197.  
  198. There some minor functionality issues to be aware of when comparing Perl
  199. for Unix (Perl/UX) to Perl/iX:
  200.  
  201.    * MPE gcc/ld doesn't properly support linking NMPRG executables against
  202.      NMXL dynamic libraries, so you must manually run mpeix/relink after
  203.      each re-build of Perl.
  204.    * Perl/iX File::Copy will use MPE's /bin/cp command to copy files by
  205.      name in order to preserve file attributes like file code.
  206.    * MPE (and thus Perl/iX) lacks support for setgrent(), endgrent(),
  207.      setpwent(), endpwent().
  208.    * MPE (and thus Perl/iX) lacks support for hard links.
  209.    * MPE requires GETPRIVMODE() in order to bind() to ports less than
  210.      1024.  Perl/iX will call GETPRIVMODE() automatically on your behalf if
  211.      you attempt to bind() to these low-numbered ports.  Note that the
  212.      Perl/iX executable and the PERL account do not normally have CAP=PM,
  213.      so if you will be bind()-ing to these privileged ports, you will
  214.      manually need to add PM capability as appropriate.
  215.    * MPE requires that you bind() to an IP address of zero.  Perl/iX
  216.      automatically replaces the IP address that you pass to bind() with a
  217.      zero.
  218.    * If you use Perl/iX fcntl() against a socket it will fail, because MPE
  219.      requires that you use sfcntl() instead.  Perl/iX does not presently
  220.      support sfcntl().
  221.    * MPE requires GETPRIVMODE() in order to setuid().  There are too many
  222.      calls to setuid() within Perl/iX, so I have not attempted an automatic
  223.      GETPRIVMODE() solution similar to bind().
  224.  
  225.   ------------------------------------------------------------------------
  226.  
  227. Known Bugs Under Investigation
  228.  
  229.    * None
  230.  
  231.   ------------------------------------------------------------------------
  232.  
  233. To-Do List
  234.  
  235.    * Make setuid()/setgid() support work.
  236.    * Make sure that fcntl() against a socket descriptor is redirected to
  237.      sfcntl().
  238.    * Add support for Berkeley DB once I've finished porting Berkeley DB.
  239.    * Write an MPE XS extension library containing miscellaneous important
  240.      MPE functions like GETPRIVMODE(), GETUSERMODE(), and sfcntl().
  241.  
  242.   ------------------------------------------------------------------------
  243.  
  244. Change History
  245.  
  246.    * October 16, 1997
  247.         o Added Demos section to the Perl/iX home page so you can see some
  248.           sample Perl applications running on my 3000.
  249.    * October 3, 1997
  250.         o Added System Requirements section to the Perl/iX home page just
  251.           so the prerequisites stand out more. Various other home page
  252.           tweaks.
  253.    * October 2, 1997
  254.         o Initial public release.
  255.    * September 1997
  256.         o Porting begins.
  257.  
  258.   ------------------------------------------------------------------------
  259.  
  260. Mark Bixby, markb@cccd.edu
  261.