Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / v9 / man / man1 / perlamiga.1
CommitLineData
920dae64
AT
1.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
2.\"
3.\" Standard preamble:
4.\" ========================================================================
5.de Sh \" Subsection heading
6.br
7.if t .Sp
8.ne 5
9.PP
10\fB\\$1\fR
11.PP
12..
13.de Sp \" Vertical space (when we can't use .PP)
14.if t .sp .5v
15.if n .sp
16..
17.de Vb \" Begin verbatim text
18.ft CW
19.nf
20.ne \\$1
21..
22.de Ve \" End verbatim text
23.ft R
24.fi
25..
26.\" Set up some character translations and predefined strings. \*(-- will
27.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28.\" double quote, and \*(R" will give a right double quote. | will give a
29.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
30.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
31.\" expand to `' in nroff, nothing in troff, for use with C<>.
32.tr \(*W-|\(bv\*(Tr
33.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34.ie n \{\
35. ds -- \(*W-
36. ds PI pi
37. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
39. ds L" ""
40. ds R" ""
41. ds C` ""
42. ds C' ""
43'br\}
44.el\{\
45. ds -- \|\(em\|
46. ds PI \(*p
47. ds L" ``
48. ds R" ''
49'br\}
50.\"
51.\" If the F register is turned on, we'll generate index entries on stderr for
52.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53.\" entries marked with X<> in POD. Of course, you'll have to process the
54.\" output yourself in some meaningful fashion.
55.if \nF \{\
56. de IX
57. tm Index:\\$1\t\\n%\t"\\$2"
58..
59. nr % 0
60. rr F
61.\}
62.\"
63.\" For nroff, turn off justification. Always turn off hyphenation; it makes
64.\" way too many mistakes in technical documents.
65.hy 0
66.if n .na
67.\"
68.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69.\" Fear. Run. Save yourself. No user-serviceable parts.
70. \" fudge factors for nroff and troff
71.if n \{\
72. ds #H 0
73. ds #V .8m
74. ds #F .3m
75. ds #[ \f1
76. ds #] \fP
77.\}
78.if t \{\
79. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80. ds #V .6m
81. ds #F 0
82. ds #[ \&
83. ds #] \&
84.\}
85. \" simple accents for nroff and troff
86.if n \{\
87. ds ' \&
88. ds ` \&
89. ds ^ \&
90. ds , \&
91. ds ~ ~
92. ds /
93.\}
94.if t \{\
95. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101.\}
102. \" troff and (daisy-wheel) nroff accents
103.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110.ds ae a\h'-(\w'a'u*4/10)'e
111.ds Ae A\h'-(\w'A'u*4/10)'E
112. \" corrections for vroff
113.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115. \" for low resolution devices (crt and lpr)
116.if \n(.H>23 .if \n(.V>19 \
117\{\
118. ds : e
119. ds 8 ss
120. ds o a
121. ds d- d\h'-1'\(ga
122. ds D- D\h'-1'\(hy
123. ds th \o'bp'
124. ds Th \o'LP'
125. ds ae ae
126. ds Ae AE
127.\}
128.rm #[ #] #H #V #F C
129.\" ========================================================================
130.\"
131.IX Title "PERLAMIGA 1"
132.TH PERLAMIGA 1 "2006-01-07" "perl v5.8.8" "Perl Programmers Reference Guide"
133.SH "NAME"
134perlamiga \- Perl under Amiga OS
135.SH "NOTE"
136.IX Header "NOTE"
137\&\fBPerl 5.8.0 cannot be built in AmigaOS. You can use either the
138maintenance release Perl 5.6.1 or the development release Perl 5.7.2
139in AmigaOS. See \*(L"\s-1PERL\s0 5.8.0 \s-1BROKEN\s0 \s-1IN\s0 \s-1AMIGAOS\s0\*(R" if you want to help
140fixing this problem.\fR
141.SH "SYNOPSIS"
142.IX Header "SYNOPSIS"
143One can read this document in the following formats:
144.PP
145.Vb 2
146\& man perlamiga
147\& multiview perlamiga.guide
148.Ve
149.PP
150to list some (not all may be available simultaneously), or it may
151be read \fIas is\fR: either as \fI\s-1README\s0.amiga\fR, or \fIpod/perlamiga.pod\fR.
152.PP
153A recent version of perl for the Amiga can be found at the Geek Gadgets
154section of the Aminet:
155.PP
156.Vb 1
157\& http://www.aminet.net/~aminet/dev/gg/index.html
158.Ve
159.SH "DESCRIPTION"
160.IX Header "DESCRIPTION"
161.Sh "Prerequisites for Compiling Perl on AmigaOS"
162.IX Subsection "Prerequisites for Compiling Perl on AmigaOS"
163.IP "\fBUnix emulation for AmigaOS: ixemul.library\fR" 6
164.IX Item "Unix emulation for AmigaOS: ixemul.library"
165You need the Unix emulation for AmigaOS, whose most important part is
166\&\fBixemul.library\fR. For a minimum setup, get the latest versions
167of the following packages from the Aminet archives
168( http://www.aminet.net/~aminet/ ):
169.Sp
170.Vb 3
171\& ixemul-bin
172\& ixemul-env-bin
173\& pdksh-bin
174.Ve
175.Sp
176Note also that this is a minimum setup; you might want to add other
177packages of \fB\s-1ADE\s0\fR (the \fIAmiga Developers Environment\fR).
178.IP "\fBVersion of Amiga \s-1OS\s0\fR" 6
179.IX Item "Version of Amiga OS"
180You need at the very least AmigaOS version 2.0. Recommended is version 3.1.
181.Sh "Starting Perl programs under AmigaOS"
182.IX Subsection "Starting Perl programs under AmigaOS"
183Start your Perl program \fIfoo\fR with arguments \f(CW\*(C`arg1 arg2 arg3\*(C'\fR the
184same way as on any other platform, by
185.PP
186.Vb 1
187\& perl foo arg1 arg2 arg3
188.Ve
189.PP
190If you want to specify perl options \f(CW\*(C`\-my_opts\*(C'\fR to the perl itself (as
191opposed to your program), use
192.PP
193.Vb 1
194\& perl -my_opts foo arg1 arg2 arg3
195.Ve
196.PP
197Alternately, you can try to get a replacement for the system's \fBExecute\fR
198command that honors the #!/usr/bin/perl syntax in scripts and set the s\-Bit
199of your scripts. Then you can invoke your scripts like under \s-1UNIX\s0 with
200.PP
201.Vb 1
202\& foo arg1 arg2 arg3
203.Ve
204.PP
205(Note that having *nixish full path to perl \fI/usr/bin/perl\fR is not
206necessary, \fIperl\fR would be enough, but having full path would make it
207easier to use your script under *nix.)
208.Sh "Shortcomings of Perl under AmigaOS"
209.IX Subsection "Shortcomings of Perl under AmigaOS"
210Perl under AmigaOS lacks some features of perl under \s-1UNIX\s0 because of
211deficiencies in the UNIX\-emulation, most notably:
212.IP "\(bu" 6
213\&\fIfork()\fR
214.IP "\(bu" 6
215some features of the \s-1UNIX\s0 filesystem regarding link count and file dates
216.IP "\(bu" 6
217inplace operation (the \-i switch) without backup file
218.IP "\(bu" 6
219\&\fIumask()\fR works, but the correct permissions are only set when the file is
220finally \fIclose()\fRd
221.SH "INSTALLATION"
222.IX Header "INSTALLATION"
223Change to the installation directory (most probably \s-1ADE:\s0), and
224extract the binary distribution:
225.PP
226lha \-mraxe x perl\-$VERSION\-bin.lha
227.PP
228or
229.PP
230tar xvzpf perl\-$VERSION\-bin.tgz
231.PP
232(Of course you need lha or tar and gunzip for this.)
233.PP
234For installation of the Unix emulation, read the appropriate docs.
235.SH "Accessing documentation"
236.IX Header "Accessing documentation"
237.Sh "Manpages for Perl on AmigaOS"
238.IX Subsection "Manpages for Perl on AmigaOS"
239If you have \f(CW\*(C`man\*(C'\fR installed on your system, and you installed perl
240manpages, use something like this:
241.PP
242.Vb 3
243\& man perlfunc
244\& man less
245\& man ExtUtils.MakeMaker
246.Ve
247.PP
248to access documentation for different components of Perl. Start with
249.PP
250.Vb 1
251\& man perl
252.Ve
253.PP
254Note: You have to modify your man.conf file to search for manpages
255in the /ade/lib/perl5/man/man3 directory, or the man pages for the
256perl library will not be found.
257.PP
258Note that dot (\fI.\fR) is used as a package separator for documentation
259for packages, and as usual, sometimes you need to give the section \- \f(CW3\fR
260above \- to avoid shadowing by the \fI\fIless\fI\|(1) manpage\fR.
261.Sh "Perl \s-1HTML\s0 Documentation on AmigaOS"
262.IX Subsection "Perl HTML Documentation on AmigaOS"
263If you have some \s-1WWW\s0 browser available, you can build \fB\s-1HTML\s0\fR docs.
264Cd to directory with \fI.pod\fR files, and do like this
265.PP
266.Vb 2
267\& cd /ade/lib/perl5/pod
268\& pod2html
269.Ve
270.PP
271After this you can direct your browser the file \fIperl.html\fR in this
272directory, and go ahead with reading docs.
273.PP
274Alternatively you may be able to get these docs prebuilt from \f(CW\*(C`CPAN\*(C'\fR.
275.Sh "Perl \s-1GNU\s0 Info Files on AmigaOS"
276.IX Subsection "Perl GNU Info Files on AmigaOS"
277Users of \f(CW\*(C`Emacs\*(C'\fR would appreciate it very much, especially with
278\&\f(CW\*(C`CPerl\*(C'\fR mode loaded. You need to get latest \f(CW\*(C`pod2info\*(C'\fR from \f(CW\*(C`CPAN\*(C'\fR,
279or, alternately, prebuilt info pages.
280.Sh "Perl LaTeX Documentation on AmigaOS"
281.IX Subsection "Perl LaTeX Documentation on AmigaOS"
282Can be constructed using \f(CW\*(C`pod2latex\*(C'\fR.
283.SH "BUILDING PERL ON AMIGAOS"
284.IX Header "BUILDING PERL ON AMIGAOS"
285Here we discuss how to build Perl under AmigaOS.
286.Sh "Build Prerequisites for Perl on AmigaOS"
287.IX Subsection "Build Prerequisites for Perl on AmigaOS"
288You need to have the latest \fBixemul\fR (Unix emulation for Amiga)
289from Aminet.
290.Sh "Getting the Perl Source for AmigaOS"
291.IX Subsection "Getting the Perl Source for AmigaOS"
292You can either get the latest perl-for-amiga source from Ninemoons
293and extract it with:
294.PP
295.Vb 1
296\& tar xvzpf perl-$VERSION-src.tgz
297.Ve
298.PP
299or get the official source from \s-1CPAN:\s0
300.PP
301.Vb 1
302\& http://www.cpan.org/src/5.0
303.Ve
304.PP
305Extract it like this
306.PP
307.Vb 1
308\& tar xvzpf perl-$VERSION.tar.gz
309.Ve
310.PP
311You will see a message about errors while extracting \fIConfigure\fR. This
312is normal and expected. (There is a conflict with a similarly-named file
313\&\fIconfigure\fR, but it causes no harm.)
314.Sh "Making Perl on AmigaOS"
315.IX Subsection "Making Perl on AmigaOS"
316Remember to use a hefty wad of stack (I use 2000000)
317.PP
318.Vb 1
319\& sh configure.gnu --prefix=/gg
320.Ve
321.PP
322Now type
323.PP
324.Vb 1
325\& make depend
326.Ve
327.PP
328Now!
329.PP
330.Vb 1
331\& make
332.Ve
333.Sh "Testing Perl on AmigaOS"
334.IX Subsection "Testing Perl on AmigaOS"
335Now run
336.PP
337.Vb 1
338\& make test
339.Ve
340.PP
341Some tests will be skipped because they need the \fIfork()\fR function:
342.PP
343\&\fIio/pipe.t\fR, \fIop/fork.t\fR, \fIlib/filehand.t\fR, \fIlib/open2.t\fR, \fIlib/open3.t\fR,
344\&\fIlib/io_pipe.t\fR, \fIlib/io_sock.t\fR
345.Sh "Installing the built Perl on AmigaOS"
346.IX Subsection "Installing the built Perl on AmigaOS"
347Run
348.PP
349.Vb 1
350\& make install
351.Ve
352.SH "PERL 5.8.0 BROKEN IN AMIGAOS"
353.IX Header "PERL 5.8.0 BROKEN IN AMIGAOS"
354As told above, Perl 5.6.1 was still good in AmigaOS, as was 5.7.2.
355After Perl 5.7.2 (change #11423, see the Changes file, and the file
356pod/perlhack.pod for how to get the individual changes) Perl dropped
357its internal support for \fIvfork()\fR, and that was very probably the step
358that broke AmigaOS (since the ixemul library has only vfork).
359The build finally fails when the ext/DynaLoader is being built, and
360\&\s-1PERL\s0 ends up as \*(L"0\*(R" in the produced Makefile, trying to run \*(L"0\*(R" does
361not quite work. Also, executing miniperl in backticks seems to
362generate nothing: very probably related to the (v)fork problems.
363\&\fBFixing the breakage requires someone quite familiar with the ixemul
364library, and how one is supposed to run external commands in AmigaOS
365without \f(BIfork()\fB.\fR
366.SH "AUTHORS"
367.IX Header "AUTHORS"
368Norbert Pueschel, pueschel@imsdd.meb.uni\-bonn.de
369Jan-Erik Karlsson, trg@privat.utfors.se
370.SH "SEE ALSO"
371.IX Header "SEE ALSO"
372\&\fIperl\fR\|(1).