luajit в фаре

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

luajit в фаре

Post by John Doe » Wed 18 Apr, 2012 20:03

Начиная с 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: 5867
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 215 times

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

Post by Shmuel » Wed 18 Apr, 2012 20:13

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: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

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

Post by Maximus5 » Wed 18 Apr, 2012 20:20

Хм? кто мешает собрать его без динамической линковки на CRT?

Shmuel
Posts: 5867
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 215 times

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

Post by Shmuel » Wed 18 Apr, 2012 20:24

А можно чуть более развёрнуто?

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

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

Post by Maximus5 » Wed 18 Apr, 2012 20:28

А чего разворачивать? Code generation \ Runtime library -> Multi threaded

Shmuel
Posts: 5867
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 215 times

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

Post by Shmuel » Wed 18 Apr, 2012 20:31

Так, и с каким рантаймом тогда будет работать собранная DLL ? (Я спрашиваю потому, что не имею опыта работы с VS).


Shmuel
Posts: 5867
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 215 times

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

Post by Shmuel » Wed 18 Apr, 2012 20:38

Спасибо, попробую, но где-то смутно помнится, что это может вызывать проблемы.

Shmuel
Posts: 5867
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 215 times

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

Post by Shmuel » Wed 18 Apr, 2012 20:56

Ага, вспомнил, проблемы возникают при использовании разных рантаймов в одной аппликации.
Таким образом, для беспроблемной работы (и без дополнительного рантайма) нужно будет собирать всё с помощью VS и всё статически: lua5.1.dll, luafar3.dll и плагины. Не очень-то элегантное решение: дублирование рантайма для каждого плагина.

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

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

Post by Maximus5 » Wed 18 Apr, 2012 20:59

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

Почему-то в фаре таких проблем не возникает

User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 1 time

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

Post by Centaur » Thu 19 Apr, 2012 03:30

Я не в теме конкретно с Lua, но проблемы с разными рантаймами возникают при неправильной организации выделения/освобождения динамической памяти, а именно, если блок выделен одним рантаймом, а освобождается другим.

Shmuel
Posts: 5867
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 215 times

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

Post by Shmuel » Sat 21 Apr, 2012 13:00

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

Почему-то в фаре таких проблем не возникает
Ну вот я собирал LuaJIT x64 с помощью Windows SDK 7.1, в двух вариантах: динамическая линковка (/MD, зависит от msvcr100.dll) и статическая (/MT). Оба варианта пробовал в работе с библиотеками, собранными MinGW64, т.е. динамически слинкованными с msvcrt.dll. Оба варианта приводят к падениям.
1. Что я делаю не так?
2. Если можешь помочь разобраться, в чём дело, буду весьма признателен.

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 11 times
Contact:

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

Post by NightRoman » Sat 06 Oct, 2012 16:23

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

Shmuel
Posts: 5867
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 215 times

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

Post by Shmuel » Sat 06 Oct, 2012 17:28

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: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 11 times
Contact:

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

Post by NightRoman » Sun 07 Oct, 2012 06:18

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

User avatar
zg
zero-gravity
Posts: 5585
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 91 times
Contact:

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

Post by zg » Sun 07 Oct, 2012 09:27

на самом деле luafar собирается для lua 5.2.

Post Reply

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