1PERLMPEIX(1) Perl Programmers Reference Guide PERLMPEIX(1)
2
3
4
6 README.mpeix - Perl/iX for HP e3000 MPE
7
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
15 This is a podified version of the above-mentioned web page, podified by
16 Jarkko Hietaniemi 2001-Jan-01.
17
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
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
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
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
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
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
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
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
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
353 None.
354
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
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
471 Mark Bixby, http://www.bixby.org/mark/
472
473
474
475perl v5.10.1 2009-02-12 PERLMPEIX(1)