Perl 6

Еще раз о сборке Perl 6

За несколько лет истории Perl 6 существовали несколько разных компиляторов, которые считались основными в то или иное время. Соответственно, несколько раз менялся и набор инструкций, которые нужно было выполнить, чтобы получить работающий компилятор.

Ракудо, который на сегодня является единственным компилятором, который развивается, недавно входил в состав виртуальной машины Parrot, но теперь находится в собственном репозитории. Процесс сборки в очередной раз изменился, и теперь он состоит из двух шагов: установки parrot, а затем собственно rakudo.

Установка Parrot

svn co https://svn.parrot.org/parrot/trunk/ parrot
cd parrot
perl Configure.pl
make
make install

(Последний шаг необязателен.) После этого будет установлена виртуальная машина:

# parrot -V
This is parrot version 0.9.0-devel built for i386-linux.
Copyright (C) 2001-2008, The Perl Foundation.

Установка Rakudo

Хотя rakudo и находится в отдельном репозитории, дистрибутив желательно скопировать в каталог parrot/languages (там же находится и каталог perl6, который теперь не потребуется).

cd languages
git clone git://github.com/rakudo/rakudo.git rakudo
cd rakudo
perl Configure.pl
make

В каталоге parrot/languages/rakudo теперь должен появиться файл perl6.pbc — скомпилированный в байт-код компилятор Rakudo. Чтобы запустить интерпретатор Perl 6, нужно передать этот файл на исполнение виртуальной машине:

../../parrot perl6.pbc

Для удобства можно создать командный файл, в который записать нужный вызов (в этом примере parrot находится в каталоге /software/parrot):

cat > /usr/bin/perl6
#!/bin/sh /software/parrot/parrot /software/parrot/languages/rakudo/perl6.pbc "$@"
^D
chmod a+x /usr/bin/perl6

Компилятор собран:

# perl6 -v
This is Rakudo Perl 6, revision 36430 built on parrot 0.9.0-devel for i486-linux-gnu-thread-multi.
# perl6
> .say for 1..3
1
2
3
>

setup, compile, rakudo, parrot — 8 февраля 2009