АнглийскийФранцузскийИспанский

Значок OnWorks

perlbs2000 - Интернет в облаке

Запустите perlbs2000 в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это команда perlbs2000, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


perlbs2000 - сборка и установка Perl для BS2000.

Этот документ нужно обновить, но мы не знаем, что в нем должно быть сказано. Пожалуйста, напишите
комментарии к [электронная почта защищена] <MAILTO:[электронная почта защищена]>.

СИНТАКСИС


Этот документ поможет вам настроить, собрать, протестировать и установить Perl на BS2000 в POSIX.
подсистема.

ОПИСАНИЕ


Это перенесенный Perl для подсистемы POSIX в BS2000 VERSION OSD V3.1A или новее. Это
может работать и на других версиях, но мы начали портировать и тестировать его с 3.1A и
в настоящее время используется версия V4.0A.

Для установки perl вам могут понадобиться следующие программы GNU:

GZIP on BS2000
Мы использовали версию 1.2.4, которую можно было установить "из коробки" с одним выходом из строя во время
"сделать чек".

бизон on BS2000
Yacc, поставляемый с BS2000 POSIX, для нас не работал. Поэтому пришлось использовать зубров. Мы должны
сделайте несколько изменений в perl, чтобы использовать чистый (реентерабельный) синтаксический анализатор bison. Мы использовали
версия 1.25, но нам пришлось добавить несколько изменений из-за EBCDIC. Подробности смотрите ниже
по поводу yacc.

Распаковка Perl Распределение on BS2000
Чтобы извлечь tar-архив ASCII на BS2000 POSIX, вам понадобится файловая система ASCII (мы использовали
точка монтирования / usr / local / ascii для этого). Теперь вы распаковываете архив в формате ASCII.
файловая система без преобразования ввода / вывода:

cd / usr / local / ascii export IO_CONVERSION = NO gunzip </usr/local/src/perl.tar.gz | pax -r

Вы можете проигнорировать сообщение об ошибке для первого элемента архива (это не выглядит
как tar-архив / переход к следующему файлу ...), это только каталог, который будет
в любом случае создается автоматически.

После распаковки архива вы копируете все дерево каталогов в файловую систему EBCDIC.
Эти время использование I / O-преобразование:

cd / USR / местные / SRC IO_CONVERSION = ДА cp -r /usr/local/ascii/perl5.005_02 ./

составление Perl on BS2000
Для BS2000 существует файл "подсказок", который называется hints.posix-bc (потому что posix-bc - это имя ОС.
дается `uname`), который определяет правильные значения для большинства вещей. Основная проблема в том, что
(конечно) набор символов EBCDIC. У нас есть немецкая версия EBCDIC.

Из-за наших проблем с нативным yacc мы использовали GNU bison для генерации чистого
(= реентерабельный) парсер для perly.y. Итак, наш yacc - это действительно следующий скрипт:

----- 8 <----- / usr / local / bin / yacc ----- 8 <----- #! / usr / bin / sh

# Bison как реентерабельный yacc:

# сохраняем параметры: params = "" while [[$ # -gt 1]]; делать
params = "$ params $ 1"
смена сделана

# добавить флаг% pure_parser:

tmpfile = / tmp / bison. $$. y echo% pure_parser> $ tmpfile cat $ 1 >> $ tmpfile

# вызов зубров:

echo "/ usr / local / bin / bison --yacc $ params $ 1 \ t \ t \ t (Чистый парсер)" / usr / local / bin / bison
--yacc $ params $ tmpfile

# очистка:

rm -f $ tmpfile ----- 8 <---------- 8 <-----

Мы по-прежнему используем обычный yacc для a2p.y !!! Мы сделали софтлинк под названием byacc to
различают две версии:

ln -s / usr / bin / yacc / usr / local / bin / byacc

Мы собираем Perl с помощью GNU make. Мы однажды попробовали родной make, и он тоже сработал.

Тестирование Perl on BS2000
У нас все еще есть несколько ошибок во время "make test". Некоторые из них - результат использования зубров.
Отпечатки зубров синтаксический анализатор ошибка вместо синтаксис ошибка, поэтому мы можем их игнорировать. Следующий
В списке показаны наши ошибки, ваши результаты могут отличаться:

op / numconvert ....... НЕОБХОДИМЫЕ тесты 1409-1440 op / regexp ........... FAILED тесты 483, 496
op / regexp_noamp ..... FAILED тесты 483, 496 pragma / overload ..... FAILED тесты 152-153,
170-171 прагма / предупреждения ..... НЕ ВЫПОЛНЕНЫ тесты 14, 82, 129, 155, 192, 205, 207
lib / bigfloat ........ ВЫПОЛНЕННЫЕ тесты 351-352, 355 lib / bigfltpm ........ НЕУДАЧНЫЕ тесты 354-355,
358 lib / complex ......... FAILED тесты 267, 487 lib / dumper .......... FAILED тесты 43, 45
Неудачные тестовые сценарии 11/231, 95.24% в порядке. 57/10595 субтестов не прошли, 99.46% в порядке.

