Проблема с .NET + Lua for Windows

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Проблема с .NET + Lua for Windows

Post by NightRoman »

Поставил себе Lua for Windows, хорошая штука для освоения Луа, имхо. И есть куча библиотек. С приятным удивлением обнаружил, что в Луа можно и .NET использовать. Естественно у меня интерес к Фарнет в этом плане. Но я пока полный ламер в Луа, и даже простой пример с .NET не могу запустить (именно из макроса). Прошу помочь советом.

Что делаю. На расширение .lua в Фаре навесил такую ассоциацию

Code: Select all

macro:post dofile[[!\!.!]]
Это работает (уже кому-то пригодится, как способ запускать скрипты, правда, только из панелей, жаль, что комстрока не везде...).

Ну и написал скриптик, который запускаю по этой ассоциации. Пытаюсь делать что-то типа require "CLRPackage" или require "luanet", как в примерах. Не работает, вываливается окно с кучей инфы о том, как оно ищет пакет, но не может найти.

ЖАЛОБА. В сообщениях об ошибках текст отцентрирован (это умолчательное поведение). Нормально для кратких сообщений, но для многострочных смотрится плохо. Просьба подумать об использовании флага выравнивания по левому краю.

Вероятно, у меня среда не сконфигурована, как надо, чтобы грузить эти модули (примеры из Lua for Windows работают без проблем), либо грузить надо иначе. Какие есть советы? Заранее спасибо.

ПС. Это будет прикольно и очень полезно, если окажется, что из макросов Луа можно пользовать Фарнет. Если бы я знал о возможности вызова .NET из Луа раньше, я бы уже давно начал экспериментировать.
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

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

Post by Aidar »

NightRoman wrote: Ну и написал скриптик, который запускаю по этой ассоциации. Пытаюсь делать что-то типа require "CLRPackage" или require "luanet", как в примерах. Не работает, вываливается окно с кучей инфы о том, как оно ищет пакет, но не может найти.
Надо посмотреть, прописаны ли файлы из папки lua в переменной окружения LUA_PATH и файлы clibs в LUA_CPATH.
Пример:

Code: Select all

LUA_PATH=?.lua;C:\LuaForWindows\?.lua
LUA_CPATH=?.dll;C:\LuaForWindows\clibs\?.dll;C:\LuaForWindows\clibs\l?.dll;C:\LuaForWindows\clibs\?51.dll
Вызов:

Code: Select all

-- для lua:
require "lua.CLRPackage"
-- для dll:
if not luanet then require 'luanet' end -- из CLRPackage.lua
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

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

Post by Aidar »

NightRoman wrote:На расширение .lua в Фаре навесил такую ассоциацию

Code: Select all

macro:post dofile[[!\!.!]]
Это работает (уже кому-то пригодится, как способ запускать скрипты, правда, только из панелей, жаль, что комстрока не везде...).
Если интересно, мои ассоциации такие:
На Enter -- внешний вызов
D:\Lib\Lua.exe "!\!.!" %*
На Ctrl-PgDn - внутренний - из плагина LuaFar for Editor
lfe: -r "!.!"
NightRoman wrote:ЖАЛОБА. В сообщениях об ошибках текст отцентрирован (это умолчательное поведение). Нормально для кратких сообщений, но для многострочных смотрится плохо. Просьба подумать об использовании флага выравнивания по левому краю.
В плагине LuaFar for Editor всё нормально, так что и для макросов, наверное, сделают аналогично.
NightRoman wrote:ПС. Это будет прикольно и очень полезно, если окажется, что из макросов Луа можно пользовать Фарнет. Если бы я знал о возможности вызова .NET из Луа раньше, я бы уже давно начал экспериментировать.
Надо только посмотреть, нет ли проблем с luanet.dll . И полезная ссылка: Lua и C/C++/C#.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

