Edit D:\app\Administrator\product\11.2.0\dbhome_1\perl\html\pod\perlmpeix.html
<?xml version="1.0" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>README.mpeix - Perl/iX for HP e3000 MPE</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <link rev="made" href="mailto:" /> </head> <body style="background-color: white"> <table border="0" width="100%" cellspacing="0" cellpadding="3"> <tr><td class="block" style="background-color: #cccccc" valign="middle"> <big><strong><span class="block"> README.mpeix - Perl/iX for HP e3000 MPE</span></strong></big> </td></tr> </table> <!-- INDEX BEGIN --> <div name="index"> <p><a name="__index__"></a></p> <ul> <li><a href="#name">NAME</a></li> <li><a href="#synopsis">SYNOPSIS</a></li> <li><a href="#note">NOTE</a></li> <li><a href="#binary_distribution_from_hp">Binary distribution from HP</a></li> <li><a href="#what_s_new_in_perl_for_mpe_ix">What's New in Perl for MPE/iX</a></li> <li><a href="#welcome_to_perl_ix">Welcome to Perl/iX</a></li> <li><a href="#system_requirements_for_perl_ix">System Requirements for Perl/iX</a></li> <li><a href="#how_to_obtain_perl_ix">How to Obtain Perl/iX</a></li> <li><a href="#perl_ix_distribution_contents_highlights">Perl/iX Distribution Contents Highlights</a></li> <li><a href="#how_to_compile_perl_ix">How to Compile Perl/iX</a></li> <li><a href="#getting_started_with_perl_ix">Getting Started with Perl/iX</a></li> <li><a href="#mpe_ix_implementation_considerations">MPE/iX Implementation Considerations</a></li> <li><a href="#known_perl_ix_bugs_under_investigation">Known Perl/iX Bugs Under Investigation</a></li> <li><a href="#perl_ix_to_do_list">Perl/iX To-Do List</a></li> <li><a href="#perl_ix_change_history">Perl/iX Change History</a></li> <li><a href="#author">AUTHOR</a></li> </ul> <hr name="index" /> </div> <!-- INDEX END --> <p> </p> <h1><a name="name">NAME</a></h1> <p>README.mpeix - Perl/iX for HP e3000 MPE</p> <p> </p> <hr /> <h1><a name="synopsis">SYNOPSIS</a></h1> <pre> <a href="http://www.bixby.org/mark/perlix.html">http://www.bixby.org/mark/perlix.html</a> <a href="http://jazz.external.hp.com/src/hp_freeware/perl/">http://jazz.external.hp.com/src/hp_freeware/perl/</a> Perl language for MPE Last updated January 12, 2006 @ 2100 UTC</pre> <p> </p> <hr /> <h1><a name="note">NOTE</a></h1> <p>This is a podified version of the above-mentioned web page, podified by Jarkko Hietaniemi 2001-Jan-01.</p> <p> </p> <hr /> <h1><a name="binary_distribution_from_hp">Binary distribution from HP</a></h1> <p>The simplest way to obtain Perl for the MPE/iX is to go either of these URLs and follow the instructions within.</p> <p><a href="http://jazz.external.hp.com/src/hp_freeware/perl/">http://jazz.external.hp.com/src/hp_freeware/perl/</a> <a href="http://www.bixby.org/mark/perlix.html">http://www.bixby.org/mark/perlix.html</a></p> <p>Use which ever one is more recent.</p> <p> </p> <hr /> <h1><a name="what_s_new_in_perl_for_mpe_ix">What's New in Perl for MPE/iX</a></h1> <p>January 12, 2006</p> <ul> <li> <p>Updated for perl-5.8.8 and perl-5.9.3 by Ken Hirsch.</p> <p>Simplified the build process by using the MPEAUTOCONF functionality in Mark Klein's ld.</p> <p>If you build this from scratch, make sure you have a version of ld which supports it. In the shell, type</p> <pre> ld --help and look for AUTOCONF or MPEAUTOCONF near the bottom</pre> <pre> or do this: ld --help 2>&1 | grep AUTOCONF</pre> <p>If you see don't see AUTOCONF or MPEAUTOCONF, make sure you get a new version.</p> <p>You also do not have to use mpeix/relink after building, so the recommend sequence is:</p> <pre> ./Configure -de</pre> <pre> # or ./Configure -de -Dusedevel # if you're building a development version</pre> <pre> make make test # if you run this in a job, do "make test_notty"</pre> <pre> make install</pre> <p>Be prepared for a wait. These take much longer on MPE/iX than on a Unix system, because of a slow forking, mostly. On a lightly-loaded HP3000 Series 979 running MPE/iX 7.5:</p> <pre> Configure: 1 hour make: 1 hour 15 minutes make test 1 hour 45 minutes</pre> <p>Various socket problems were fixed in mpeix.c.</p> <p>Mark Klein provided a fixed sigsetjmp (that works with dynamic libraries) in mpeix_setjmp.c</p> </li> </ul> <p>June 1, 2000</p> <ul> <li> <p>Rebuilt to be compatible with mod_perl. If you plan on using mod_perl, you MUST download and install this version of Perl/iX!</p> </li> <li> <p>uselargefiles="undef": not available in MPE for POSIX files yet.</p> </li> <li> <p>Now bundled with various add-on packages:</p> <ul> <li> <p>libnet (as seen on CPAN)</p> </li> <li> <p>libwww-perl (LWP) which lets Perl programs behave like web browsers:</p> <pre> 1. #!/PERL/PUB/perl 2. use LWP::Simple; 3. $doc = get('<a href="http://www.bixby.org/mark/perlix.html">http://www.bixby.org/mark/perlix.html</a>'); # reads the web page into variable $doc</pre> <p>(http://www.bixby.org/mark/perlix.html)</p> </li> <li> <p>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/)</p> <p>and much much more hiding under /PERL/PUB/.cpan/</p> </li> <li> <p>The CPAN module now works for automatic downloading and installing of add-on packages:</p> <pre> 1. export FTP_PASSIVE=1 2. perl -MCPAN -e shell 3. Ignore any terminal I/O related complaints!</pre> <p>(http://theoryx5.uwinnipeg.ca/CPAN/data/perl/CPAN.html)</p> </li> </ul> </ul> <p>May 20, 2000</p> <ul> <li> <p>Updated to version 5.6.0. Builds straight out of the box on MPE/iX.</p> </li> <li> <p>Perl's <a href="file://C|\ADE\aime_smenon_perl_090715\perl\html/pod/perlfunc.html#getpwnam"><code>getpwnam()</code></a> function which had regressed to being unimplemented on MPE is now implemented once again.</p> </li> </ul> <p>September 17, 1999</p> <ul> <li> <p>Migrated from cccd.edu to bixby.org.</p> </li> </ul> <p> </p> <hr /> <h1><a name="welcome_to_perl_ix">Welcome to Perl/iX</a></h1> <p>This is the official home page for the HP e3000 MPE/iX ( <a href="http://www.hp.com/go/e3000">http://www.hp.com/go/e3000</a> ) port of the Perl scripting language ( <a href="http://www.perl.com/">http://www.perl.com/</a> ) 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 ( <a href="http://www.lsoft.com/scripts/wl.exe?SL1=HP3000-L&H=RAVEN.UTC.EDU">http://www.lsoft.com/scripts/wl.exe?SL1=HP3000-L&H=RAVEN.UTC.EDU</a> ) and its associated gatewayed newsgroup comp.sys.hp.mpe.</p> <p>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.</p> <p>Please send your comments, questions, and bug reports directly to me, Mark Bixby ( <a href="http://www.bixby.org/mark/">http://www.bixby.org/mark/</a> ). Or just post them to HP3000-L.</p> <p>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 ( <a href="http://jazz.external.hp.com/src/gnu/gnuframe.html">http://jazz.external.hp.com/src/gnu/gnuframe.html</a> ).</p> <p>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).</p> <p>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.</p> <p> </p> <hr /> <h1><a name="system_requirements_for_perl_ix">System Requirements for Perl/iX</a></h1> <ul> <li> <p>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.</p> </li> <li> <p>If you wish to recompile Perl, you must install both GNUCORE and GNUGCC from jazz (http://jazz.external.hp.com/src/gnu/gnuframe.html).</p> </li> <li> <p>Perl/iX will be happier on MPE/iX 5.5 if you install the MPEKX40B extended POSIX filename characters patch, but this is optional.</p> </li> <li> <p>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.</p> </li> <li> <p>If you will be compiling Perl/iX yourself, you will also need Syslog/iX ( <a href="http://www.bixby.org/mark/syslogix.html">http://www.bixby.org/mark/syslogix.html</a> ) and the /BIND/PUB/include and /BIND/PUB/lib portions of BIND/iX ( <a href="http://www.bixby.org/mark/bindix.html">http://www.bixby.org/mark/bindix.html</a> ).</p> </li> </ul> <p> </p> <hr /> <h1><a name="how_to_obtain_perl_ix">How to Obtain Perl/iX</a></h1> <ol> <li> <p>Download Perl using either FTP.ARPA.SYS or some other client</p> </li> <li> <p>Extract the installation script</p> </li> <li> <p>Edit the installation script</p> </li> <li> <p>Run the installation script</p> </li> <li> <p>Convert your *.a system archive libraries to *.sl shared libraries</p> </li> </ol> <p>Download Perl using FTP.ARPA.SYS from your HP 3000 (the preferred method).....</p> <pre> :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</pre> <p>.....Or download using some other generic web or ftp client (the alternate method)</p> <p>Download the following files (make sure that you use "binary mode" or whatever client feature that is 8-bit clean):</p> <ul> <li> <p>Perl from</p> <pre> <a href="http://www.bixby.org/ftp/pub/mpe/perl-5.6.0-mpe.tar.Z">http://www.bixby.org/ftp/pub/mpe/perl-5.6.0-mpe.tar.Z</a></pre> <p>or</p> <pre> <a href="ftp://ftp.bixby.org/pub/mpe/perl-5.6.0-mpe.tar.Z">ftp://ftp.bixby.org/pub/mpe/perl-5.6.0-mpe.tar.Z</a></pre> </li> <li> <p>Upload those files to your HP 3000 in an 8-bit clean bytestream manner to:</p> <pre> /tmp/perl.tar.Z</pre> </li> <li> <p>Then extract the installation script (after both download methods)</p> <pre> :CHDIR /tmp :XEQ TAR.HPBIN.SYS 'xvfopz /tmp/perl.tar.Z INSTALL'</pre> </li> <li> <p>Edit the installation script</p> <p>Examine the accounting structure creation commands and modify if necessary (adding additional capabilities, choosing a non-system volume set, etc).</p> <pre> :XEQ VI.HPBIN.SYS /tmp/INSTALL</pre> </li> <li> <p>Run the installation script.</p> <p>The accounting structure will be created and then all files will be extracted from the archive.</p> <pre> :XEQ SH.HPBIN.SYS /tmp/INSTALL</pre> </li> <li> <p>Convert your *.a system archive libraries to *.sl shared libraries</p> <p>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.</p> <pre> :XEQ SH.HPBIN.SYS /PERL/PUB/LIBSHP3K</pre> </li> </ul> <p> </p> <hr /> <h1><a name="perl_ix_distribution_contents_highlights">Perl/iX Distribution Contents Highlights</a></h1> <dl> <dt><strong><a name="readme" class="item">README</a></strong> <dd> <p>The file you're reading now.</p> </dd> </li> <dt><strong><a name="install" class="item">INSTALL</a></strong> <dd> <p>Perl/iX Installation script.</p> </dd> </li> <dt><strong><a name="libshp3k" class="item">LIBSHP3K</a></strong> <dd> <p>Script to convert *.a system archive libraries to *.sl shared libraries.</p> </dd> </li> <dt><strong><a name="perl2" class="item">PERL</a></strong> <dd> <p>Perl NMPRG executable. A version-numbered backup copy also exists. You might wish to "ln -s /PERL/PUB/PERL /usr/local/bin/perl".</p> </dd> </li> <dt><strong><a name="cpan" class="item">.cpan/</a></strong> <dd> <p>Much add-on source code downloaded with the CPAN module.</p> </dd> </li> <dt><strong><a name="lib" class="item">lib/</a></strong> <dd> <p>Perl libraries, both core and add-on.</p> </dd> </li> <dt><strong><a name="man" class="item">man/</a></strong> <dd> <p>Perl man page documentation.</p> </dd> </li> <dt><strong><a name="public_html_feedback_cgi" class="item">public_html/feedback.cgi</a></strong> <dd> <p>Sample feedback CGI form written in Perl.</p> </dd> </li> <dt><strong><a name="src_perl_5_6_0_mpe" class="item">src/perl-5.6.0-mpe</a></strong> <dd> <p>Source code.</p> </dd> </li> </dl> <p> </p> <hr /> <h1><a name="how_to_compile_perl_ix">How to Compile Perl/iX</a></h1> <ol> <li> <p>cd src/perl-5.6.0-mpe</p> </li> <li> <p>Read the INSTALL file for the official instructions</p> </li> <li> <p>./Configure -d</p> </li> <li> <p>make</p> </li> <li> <p>./mpeix/relink</p> </li> <li> <p>make test (expect approximately 15 out of 11306 subtests to fail, mostly due to MPE not supporting hard links, UDP socket problems, and handling <a href="file://C|\ADE\aime_smenon_perl_090715\perl\html/pod/perlfunc.html#exit"><code>exit()</code></a> return codes improperly)</p> </li> <li> <p>make install</p> </li> <li> <p>Optionally create symbolic links that point to the Perl executable, i.e. ln -s /PERL/PUB/PERL /usr/local/bin/perl</p> </li> </ol> <p>The summary test results from "cd t; ./perl -I../lib harness":</p> <pre> 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.</pre> <p> </p> <hr /> <h1><a name="getting_started_with_perl_ix">Getting Started with Perl/iX</a></h1> <p>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!</p> <p>Be sure to take a look at the CPAN module list ( <a href="http://www.cpan.org/CPAN.html">http://www.cpan.org/CPAN.html</a> ). A wide variety of free Perl software is available. You can automatically download these packages by using the CPAN module ( <a href="http://theoryx5.uwinnipeg.ca/CPAN/data/perl/CPAN.html">http://theoryx5.uwinnipeg.ca/CPAN/data/perl/CPAN.html</a> ).</p> <p> </p> <hr /> <h1><a name="mpe_ix_implementation_considerations">MPE/iX Implementation Considerations</a></h1> <p>There some minor functionality issues to be aware of when comparing Perl for Unix (Perl/UX) to Perl/iX:</p> <ul> <li> <p>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.</p> </li> <li> <p>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.</p> </li> <li> <p>MPE (and thus Perl/iX) lacks support for <a href="file://C|\ADE\aime_smenon_perl_090715\perl\html/pod/perlfunc.html#setgrent"><code>setgrent()</code></a>, <a href="file://C|\ADE\aime_smenon_perl_090715\perl\html/pod/perlfunc.html#endgrent"><code>endgrent()</code></a>, <a href="file://C|\ADE\aime_smenon_perl_090715\perl\html/pod/perlfunc.html#setpwent"><code>setpwent()</code></a>, <a href="file://C|\ADE\aime_smenon_perl_090715\perl\html/pod/perlfunc.html#endpwent"><code>endpwent()</code></a>.</p> </li> <li> <p>MPE (and thus Perl/iX) lacks support for hard links.</p> </li> <li> <p>MPE requires <code>GETPRIVMODE()</code> in order to <a href="file://C|\ADE\aime_smenon_perl_090715\perl\html/pod/perlfunc.html#bind"><code>bind()</code></a> to ports less than 1024. Perl/iX will call <code>GETPRIVMODE()</code> automatically on your behalf if you attempt to <a href="file://C|\ADE\aime_smenon_perl_090715\perl\html/pod/perlfunc.html#bind"><code>bind()</code></a> 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.</p> </li> <li> <p>MPE requires that you <a href="file://C|\ADE\aime_smenon_perl_090715\perl\html/pod/perlfunc.html#bind"><code>bind()</code></a> to an IP address of zero. Perl/iX automatically replaces the IP address that you pass to <a href="file://C|\ADE\aime_smenon_perl_090715\perl\html/pod/perlfunc.html#bind"><code>bind()</code></a> with a zero.</p> </li> <li> <p>MPE requires <code>GETPRIVMODE()</code> in order to <code>setuid()</code>. There are too many calls to <code>setuid()</code> within Perl/iX, so I have not attempted an automatic <code>GETPRIVMODE()</code> solution similar to <a href="file://C|\ADE\aime_smenon_perl_090715\perl\html/pod/perlfunc.html#bind"><code>bind()</code></a>.</p> </li> </ul> <p> </p> <hr /> <h1><a name="known_perl_ix_bugs_under_investigation">Known Perl/iX Bugs Under Investigation</a></h1> <p>None.</p> <p> </p> <hr /> <h1><a name="perl_ix_to_do_list">Perl/iX To-Do List</a></h1> <ul> <li> <p>Make setuid()/setgid() support work.</p> </li> <li> <p>Make sure that <a href="file://C|\ADE\aime_smenon_perl_090715\perl\html/pod/perlfunc.html#fcntl"><code>fcntl()</code></a> against a socket descriptor is redirected to <code>sfcntl()</code>.</p> </li> <li> <p>Add support for Berkeley DB once I've finished porting Berkeley DB.</p> </li> <li> <p>Write an MPE XS extension library containing miscellaneous important MPE functions like <code>GETPRIVMODE()</code>, <code>GETUSERMODE()</code>, and <code>sfcntl()</code>.</p> </li> </ul> <p> </p> <hr /> <h1><a name="perl_ix_change_history">Perl/iX Change History</a></h1> <p>May 6, 1999</p> <ul> <li> <p>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.</p> </li> </ul> <p>April 7, 1999</p> <ul> <li> <p>Updated to version 5.005_03.</p> </li> <li> <p>The official source distribution once again compiles "straight out of the box" for MPE.</p> </li> <li> <p>The current incarnation of the 5.5 POSIX filename extended characters patch is now MPEKX40B.</p> </li> <li> <p>The LIBSHP3K *.a -> *.sl library conversion script is now included as /PERL/PUB/LIBSHP3K.</p> </li> </ul> <p>November 20, 1998</p> <ul> <li> <p>Updated to version 5.005_02.</p> </li> <li> <p>Fixed a DynaLoader bug that was unable to load symbols from relative path name libraries.</p> </li> <li> <p>Fixed a .xs compilation bug where the mpeixish.sh include file wasn't being installed into the proper directory.</p> </li> <li> <p>All bugfixes will be submitted back to the official Perl developers.</p> </li> <li> <p>The current incarnation of the POSIX filename extended characters patch is now MPEKXJ3A.</p> </li> </ul> <p>August 14, 1998</p> <ul> <li> <p>The previous POSIX filename extended characters patch MPEKX44C has been superseded by MPEKXB5A.</p> </li> </ul> <p>August 7, 1998</p> <ul> <li> <p>The previous POSIX filename extended characters patch MPEKX76A has been superseded by MPEKX44C.</p> </li> </ul> <p>July 28, 1998</p> <ul> <li> <p>Updated to version 5.005_01.</p> </li> </ul> <p>July 23, 1998</p> <ul> <li> <p>Updated to version 5.005 (production release). The public freeware sources are now 100% MPE-ready "straight out of the box".</p> </li> </ul> <p>July 17, 1998</p> <ul> <li> <p>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.</p> </li> <li> <p>My MPE binary release is now extracted using my standard INSTALL script.</p> </li> </ul> <p>July 15, 1998</p> <ul> <li> <p>Changed startperl to #!/PERL/PUB/perl so that Perl will recognize scripts more easily and efficiently.</p> </li> </ul> <p>July 8, 1998</p> <ul> <li> <p>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.</p> </li> </ul> <p>November 6, 1997</p> <ul> <li> <p>Updated to version 5.004_04. No changes in MPE-specific functionality.</p> </li> </ul> <p>October 16, 1997</p> <ul> <li> <p>Added Demos section to the Perl/iX home page so you can see some sample Perl applications running on my 3000.</p> </li> </ul> <p>October 3, 1997</p> <ul> <li> <p>Added System Requirements section to the Perl/iX home page just so the prerequisites stand out more. Various other home page tweaks.</p> </li> </ul> <p>October 2, 1997</p> <ul> <li> <p>Initial public release.</p> </li> </ul> <p>September 1997</p> <ul> <li> <p>Porting begins.</p> </li> </ul> <p> </p> <hr /> <h1><a name="author">AUTHOR</a></h1> <p>Mark Bixby, <a href="http://www.bixby.org/mark/">http://www.bixby.org/mark/</a></p> <table border="0" width="100%" cellspacing="0" cellpadding="3"> <tr><td class="block" style="background-color: #cccccc" valign="middle"> <big><strong><span class="block"> README.mpeix - Perl/iX for HP e3000 MPE</span></strong></big> </td></tr> </table> </body> </html>
Ms-Dos/Windows
Unix
Write backup
jsp File Browser version 1.2 by
www.vonloesch.de