1PERLMPEIX(1) Perl Programmers Reference Guide PERLMPEIX(1)
2
3
4
6 perlmpeix - Perl/iX for HP e3000 MPE
7
9 http://www.bixby.org/mark/perlix.html
10 Perl language for MPE
11 Last updated January 12, 2006 @ 2100 UTC
12
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
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
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,
111 sed, 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 <http://www.lsoft.com/scripts/wl.exe?SL1=HP3000-L&H=RAVEN.UTC.EDU> )
116 and its associated gatewayed newsgroup comp.sys.hp.mpe.
117
118 I'm doing this port because I can't live without Perl on the Unix
119 machines that I administer, and I want to have the same power available
120 to me on MPE.
121
122 Please send your comments, questions, and bug reports directly to me,
123 Mark Bixby ( <http://www.bixby.org/mark/> ). Or just post them to
124 HP3000-L.
125
126 The platform I'm using to do this port is an HP 3000 957RX running
127 MPE/iX 6.0 and using the GNU gcc C compiler (
128 <http://jazz.external.hp.com/src/gnu/gnuframe.html> ).
129
130 The combined porting wisdom from all of my ports can be found in my
131 MPE/iX Porting Guide (<http://www.bixby.org/mark/porting.html>).
132
133 IMPORTANT NOTICE: Yes, I do work for the HP CSY R&D lab, but ALL of the
134 software you download from bixby.org is my personal freeware that is
135 NOT supported by HP.
136
138 · MPE/iX 5.5 or later. This version of Perl/iX does NOT run on MPE/iX
139 5.0 or earlier, nor does it run on "classic" MPE/V machines.
140
141 · If you wish to recompile Perl, you must install both GNUCORE and
142 GNUGCC from jazz
143 (<http://jazz.external.hp.com/src/gnu/gnuframe.html>).
144
145 · Perl/iX will be happier on MPE/iX 5.5 if you install the MPEKX40B
146 extended POSIX filename characters patch, but this is optional.
147
148 · Patch LBCJXT6A is required on MPE/iX 5.5 machines in order to
149 prevent Perl/iX from dying with an unresolved external reference to
150 _getenv_libc.
151
152 · If you will be compiling Perl/iX yourself, you will also need
153 Syslog/iX ( <http://www.bixby.org/mark/syslogix.html> ) and the
154 /BIND/PUB/include and /BIND/PUB/lib portions of BIND/iX (
155 <http://www.bixby.org/mark/bindix.html> ).
156
158 1. Download Perl using either FTP.ARPA.SYS or some other client
159
160 2. Extract the installation script
161
162 3. Edit the installation script
163
164 4. Run the installation script
165
166 5. Convert your *.a system archive libraries to *.sl shared libraries
167
168 Download Perl using FTP.ARPA.SYS from your HP 3000 (the preferred
169 method).....
170
171 :HELLO MANAGER.SYS
172 :XEQ FTP.ARPA.SYS
173 open ftp.bixby.org
174 anonymous
175 your@email.address
176 bytestream
177 cd /pub/mpe
178 get perl-5.6.0-mpe.tar.Z /tmp/perl.tar.Z;disc=2147483647
179 exit
180
181 .....Or download using some other generic web or ftp client (the
182 alternate method)
183
184 Download the following files (make sure that you use "binary mode" or
185 whatever client feature that is 8-bit clean):
186
187 · Perl from
188
189 http://www.bixby.org/ftp/pub/mpe/perl-5.6.0-mpe.tar.Z
190
191 or
192
193 ftp://ftp.bixby.org/pub/mpe/perl-5.6.0-mpe.tar.Z
194
195 · Upload those files to your HP 3000 in an 8-bit clean bytestream
196 manner to:
197
198 /tmp/perl.tar.Z
199
200 · Then extract the installation script (after both download methods)
201
202 :CHDIR /tmp
203 :XEQ TAR.HPBIN.SYS 'xvfopz /tmp/perl.tar.Z INSTALL'
204
205 · Edit the installation script
206
207 Examine the accounting structure creation commands and modify if
208 necessary (adding additional capabilities, choosing a non-system
209 volume set, etc).
210
211 :XEQ VI.HPBIN.SYS /tmp/INSTALL
212
213 · Run the installation script.
214
215 The accounting structure will be created and then all files will be
216 extracted from the archive.
217
218 :XEQ SH.HPBIN.SYS /tmp/INSTALL
219
220 · Convert your *.a system archive libraries to *.sl shared libraries
221
222 You only have to do this ONCE on your MPE/iX 5.5 machine in order
223 to convert /lib/lib*.a and /usr/lib/lib*.a libraries to their *.sl
224 equivalents. This step should not be necessary on MPE/iX 6.0 or
225 later machines because the 6.0 or later update process does it for
226 you.
227
228 :XEQ SH.HPBIN.SYS /PERL/PUB/LIBSHP3K
229
231 README
232 The file you're reading now.
233
234 INSTALL
235 Perl/iX Installation script.
236
237 LIBSHP3K
238 Script to convert *.a system archive libraries to *.sl shared
239 libraries.
240
241 PERL
242 Perl NMPRG executable. A version-numbered backup copy also exists.
243 You might wish to "ln -s /PERL/PUB/PERL /usr/local/bin/perl".
244
245 .cpan/
246 Much add-on source code downloaded with the CPAN module.
247
248 lib/
249 Perl libraries, both core and add-on.
250
251 man/
252 Perl man page documentation.
253
254 public_html/feedback.cgi
255 Sample feedback CGI form written in Perl.
256
257 src/perl-5.6.0-mpe
258 Source code.
259
261 1. cd src/perl-5.6.0-mpe
262
263 2. Read the INSTALL file for the official instructions
264
265 3. ./Configure -d
266
267 4. make
268
269 5. ./mpeix/relink
270
271 6. make test (expect approximately 15 out of 11306 subtests to fail,
272 mostly due to MPE not supporting hard links, UDP socket problems,
273 and handling exit() return codes improperly)
274
275 7. make install
276
277 8. Optionally create symbolic links that point to the Perl executable,
278 i.e. ln -s /PERL/PUB/PERL /usr/local/bin/perl
279
280 The summary test results from "cd t; ./perl -I../lib harness":
281
282 Failed Test Status Wstat Total Fail Failed List of failed
283 ---------------------------------------------------------------------------
284 io/fs.t 29 8 27.59% 2-5, 7-9, 11
285 io/openpid.t 10 1 10.00% 7
286 lib/io_sock.t 14 1 7.14% 13
287 lib/io_udp.t 7 2 28.57% 3, 5
288 lib/posix.t 27 1 3.70% 12
289 op/lex_assign.t 187 1 0.53% 13
290 op/stat.t 58 1 1.72% 3
291 15 tests and 94 subtests skipped.
292 Failed 7/236 test scripts, 97.03% okay. 15/11306 subtests failed, 99.87% okay.
293
295 Create your Perl script files with "#!/PERL/PUB/perl" (or an equivalent
296 symbolic link) as the first line. Use the chmod command to make sure
297 that your script has execute permission. Run your script!
298
299 Be sure to take a look at the CPAN module list (
300 <http://www.cpan.org/CPAN.html> ). A wide variety of free Perl software
301 is available. You can automatically download these packages by using
302 the CPAN module ( <http://search.cpan.org/dist/CPAN/> ).
303
305 There some minor functionality issues to be aware of when comparing
306 Perl for Unix (Perl/UX) to Perl/iX:
307
308 · MPE gcc/ld doesn't properly support linking NMPRG executables
309 against NMXL dynamic libraries, so you must manually run
310 mpeix/relink after each re-build of Perl.
311
312 · Perl/iX File::Copy will use MPE's /bin/cp command to copy files by
313 name in order to preserve file attributes like file code.
314
315 · MPE (and thus Perl/iX) lacks support for setgrent(), endgrent(),
316 setpwent(), endpwent().
317
318 · MPE (and thus Perl/iX) lacks support for hard links.
319
320 · MPE requires GETPRIVMODE() in order to bind() to ports less than
321 1024. Perl/iX will call GETPRIVMODE() automatically on your behalf
322 if you attempt to bind() to these low-numbered ports. Note that
323 the Perl/iX executable and the PERL account do not normally have
324 CAP=PM, so if you will be bind()-ing to these privileged ports, you
325 will manually need to add PM capability as appropriate.
326
327 · MPE requires that you bind() to an IP address of zero. Perl/iX
328 automatically replaces the IP address that you pass to bind() with
329 a zero.
330
331 · MPE requires GETPRIVMODE() in order to setuid(). There are too
332 many calls to setuid() within Perl/iX, so I have not attempted an
333 automatic GETPRIVMODE() solution similar to bind().
334
336 None.
337
339 · Make setuid()/setgid() support work.
340
341 · Make sure that fcntl() against a socket descriptor is redirected to
342 sfcntl().
343
344 · Add support for Berkeley DB once I've finished porting Berkeley DB.
345
346 · Write an MPE XS extension library containing miscellaneous
347 important MPE functions like GETPRIVMODE(), GETUSERMODE(), and
348 sfcntl().
349
351 May 6, 1999
352
353 · Patch LBCJXT6A is required on MPE/iX 5.5 machines in order to
354 prevent Perl/iX from dying with an unresolved external reference to
355 _getenv_libc.
356
357 April 7, 1999
358
359 · Updated to version 5.005_03.
360
361 · The official source distribution once again compiles "straight out
362 of the box" for MPE.
363
364 · The current incarnation of the 5.5 POSIX filename extended
365 characters patch is now MPEKX40B.
366
367 · The LIBSHP3K *.a -> *.sl library conversion script is now included
368 as /PERL/PUB/LIBSHP3K.
369
370 November 20, 1998
371
372 · Updated to version 5.005_02.
373
374 · Fixed a DynaLoader bug that was unable to load symbols from
375 relative path name libraries.
376
377 · Fixed a .xs compilation bug where the mpeixish.sh include file
378 wasn't being installed into the proper directory.
379
380 · All bugfixes will be submitted back to the official Perl
381 developers.
382
383 · The current incarnation of the POSIX filename extended characters
384 patch is now MPEKXJ3A.
385
386 August 14, 1998
387
388 · The previous POSIX filename extended characters patch MPEKX44C has
389 been superseded by MPEKXB5A.
390
391 August 7, 1998
392
393 · The previous POSIX filename extended characters patch MPEKX76A has
394 been superseded by MPEKX44C.
395
396 July 28, 1998
397
398 · Updated to version 5.005_01.
399
400 July 23, 1998
401
402 · Updated to version 5.005 (production release). The public freeware
403 sources are now 100% MPE-ready "straight out of the box".
404
405 July 17, 1998
406
407 · Updated to version 5.005b1 (public beta release). The public
408 freeware sources are now 99.9% MPE-ready. By installing and
409 testing this beta on your own HP3000, you will be helping to insure
410 that the final release of 5.005 will be 100% MPE-ready and 100% bug
411 free.
412
413 · My MPE binary release is now extracted using my standard INSTALL
414 script.
415
416 July 15, 1998
417
418 · Changed startperl to #!/PERL/PUB/perl so that Perl will recognize
419 scripts more easily and efficiently.
420
421 July 8, 1998
422
423 · Updated to version 5.004_70 (internal developer release) which is
424 now MPE-ready. The next public freeware release of Perl should
425 compile "straight out of the box" on MPE. Note that this version
426 of Perl/iX was strictly internal to me and never publicly released.
427 Note that [21]BIND/iX is now required (well, the include files and
428 libbind.a) if you wish to compile Perl/iX.
429
430 November 6, 1997
431
432 · Updated to version 5.004_04. No changes in MPE-specific
433 functionality.
434
435 October 16, 1997
436
437 · Added Demos section to the Perl/iX home page so you can see some
438 sample Perl applications running on my 3000.
439
440 October 3, 1997
441
442 · Added System Requirements section to the Perl/iX home page just so
443 the prerequisites stand out more. Various other home page tweaks.
444
445 October 2, 1997
446
447 · Initial public release.
448
449 September 1997
450
451 · Porting begins.
452
454 Mark Bixby, <http://www.bixby.org/mark/>
455
456
457
458perl v5.16.3 2013-03-04 PERLMPEIX(1)