luajit в фаре

Здесь обсуждается всё, что касается макросов.
Post Reply
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 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 в папке фара.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: LuaFAR — библиотека для создания плагинов на языке Lua

Post by Shmuel »

cmd.exe wrote:Таблица скорости работы LuaJIT на x86/x64, в зависимости от версии, проверялось на Intel Core2 E8400 3.0 GHz.
А почему бы не поддержать LuaJIT 2.x Beta? Ведь до PTR уже вроде не далеко? И скорость работы LuaJIT 2.x выше чем у 1.x...
Так-же в 2.x идут разработки в сторону поддержки некоторого функционала от Lua 5.2...
LuaJIT поддерживается, просто надо заменить "стандартную" lua5.1.dll на одноимённую dll от LuaJIT. Единственная трудность - LuaJIT для x64 не может быть собран с помощью MinGW, нужен VS, и соответственно, дополнительные длл-ки для распостранения.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: LuaFAR — библиотека для создания плагинов на языке Lua

Post by Maximus5 »

Хм? кто мешает собрать его без динамической линковки на CRT?
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: LuaFAR — библиотека для создания плагинов на языке Lua

Post by Shmuel »

А можно чуть более развёрнуто?
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: LuaFAR — библиотека для создания плагинов на языке Lua

Post by Maximus5 »

А чего разворачивать? Code generation \ Runtime library -> Multi threaded
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: LuaFAR — библиотека для создания плагинов на языке Lua

Post by Shmuel »

Так, и с каким рантаймом тогда будет работать собранная DLL ? (Я спрашиваю потому, что не имею опыта работы с VS).
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: LuaFAR — библиотека для создания плагинов на языке Lua

Post by Shmuel »

Спасибо, попробую, но где-то смутно помнится, что это может вызывать проблемы.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: LuaFAR — библиотека для создания плагинов на языке Lua

Post by Shmuel »

Ага, вспомнил, проблемы возникают при использовании разных рантаймов в одной аппликации.
Таким образом, для беспроблемной работы (и без дополнительного рантайма) нужно будет собирать всё с помощью VS и всё статически: lua5.1.dll, luafar3.dll и плагины. Не очень-то элегантное решение: дублирование рантайма для каждого плагина.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: LuaFAR — библиотека для создания плагинов на языке Lua

Post by Maximus5 »

Интересно, что-ж там такое понаписано, что разные рантвймы вызывают проблемы 0_0

Почему-то в фаре таких проблем не возникает
User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

Re: LuaFAR — библиотека для создания плагинов на языке Lua

Post by Centaur »

Я не в теме конкретно с Lua, но проблемы с разными рантаймами возникают при неправильной организации выделения/освобождения динамической памяти, а именно, если блок выделен одним рантаймом, а освобождается другим.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: LuaFAR — библиотека для создания плагинов на языке Lua

Post by Shmuel »

Maximus5 wrote:Интересно, что-ж там такое понаписано, что разные рантвймы вызывают проблемы 0_0

Почему-то в фаре таких проблем не возникает
Ну вот я собирал LuaJIT x64 с помощью Windows SDK 7.1, в двух вариантах: динамическая линковка (/MD, зависит от msvcr100.dll) и статическая (/MT). Оба варианта пробовал в работе с библиотеками, собранными MinGW64, т.е. динамически слинкованными с msvcrt.dll. Оба варианта приводят к падениям.
1. Что я делаю не так?
2. Если можешь помочь разобраться, в чём дело, буду весьма признателен.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by NightRoman »

А что с Lua 5.2, почему мы не на нем? Слышал краем уха, что нет JIT компиляции. Но это не проблема, имхо, если где-то *действительно* нужна супер скорость, то можно и на С написать критичный код, а случаев таких либо не будет, либо мизер. В общем, интересно узнать от наших Lua гуру мысли на эту тему. Это интересно и полезно было бы, возможно, и не только к Фару.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Shmuel »

NightRoman wrote:А что с Lua 5.2, почему мы не на нем? Слышал краем уха, что нет JIT компиляции. Но это не проблема, имхо, если где-то *действительно* нужна супер скорость, то можно и на С написать критичный код, а случаев таких либо не будет, либо мизер. В общем, интересно узнать от наших Lua гуру мысли на эту тему. Это интересно и полезно было бы, возможно, и не только к Фару.
1. LuaJIT - это не только скорость, но и наличие встроенной библиотеки FFI. Данная библиотека фактически добавляет Си к Lua, то-есть позволяет из Lua-скриптов делать все те вещи, которые иначе требовали бы написания специальных модулей и прочие приседания.

2. LuaJIT, несмотря на свою полную совместимость с Lua 5.1, уже включает в себя ряд новинок Lua 5.2, дальше будет больше.

3. Lua 5.2 - небольшой шаг вперёд по сравнению с Lua 5.1, и, на мой взгляд, пожертвовать совместимостью с LuaJIT было бы неправильно.

Как сказал автор LuaJIT: "I guess 5.2 will be the 'Vista' of Lua releases."
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by NightRoman »

Спасибо. Разумно. Перед тем, как спросить, погуглил сам немного, но все же интересно было, что именно тут думают об этом.
Post Reply

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