1If you read this file _as_is_, just ignore the funny characters you 2see. It is written in the POD format (see perlpod manpage) which is 3specially designed to be readable as is. 4 5=head1 NAME 6 7perlamiga - Perl under AmigaOS 4.1 8 9=head1 NOTE 10 11This is a port of Perl 5.22.1, it is a fresh port and not in any way 12compatible with my previous ports of Perl 5.8 and 5.16.3. This means 13you will need to reinstall / rebuild any third party modules you have 14installed. 15 16newlib.library version 53.28 or greater is required. 17 18=head1 SYNOPSIS 19 20Once perl is installed you can read this document in the following way 21 22 sh -c "perldoc perlamiga" 23 24or you may read I<as is>: either as F<README.amiga>, or F<pod/perlamiga.pod>. 25 26=cut 27 28 NAME 29 SYNOPSIS 30 DESCRIPTION 31 - Prerequisites 32 - Starting Perl programs under AmigaOS 33 - Shortcomings of Perl under AmigaOS 34 INSTALLATION 35 CHANGES 36 37=head1 DESCRIPTION 38 39=head2 Prerequisites for running Perl 5.22.1 under AmigaOS 4.1 40 41=over 6 42 43=item B<AmigaOS 4.1 update 6 with all updates applied as of 9th October 2013> 44 45The most important of which is: 46 47=item B<newlib.library version 53.28 or greater> 48 49=item B<AmigaOS SDK> 50 51Perl installs into the SDK directory structure and expects many of the 52build tools present in the SDK to be available. So for the best results 53install the SDK first. 54 55=item B<abc-shell> 56 57If you do not have the SDK installed you must at least have abc-shell 58installed or some other suitable sh port. This is required to run 59external commands and should be available as 'sh' in your path. 60 61=back 62 63=head2 Starting Perl programs under AmigaOS 4.1 64 65Perl may be run from the AmigaOS shell but for best results should be 66run under abc-shell. (abc-shell handles file globbing, pattern 67expansion, and sets up environment variables in the UN*Xy way that 68Perl expects.) 69 70For example: 71 72 New Shell process 10 73 10.AmigaOS4:> sh 74 /AmigaOS4>perl path:to/myprog arg1 arrg2 arg3 75 76Abc-shell can also launch programs via the #! syntax at the start of 77the program file, it's best use the form #!SDK:Local/C/perl so that 78the AmigaOS shell may also find perl in the same way. AmigaOS requires 79the script bit to be set for this to work 80 81 10.AmigaOS4:> sh 82 /AmigaOS4>myprog arg1 arrg2 arg3 83 84=head2 Limitations of Perl under AmigaOS 4.1 85 86=over 6 87 88=item B<Nested Piped programs can crash when run from older abc-shells> 89 90abc-shell version 53.2 has a bug that can cause crashes in the 91subprocesses used to run piped programs, if a later version is 92available you should install it instead. 93 94=item B<Incorrect or unexpected command line unescaping> 95 96newlib.library 53.30 and earlier incorrectly unescape slashed escape 97sequences e.g. \" \n \t etc requiring unusual extra escaping. 98 99=item B<Starting subprocesses via open has limitations> 100 101 open FH, "command |" 102 103Subprocesses started with open use a minimal popen() routine and 104therefore they do not return pids usable with waitpid etc. 105 106=item If you find any other limitations or bugs then let me know. 107 108Please report bugs in this version of perl to andy@broad.ology.org.uk 109in the first instance. 110 111=back 112 113=head1 INSTALLATION 114 115This guide assumes you have obtained a prebuilt archive from os4depot.net. 116 117Unpack the main archive to a temporary location (RAM: is fine). 118 119Execute the provided install script from shell or via its icon. 120 121You B<must not> attempt to install by hand. 122 123Once installed you may delete the temporary archive. 124 125This approach will preserve links in the installation without creating 126duplicate binaries. 127 128If you have the earlier ports perl 5.16 or 5.8 installed you may like 129to rename your perl executable to perl516 or perl58 or something 130similar before the installation of 5.22.1, this will allow you to use 131both versions at the same time. 132 133=head1 Amiga Specific Modules 134 135=head2 Amiga::ARexx 136 137The Amiga::ARexx module allows you to easily create a perl based ARexx 138host or to send ARexx commands to other programs. 139 140Try C<perldoc Amiga::ARexx> for more info. 141 142=head2 Amiga::Exec 143 144The Amiga::Exec module introduces support for Wait(). 145 146Try C<perldoc Amiga::Exec> for more info. 147 148=head1 BUILDING 149 150To build perl under AmigaOS from the patched sources you will need to 151have a recent version of the SDK. Version 53.29 is recommended, 152earlier versions will probably work too. 153 154With the help of Jarkko Hietaniemi the Configure system has been tweaked to 155run under abc-shell so the recommend build process is as follows. 156 157 stack 2000000 158 sh Configure -de 159 gmake 160 161This will build the default setup that installs under SDK:local/newlib/lib/ 162 163=head1 CHANGES 164 165=over 6 166 167=item B<August 2015> 168 169=over 2 170 171=item Port to Perl 5.22 172 173=item Add handling of NIL: to afstat() 174 175=item Fix inheritance of environment variables by subprocesses. 176 177=item Fix exec, and exit in "forked" subprocesses. 178 179=item Fix issue with newlib's unlink, which could cause infinite loops. 180 181=item Add flock() emulation using IDOS->LockRecord thanks to Tony Cook 182for the suggestion. 183 184=item Fix issue where kill was using the wrong kind of process ID 185 186=back 187 188=item B<27th November 2013> 189 190=over 2 191 192=item Create new installation system based on installperl links 193and Amiga protection bits now set correctly. 194 195=item Pod now defaults to text. 196 197=item File::Spec should now recognise an Amiga style absolute path as well 198as an Unix style one. Relative paths must always be Unix style. 199 200=back 201 202=item B<20th November 2013> 203 204=over 2 205 206=item Configured to use SDK:Local/C/perl to start standard scripts 207 208=item Added Amiga::Exec module with support for Wait() and AmigaOS signal numbers. 209 210=back 211 212=item B<10th October 13> 213 214First release of port to 5.16.3. 215 216=back 217 218=head1 SEE ALSO 219 220You like this port? See L<http://www.broad.ology.org.uk/amiga/> 221for how you can help. 222 223=cut 224