NightRoman wrote:Пытаюсь делать что-то типа require "CLRPackage" или require "luanet", как в примерах. Не работает, вываливается окно с кучей инфы о том, как оно ищет пакет, но не может найти.
Один из возможных способов решения - автостартующий макрос, в котором модифицируются величины package.path и package.cpath. Например (пути вымышленные):

Code: Select all

package.path = "c:/luaforwindows/scripts/?.lua;" .. package.path
package.cpath = "c:/luaforwindows/libraries/?.dll;" .. package.cpath
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 »

Aidar, Shmuel
Спасибо за подсказки. Все обязательно попробую, может, не прямо скоро, правда, дела тут насыпались..
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 »

Побился, побился с путями, вроде дошло до загрузки пакета. Но там другие ошибки уже при его загрузке. Думается это ДЛЛ хелл или типа того. У Фарнета в Фаре уже свои дела загружены, может, с ними конфликтует.

Ладно, пока мне это не горит, скорей, спортивный интерес был. Когда-нибудь, может, к этому еще вернусь. Или кто-то за меня придумает, почему бы и нет :)
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

NightRoman wrote:Побился, побился с путями, вроде дошло до загрузки пакета. Но там другие ошибки уже при его загрузке. Думается это ДЛЛ хелл или типа того. У Фарнета в Фаре уже свои дела загружены, может, с ними конфликтует.
Как раз стоило бы это дело продолжить. Причины такого поведения известны (и последнее предположение, скорее всего, неверно).
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 »

Может быть. Но мне не совсем ясно куда копать пока. А поскольку не горит, то откладывается на какое-то время до появления светлых идей.
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

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

Post by Aidar »

1. Содержимое LUA_PATH не подставляется в package.path.
Поэтому, скорее всего, скрипты из LuaForWindows при запуске внутри FAR не работают. И предложенный мной способ решения не сработает.

2. В LuaFAR context заменил LUAFAR_INIT на LUAFAR_PATH.
Пришлось задавать LUAFAR_PATH как
%LUAFAR_DIR%\?.lua;%LUA_PATH%
чтобы подключить содержимое LUA_PATH.

Если это сделано специально, надо бы отметить это.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

Если не горит, ладно. А то я собирался поучаствовать в опытах.
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 »

Наверное, Aidar дело говорит, окружение надо бы подцеплять, наверное.

Но я уже понял, что пути из окружений не цепляются, поэтому устанавливал их прямо в макросе, как Shmuel советовал.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

Aidar wrote:2. В LuaFAR context заменил LUAFAR_INIT на LUAFAR_PATH.
Пришлось задавать LUAFAR_PATH как
%LUAFAR_DIR%\?.lua;%LUA_PATH%
чтобы подключить содержимое LUA_PATH.

Если это сделано специально, надо бы отметить это.
Это действительно сделано специально, но почему LUAFAR_PATH должен зависеть от LUA_PATH? Если кому надо, сделают (вот как ты и сделал).
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 »

Shmuel wrote:Если не горит, ладно. А то я собирался поучаствовать в опытах.
Хорошо, поучаствуй, буду признателен, конечно. Lua for Windows у меня стоит последний с сайта. Что надо сделать, чтобы в макросе отработало хотя бы require 'luanet'? Пока я даже до этого не дошел.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

NightRoman wrote:Наверное, Aidar дело говорит, окружение надо бы подцеплять, наверное.

Но я уже понял, что пути из окружений не цепляются, поэтому устанавливал их прямо в макросе, как Shmuel советовал.
Можно окружением, но это не портабельно.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

NightRoman wrote:
Shmuel wrote:Если не горит, ладно. А то я собирался поучаствовать в опытах.
Хорошо, поучаствуй, буду признателен, конечно. Lua for Windows у меня стоит последний с сайта. Что надо сделать, чтобы в макросе отработало хотя бы require 'luanet'? Пока я даже до этого не дошел.
Ну надо было хотя бы сообщение об ошибке привести. Телепатов же нет.
Post Reply

Return to “Нужна помощь”