| Author |
Message |
|
|
jangle wrote:Кстати, а почему количество экспортируемых функций не изменилось? Или часть их, теперь просто "заглушки"?
Этих функций всего три (luaX_init , luaY_parser и luaU_dump) они никогда не экспортировались напрямую, и теперь да - они заглушки. Попытка вызвать функции которые их используют, приведет к сообщению "parser not loaded" или "dumper not loaded" соответственно.
|
 |
|
|
jangle wrote:А кстати, если выкинуть парсер (допустим у меня работает только скомпилированный байт-код Lua) DLL можно уменьшить? Не сможешь собрать и выложить такую "обрезанную" Lua5.1.dll ?
Разница получилась меньше обещанных 35% - 84K
|
 |
|
|
jangle wrote:
Если можно, выложите эту DLL которая 92.5 K сюда в форум.
Без проблем, но та, которая 93K требует msvcr90.dll. MINGW'шная работает со стандартной msvcrt.dll - но получается побольше - 100К.
|
 |
|
|
jangle wrote:На сайте только исходники, мне их скомпилировать нечем. Где взять готовые бинарники?
А в гугле набирать "lua binaries" не пробовали?
http://luabinaries.luaforge.net/download.html
Если вас не устраивает размер то можно взять таки бесплатный компилятор MSVC Express и перекомпилировать с оптимизацией по размеру (результат 92.5 K), можно при компиляции выкинуть пару модулей, например парсер ~30% dll, math и.т.д
|
 |
|
|
Как сделать так, чтобы все что было определено в первом скрипте было локальным (или как после выполнения удалить все то, что было определено в нем, но при этом сохранить все то, что было определено до вызова)?
То, чего вам хочется практически полностью соответствует функциональности модулей из Луа 5.1.
http://www.inf.puc-rio.br/~roberto/pil2/chapter15.pdf (глава из PIL2 доступная свободно)
Модули меняют environment функции, как вам уже тут посоветовали, но прозрачно для пользователя, плюс умеют наследовать глобальный environment.
Итак, в начало каждого скрипта нужно добавить:
а вызов обернуть так:
Проверяем:
|
 |
|
|
'arg' - это deprecated {...}
Передать аргументы в файл очень просто, поскольку Lua делает любой загруженный chunk функцией, только тут нужен не 'dofile', a 'loadfile'
результат:
|
 |
|
|
|
|