X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/0e06870bf080a38cda51c06c6612359afc2334e1..8c9009ad13ddadd4e5865ef02a27df15933a7ca7:/README.amiga diff --git a/README.amiga b/README.amiga index 3b2a1bd..41345c1 100644 --- a/README.amiga +++ b/README.amiga @@ -4,294 +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: - - http://www.aminet.net/~aminet/dirs/dev_gg.html +Once perl is installed you can read this document in the following way -=cut + sh -c "perldoc perlamiga" -Contents - - perlamiga - Perl under Amiga OS +or you may read I: either as F, or F. + +=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 - - Prerequisites - - Getting the perl source - - Application of the patches - - Making - - Testing - - Installing the built perl - AUTHOR - SEE ALSO + 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 latest versions -of the following packages from the Aminet archives (http://www.aminet.net/~aminet/): +The most important of which is: - ixemul-bin - ixemul-env-bin - pdksh-bin +=item B -Note also that this is a minimum setup; you might want to add other -packages of B (the I). +=item B -=item B +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. -You need at the very least AmigaOS version 2.0. Recommended is version 3.1. +=item B -=back - -=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 +=back - perl foo arg1 arg2 arg3 +=head2 Starting Perl programs under AmigaOS 4.1 -If you want to specify perl options C<-my_opts> to the perl itself (as -opposed to to your program), use +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 -my_opts foo arg1 arg2 arg3 +For example: -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 + New Shell process 10 + 10.AmigaOS4:> sh + /AmigaOS4>perl path:to/myprog arg1 arrg2 arg3 - 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 -(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.) + 10.AmigaOS4:> sh + /AmigaOS4>myprog arg1 arrg2 arg3 -=head2 Shortcomings of Perl under AmigaOS +=head2 Limitations of Perl under AmigaOS 4.1 -Perl under AmigaOS lacks some features of perl under UNIX because of -deficiencies in the UNIX-emulation, most notably: +=over 6 -=over 4 +=item B -=item * +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 - -tar xvzpf perl-$VERSION-bin.tgz - -(Of course you need lha or tar and gunzip for this.) - -For installation of the Unix emulation, read the appropriate docs. - -=head1 Accessing documentation - -=head2 Manpages - -If you have C installed on your system, and you installed perl -manpages, use something like this: - - man perlfunc - man less - man ExtUtils.MakeMaker - -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 (Unix emulation for Amiga) -from Aminet. + 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-$VERSION-src.tgz - -or get the official source from CPAN: - - http://www.perl.com/CPAN/src/5.0 - -Extract it like this - - tar xvzpf perl-$VERSION.tar.gz - -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.) - -=head2 Making - -=over 4 - -=item * - -remember to use a healthy sized stack (I used 2000000) - -=item * - -your PATH environment variable must include /bin (e.g. ".:/bin" is good) -(or, more precisely, it must include the directory where you have your -basic UNIX utilities like test, cat, sed, and so on) - -=item * - - sh Configure -Dprefix=/ade -Dloclibpth=/ade/lib +=over 6 -=item * +=item B -fix makedepend +=over 2 - In the file 'makedepend' there are three spots like this `$cat ...`: - a for loop near line 75, an egrep near line 161, and a for loop near - line 175. In all those spots using an editor change the $cat to - /bin/cat. +=item Port to Perl 5.22 -=item * +=item Add handling of NIL: to afstat() -now type make depend +=item Fix inheritance of environment variables by subprocesses. - When the make depend has ended load the gnumakefile into - an editor and go to the end of the file. +=item Fix exec, and exit in "forked" subprocesses. - Move upwards in the file until you reach av.o: EXTERN.h - and delete all lines down to # WARNING: Put.... +=item Fix issue with newlib's unlink, which could cause infinite loops. -=item * +=item Add flock() emulation using IDOS->LockRecord thanks to Tony Cook +for the suggestion. -now go to the x2p directory +=item Fix issue where kill was using the wrong kind of process ID - Load the gnumakefile into an editor. +=back - Go to the end moveup until you reach hash.o: EXTERN.h - and delete all lines dowonwards until you reach a line saying +=item B<27th November 2013> - # WARNING: Put nothing.... +=over 2 -=item * +=item Create new installation system based on installperl links +and Amiga protection bits now set correctly. -Now! +=item Pod now defaults to text. - make +=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. =back -=head2 Testing +=item B<20th November 2013> -Now run +=over 2 - make test +=item Configured to use SDK:Local/C/perl to start standard scripts -Some tests will be skipped because they need the fork() function: +=item Added Amiga::Exec module with support for Wait() and AmigaOS signal numbers. -F, F, F, F, F, -F, F - -=head2 Installing the built perl - -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