home *** CD-ROM | disk | FTP | other *** search
- If you read this file _as_is_, just ignore the funny characters you
- see. It is written in the POD format (see perlpod manpage) which is
- specially designed to be readable as is.
-
- =head1 NAME
-
- README.mpeix - Perl/iX for HP e3000 MPE
-
- =head1 SYNOPSIS
-
- http://www.bixby.org/mark/perlix.html
- http://jazz.external.hp.com/src/hp_freeware/perl/
- Perl language for MPE
- Last updated June 2, 2000 @ 0400 UTC
-
- =head1 NOTE
-
- This is a podified version of the above-mentioned web page,
- podified by Jarkko Hietaniemi 2001-Jan-01.
-
- =head1 Binary distribution from HP
-
- The simplest way to obtain Perl for the MPE/iX is to go either of
- these URLs and follow the instructions within.
-
- http://jazz.external.hp.com/src/hp_freeware/perl/
- http://www.bixby.org/mark/perlix.html
-
- Use which ever one is more recent.
-
-
- =head1 What's New in Perl for MPE/iX
-
- June 1, 2000
-
- =over 4
-
- =item *
-
- Rebuilt to be compatible with mod_perl. If you plan on using
- mod_perl, you MUST download and install this version of Perl/iX!
-
- =item *
-
- uselargefiles="undef": not available in MPE for POSIX files yet.
-
- =item *
-
- Now bundled with various add-on packages:
-
- =over 8
-
- =item *
-
- libnet (as seen on CPAN)
-
- =item *
-
- libwww-perl (LWP) which lets Perl programs behave like web browsers:
-
- 1. #!/PERL/PUB/perl
- 2. use LWP::Simple;
- 3. $doc = get('http://www.bixby.org/mark/perlix.html'); # reads the
- web page into variable $doc
-
- (http://www.bixby.org/mark/perlix.html)
-
- =item *
-
- mod_perl (just the perl portion; the actual DSO will be released
- soon with Apache/iX 1.3.12 from bixby.org). This module allows you to
- write high performance persistent Perl CGI scripts and all sorts of
- cool things. (http://perl.apache.org/)
-
- and much much more hiding under /PERL/PUB/.cpan/
-
- =item *
-
- The CPAN module now works for automatic downloading and
- installing of add-on packages:
-
- 1. export FTP_PASSIVE=1
- 2. perl -MCPAN -e shell
- 3. Ignore any terminal I/O related complaints!
-
- (http://theoryx5.uwinnipeg.ca/CPAN/data/perl/CPAN.html)
-
- =back
-
- =back
-
- May 20, 2000
-
- =over 4
-
- =item *
-
- Updated to version 5.6.0. Builds straight out of the box on MPE/iX.
-
- =item *
-
- Perl's getpwnam() function which had regressed to being
- unimplemented on MPE is now implemented once again.
-
- =back
-
- September 17, 1999
-
- =over 4
-
- =item *
-
- Migrated from cccd.edu to bixby.org.
-
- =back
-
- =head1 Welcome to Perl/iX
-
- This is the official home page for the HP e3000 MPE/iX
- ( http://www.hp.com/go/e3000 ) port of the Perl scripting
- language ( http://www.perl.com/ ) which gives you all of the power of C,
- awk, sed, and sh in a single language. Check here for the latest news,
- implemented functionality, known bugs, to-do list, etc. Status reports
- about major milestones will also be posted to the HP3000-L mailing list
- ( http://www.lsoft.com/scripts/wl.exe?SL1=HP3000-L&H=RAVEN.UTC.EDU ) and
- its associated gatewayed newsgroup comp.sys.hp.mpe.
-
- I'm doing this port because I can't live without Perl on the Unix
- machines that I administer, and I want to have the same power
- available to me on MPE.
-
- Please send your comments, questions, and bug reports directly to me,
- Mark Bixby ( http://www.bixby.org/mark/ ), by e-mailing to
- mark@bixby.org. Or just post them to HP3000-L.
-
- The platform I'm using to do this port is an HP 3000 957RX running
- MPE/iX 6.0 and using the GNU gcc C compiler
- ( http://jazz.external.hp.com/src/gnu/gnuframe.html ).
-
- The combined porting wisdom from all of my ports can be found in my
- MPE/iX Porting Guide (http://www.bixby.org/mark/porting.html).
-
- IMPORTANT NOTICE: Yes, I do work for the HP CSY R&D lab, but ALL of
- the software you download from bixby.org is my personal freeware that
- is NOT supported by HP.
-
- =head1 System Requirements for Perl/iX
-
- =over 4
-
- =item *
-
- MPE/iX 5.5 or later. This version of Perl/iX does NOT run on
- MPE/iX 5.0 or earlier, nor does it run on "classic" MPE/V machines.
-
- =item *
-
- If you wish to recompile Perl, you must install both GNUCORE and
- GNUGCC from jazz (http://jazz.external.hp.com/src/gnu/gnuframe.html).
-
- =item *
-
- Perl/iX will be happier on MPE/iX 5.5 if you install the MPEKX40B
- extended POSIX filename characters patch, but this is optional.
-
- =item *
-
- Patch LBCJXT6A is required on MPE/iX 5.5 machines in order to
- prevent Perl/iX from dying with an unresolved external reference
- to _getenv_libc.
-
- =item *
-
- If you will be compiling Perl/iX yourself, you will also need
- Syslog/iX ( http://www.bixby.org/mark/syslogix.html ) and the
- /BIND/PUB/include and /BIND/PUB/lib portions of BIND/iX
- ( http://www.bixby.org/mark/bindix.html ).
-
- =back
-
- =head1 How to Obtain Perl/iX
-
- =over 4
-
- =item 1.
-
- Download Perl using either FTP.ARPA.SYS or some other client
-
- =item 2.
-
- Extract the installation script
-
- =item 3.
-
- Edit the installation script
-
- =item 4.
-
- Run the installation script
-
- =item 5.
-
- Convert your *.a system archive libraries to *.sl shared libraries
-
- =back
-
- Download Perl using FTP.ARPA.SYS from your HP 3000 (the preferred
- method).....
-
- :HELLO MANAGER.SYS
- :XEQ FTP.ARPA.SYS
- open ftp.bixby.org
- anonymous
- your@email.address
- bytestream
- cd /pub/mpe
- get perl-5.6.0-mpe.tar.Z /tmp/perl.tar.Z;disc=2147483647
- exit
-
- .....Or download using some other generic web or ftp client (the alternate
- method)
-
- Download the following files (make sure that you use "binary mode" or
- whatever client feature that is 8-bit clean):
-
- =over 4
-
- =item *
-
- Perl from
-
- http://www.bixby.org/ftp/pub/mpe/perl-5.6.0-mpe.tar.Z
-
- or
-
- ftp://ftp.bixby.org/pub/mpe/perl-5.6.0-mpe.tar.Z
-
- =item *
-
- Upload those files to your HP 3000 in an 8-bit clean bytestream manner to:
-
- /tmp/perl.tar.Z
-
- =item *
-
- Then extract the installation script (after both download methods)
-
- :CHDIR /tmp
- :XEQ TAR.HPBIN.SYS 'xvfopz /tmp/perl.tar.Z INSTALL'
-
- =item *
-
- Edit the installation script
-
- Examine the accounting structure creation commands and modify if
- necessary (adding additional capabilities, choosing a non-system
- volume set, etc).
-
- :XEQ VI.HPBIN.SYS /tmp/INSTALL
-
- =item *
-
- Run the installation script.
-
- The accounting structure will be created and then all files will be
- extracted from the archive.
-
- :XEQ SH.HPBIN.SYS /tmp/INSTALL
-
- =item *
-
- Convert your *.a system archive libraries to *.sl shared libraries
-
- You only have to do this ONCE on your MPE/iX 5.5 machine in order to
- convert /lib/lib*.a and /usr/lib/lib*.a libraries to their *.sl
- equivalents. This step should not be necessary on MPE/iX 6.0 or later
- machines because the 6.0 or later update process does it for you.
-
- :XEQ SH.HPBIN.SYS /PERL/PUB/LIBSHP3K
-
- =back
-
- =head1 Perl/iX Distribution Contents Highlights
-
- =over 4
-
- =item README
-
- The file you're reading now.
-
- =item INSTALL
-
- Perl/iX Installation script.
-
- =item LIBSHP3K
-
- Script to convert *.a system archive libraries to *.sl shared libraries.
-
- =item PERL
-
- Perl NMPRG executable. A version-numbered backup copy also
- exists. You might wish to "ln -s /PERL/PUB/PERL /usr/local/bin/perl".
-
- =item .cpan/
-
- Much add-on source code downloaded with the CPAN module.
-
- =item lib/
-
- Perl libraries, both core and add-on.
-
- =item man/
-
- Perl man page documentation.
-
- =item public_html/feedback.cgi
-
- Sample feedback CGI form written in Perl.
-
- =item src/perl-5.6.0-mpe
-
- Source code.
-
- =back
-
- =head1 How to Compile Perl/iX
-
- =over 4
-
- =item 1.
-
- cd src/perl-5.6.0-mpe
-
- =item 2.
-
- Read the INSTALL file for the official instructions
-
- =item 3.
-
- ./Configure -d
-
- =item 4.
-
- make
-
- =item 5.
-
- ./mpeix/relink
-
- =item 6.
-
- make test (expect approximately 15 out of 11306 subtests to fail,
- mostly due to MPE not supporting hard links, UDP socket problems,
- and handling exit() return codes improperly)
-
- =item 7.
-
- make install
-
- =item 8.
-
- Optionally create symbolic links that point to the Perl
- executable, i.e. ln -s /PERL/PUB/PERL /usr/local/bin/perl
-
- =back
-
- The summary test results from "cd t; ./perl -I../lib harness":
-
- Failed Test Status Wstat Total Fail Failed List of failed
- ---------------------------------------------------------------------------
- io/fs.t 29 8 27.59% 2-5, 7-9, 11
- io/openpid.t 10 1 10.00% 7
- lib/io_sock.t 14 1 7.14% 13
- lib/io_udp.t 7 2 28.57% 3, 5
- lib/posix.t 27 1 3.70% 12
- op/lex_assign.t 187 1 0.53% 13
- op/stat.t 58 1 1.72% 3
- 15 tests and 94 subtests skipped.
- Failed 7/236 test scripts, 97.03% okay. 15/11306 subtests failed, 99.87% okay.
-
- =head1 Getting Started with Perl/iX
-
- Create your Perl script files with "#!/PERL/PUB/perl" (or an
- equivalent symbolic link) as the first line. Use the chmod command to
- make sure that your script has execute permission. Run your script!
-
- Be sure to take a look at the CPAN module list
- ( http://www.cpan.org/CPAN.html ). A wide variety of free Perl software
- is available. You can automatically download these packages by using
- the CPAN module ( http://theoryx5.uwinnipeg.ca/CPAN/data/perl/CPAN.html ).
-
- =head1 MPE/iX Implementation Considerations
-
- There some minor functionality issues to be aware of when comparing
- Perl for Unix (Perl/UX) to Perl/iX:
-
- =over 4
-
- =item *
-
- MPE gcc/ld doesn't properly support linking NMPRG executables against
- NMXL dynamic libraries, so you must manually run mpeix/relink after
- each re-build of Perl.
-
- =item *
-
- Perl/iX File::Copy will use MPE's /bin/cp command to copy files by
- name in order to preserve file attributes like file code.
-
- =item *
-
- MPE (and thus Perl/iX) lacks support for setgrent(), endgrent(),
- setpwent(), endpwent().
-
- =item *
-
- MPE (and thus Perl/iX) lacks support for hard links.
-
- =item *
-
- MPE requires GETPRIVMODE() in order to bind() to ports less than 1024.
- Perl/iX will call GETPRIVMODE() automatically on your behalf if you
- attempt to bind() to these low-numbered ports. Note that the Perl/iX
- executable and the PERL account do not normally have CAP=PM, so if you
- will be bind()-ing to these privileged ports, you will manually need
- to add PM capability as appropriate.
-
- =item *
-
- MPE requires that you bind() to an IP address of zero. Perl/iX
- automatically replaces the IP address that you pass to bind() with
- a zero.
-
- =item *
-
- If you use Perl/iX fcntl() against a socket it will fail, because MPE
- requires that you use sfcntl() instead. Perl/iX does not presently
- support sfcntl().
-
- =item *
-
- MPE requires GETPRIVMODE() in order to setuid(). There are too many
- calls to setuid() within Perl/iX, so I have not attempted an automatic
- GETPRIVMODE() solution similar to bind().
-
- =back
-
- =head1 Known Perl/iX Bugs Under Investigation
-
- None.
-
- =head1 Perl/iX To-Do List
-
- =over 4
-
- =item *
-
- Make setuid()/setgid() support work.
-
- =item *
-
- Make sure that fcntl() against a socket descriptor is redirected to sfcntl().
-
- =item *
-
- Add support for Berkeley DB once I've finished porting Berkeley DB.
-
- =item *
-
- Write an MPE XS extension library containing miscellaneous important
- MPE functions like GETPRIVMODE(), GETUSERMODE(), and sfcntl().
-
- =back
-
- =head1 Perl/iX Change History
-
- May 6, 1999
-
- =over 4
-
- =item *
-
- Patch LBCJXT6A is required on MPE/iX 5.5 machines in order to prevent
- Perl/iX from dying with an unresolved external reference to _getenv_libc.
-
- =back
-
- April 7, 1999
-
- =over 4
-
- =item *
-
- Updated to version 5.005_03.
-
- =item *
-
- The official source distribution once again compiles "straight out
- of the box" for MPE.
-
- =item *
-
- The current incarnation of the 5.5 POSIX filename extended
- characters patch is now MPEKX40B.
-
- =item *
-
- The LIBSHP3K *.a -> *.sl library conversion script is now included
- as /PERL/PUB/LIBSHP3K.
-
- =back
-
- November 20, 1998
-
- =over 4
-
- =item *
-
- Updated to version 5.005_02.
-
- =item *
-
- Fixed a DynaLoader bug that was unable to load symbols from relative
- path name libraries.
-
- =item *
-
- Fixed a .xs compilation bug where the mpeixish.sh include file wasn't
- being installed into the proper directory.
-
- =item *
-
- All bugfixes will be submitted back to the official Perl developers.
-
- =item *
-
- The current incarnation of the POSIX filename extended characters
- patch is now MPEKXJ3A.
-
- =back
-
- August 14, 1998
-
- =over 4
-
- =item *
-
- The previous POSIX filename extended characters patch MPEKX44C has
- been superseded by MPEKXB5A.
-
- =back
-
- August 7, 1998
-
- =over 4
-
- =item *
-
- The previous POSIX filename extended characters patch MPEKX76A has
- been superseded by MPEKX44C.
-
- =back
-
- July 28, 1998
-
- =over 4
-
- =item *
-
- Updated to version 5.005_01.
-
- =back
-
- July 23, 1998
-
- =over 4
-
- =item *
-
- Updated to version 5.005 (production release). The public
- freeware sources are now 100% MPE-ready "straight out of the box".
-
- =back
-
- July 17, 1998
-
- =over 4
-
- =item *
-
- Updated to version 5.005b1 (public beta release). The public
- freeware sources are now 99.9% MPE-ready. By installing and
- testing this beta on your own HP3000, you will be helping to
- insure that the final release of 5.005 will be 100% MPE-ready and
- 100% bug free.
-
- =item *
-
- My MPE binary release is now extracted using my standard INSTALL script.
-
- =back
-
- July 15, 1998
-
- =over 4
-
- =item *
-
- Changed startperl to #!/PERL/PUB/perl so that Perl will recognize
- scripts more easily and efficiently.
-
- =back
-
- July 8, 1998
-
- =over 4
-
- =item *
-
- Updated to version 5.004_70 (internal developer release) which is now
- MPE-ready. The next public freeware release of Perl should compile
- "straight out of the box" on MPE. Note that this version of Perl/iX
- was strictly internal to me and never publicly released. Note that
- [21]BIND/iX is now required (well, the include files and libbind.a) if
- you wish to compile Perl/iX.
-
- =back
-
- November 6, 1997
-
- =over 4
-
- =item *
-
- Updated to version 5.004_04. No changes in MPE-specific functionality.
-
- =back
-
- October 16, 1997
-
- =over 4
-
- =item *
-
- Added Demos section to the Perl/iX home page so you can see some
- sample Perl applications running on my 3000.
-
- =back
-
- October 3, 1997
-
- =over 4
-
- =item *
-
- Added System Requirements section to the Perl/iX home page just so the
- prerequisites stand out more. Various other home page tweaks.
-
- =back
-
- October 2, 1997
-
- =over 4
-
- =item *
-
- Initial public release.
-
- =back
-
- September 1997
-
- =over 4
-
- =item *
-
- Porting begins.
-
- =back
-
- =head1 AUTHOR
-
- Mark Bixby, mark@bixby.org
-
-