X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/f86702ccfcc3646d7aa30b09ce4f4413be9f99d1..c4a2ac437ed67b458e466f3724f82c10afc3eb40:/README.amiga diff --git a/README.amiga b/README.amiga index 110f9cf..41345c1 100644 --- a/README.amiga +++ b/README.amiga @@ -4,234 +4,220 @@ specially designed to be readable as is. =head1 NAME -perlamiga - Perl under Amiga OS +perlamiga - Perl under AmigaOS 4.1 + +=head1 NOTE + +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. + +newlib.library version 53.28 or greater is required. =head1 SYNOPSIS -One can read this document in the following formats: +Once perl is installed you can read this document in the following way - man perlamiga - multiview perlamiga.guide + sh -c "perldoc perlamiga" -to list some (not all may be available simultaneously), or it may -be read I: either as F, or F. +or you may read I: either as F, or F. =cut -Contents - - perlamiga - Perl under Amiga OS - - NAME - SYNOPSIS - DESCRIPTION - - Prerequisites + NAME + SYNOPSIS + DESCRIPTION + - Prerequisites - Starting Perl programs under AmigaOS - INSTALLATION - Accessing documentation - - Manpages - - HTML - - GNU info files - - LaTeX docs - BUILD - - Prerequisites - - Getting the perl source - - Application of the patches - - Making - - Testing - - Installing the built perl - AUTHOR - SEE ALSO + - Shortcomings of Perl under AmigaOS + INSTALLATION + CHANGES =head1 DESCRIPTION -=head2 Prerequisites +=head2 Prerequisites for running Perl 5.22.1 under AmigaOS 4.1 =over 6 -=item B +=item B -You need the Unix emulation for AmigaOS, whose most important part is -B. For a minimum setup, get the following archives from -ftp://ftp.ninemoons.com/pub/ade/current or a mirror: +The most important of which is: -ixemul-45.1-bin.lha -ixemul-45.1-env-bin.lha -pdksh-4.9-bin.lha -ADE-misc-bin.lha +=item B -Note that there might be newer versions available by the time you read -this. +=item B -Note also that this is a minimum setup; you might want to add other -packages of B (the I). +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. -=item B +=item B -You need at the very least AmigaOS version 2.0. Recommended is version 3.1. +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. =back -=head2 Starting Perl programs under AmigaOS +=head2 Starting Perl programs under AmigaOS 4.1 -Start your Perl program F with arguments C the -same way as on any other platform, by +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.) - perl foo arg1 arg2 arg3 +For example: -If you want to specify perl options C<-my_opts> to the perl itself (as -opposed to to your program), use + New Shell process 10 + 10.AmigaOS4:> sh + /AmigaOS4>perl path:to/myprog arg1 arrg2 arg3 - perl -my_opts foo arg1 arg2 arg3 +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 -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 + 10.AmigaOS4:> sh + /AmigaOS4>myprog arg1 arrg2 arg3 - foo arg1 arg2 arg3 +=head2 Limitations of Perl under AmigaOS 4.1 -(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.) +=over 6 -=head1 INSTALLATION +=item B -Change to the installation directory (most probably ADE:), and -extract the binary distribution: +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. -lha -mraxe x perl-5.003-bin.lha +=item B -or +newlib.library 53.30 and earlier incorrectly unescape slashed escape +sequences e.g. \" \n \t etc requiring unusual extra escaping. -tar xvzpf perl-5.003-bin.tgz +=item B -(Of course you need lha or tar and gunzip for this.) + open FH, "command |" -For installation of the Unix emulation, read the appropriate docs. +Subprocesses started with open use a minimal popen() routine and +therefore they do not return pids usable with waitpid etc. -=head1 Accessing documentation +=item If you find any other limitations or bugs then let me know. -=head2 Manpages +Please report bugs in this version of perl to andy@broad.ology.org.uk +in the first instance. -If you have C installed on your system, and you installed perl -manpages, use something like this: +=back - man perlfunc - man less - man ExtUtils.MakeMaker +=head1 INSTALLATION -to access documentation for different components of Perl. Start with +This guide assumes you have obtained a prebuilt archive from os4depot.net. - man perl +Unpack the main archive to a temporary location (RAM: is fine). -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. +Execute the provided install script from shell or via its icon. -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. +You B attempt to install by hand. +Once installed you may delete the temporary archive. -=head2 B +This approach will preserve links in the installation without creating +duplicate binaries. -If you have some WWW browser available, you can build B docs. -Cd to directory with F<.pod> files, and do 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. - cd /ade/lib/perl5/pod - pod2html +=head1 Amiga Specific Modules -After this you can direct your browser the file F in this -directory, and go ahead with reading docs. +=head2 Amiga::ARexx -Alternatively you may be able to get these docs prebuilt from C. +The Amiga::ARexx module allows you to easily create a perl based ARexx +host or to send ARexx commands to other programs. -=head2 B C files +Try C for more info. -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. +=head2 Amiga::Exec -=head2 C docs +The Amiga::Exec module introduces support for Wait(). -can be constructed using C. +Try C for more info. -=head1 BUILD +=head1 BUILDING -Here we discuss how to build Perl under AmigaOS. +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. -=head2 Prerequisites +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. -You need to have the latest B (Amiga Developers Environment) -from ftp://ftp.ninemoons.com/pub/ade/current. -Also, you need a lot of free memory, probably at least 8MB. + stack 2000000 + sh Configure -de + gmake -=head2 Getting the perl source +This will build the default setup that installs under SDK:local/newlib/lib/ -You can either get the latest perl-for-amiga source from Ninemoons -and extract it with: +=head1 CHANGES - tar xvzpf perl-5.004-src.tgz +=over 6 -or get the official source from CPAN: +=item B - http://www.perl.com/CPAN/src/5.0 +=over 2 -Extract it like this +=item Port to Perl 5.22 - tar xvzpf perl5.004.tar.gz +=item Add handling of NIL: to afstat() -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 inheritance of environment variables by subprocesses. -=head2 Making +=item Fix exec, and exit in "forked" subprocesses. - sh configure.gnu --prefix=/ade +=item Fix issue with newlib's unlink, which could cause infinite loops. -Now +=item Add flock() emulation using IDOS->LockRecord thanks to Tony Cook +for the suggestion. - make +=item Fix issue where kill was using the wrong kind of process ID -=head2 Testing +=back -Now run +=item B<27th November 2013> - make test +=over 2 -Some tests will fail. Here is which, and why: +=item Create new installation system based on installperl links +and Amiga protection bits now set correctly. -=over 8 +=item Pod now defaults to text. -=item F, F, F, F +=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. -Check I operations. Failures result from the inability to -emulate some Unixisms with the standard Amiga filesystem. +=back -=item F, F, F, F, - F, F, F +=item B<20th November 2013> -These tests will be skipped because they use the fork() function, which is not -supported under AmigaOS. +=over 2 -=item F +=item Configured to use SDK:Local/C/perl to start standard scripts -The ixemul.library doesn't set the expected values for $0 and $^X. +=item Added Amiga::Exec module with support for Wait() and AmigaOS signal numbers. =back -=head2 Installing the built perl +=item B<10th October 13> -Run +First release of port to 5.16.3. - make install - -=head1 AUTHOR - -Norbert Pueschel, pueschel@imsdd.meb.uni-bonn.de +=back =head1 SEE ALSO -perl(1). +You like this port? See L +for how you can help. =cut