Установка Perl on BS2000
У нас нет nroff на BS2000 POSIX (пока), поэтому мы проигнорировали любые ошибки при установке
документация.

. Perl in Posix-Shell of BS2000
BS2000 POSIX не поддерживает нотацию shebang ("#! / Usr / local / bin / perl"), поэтому у вас есть
вместо этого использовать следующие строки:

: # использовать perl
eval 'exec / usr / local / bin / perl -S $ 0 $ {1 + "$ @"}'
если $ running_under_some_shell;

. Perl in "родные" BS2000
У нас пока нет большого опыта в этом, но попробуйте следующее:

Скопируйте исполняемый файл Perl в BS2000 LLM с помощью bs2cp:

"bs2cp / usr / local / bin / perl 'bs2: perl (perl, l)'"

Теперь вы можете запустить его с помощью следующей команды (SDF):

"/ START-PROG FROM-FILE = * MODULE (PERL, PERL), PROG-MODE = * ANY, RUN-MODE = * ADV"

Сначала вы получите приглашение командной строки BS2000 ('*'). Здесь вы можете ввести свои параметры,
например, "-e 'print" Hello World! \\ n ";'" (обратите внимание на двойную обратную косую черту!) или "-w" и имя
ваш Perl-скрипт. Имена файлов, начинающиеся с "/", ищутся в файловой системе Posix,
другие ищутся в файловой системе BS2000. Вы даже можете использовать подстановочные знаки, если поставите "%"
перед вашим именем файла (например, "-w ​​checkfiles.pl% *. c"). Прочтите ваше руководство по C / C ++ для
дополнительные возможности командной строки (ищите PARAMETER-PROMPTING).

Плавающий точка аномалии on BS2000
Похоже, есть ошибка в реализации с плавающей запятой в системах BS2000 POSIX.
такой, что зовет int () на произведении числа и небольшого числа не является
то же самое, что и звонок int () на частное этого числа и большого числа величины. Для
Например, в следующем коде Perl:

мой $ x = 100000.0;
мой $ y = int ($ x * 1e-5) * 1e5; # '0'
мой $ z = int ($ x / 1e + 5) * 1e5; # '100000'
print "\ $ y равно $ y, а \ $ z равно $ z \ n"; # $ y равно 0, а $ z равно 100000

Хотя можно было бы ожидать, что величины $ y и $ z будут одинаковыми и равными 100000, они
будет отличаться и вместо этого будет 0 и 100000 соответственно.

. ПерлиО и различный кодировок on ASCII и EBCDIC множество
Начиная с версии 5.8 Perl использует новый PerlIO на BS2000. Это позволяет использовать разные
кодировок на канал ввода-вывода. Например, вы можете использовать

используйте Encode;
open ($ f, ">: кодировка (ascii)", "test.ascii");
print $ f "Hello World! \ n";
open ($ f, ">: кодировка (posix-bc)", "test.ebcdic");
print $ f "Hello World! \ n";
open ($ f, ">: кодировка (latin1)", "test.latin1");
print $ f "Hello World! \ n";
open ($ f, ">: кодировка (utf8)", "test.utf8");
print $ f "Hello World! \ n";

чтобы получить два файла, содержащие "Hello World! \ n" в ASCII, EBCDIC, ISO Latin-1 (в этом
пример идентичен ASCII) соответствующий UTF-EBCDIC (в этом примере идентичен нормальному
EBCDIC). Подробности смотрите в документации Encode :: PerlIO.

Поскольку уровень PerlIO внутренне использует необработанный ввод-вывод, все это полностью игнорирует тип вашего
файловая система (ASCII или EBCDIC) и переменная среды IO_CONVERSION. Если хотите
получить старое поведение, что функции ввода-вывода BS2000 определяют преобразование в зависимости от
файловая система PerlIO по-прежнему ваш друг. Вы используете IO_CONVERSION как обычно и говорите Perl,
что он должен использовать собственный уровень ввода-вывода:

экспорт IO_CONVERSION = ДА
экспорт PERLIO = stdio

Теперь ваш IO будет ASCII для разделов ASCII и EBCDIC для разделов EBCDIC. Увидеть
документация PerlIO (без "Encode ::"!) для дальнейших возможностей.

АВТОРЫ


Томас Дорнер

Используйте perlbs2000 онлайн с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

Команды Linux

Ad