lflua — "юникодный Lua-интерпретатор"
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
lflua — "юникодный Lua-интерпретатор"
Приложен "юникодный Lua-интерпретатор" lflua.exe, который динамически слинкован не только с lua5.1.dll, но и с luafar3.dll. Интерпретатор работает как стандартный lua.exe, но обладает дополнительными возможностями:
* дополнительные библиотеки: bit64, unicode, win
* юникодная версия библиотеки io
* юникодные версии функций loadfile, require, package.loadlib
Работа данных библиотек и функций описана в мануале LuaFAR. Интерпретатор является самостоятельной аппликацией, то-есть работает независимо от Фара. Ограничение: интерфейс командной строки - не юникодный.
* дополнительные библиотеки: bit64, unicode, win
* юникодная версия библиотеки io
* юникодные версии функций loadfile, require, package.loadlib
Работа данных библиотек и функций описана в мануале LuaFAR. Интерпретатор является самостоятельной аппликацией, то-есть работает независимо от Фара. Ограничение: интерфейс командной строки - не юникодный.
- Attachments
-
- lfjit-2.1.0-beta3.7z
- (15.25 KiB) Downloaded 147 times
-
- lfjit-2.0.5.7z
- (24.97 KiB) Downloaded 190 times
-
- lflua.7z
- Юникодный Lua-интерпретатор
- (5.61 KiB) Downloaded 332 times
Last edited by Shmuel on Tue 08 Aug, 2017 12:51, edited 1 time in total.
LuaFAR — библиотека для создания плагинов на языке Lua
В Win10x64ent из под FARx86 работает, а из под FARx64 не запускается: "Ошибка при запуске приложения (0c000007b)".Shmuel wrote: Приложен "юникодный Lua-интерпретатор" lflua.exe
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
LuaFAR — библиотека для создания плагинов на языке Lua
Естественно, надо расположить lflua.exe в одной папке с библиотеками от x86.
Или так: (не проверял, сообщите какой из двух рабочий)
LuaFAR — библиотека для создания плагинов на языке Lua
Оба работают! Виноват, поспешил: нормально работает только первый вариант [lflua64.exe]. (Соответственно, попеременно переименовывал их в lflua.exe.) Большое спасибо!
Поясните, пожалуйста, что в данном случае имеется ввиду?Естественно, надо расположить lflua.exe в одной папке с библиотеками от x86.
Я (как по инструкции) кладу lflua.exe в %farhome%.
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
LuaFAR — библиотека для создания плагинов на языке Lua
lflua.exe использует библиотеки lua5.1.dll, lua51.dll, luafar3.dll.
Если вы кладёте 32-битный lflua.exe в папку с 64-битными dll, то ничего не сработает.
Если же разместить lflua.exe в одной папке с dll из дистрибутива far x86, то можно вызывать и из far x64.
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
LuaFAR — библиотека для создания плагинов на языке Lua
Эта зависимость есть у lflua.exe по ссылке в шапке.
Если собрать новый, то не будет.
LuaFAR — библиотека для создания плагинов на языке Lua
Посмотрел как это работает в FARx64, запущенном из под Win10x64ent, и убедился, что Вы правы:
"старый" lflua.exe, работающий в FARx86, может работать и в x64, но только если рядом с ним лежат также и "старые" lua5.1.dll, lua51.dll, luafar3.dll (непременно все три).
Благодарю Вас за полезную информацию и за новый lflua.exe!
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
LuaFAR — библиотека для создания плагинов на языке Lua
А вот это прелюбопытно.
Так себя ведёт lflua собранный с помощью tdm64 (32-битная версия аналогично, и не имеет значения используется ли lua.c или luajit.c).
В чём может быть проблема я понятия не имею.
Если же собирать mingw-64, то такой проблемы нет.
Но есть другая: не получается собрать 64-битную версию luajit.c:
Code: Select all
D:/Development/LuaJIT-2.0.4/src/lj_arch.h:319:2: error: #error "Need a C compiler with native exception handling on x64"
#error "Need a C compiler with native exception handling on x64"
^
Makefile64jit:20: recipe for target 'luajit.o' failed
(update: есть ещё SEH, но для компиляции нужна x64-машина, которой у меня нет)
P.S.
В приложенном архиве рабочие lfjit.exe, lflua.exe, lflua64.exe.
По описанным выше причинам lfjit64.exe нет, но врядли это проблема.
- Attachments
-
- lflua.7z
- (16.73 KiB) Downloaded 156 times
lflua — "юникодный Lua-интерпретатор"
Спасибо! Очень любопытно посмотреть.
Сегодня под руками у меня были только машины с 32-разрядными системами.
Поэтому наблюдал пока только работу "lfjit.exe" и "lflua.exe".
Возможно, из-за скудности материала, скармлимового им, разницу в их работе я не увидел. Обе работали одинаково хорошо (и с .lua, и с .moon).
Обе программы не требовали наличия "lua5.1.dll".
Позже намерен проверить работу всех трёх программ в 64-разрядной винде.
Сегодня под руками у меня были только машины с 32-разрядными системами.
Поэтому наблюдал пока только работу "lfjit.exe" и "lflua.exe".
Возможно, из-за скудности материала, скармлимового им, разницу в их работе я не увидел. Обе работали одинаково хорошо (и с .lua, и с .moon).
Обе программы не требовали наличия "lua5.1.dll".
Позже намерен проверить работу всех трёх программ в 64-разрядной винде.
- John Doe
- Бюрократ
- Posts: 13861
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
lflua — "юникодный Lua-интерпретатор"
Смысла нет.
Возможно незначительная разница проявится при интерактивном использовании интерпретатора (REPL).
Ключи командной строки немного отличаются:
Code: Select all
usage: lfjit.exe [options]... [script [args]...].
Available options are:
-e chunk Execute string 'chunk'.
-l name Require library 'name'.
-b ... Save or list bytecode.
-j cmd Perform LuaJIT control command.
-O[opt] Control LuaJIT optimizations.
-i Enter interactive mode after executing 'script'.
-v Show version information.
-E Ignore environment variables.
-- Stop handling options.
- Execute stdin and stop handling options.
Code: Select all
usage: lflua.exe [options] [script [args]].
Available options are:
-e stat execute string 'stat'
-l name require library 'name'
-i enter interactive mode after executing 'script'
-v show version information
-- stop handling options
- execute stdin and stop handling options
lflua — "юникодный Lua-интерпретатор"
Благодарю за полезную информацию! Будем осваивать.John Doe wrote:Возможно незначительная разница проявится при интерактивном использовании интерпретатора (REPL).
Ключи командной строки немного отличаются
Мозгом то я это предполагал. Но таков уж у меня менталитет, что вместе с тем надо мне и на практике ещё попробовать, опыт получить.
И, разумеется, Вы были правы: в 64 системе все три программы работают отлично (и из под x86-го Фара, и из под x64-го).
При этом ввиду того же менталитета я на основе luacheck_cmdline.lua сделал себе добавочный префикс luacheckJ: соответственно для последующих опытов и с lfjit.exe.
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
lflua — "юникодный Lua-интерпретатор"
В шапку добавлен файл lfjit-2.1.0-beta3.7z, содержащий обе версии (x86 и x64) интерпретатора.
Last edited by Shmuel on Tue 08 Aug, 2017 12:53, edited 1 time in total.