Erlang был уже установлен:
$dpkg -l|grep erlang
ii erlang 1:13.b.3-dfsg-2ubuntu2 Concurrent, real-time, distributed function
ii erlang-appmon 1:13.b.3-dfsg-2ubuntu2 Erlang/OTP application monitor
ii erlang-asn1 1:13.b.3-dfsg-2ubuntu2 Erlang/OTP modules for ASN.1 support
ii erlang-base 1:13.b.3-dfsg-2ubuntu2 Erlang/OTP virtual machine and base applica
ii erlang-common-test 1:13.b.3-dfsg-2ubuntu2 Erlang/OTP application for automated testin
ii erlang-debugger 1:13.b.3-dfsg-2ubuntu2 Erlang/OTP application for debugging and te
ii erlang-dev 1:13.b.3-dfsg-2ubuntu2 Erlang/OTP development libraries and header
[... many more]
Erlang, кажется, работает:
$ erl
Erlang R13B03 (erts-5.7.4) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]
Eshell V5.7.4 (abort with ^G)
1>
Я загрузил lfe с GitHub и проверил 0.5.2:
git clone http://github.com/rvirding/lfe.git
cd lfe
git checkout -b local0.5.2 e207eb2cad
$ configure
configure: command not found
$ make
mkdir -p ebin
erlc -I include -o ebin -W0 -Ddebug +debug_info src/*.erl
#erl -I -pa ebin -noshell -eval -noshell -run edoc file src/leex.erl -run init stop
#erl -I -pa ebin -noshell -eval -noshell -run edoc_run application "'Leex'" '"."' '[no_packages]'
#mv src/*.html doc/
Должно быть что-то глупое, которое я пропустил: o
$ sudo make install
make: *** No rule to make target `install'. Stop.
$ erl -noshell -noinput -s lfe_boot start
{"init terminating in do_boot",{undef,[{lfe_boot,start,[]},{init,start_it,1},{init,start_em,1}]}}
Crash dump was written to: erl_crash.dump
init terminating in do_boot ()
Существует ли пример, как я создал бы привет мировой исходный файл и компиляцию и выполнил бы ее?
Нет, вы ничего не упустили. Makefile в LFE "менее чем совершенен" и его следует игнорировать, он будет улучшен в следующем выпуске. В качестве компенсации все необходимые файлы уже скомпилированы, а файлы .beam находятся в каталоге ebin
. Поскольку он не является частью OTP, я не думаю, что его нужно туда устанавливать.
Самый простой способ справиться с этим - создать частный каталог библиотек erlang и указать на него переменную окружения ERL_LIBS. Затем просто бросить туда весь каталог LFE. При запуске erlang сервер кода автоматически добавит директорию lfe/ebin
в путь, и файлы .beam будут автоматически найдены и загружены. Это будет работать с любым пакетом, содержащим каталог ebin. Это также работает в Windows. Итак:
~/erlang/lib
export ERL_LIBS=~/erlang/lib
Когда вы запустите erlang, вы увидите /Users/rv/erlang/lib/lfe/ebin
(или где он у вас находится) в пути кода (code: get_path()
). После этого вы также сможете запустить оболочку LFE напрямую с помощью
erl -noshell -noinput -s lfe_boot start
В будущем появятся lfe
и lfe.bat
, которые будут это делать.
Как и в случае с erlang, для редактирования LFE подойдет любой текстовый редактор. Для emacs есть режим LFE, который все еще довольно прост, но работает. Пока нельзя запустить LFE в окне. В ближайшее время. Лучший способ включить его - поместить следующее в файл .emacs:
;; LFE mode.
(setq load-path (cons "/Users/rv/erlang/lib/lfe/emacs" load-path))
(require 'lfe-start)
В lfe/examples
есть несколько файлов примеров, все они должны работать. В lfe/test/visual
находится куча моих тестовых файлов, которые были включены в качестве примеров. Для компиляции LFE файла из обычной оболочки erlang сделайте:
lfe_comp:file("foo").
l(foo). %No autloload here, do this to ensure loading
а из оболочки LFE сделайте:
(c '"foo") ;This will autoload
В lfe/docs
есть куча документации, которая довольно точна, но user_guide.txt
нуждается в расширении. Существует также группа Google для LFE по адресу
http://groups.google.se/group/lisp-flavoured-erlang
, которая содержит некоторые интересные обсуждения, и люди написали довольно много в вики LFE на github.
Вот, пожалуй, и все. Свяжитесь со мной, если/когда у вас возникнут дополнительные вопросы.