perlamiga
СОДЕРЖАНИЕ
- ИМЯ
- ПРИМЕЧАНИЕ
- СИНОПСИС
- ОПИСАНИЕ
- УСТАНОВКА
- Модули, специфичные для Amiga
- КОНСТРУИРОВАНИЕ
- ИЗМЕНЕНИЯ
- СМОТРИТЕ ТАКЖЕ
ИМЯ
perlamiga - Perl под AmigaOS 4.1
ПРИМЕЧАНИЕ
Это порт Perl 5.22.1, это новый порт и никоим образом не совместим с моими предыдущими портами Perl 5.8 и 5.16.3. Это означает, что вам потребуется переустановить/перестроить все сторонние модули, которые вы установили.
Требуется newlib.library версии 53.28 или выше.
СИНОПСИС
После установки perl вы можете прочитать этот документ следующим образом
sh -c "perldoc perlamiga" или вы можете прочитать его как есть: как README.amiga, или pod/perlamiga.pod.
ОПИСАНИЕ
Предварительные условия для запуска Perl 5.22.1 под AmigaOS 4.1
- AmigaOS 4.1 обновление 6 со всеми применёнными обновлениями от 9 октября 2013 года
-
Самым важным из которых является:
- newlib.library версии 53.28 или выше
- AmigaOS SDK
-
Perl устанавливается в структуру каталогов SDK и ожидает наличия многих инструментов сборки, присутствующих в SDK. Поэтому для наилучших результатов установите SDK в первую очередь.
- abc-shell
-
Если у вас не установлен SDK, вам, по крайней мере, необходимо установить abc-shell или какой-либо другой подходящий порт sh. Это необходимо для выполнения внешних команд и должно быть доступно как 'sh' в вашей переменной среды PATH.
Запуск программ Perl под AmigaOS 4.1
Perl можно запустить из оболочки AmigaOS, но для наилучших результатов следует запускать его под abc-shell. (abc-shell обрабатывает подстановку файлов, расширение шаблонов и устанавливает переменные окружения способом, ожидаемым Perl.)
Например:
New Shell process 10
10.AmigaOS4:> sh
/AmigaOS4>perl path:to/myprog arg1 arrg2 arg3 Abc-shell также может запускать программы через синтаксис #! в начале файла программы, лучше использовать формат #!SDK:Local/C/perl, чтобы оболочка AmigaOS также могла найти perl таким же образом. AmigaOS требует установки бита выполнения сценария для работы этого.
10.AmigaOS4:> sh
/AmigaOS4>myprog arg1 arrg2 arg3 Ограничения Perl под AmigaOS 4.1
- Вложенные программы со склейкой могут аварийно завершиться при запуске из более старых abc-shell
-
abc-shell версии 53.2 имеет ошибку, которая может вызвать сбой в дочерних процессах, используемых для выполнения объединённых программ, если доступна более поздняя версия, вы должны установить её вместо этого.
- Неправильная или непредсказуемая разбор командной строки
-
newlib.library 53.30 и более ранние версии неправильно разбирают последовательности экранирования с косой чертой, например, \" \n \t и т. д., что требует необычного дополнительного экранирования.
- Запуск дочерних процессов с помощью open имеет ограничения
-
open FH, "command |"Дочерние процессы, запущенные с помощью open, используют минимальную функцию popen() и поэтому они не возвращают идентификаторы процессов, используемые с waitpid и т. д.
- Если вы обнаружите другие ограничения или ошибки, сообщите мне.
-
Пожалуйста, сообщайте об ошибках в этой версии perl по адресу andy@broad.ology.org.uk в первую очередь.
УСТАНОВКА
Это руководство предполагает, что вы получили предварительно собранный архив с os4depot.net.
Разархивируйте основной архив во временное местоположение (RAM: подходит).
Выполните предоставленный скрипт установки из оболочки или через его значок.
Не пытайтесь устанавливать вручную.
После установки вы можете удалить временный архив.
Этот подход сохранит ссылки в установке, не создавая дубликатов бинарных файлов.
Если у вас установлены более ранние порты perl 5.16 или 5.8, вы можете переименовать свой исполняемый файл perl в perl516 или perl58 или что-то подобное перед установкой 5.22.1, это позволит вам использовать обе версии одновременно.
Модули, специфичные для Amiga
Amiga::ARexx
Модуль Amiga::ARexx позволяет вам легко создавать Perl-хост ARexx или отправлять команды ARexx в другие программы.
Попробуйте perldoc Amiga::ARexx для получения дополнительной информации.
Amiga::Exec
Модуль Amiga::Exec вводит поддержку Wait().
Попробуйте perldoc Amiga::Exec для получения дополнительной информации.
КОНСТРУИРОВАНИЕ
Чтобы скомпилировать perl под AmigaOS из изменённых исходных кодов, вам понадобится недавняя версия SDK. Рекомендуется версия 53.29, более ранние версии, вероятно, также будут работать.
С помощью Jarkko Hietaniemi система Configure была настроена для работы под abc-shell, поэтому рекомендуемый процесс сборки выглядит следующим образом.
stack 2000000
sh Configure -de
gmake Это создаст стандартную установку, которая устанавливается в SDK:local/newlib/lib/
ИЗМЕНЕНИЯ
- Август 2015
-
- Перенос на Perl 5.22
- Добавить обработку NIL: к afstat()
- Исправить наследование переменных среды дочерними процессами.
- Исправить exec и exit в "разветвленных" дочерних процессах.
- Исправить проблему с unlink newlib, которая могла вызвать бесконечные циклы.
- Добавить эмуляцию flock() с использованием IDOS->LockRecord, спасибо Тони Куку за предложение.
- Исправить проблему, где kill использовал неправильный тип идентификатора процесса
- 27 ноября 2013
-
- Создать новую систему установки, основанную на ссылках installperl и правильно установленных битах защиты Amiga.
- Pod теперь по умолчанию отображается в текстовом формате.
- File::Spec теперь должен распознавать абсолютный путь в стиле Amiga, а также в стиле Unix. Относительные пути всегда должны быть в стиле Unix.
- 20 ноября 2013
-
- Настроены для использования SDK:Local/C/perl для запуска стандартных сценариев
- Добавлен модуль Amiga::Exec с поддержкой Wait() и номеров сигналов AmigaOS.
- 10 октября 2013
-
Первая версия порта на 5.16.3.
СМОТРИТЕ ТАКЖЕ
Нравится этот порт? Посмотрите http://www.broad.ology.org.uk/amiga/ о том, как вы можете помочь.
© 1993–2023 Larry Wall and others
Licensed under the GNU General Public License version 1 or later, or the Artistic License.
The Perl logo is a trademark of the Perl Foundation.
https://perldoc.perl.org/5.38.0/perlamiga