2015-12-14 2 views
0

Я нахожусь в OS X 10.11.1 с последней версией X-кода. Я установил Lua 5.3 сегодня из источника без проблем. Кажется, работает правильно. Никаких ошибок при установке luarocks, а затем их использования для установки moonscript. Однако, как луна и moonc дают следующую ошибку при вызове из командной строки:Ошибка запуска командной строки Moonscript с Lua 5.3 на OSX

$ moon 
/usr/local/bin/lua: /usr/local/share/lua/5.3/alt_getopt.lua:24: attempt to call a nil value (global 'module') 
stack traceback: 
    /usr/local/share/lua/5.3/alt_getopt.lua:24: in main chunk 
    [C]: in function 'require' 
    /usr/local/lib/luarocks/rocks/moonscript/0.4.0-1/bin/moon:2: in main chunk 
    [C]: in ? 

Глядя на alt_getopt.lua показывает, что он действительно с помощью ныне несуществующей «модуль» ключевых слов. Проект GitHub для этого модуля, кажется, мертв без каких-либо действий в течение последних 3 лет.

Как мне перейти к работе Moonscript в моей системе?

ответ

2

Да, как вы отметили, module устарел и довольно долго работал с более ранними версиями из-за переключателей совместимости.

Вы можете прокомментировать строку 24 в alt-getopt и добавить следующую строку в конец файла alt-getopt.lua: return {get_opts = get_opts, get_ordered_opts = get_ordered_opts}.

Это должно сделать этот модуль совместимым с Lua 5.2/5.3 (я еще не проверял, есть ли другие проблемы совместимости с использованием Lua 5.3).

+0

Спасибо, Пол! Я также должен был изменить строку 2 луны на «alt_getopt = require (« alt_getopt »). Это фиксировало как луну, так и луну. –

+0

Правильно, я должен был упомянуть об этом. Лучше быть' local alt_getopt = require ("alt_getopt") ';). –

Смежные вопросы