Порядок загрузки макрофайлов

Здесь обсуждается всё, что касается макросов.
tstr
Posts: 559
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 20 times
Been thanked: 9 times

Порядок загрузки макрофайлов

Post by tstr »

может быть просто гарантированно первым какой-нибудь модуль или макрос выполнять, не так как сейчас - скопом макросы и модули, в алфавитном порядке?
Shmuel
Posts: 6839
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: LuaMacro — Lua как язык макросов

Post by Shmuel »

tstr wrote:может быть просто гарантированно первым какой-нибудь модуль или макрос выполнять, не так как сейчас - скопом макросы и модули, в алфавитном порядке?
1. Модули не загружаются и не исполняются, покуда их явно не вызвали, разве вы не в курсе? Если, например, модуль вызывается из 3-х макросов, то покуда какой-либо из этих макросов не будет исполнен (а не только загружен), модуль исполняться не будет.

2. Вообще-то макросы при старте только загружаются, а не выполняются, поэтому не должно иметь значения, в каком порядке. Если же у вас есть код, который исполняется при загрузке макросов - поместите его в один макрофайл и организуйте в нём нужную вам последовательность действий.
tstr
Posts: 559
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 20 times
Been thanked: 9 times

Re: LuaMacro — Lua как язык макросов

Post by tstr »

спасибо за разъяснения, картина для меня прояснилась.
было не очевидно что исполнение кода из макрофайла будет ранее чем исполнение автостартующих макросов.

у себя использую такой код, для настройки необходимых параметров
tstr
Posts: 559
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 20 times
Been thanked: 9 times

Re: LuaMacro — Lua как язык макросов

Post by tstr »

Shmuel wrote:
tstr wrote:может быть просто гарантированно первым какой-нибудь модуль или макрос выполнять, не так как сейчас - скопом макросы и модули, в алфавитном порядке?
1. Модули не загружаются и не исполняются, покуда их явно не вызвали, разве вы не в курсе? Если, например, модуль вызывается из 3-х макросов, то покуда какой-либо из этих макросов не будет исполнен (а не только загружен), модуль исполняться не будет.

2. Вообще-то макросы при старте только загружаются, а не выполняются, поэтому не должно иметь значения, в каком порядке. Если же у вас есть код, который исполняется при загрузке макросов - поместите его в один макрофайл и организуйте в нём нужную вам последовательность действий.
вот сейчас spell.lua грузит библиотеку с помощью ffi.load раньше чем я в своём макрофайле меняю путь где искать библиотеки. пока переименовал свой макрофайл так, чтобы он обрабатывался и исполнялся раньше...
Shmuel
Posts: 6839
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: LuaMacro — Lua как язык макросов

Post by Shmuel »

tstr wrote:вот сейчас spell.lua грузит библиотеку с помощью ffi.load раньше чем я в своём макрофайле меняю путь где искать библиотеки. пока переименовал свой макрофайл так, чтобы он обрабатывался и исполнялся раньше...
Автор может это поправить (или вы сами).
ffi.load работает независимо от package.cpath, поэтому ваш путь ему должен быть до лампочки.
2useven10
Posts: 5232
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 315 times

Re: LuaMacro — Lua как язык макросов

Post by 2useven10 »

Никто не мешает сделать загрузку длл по полному пути.
tstr
Posts: 559
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 20 times
Been thanked: 9 times

Re: LuaMacro — Lua как язык макросов

Post by tstr »

Shmuel wrote:
tstr wrote:вот сейчас spell.lua грузит библиотеку с помощью ffi.load раньше чем я в своём макрофайле меняю путь где искать библиотеки. пока переименовал свой макрофайл так, чтобы он обрабатывался и исполнялся раньше...
Автор может это поправить (или вы сами).
ffi.load работает независимо от package.cpath, поэтому ваш путь ему должен быть до лампочки.
там не только долампочковый package.cpath , там и

Code: Select all

win.SetEnv("PATH", win.GetEnv("PATH")..(";%s\\lib.%s"):format(macros,arch) )
2useven10 wrote:Никто не мешает сделать загрузку длл по полному пути.
можно, в своих скриптах так и буду делать.
как я уже сказал, на данный момент проблема обойдена. это действует до следующего залётного чужого скрипта с исполнением кода при загрузке макросов, который будет исполнен ранее моего. было бы соглашение о очередности загрузки - переделывать бы не пришлось.
Shmuel
Posts: 6839
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: LuaMacro — Lua как язык макросов

Post by Shmuel »

tstr wrote:там не только долампочковый package.cpath , там и

