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          Perl language for MPE
11          Last updated January 12, 2006 @ 2100 UTC
12

NOTE

14       This is a podified version of what used to be on the above-mentioned
15       web page, podified by Jarkko Hietaniemi 2001-Jan-01.
16

What's New in Perl for MPE/iX

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

Welcome to Perl/iX

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

System Requirements for Perl/iX

137       ·   MPE/iX 5.5 or later. This version of Perl/iX does NOT run on MPE/iX
138           5.0 or earlier, nor does it run on "classic" MPE/V machines.
139
140       ·   If you wish to recompile Perl, you must install both GNUCORE and
141           GNUGCC from jazz
142           (http://jazz.external.hp.com/src/gnu/gnuframe.html).
143
144       ·   Perl/iX will be happier on MPE/iX 5.5 if you install the MPEKX40B
145           extended POSIX filename characters patch, but this is optional.
146
147       ·   Patch LBCJXT6A is required on MPE/iX 5.5 machines in order to
148           prevent Perl/iX from dying with an unresolved external reference to
149           _getenv_libc.
150
151       ·   If you will be compiling Perl/iX yourself, you will also need
152           Syslog/iX ( http://www.bixby.org/mark/syslogix.html ) and the
153           /BIND/PUB/include and /BIND/PUB/lib portions of BIND/iX (
154           http://www.bixby.org/mark/bindix.html ).
155

How to Obtain Perl/iX

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

Perl/iX Distribution Contents Highlights

230       README
231           The file you're reading now.
232
233       INSTALL
234           Perl/iX Installation script.
235
236       LIBSHP3K
237           Script to convert *.a system archive libraries to *.sl shared
238           libraries.
239
240       PERL
241           Perl NMPRG executable.  A version-numbered backup copy also exists.
242           You might wish to "ln -s /PERL/PUB/PERL /usr/local/bin/perl".
243
244       .cpan/
245           Much add-on source code downloaded with the CPAN module.
246
247       lib/
248           Perl libraries, both core and add-on.
249
250       man/
251           Perl man page documentation.
252
253       public_html/feedback.cgi
254           Sample feedback CGI form written in Perl.
255
256       src/perl-5.6.0-mpe
257           Source code.
258

How to Compile Perl/iX

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

Getting Started with Perl/iX

294       Create your Perl script files with "#!/PERL/PUB/perl" (or an equivalent
295       symbolic link) as the first line.  Use the chmod command to make sure
296       that your script has execute permission. Run your script!
297
298       Be sure to take a look at the CPAN module list (
299       http://www.cpan.org/CPAN.html ). A wide variety of free Perl software
300       is available.  You can automatically download these packages by using
301       the CPAN module ( http://search.cpan.org/dist/CPAN/ ).
302

MPE/iX Implementation Considerations

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

Known Perl/iX Bugs Under Investigation

335       None.
336

Perl/iX To-Do List

338       ·   Make setuid()/setgid() support work.
339
340       ·   Make sure that fcntl() against a socket descriptor is redirected to
341           sfcntl().
342
343       ·   Add support for Berkeley DB once I've finished porting Berkeley DB.
344
345       ·   Write an MPE XS extension library containing miscellaneous
346           important MPE functions like GETPRIVMODE(), GETUSERMODE(), and
347           sfcntl().
348

Perl/iX Change History

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

AUTHOR

453       Mark Bixby, http://www.bixby.org/mark/
454
455
456
457perl v5.12.4                      2011-06-07                      PERLMPEIX(1)
Impressum