1PERLMPEIX(1)           Perl Programmers Reference Guide           PERLMPEIX(1)
2
3
4

NAME

6       README.mpeix - Perl/iX for HP e3000 MPE
7

SYNOPSIS

9          http://www.bixby.org/mark/perlix.html
10          http://jazz.external.hp.com/src/hp_freeware/perl/
11          Perl language for MPE
12          Last updated January 12, 2006 @ 2100 UTC
13

NOTE

15       This is a podified version of the above-mentioned web page, podified by
16       Jarkko Hietaniemi 2001-Jan-01.
17

Binary distribution from HP

19       The simplest way to obtain Perl for the MPE/iX is to go either of these
20       URLs and follow the instructions within.
21
22       http://jazz.external.hp.com/src/hp_freeware/perl/
23       http://www.bixby.org/mark/perlix.html
24
25       Use which ever one is more recent.
26

What's New in Perl for MPE/iX

28       January 12, 2006
29
30       ·   Updated for perl-5.8.8 and perl-5.9.3 by Ken Hirsch.
31
32           Simplified the build process by using the MPEAUTOCONF functionality
33           in Mark Klein's ld.
34
35           If you build this from scratch, make sure you have a version of ld
36           which supports it.  In the shell, type
37
38             ld --help
39               and look for AUTOCONF or MPEAUTOCONF near the bottom
40
41             or do this:
42             ld --help 2>&1 | grep AUTOCONF
43
44           If you see don't see AUTOCONF or MPEAUTOCONF, make sure you get a
45           new version.
46
47           You also do not have to use mpeix/relink after building, so the
48           recommend sequence is:
49
50             ./Configure -de
51
52                 # or ./Configure -de -Dusedevel
53                 # if you're building a development version
54
55             make
56             make test
57                # if you run this in a job, do "make test_notty"
58
59             make install
60
61           Be prepared for a wait. These take much longer on MPE/iX than on a
62           Unix system, because of a slow forking, mostly.  On a lightly-
63           loaded HP3000 Series 979 running MPE/iX 7.5:
64
65               Configure: 1 hour
66               make:      1 hour 15 minutes
67               make test  1 hour 45 minutes
68
69           Various socket problems were fixed in mpeix.c.
70
71           Mark Klein provided a fixed sigsetjmp (that works with dynamic
72           libraries) in mpeix_setjmp.c
73
74       June 1, 2000
75
76       ·   Rebuilt to be compatible with mod_perl.  If you plan on using
77           mod_perl, you MUST download and install this version of Perl/iX!
78
79       ·   uselargefiles="undef": not available in MPE for POSIX files yet.
80
81       ·   Now bundled with various add-on packages:
82
83           ·       libnet (as seen on CPAN)
84
85           ·       libwww-perl (LWP) which lets Perl programs behave like web
86                   browsers:
87
88                       1. #!/PERL/PUB/perl
89                       2. use LWP::Simple;
90                       3. $doc = get('http://www.bixby.org/mark/perlix.html');  # reads the
91                          web page into variable $doc
92
93                   (http://www.bixby.org/mark/perlix.html)
94
95           ·       mod_perl (just the perl portion; the actual DSO will be
96                   released soon with Apache/iX 1.3.12 from bixby.org).  This
97                   module allows you to write high performance persistent Perl
98                   CGI scripts and all sorts of cool things.
99                   (http://perl.apache.org/)
100
101                   and much much more hiding under /PERL/PUB/.cpan/
102
103           ·       The CPAN module now works for automatic downloading and
104                   installing of add-on packages:
105
106                       1. export FTP_PASSIVE=1
107                       2. perl -MCPAN -e shell
108                       3. Ignore any terminal I/O related complaints!
109
110                   (http://theoryx5.uwinnipeg.ca/CPAN/data/perl/CPAN.html)
111
112       May 20, 2000
113
114       ·   Updated to version 5.6.0.  Builds straight out of the box on
115           MPE/iX.
116
117       ·   Perl's getpwnam() function which had regressed to being
118           unimplemented on MPE is now implemented once again.
119
120       September 17, 1999
121
122       ·   Migrated from cccd.edu to bixby.org.
123

Welcome to Perl/iX

125       This is the official home page for the HP e3000 MPE/iX (
126       http://www.hp.com/go/e3000 ) port of the Perl scripting language (
127       http://www.perl.com/ ) which gives you all of the power of C, awk, sed,
128       and sh in a single language. Check here for the latest news,
129       implemented functionality, known bugs, to-do list, etc. Status reports
130       about major milestones will also be posted to the HP3000-L mailing list
131       ( http://www.lsoft.com/scripts/wl.exe?SL1=HP3000-L&H=RAVEN.UTC.EDU )
132       and its associated gatewayed newsgroup comp.sys.hp.mpe.
133
134       I'm doing this port because I can't live without Perl on the Unix
135       machines that I administer, and I want to have the same power available
136       to me on MPE.
137
138       Please send your comments, questions, and bug reports directly to me,
139       Mark Bixby ( http://www.bixby.org/mark/ ). Or just post them to
140       HP3000-L.
141
142       The platform I'm using to do this port is an HP 3000 957RX running
143       MPE/iX 6.0 and using the GNU gcc C compiler (
144       http://jazz.external.hp.com/src/gnu/gnuframe.html ).
145
146       The combined porting wisdom from all of my ports can be found in my
147       MPE/iX Porting Guide (http://www.bixby.org/mark/porting.html).
148
149       IMPORTANT NOTICE: Yes, I do work for the HP CSY R&D lab, but ALL of the
150       software you download from bixby.org is my personal freeware that is
151       NOT supported by HP.
152

System Requirements for Perl/iX

154       ·   MPE/iX 5.5 or later. This version of Perl/iX does NOT run on MPE/iX
155           5.0 or earlier, nor does it run on "classic" MPE/V machines.
156
157       ·   If you wish to recompile Perl, you must install both GNUCORE and
158           GNUGCC from jazz
159           (http://jazz.external.hp.com/src/gnu/gnuframe.html).
160
161       ·   Perl/iX will be happier on MPE/iX 5.5 if you install the MPEKX40B
162           extended POSIX filename characters patch, but this is optional.
163
164       ·   Patch LBCJXT6A is required on MPE/iX 5.5 machines in order to
165           prevent Perl/iX from dying with an unresolved external reference to
166           _getenv_libc.
167
168       ·   If you will be compiling Perl/iX yourself, you will also need
169           Syslog/iX ( http://www.bixby.org/mark/syslogix.html ) and the
170           /BIND/PUB/include and /BIND/PUB/lib portions of BIND/iX (
171           http://www.bixby.org/mark/bindix.html ).
172

How to Obtain Perl/iX

174       1.  Download Perl using either FTP.ARPA.SYS or some other client
175
176       2.  Extract the installation script
177
178       3.  Edit the installation script
179
180       4.  Run the installation script
181
182       5.  Convert your *.a system archive libraries to *.sl shared libraries
183
184       Download Perl using FTP.ARPA.SYS from your HP 3000 (the preferred
185       method).....
186
187           :HELLO MANAGER.SYS
188           :XEQ FTP.ARPA.SYS
189           open ftp.bixby.org
190           anonymous
191           your@email.address
192           bytestream
193           cd /pub/mpe
194           get perl-5.6.0-mpe.tar.Z /tmp/perl.tar.Z;disc=2147483647
195           exit
196
197       .....Or download using some other generic web or ftp client (the
198       alternate method)
199
200       Download the following files (make sure that you use "binary mode" or
201       whatever client feature that is 8-bit clean):
202
203       ·   Perl from
204
205               http://www.bixby.org/ftp/pub/mpe/perl-5.6.0-mpe.tar.Z
206
207           or
208
209               ftp://ftp.bixby.org/pub/mpe/perl-5.6.0-mpe.tar.Z
210
211       ·   Upload those files to your HP 3000 in an 8-bit clean bytestream
212           manner to:
213
214               /tmp/perl.tar.Z
215
216       ·   Then extract the installation script (after both download methods)
217
218               :CHDIR /tmp
219               :XEQ TAR.HPBIN.SYS 'xvfopz /tmp/perl.tar.Z INSTALL'
220
221       ·   Edit the installation script
222
223           Examine the accounting structure creation commands and modify if
224           necessary (adding additional capabilities, choosing a non-system
225           volume set, etc).
226
227               :XEQ VI.HPBIN.SYS /tmp/INSTALL
228
229       ·   Run the installation script.
230
231           The accounting structure will be created and then all files will be
232           extracted from the archive.
233
234               :XEQ SH.HPBIN.SYS /tmp/INSTALL
235
236       ·   Convert your *.a system archive libraries to *.sl shared libraries
237
238           You only have to do this ONCE on your MPE/iX 5.5 machine in order
239           to convert /lib/lib*.a and /usr/lib/lib*.a libraries to their *.sl
240           equivalents.  This step should not be necessary on MPE/iX 6.0 or
241           later machines because the 6.0 or later update process does it for
242           you.
243
244               :XEQ SH.HPBIN.SYS /PERL/PUB/LIBSHP3K
245

Perl/iX Distribution Contents Highlights

247       README
248           The file you're reading now.
249
250       INSTALL
251           Perl/iX Installation script.
252
253       LIBSHP3K
254           Script to convert *.a system archive libraries to *.sl shared
255           libraries.
256
257       PERL
258           Perl NMPRG executable.  A version-numbered backup copy also exists.
259           You might wish to "ln -s /PERL/PUB/PERL /usr/local/bin/perl".
260
261       .cpan/
262           Much add-on source code downloaded with the CPAN module.
263
264       lib/
265           Perl libraries, both core and add-on.
266
267       man/
268           Perl man page documentation.
269
270       public_html/feedback.cgi
271           Sample feedback CGI form written in Perl.
272
273       src/perl-5.6.0-mpe
274           Source code.
275

How to Compile Perl/iX

277       1.  cd src/perl-5.6.0-mpe
278
279       2.  Read the INSTALL file for the official instructions
280
281       3.  ./Configure -d
282
283       4.  make
284
285       5.  ./mpeix/relink
286
287       6.  make test (expect approximately 15 out of 11306 subtests to fail,
288           mostly due to MPE not supporting hard links, UDP socket problems,
289           and handling exit() return codes improperly)
290
291       7.  make install
292
293       8.  Optionally create symbolic links that point to the Perl executable,
294           i.e. ln -s /PERL/PUB/PERL /usr/local/bin/perl
295
296       The summary test results from "cd t; ./perl -I../lib harness":
297
298         Failed Test  Status Wstat Total Fail  Failed  List of failed
299         ---------------------------------------------------------------------------
300         io/fs.t                      29    8  27.59%  2-5, 7-9, 11
301         io/openpid.t                 10    1  10.00%  7
302         lib/io_sock.t                14    1   7.14%  13
303         lib/io_udp.t                  7    2  28.57%  3, 5
304         lib/posix.t                  27    1   3.70%  12
305         op/lex_assign.t             187    1   0.53%  13
306         op/stat.t                    58    1   1.72%  3
307         15 tests and 94 subtests skipped.
308         Failed 7/236 test scripts, 97.03% okay. 15/11306 subtests failed, 99.87% okay.
309

Getting Started with Perl/iX

311       Create your Perl script files with "#!/PERL/PUB/perl" (or an equivalent
312       symbolic link) as the first line.  Use the chmod command to make sure
313       that your script has execute permission. Run your script!
314
315       Be sure to take a look at the CPAN module list (
316       http://www.cpan.org/CPAN.html ). A wide variety of free Perl software
317       is available.  You can automatically download these packages by using
318       the CPAN module ( http://theoryx5.uwinnipeg.ca/CPAN/data/perl/CPAN.html
319       ).
320

MPE/iX Implementation Considerations

322       There some minor functionality issues to be aware of when comparing
323       Perl for Unix (Perl/UX) to Perl/iX:
324
325       ·   MPE gcc/ld doesn't properly support linking NMPRG executables
326           against NMXL dynamic libraries, so you must manually run
327           mpeix/relink after each re-build of Perl.
328
329       ·   Perl/iX File::Copy will use MPE's /bin/cp command to copy files by
330           name in order to preserve file attributes like file code.
331
332       ·   MPE (and thus Perl/iX) lacks support for setgrent(), endgrent(),
333           setpwent(), endpwent().
334
335       ·   MPE (and thus Perl/iX) lacks support for hard links.
336
337       ·   MPE requires GETPRIVMODE() in order to bind() to ports less than
338           1024.  Perl/iX will call GETPRIVMODE() automatically on your behalf
339           if you attempt to bind() to these low-numbered ports.  Note that
340           the Perl/iX executable and the PERL account do not normally have
341           CAP=PM, so if you will be bind()-ing to these privileged ports, you
342           will manually need to add PM capability as appropriate.
343
344       ·   MPE requires that you bind() to an IP address of zero.  Perl/iX
345           automatically replaces the IP address that you pass to bind() with
346           a zero.
347
348       ·   MPE requires GETPRIVMODE() in order to setuid().  There are too
349           many calls to setuid() within Perl/iX, so I have not attempted an
350           automatic GETPRIVMODE() solution similar to bind().
351

Known Perl/iX Bugs Under Investigation

353       None.
354

Perl/iX To-Do List

356       ·   Make setuid()/setgid() support work.
357
358       ·   Make sure that fcntl() against a socket descriptor is redirected to
359           sfcntl().
360
361       ·   Add support for Berkeley DB once I've finished porting Berkeley DB.
362
363       ·   Write an MPE XS extension library containing miscellaneous
364           important MPE functions like GETPRIVMODE(), GETUSERMODE(), and
365           sfcntl().
366

Perl/iX Change History

368       May 6, 1999
369
370       ·   Patch LBCJXT6A is required on MPE/iX 5.5 machines in order to
371           prevent Perl/iX from dying with an unresolved external reference to
372           _getenv_libc.
373
374       April 7, 1999
375
376       ·   Updated to version 5.005_03.
377
378       ·   The official source distribution once again compiles "straight out
379           of the box" for MPE.
380
381       ·   The current incarnation of the 5.5 POSIX filename extended
382           characters patch is now MPEKX40B.
383
384       ·   The LIBSHP3K *.a -> *.sl library conversion script is now included
385           as /PERL/PUB/LIBSHP3K.
386
387       November 20, 1998
388
389       ·   Updated to version 5.005_02.
390
391       ·   Fixed a DynaLoader bug that was unable to load symbols from
392           relative path name libraries.
393
394       ·   Fixed a .xs compilation bug where the mpeixish.sh include file
395           wasn't being installed into the proper directory.
396
397       ·   All bugfixes will be submitted back to the official Perl
398           developers.
399
400       ·   The current incarnation of the POSIX filename extended characters
401           patch is now MPEKXJ3A.
402
403       August 14, 1998
404
405       ·   The previous POSIX filename extended characters patch MPEKX44C has
406           been superseded by MPEKXB5A.
407
408       August 7, 1998
409
410       ·   The previous POSIX filename extended characters patch MPEKX76A has
411           been superseded by MPEKX44C.
412
413       July 28, 1998
414
415       ·   Updated to version 5.005_01.
416
417       July 23, 1998
418
419       ·   Updated to version 5.005 (production release).  The public freeware
420           sources are now 100% MPE-ready "straight out of the box".
421
422       July 17, 1998
423
424       ·   Updated to version 5.005b1 (public beta release).  The public
425           freeware sources are now 99.9% MPE-ready.  By installing and
426           testing this beta on your own HP3000, you will be helping to insure
427           that the final release of 5.005 will be 100% MPE-ready and 100% bug
428           free.
429
430       ·   My MPE binary release is now extracted using my standard INSTALL
431           script.
432
433       July 15, 1998
434
435       ·   Changed startperl to #!/PERL/PUB/perl so that Perl will recognize
436           scripts more easily and efficiently.
437
438       July 8, 1998
439
440       ·   Updated to version 5.004_70 (internal developer release) which is
441           now MPE-ready.  The next public freeware release of Perl should
442           compile "straight out of the box" on MPE.  Note that this version
443           of Perl/iX was strictly internal to me and never publicly released.
444           Note that [21]BIND/iX is now required (well, the include files and
445           libbind.a) if you wish to compile Perl/iX.
446
447       November 6, 1997
448
449       ·   Updated to version 5.004_04.  No changes in MPE-specific
450           functionality.
451
452       October 16, 1997
453
454       ·   Added Demos section to the Perl/iX home page so you can see some
455           sample Perl applications running on my 3000.
456
457       October 3, 1997
458
459       ·   Added System Requirements section to the Perl/iX home page just so
460           the prerequisites stand out more. Various other home page tweaks.
461
462       October 2, 1997
463
464       ·   Initial public release.
465
466       September 1997
467
468       ·   Porting begins.
469

AUTHOR

471       Mark Bixby, http://www.bixby.org/mark/
472
473
474
475perl v5.10.1                      2009-02-12                      PERLMPEIX(1)
Impressum