zg 30.09.2012 03:26:20 +0200 - build 2851
1. слияние с проектом Spring (https://github.com/shmuz/Spring).
в связи с этим вместо встроенного макроязыка используется скриптовый язык Lua 5.1 (http://www.lua.org).
после перехода на Lua: macroapi_manual.ru.chm.
(Мануал весьма лаконичен, вместо описания функции старого макроязыка приведены ссылки на устаревший раздел
John Doe wrote: которая у нас беспардонно переопределена.
Полагаю, что не беспардонно, а вполне осмысленно.
LuaMacro — Lua как язык макросов
Posted: Thu 18 Jun, 2015 14:33
by John Doe
Shmuel wrote:
John Doe wrote: которая у нас беспардонно переопределена.
Полагаю, что не беспардонно, а вполне осмысленно.
Будь моя воля, то я бы переосмыслил, т.к. из-за совпадения имени со штатной функцией lua нередко возникают проблемы.
LuaMacro — Lua как язык макросов
Posted: Thu 18 Jun, 2015 14:50
by Shmuel
У меня - редко (даже не помню, когда было в последний раз).
Но дело не в этом: в процессе перехода на Lua приходилось принимать множество решений за относительно короткое время. Естественно, невозможно было в ста процентах случаев попадать в яблочко. А дальше уже менять что-либо стало затруднительно из-за обратной совместимости.
LuaMacro — Lua как язык макросов
Posted: Thu 18 Jun, 2015 16:43
by John Doe
Я взял себе за правило в макросах всегда использовать mf.print, на всякий случай.
И есть связанный вопрос, по следующему фрагменту из api.lua:
Все 7 функций дублируются в mf и в _G.
Однако любопытно почему для eval,msgbox,prompt "первична" таблица _G, а для прочих — mf?
P.S.
Вопрос конечно отвлечённый, но не совсем, например функция printf использует _G.print, что будет иметь значение, пожелай я для каких-то целей переопределить _G.print
LuaMacro — Lua как язык макросов
Posted: Thu 18 Jun, 2015 16:50
by Shmuel
John Doe wrote: Однако любопытно почему для eval,msgbox,prompt "первична" таблица _G, а для прочих — mf?
Просто сделано неединообразно, никакой причины другой не существует.
John Doe wrote: функция printf использует _G.print, что будет иметь значение, пожелай я для каких-то целей переопределить _G.print
Я бы printf выбросил, практика показывает, что ею никто не пользуется (и я тоже). Но кто знает, сейчас выбросишь, а завтра шум поднимется.
LuaMacro — Lua как язык макросов
Posted: Thu 18 Jun, 2015 16:57
by John Doe
Shmuel wrote: Но кто знает, сейчас выбросишь, а завтра шум поднимется.
Чем раньше выбросишь, тем меньше вероятность что кто-то успеет использовать.
LuaMacro — Lua как язык макросов
Posted: Thu 18 Jun, 2015 16:59
by sToLp
John Doe wrote:я лишь предположил причину странного сообщения у sToLp
╔══════════════════════════════════════════════ LuaMacro ══════════════════════════════════════════════╗
║ U:\FarLce\plugins\luamacro\macrotest.lua:1404: assertion failed! ║
║ stack traceback: ║
║ [C]: in function 'assert' ║
║ U:\FarLce\plugins\luamacro\macrotest.lua:1404: in function 'test_AdvControl_Window' ║
║ U:\FarLce\plugins\luamacro\macrotest.lua:1495: in function 'test_AdvControl' ║
║ U:\FarLce\plugins\luamacro\macrotest.lua:1582: in function 'test_luafar' ║
║ U:\FarLce\plugins\luamacro\macrotest.lua:1638: in function 'test_all' ║
║ U:\FarLce\Profile\Macros\scripts\tst_lua\macrotest.lua:13: in function <U:\FarLce\Profile\Macros\ ║
║ scripts\tst_lua\macrotest.lua:11> ║
╟──────────────────────────────────────────────────────────────────────────────────────────────────────╢
║ { OK } ║
╚══════════════════════════════════════════════════════════════════════════════════════════════════════╝
LuaMacro — Lua как язык макросов
Posted: Thu 18 Jun, 2015 17:00
by Shmuel
John Doe wrote: Чем раньше выбросишь, тем меньше вероятность что кто-то успеет использовать.
Да скорее всего уже успели.
Но можно поставить её "на счётчик" на полгода, а в мануале пометить как deprecated.
LuaMacro — Lua как язык макросов
Posted: Thu 18 Jun, 2015 17:03
by Shmuel
sToLp wrote: Однако и после деинсталляции StackTracePlus запуск macrotest.lua приводит к сообщению об ошибке
Поскольку у вас это воспроизводится (а у меня нет), то вам и карты в руки для дальнейшего исследования.
LuaMacro — Lua как язык макросов
Posted: Thu 18 Jun, 2015 17:05
by John Doe
sToLp wrote: Однако и после деинсталляции StackTracePlus
StackTracePlus влиял только на то, что вместо вывода сообщения о реальной ошибке сам падал (пытаясь использовать функцию print).
Как починить StackTracePlus указано в его теме.
Shmuel wrote: Но можно поставить её "на счётчик" на полгода
Поддерживаю.
LuaMacro — Lua как язык макросов
Posted: Thu 18 Jun, 2015 17:56
by sToLp
Восстановил StackTracePlus по инструкции в его теме.
После этого сообщение от macrotest.lua