Code: Select all

win.SetEnv("PATH", win.GetEnv("PATH")..(";%s\\lib.%s"):format(macros,arch) )
А можно ссылочку на сообщение, где мы с вами про PATH говорили?
User avatar
John Doe
Бюрократ
Posts: 13861
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: LuaMacro — Lua как язык макросов

Post by John Doe »

Речь не о PATH конкретно, а о каком-то определённом порядке выполнения скриптов.

P.S.
В общем-то он и сейчас более-менее понятен: всё в алфавитном порядке, вначале Macros/Scripts, а потом дальше в глубину подпапок.
tstr
Posts: 559
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 20 times
Been thanked: 9 times

Re: LuaMacro — Lua как язык макросов

Post by tstr »

Shmuel wrote:
tstr wrote:там не только долампочковый package.cpath , там и

Code: Select all

win.SetEnv("PATH", win.GetEnv("PATH")..(";%s\\lib.%s"):format(macros,arch) )
А можно ссылочку на сообщение, где мы с вами про PATH говорили?
так мы сейчас и о package.cpath не говорили, а говорили о очерёдности и о выносе исполняемого кода в отдельный файл , пример которого включая PATH я и приводил.
John Doe wrote:В общем-то он и сейчас более-менее понятен: всё в алфавитном порядке, вначале Macros/Scripts, а потом дальше в глубину подпапок.
алфавиты, как и локали - вообще штука нетривиальная... )
при сортировке по имени файла небуквенные "(~_#-" символы в начале имени файла сортируются по-одному, код из них запускается по-другому.
User avatar
John Doe
Бюрократ
Posts: 13861
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: LuaMacro — Lua как язык макросов

Post by John Doe »

Не надо полагаться на алфавит.
Просто зарезервируйте корень для скриптов инициализации, а прочие скрипты кладите в подпапки.

Я не утверждаю что это хорошо и правильно, но работает ведь
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Re: LuaMacro — Lua как язык макросов

Post by Smitis »

tstr wrote:алфавиты, как и локали - вообще штука нетривиальная... )
при сортировке по имени файла небуквенные "(~_#-" символы в начале имени файла сортируются по-одному, код из них запускается по-другому.
По-моему, используя символы и цифры очень легко обеспечить нужный порядок загрузки.
У меня есть три скрипта, имена которых начинаются с двух символов подчёркивания - они грузятся самым первыми.
И ещё пяток с одного символа подчёркивания - они грузятся во вторую очередь.
Всё отлично работает.
Разум когда-нибудь победит.
Shmuel
Posts: 6839
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: LuaMacro — Lua как язык макросов

Post by Shmuel »

Никакого упорядочивания запуска в ближайшем будущем не предвидится (по крайней мере я не собираюсь этого делать). Однако, чтобы не нужны были финты с подпапками (хотя идея - конструктивная), можно определить фиксированное имя файла (типа autoexec.lua) и исполнять его первым, а остальные - как раньше.
tstr
Posts: 559
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 20 times
Been thanked: 9 times

Re: LuaMacro — Lua как язык макросов

Post by tstr »

Shmuel wrote:Никакого упорядочивания запуска в ближайшем будущем не предвидится (по крайней мере я не собираюсь этого делать). Однако, чтобы не нужны были финты с подпапками (хотя идея - конструктивная), можно определить фиксированное имя файла (типа autoexec.lua) и исполнять его первым, а остальные - как раньше.
как вариант (попадалось не раз в луа) - init.lua . любое заявленное имя было бы достаточно.
Smitis wrote:
tstr wrote:алфавиты, как и локали - вообще штука нетривиальная... )
при сортировке по имени файла небуквенные "(~_#-" символы в начале имени файла сортируются по-одному, код из них запускается по-другому.
По-моему, используя символы и цифры очень легко обеспечить нужный порядок загрузки.
У меня есть три скрипта, имена которых начинаются с двух символов подчёркивания - они грузятся самым первыми.
И ещё пяток с одного символа подчёркивания - они грузятся во вторую очередь.
Всё отлично работает.
а на моей системе код из них выполняется в последнюю очередь. так что догадки без официальных соглашений - они до первого залетевшего дятла...
User avatar
John Doe
Бюрократ
Posts: 13861
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Re: LuaMacro — Lua как язык макросов

Post by John Doe »

Shmuel wrote:можно определить фиксированное имя файла (типа autoexec.lua) и исполнять его первым, а остальные - как раньше.
Может не файл а папку?
Post Reply

Return to “Обсуждение макросов”