X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/0addb26a8d52b778aa7c6491e34f40d84fccf4d1..8c9009ad13ddadd4e5865ef02a27df15933a7ca7:/README.amiga diff --git a/README.amiga b/README.amiga index 709fcc8..41345c1 100644 --- a/README.amiga +++ b/README.amiga @@ -4,252 +4,220 @@ specially designed to be readable as is. =head1 NAME -perlamiga - Perl under Amiga OS +perlamiga - Perl under AmigaOS 4.1 -=head1 SYNOPSIS +=head1 NOTE -One can read this document in the following formats: +This is a port of Perl 5.22.1, it is a fresh port and not in any way +compatible with my previous ports of Perl 5.8 and 5.16.3. This means +you will need to reinstall / rebuild any third party modules you have +installed. - man perlamiga - multiview perlamiga.guide +newlib.library version 53.28 or greater is required. -to list some (not all may be available simultaneously), or it may -be read I: either as F, or F. +=head1 SYNOPSIS -A recent version of perl for the Amiga can be found at the Geek Gadgets -section of the Aminet: +Once perl is installed you can read this document in the following way - http://www.aminet.net/~aminet/dirs/dev_gg.html + sh -c "perldoc perlamiga" -=cut +or you may read I: either as F, or F. -Contents - - perlamiga - Perl under Amiga OS +=cut - NAME - SYNOPSIS - DESCRIPTION - - Prerequisites + NAME + SYNOPSIS + DESCRIPTION + - Prerequisites - Starting Perl programs under AmigaOS - Shortcomings of Perl under AmigaOS - INSTALLATION - Accessing documentation - - Manpages - - HTML - - GNU info files - - LaTeX docs - BUILD - - Build Prerequisites - - Getting the perl source - - Application of the patches - - Making - - Testing - - Installing the built perl - AUTHOR - SEE ALSO + INSTALLATION + CHANGES =head1 DESCRIPTION -=head2 Prerequisites for Compiling Perl on AmigaOS +=head2 Prerequisites for running Perl 5.22.1 under AmigaOS 4.1 =over 6 -=item B - -You need the Unix emulation for AmigaOS, whose most important part is -B. For a minimum setup, get the latest versions -of the following packages from the Aminet archives (http://www.aminet.net/~aminet/): +=item B - ixemul-bin - ixemul-env-bin - pdksh-bin +The most important of which is: -Note also that this is a minimum setup; you might want to add other -packages of B (the I). +=item B -=item B +=item B -You need at the very least AmigaOS version 2.0. Recommended is version 3.1. +Perl installs into the SDK directory structure and expects many of the +build tools present in the SDK to be available. So for the best results +install the SDK first. -=back +=item B -=head2 Starting Perl programs under AmigaOS +If you do not have the SDK installed you must at least have abc-shell +installed or some other suitable sh port. This is required to run +external commands and should be available as 'sh' in your path. -Start your Perl program F with arguments C the -same way as on any other platform, by - - perl foo arg1 arg2 arg3 +=back -If you want to specify perl options C<-my_opts> to the perl itself (as -opposed to to your program), use +=head2 Starting Perl programs under AmigaOS 4.1 - perl -my_opts foo arg1 arg2 arg3 +Perl may be run from the AmigaOS shell but for best results should be +run under abc-shell. (abc-shell handles file globbing, pattern +expansion, and sets up environment variables in the UN*Xy way that +Perl expects.) -Alternately, you can try to get a replacement for the system's B -command that honors the #!/usr/bin/perl syntax in scripts and set the s-Bit -of your scripts. Then you can invoke your scripts like under UNIX with +For example: - foo arg1 arg2 arg3 + New Shell process 10 + 10.AmigaOS4:> sh + /AmigaOS4>perl path:to/myprog arg1 arrg2 arg3 -(Note that having *nixish full path to perl F is not -necessary, F would be enough, but having full path would make it -easier to use your script under *nix.) +Abc-shell can also launch programs via the #! syntax at the start of +the program file, it's best use the form #!SDK:Local/C/perl so that +the AmigaOS shell may also find perl in the same way. AmigaOS requires +the script bit to be set for this to work -=head2 Shortcomings of Perl under AmigaOS + 10.AmigaOS4:> sh + /AmigaOS4>myprog arg1 arrg2 arg3 -Perl under AmigaOS lacks some features of perl under UNIX because of -deficiencies in the UNIX-emulation, most notably: +=head2 Limitations of Perl under AmigaOS 4.1 =over 6 -=item * +=item B + +abc-shell version 53.2 has a bug that can cause crashes in the +subprocesses used to run piped programs, if a later version is +available you should install it instead. -fork() +=item B -=item * +newlib.library 53.30 and earlier incorrectly unescape slashed escape +sequences e.g. \" \n \t etc requiring unusual extra escaping. -some features of the UNIX filesystem regarding link count and file dates +=item B -=item * + open FH, "command |" -inplace operation (the -i switch) without backup file +Subprocesses started with open use a minimal popen() routine and +therefore they do not return pids usable with waitpid etc. -=item * +=item If you find any other limitations or bugs then let me know. -umask() works, but the correct permissions are only set when the file is -finally close()d +Please report bugs in this version of perl to andy@broad.ology.org.uk +in the first instance. =back =head1 INSTALLATION -Change to the installation directory (most probably ADE:), and -extract the binary distribution: - -lha -mraxe x perl-$VERSION-bin.lha - -or +This guide assumes you have obtained a prebuilt archive from os4depot.net. -tar xvzpf perl-$VERSION-bin.tgz +Unpack the main archive to a temporary location (RAM: is fine). -(Of course you need lha or tar and gunzip for this.) +Execute the provided install script from shell or via its icon. -For installation of the Unix emulation, read the appropriate docs. +You B attempt to install by hand. -=head1 Accessing documentation +Once installed you may delete the temporary archive. -=head2 Manpages for Perl on AmigaOS +This approach will preserve links in the installation without creating +duplicate binaries. -If you have C installed on your system, and you installed perl -manpages, use something like this: +If you have the earlier ports perl 5.16 or 5.8 installed you may like +to rename your perl executable to perl516 or perl58 or something +similar before the installation of 5.22.1, this will allow you to use +both versions at the same time. - man perlfunc - man less - man ExtUtils.MakeMaker +=head1 Amiga Specific Modules -to access documentation for different components of Perl. Start with +=head2 Amiga::ARexx - man perl +The Amiga::ARexx module allows you to easily create a perl based ARexx +host or to send ARexx commands to other programs. -Note: You have to modify your man.conf file to search for manpages -in the /ade/lib/perl5/man/man3 directory, or the man pages for the -perl library will not be found. +Try C for more info. -Note that dot (F<.>) is used as a package separator for documentation -for packages, and as usual, sometimes you need to give the section - C<3> -above - to avoid shadowing by the I. +=head2 Amiga::Exec +The Amiga::Exec module introduces support for Wait(). -=head2 Perl HTML Documentation on AmigaOS +Try C for more info. -If you have some WWW browser available, you can build B docs. -Cd to directory with F<.pod> files, and do like this +=head1 BUILDING - cd /ade/lib/perl5/pod - pod2html +To build perl under AmigaOS from the patched sources you will need to +have a recent version of the SDK. Version 53.29 is recommended, +earlier versions will probably work too. -After this you can direct your browser the file F in this -directory, and go ahead with reading docs. +With the help of Jarkko Hietaniemi the Configure system has been tweaked to +run under abc-shell so the recommend build process is as follows. -Alternatively you may be able to get these docs prebuilt from C. + stack 2000000 + sh Configure -de + gmake -=head2 Perl GNU Info Files on AmigaOS +This will build the default setup that installs under SDK:local/newlib/lib/ -Users of C would appreciate it very much, especially with -C mode loaded. You need to get latest C from C, -or, alternately, prebuilt info pages. +=head1 CHANGES -=head2 Perl LaTeX Documentation on AmigaOS - -Can be constructed using C. - -=head1 BUILDING PERL ON AMIGAOS - -Here we discuss how to build Perl under AmigaOS. - -=head2 Build Prerequisites for Perl on AmigaOS - -You need to have the latest B (Unix emulation for Amiga) -from Aminet. - -=head2 Getting the Perl Source for AmigaOS +=over 6 -You can either get the latest perl-for-amiga source from Ninemoons -and extract it with: +=item B - tar xvzpf perl-$VERSION-src.tgz +=over 2 -or get the official source from CPAN: +=item Port to Perl 5.22 - http://www.perl.com/CPAN/src/5.0 +=item Add handling of NIL: to afstat() -Extract it like this +=item Fix inheritance of environment variables by subprocesses. - tar xvzpf perl-$VERSION.tar.gz +=item Fix exec, and exit in "forked" subprocesses. -You will see a message about errors while extracting F. This -is normal and expected. (There is a conflict with a similarly-named file -F, but it causes no harm.) +=item Fix issue with newlib's unlink, which could cause infinite loops. -=head2 Making Perl on AmigaOS +=item Add flock() emulation using IDOS->LockRecord thanks to Tony Cook +for the suggestion. -Remember to use a hefty wad of stack (I use 2000000) +=item Fix issue where kill was using the wrong kind of process ID - sh configure.gnu --prefix=/gg +=back -Now type +=item B<27th November 2013> - make depend +=over 2 -Now! +=item Create new installation system based on installperl links +and Amiga protection bits now set correctly. - make +=item Pod now defaults to text. -=head2 Testing Perl on AmigaOS +=item File::Spec should now recognise an Amiga style absolute path as well +as an Unix style one. Relative paths must always be Unix style. -Now run +=back - make test +=item B<20th November 2013> -Some tests will be skipped because they need the fork() function: +=over 2 -F, F, F, F, F, -F, F +=item Configured to use SDK:Local/C/perl to start standard scripts -=head2 Installing the built Perl on AmigaOS +=item Added Amiga::Exec module with support for Wait() and AmigaOS signal numbers. -Run +=back - make install +=item B<10th October 13> -=head1 AUTHORS +First release of port to 5.16.3. -Norbert Pueschel, pueschel@imsdd.meb.uni-bonn.de -Jan-Erik Karlsson, trg@privat.utfors.se +=back =head1 SEE ALSO -perl(1). +You like this port? See L +for how you can help. =cut