luajit в фаре

Здесь обсуждается всё, что касается макросов.
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

luajit в фаре

Post by John Doe »

Начиная с 17.05.2012 в дистрибутив фара входит LuaJITJIT-компилятор языка Lua.

LuaJIT предоставляет несколько расширений, среди которых наиболее примечательным является библиотека FFI.

Вопросы по использованию FFI задаём тут: http://forum.farmanager.com/viewtopic.php?f=57&t=8418
  • Внимание: LuaJIT 2.0 на Windows 2000 не работает!
    В этом случае можно использовать lua5.1.dll от Lua 5.1.5, взять из старых дистрибутивов ночных сборок (билды до 3416).
    Или же можно скачать с svn файл lua5.1.rio.dll нужной разрядности, и заменить им lua5.1.dll в папке фара.
2useven10
Posts: 5231
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 315 times

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

Post by 2useven10 »

Latest post of the previous page:

Просто было препятствие в виде надобности майкрософтовских рантаймов на x64
Это тоже не такое страшное препятствие. Вообще можно было бы делать вариант сборки фар
с рантаймом в длл, если есть ещё десяток плагинов, которые тоже можно так собрать, можно
вдвое сократить объём бинарников, даже если положить туда рантаймовские библиотеки.
Тем более что отдельные упёртые личности так и делают :)
tstr
Posts: 559
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 20 times
Been thanked: 9 times

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

Post by tstr »

а вместе с LuaJIT мы получим FFI library "из коробки"?
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

Почему в будущем времени? Всё уже свершилось пару дней назад.
tstr
Posts: 559
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 20 times
Been thanked: 9 times

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

Post by tstr »

в найтли который на сайте уже увидел LuaJIT, но на него оба плагина не обновляли.
спасибо.
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

Новый плагин обновляет, если вручную плюсик поставить.
Но да, сам не предлагает, потому что номер билда не менялся (хотя наверно мог бы и по дате ориентироваться)
User avatar
Wave
Posts: 1887
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

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

Post by Wave »

Дважды пробовал обновить ФАР после 3410 и оба раза при старте вылезает куча табличек типа
D:\TOOLS\Shells\FAR\Profile\Macros\scripts\Common.lua:61: invalid
escape sequence near '"Common: вставить дату'

В первый раз я просто откатился обратно «потом буду разбираться» + «там же опять какие-то переделки в луа, закончатся — тогда обновлюсь». В общем, где можно сжато и кратко узнать, как править макросы. Ругань, допустим, на строчку (собственно, мне осталось поправить только её)
'\{\{\n' ..
или
description = "Common: вставить дату\время"; (допустим, здесь сообразил, что нужно сдублировать слеш)
Пользуюсь ФАРом больше 20 лет © собирательный.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

Wave wrote:В общем, где можно сжато и кратко узнать, как править макросы.
После замены Lua на LuaJIT некоторые баги в скриптах, которые "стандартный" Lua глотал, LuaJIT не пропускает. И обычно выдаёт вполне адекватное сообщение, по которому можно понять, в чём ошибка состоит.

Другими словами: править надо только баги в ваших макросах, больше ничего.
В случае затруднений - обращайтесь с конкретным вопросом.
User avatar
Wave
Posts: 1887
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

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

Post by Wave »

'\{\{\n' как поправить это? Одинарные кавычки на двойные пробовал менять. Слеши перед скобками пробовал убирать.
Пользуюсь ФАРом больше 20 лет © собирательный.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

Wave wrote:'\{\{\n' как поправить это? Одинарные кавычки на двойные пробовал менять. Слеши перед скобками пробовал убирать.
Полагаю, что если убрать слеши перед скобками, ошибка исчезнет.
Но я не знаю, зачем эти слеши: приведите кусок макроса побольше, если не секретный.
User avatar
Wave
Posts: 1887
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

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

Post by Wave »

Блин, ненавижу ситуацию «не работало, потом само заработало». Сорри за беспокойство.
Пользуюсь ФАРом больше 20 лет © собирательный.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: luajit в фаре

Post by Shmuel »

На днях выяснилось, что LuaJIT 2.0 содержит вызовы функции GetModuleHandleEx, которой нет на Windows 2000, другими словами, LuaJIT 2.0 на Windows 2000 не работает.

На мой взгляд, можно было бы поместить lua5.1.dll ("классическую", не от LuaJIT) в Addons, и там же указать, что на Windows 2000 нужно скопировать её в %farhome% вместо той, что там лежит.

Мнения?
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Итератор вместо far.RecursiveSearch

Post by John Doe »

gotar wrote: Кто нибудь превращал far.RecursiveSearch в итератор?
Это было бы несложно сделать с помощью корутин.
И помниться когда-то даже в обсуждении промелькнуло, что в luajit возможно преодолеть границу между C и lua-кодом.
Или всё не так просто?
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Итератор вместо far.RecursiveSearch

Post by Shmuel »

John Doe wrote: когда-то даже в обсуждении промелькнуло, что в luajit возможно преодолеть границу между C и lua-кодом.
Или всё не так просто?
Именно в случаях, подобных данному, это невозможно. Попробуйте.
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Итератор вместо far.RecursiveSearch

Post by John Doe »

Пробовал ранее, безуспешно, но перечитав старое обсуждение предположил что это может зависеть от флагов при сборке.
Shmuel wrote: Именно в случаях, подобных данному, это невозможно.
А в каких случаях тогда luajit позволят больше, чем lua 5.1?
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Итератор вместо far.RecursiveSearch

Post by Shmuel »

John Doe wrote: А в каких случаях тогда luajit позволят больше, чем lua 5.1?
Чем пересказывать, лучше процитировать:
LuaJIT extensions wrote:The LuaJIT VM is fully resumable. This means you can yield from a coroutine even across contexts, where this would not possible with the standard Lua 5.1 VM: e.g. you can yield across pcall() and xpcall(), across iterators and across metamethods.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Для тех, кому может быть интересно: LuaJIT требуются добровольцы

Post by Shmuel »

Last edited by Guest on Sun 02 Aug, 2015 14:34, edited 3 times in total.
Reason: Дополнен Заголовок Темы
Post Reply

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