Notice: Any messages purporting to come from this site telling you that your password has expired, or that you need to verify your details, confirm your email, resolve issues, making threats, or asking for money, are
spam. We do not email users with any such messages. If you have lost your password you can obtain a new one by using the
password reset link.
Due to spam on this forum, all posts now need moderator approval.
Entire forum
➜ MUSHclient
➜ Lua
➜ Preventing mushclient from using local lua installation
Preventing mushclient from using local lua installation
|
It is now over 60 days since the last post. This thread is closed.
Refresh page
Pages: 1 2
Posted by
| Victorious
(89 posts) Bio
|
Date
| Thu 09 Nov 2017 06:01 PM (UTC) |
Message
| Hi,
I've installed lua 5.1 onto my own system to get luarocks for easier installation of libraries However, mushclient exploded the next time it was restarted because it was using my system's lua interpretor.
Additionally, after removing the path to lua.exe from my system path, it was still using the LUA_PATH and LUA_CPATH variables meant for my local lua install. Is there a way to stop this from happening? | Top |
|
Posted by
| Nick Gammon
Australia (23,133 posts) Bio
Forum Administrator |
Date
| Reply #1 on Fri 10 Nov 2017 04:08 AM (UTC) |
Message
| Exploded? Can you give more details? |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Victorious
(89 posts) Bio
|
Date
| Reply #2 on Fri 10 Nov 2017 04:22 AM (UTC) |
Message
| It was using my installed lua interpretor's LUA_PATH and LUA_CPATH environment variable, which I defined, so when code in mushclient tried loading modules it was not able to find it. | Top |
|
Posted by
| Nick Gammon
Australia (23,133 posts) Bio
Forum Administrator |
Date
| Reply #3 on Fri 10 Nov 2017 06:10 AM (UTC) |
Message
| It would help if you posted error messages, and preferably a minimal example to demonstrate what you are saying. I believe Fiendish uses LuaJIT in the Aardwolf distribution without any problems.
In other words, it is possible to use an external version of Lua. Lua is distributed as a standalone DLL, so it should be possible to substitute another one. As Fiendish has done. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Fiendish
USA (2,534 posts) Bio
Global Moderator |
Date
| Reply #4 on Fri 10 Nov 2017 07:04 AM (UTC) Amended on Fri 10 Nov 2017 07:11 AM (UTC) by Fiendish
|
Message
| I believe Victorious has installed some other distribution of Lua.exe somewhere else, and that MUSHclient is picking up this other installation's search paths (which I assume are set as environment variables?) instead of looking only inside the MUSHclient folder, and Victorious wants MUSHclient to only look inside its own folder. I have no thoughts on this, as I work exclusively within the MUSHclient folder. |
https://github.com/fiendish/aardwolfclientpackage | Top |
|
Posted by
| Nick Gammon
Australia (23,133 posts) Bio
Forum Administrator |
Date
| Reply #5 on Fri 10 Nov 2017 07:30 AM (UTC) |
Message
| You mean Lua.DLL? |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Victorious
(89 posts) Bio
|
Date
| Reply #6 on Fri 10 Nov 2017 07:43 AM (UTC) |
Message
| Yeah, Fiendish described my situation perfectly. Mushclient is picking up on information meant for my own locally installed lua distribution (outside mushclient). Apologies for not being clear. Will post errors soon, if that helps - but its just the standard error messages you get when require fails to find a module, showing you all paths its tried. | Top |
|
Posted by
| Fiendish
USA (2,534 posts) Bio
Global Moderator |
Date
| Reply #7 on Fri 10 Nov 2017 07:52 AM (UTC) Amended on Fri 10 Nov 2017 07:57 AM (UTC) by Fiendish
|
Message
|
Nick Gammon said:
You mean Lua.DLL?
I think I mean Lua.exe, though presumably with its own Lua.dll next to it. I think the only bit that matters here is that Victorious wants MUSHclient to never search for includes outside of its directory no matter what the operating system says. Which, I have to be honest, seems both extremely weird but also contextually pretty reasonable. This is where I go ¯\_(ツ)_/¯ |
https://github.com/fiendish/aardwolfclientpackage | Top |
|
Posted by
| Victorious
(89 posts) Bio
|
Date
| Reply #8 on Fri 10 Nov 2017 08:11 AM (UTC) |
Message
| What I just did was added a LUA_PATH environment variable for my local copy of lua. And this is what happened the next time I restarted mushclient.
Immediate execution
[string "Plugin: SpellcompProducer"]:152: module 'wait' not found:
no field package.preload['wait']
no file 'C:\Users\vic\AppData\Roaming\luarocks\share\lua\5.1\wait.lua'
no file 'C:\Users\vic\AppData\Roaming\luarocks\share\lua\5.1\wait\init.lua'
no file 'c:\lua\share\lua\5.1\wait.lua'
no file 'c:\lua\share\lua\5.1\wait\init.lua'
no file 'C:\Lua\LuaRocks\lua\wait.lua'
no file 'C:\Lua\LuaRocks\lua\wait.lua'
no file 'C:\Lua\LuaRocks\lua\wait\init.lua'
no file '.\wait.dll'
no file 'D:\documents\mushclient\wait.dll'
no file 'D:\documents\mushclient\loadall.dll'
stack traceback:
[C]: in function 'require'
So it is using my LUA_PATH environment variable instead of its own default one for package.path. Lua.exe is also not in my path. | Top |
|
Posted by
| Nick Gammon
Australia (23,133 posts) Bio
Forum Administrator |
Date
| Reply #9 on Fri 10 Nov 2017 10:40 AM (UTC) |
Message
|
Victorious said:
... instead of its own default one ...
What is the "it" in that sentence? I think we are talking at cross-purposes. Nothing has "exploded". You are using your own DLL which appears to be respecting your own environment variables. I'm not sure what it is doing that it shouldn't be. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Fiendish
USA (2,534 posts) Bio
Global Moderator |
Date
| Reply #10 on Fri 10 Nov 2017 09:35 PM (UTC) Amended on Fri 10 Nov 2017 09:51 PM (UTC) by Fiendish
|
Message
|
Nick Gammon said:
Victorious said:
... instead of its own default one ...
What is the "it" in that sentence? I think we are talking at cross-purposes. Nothing has "exploded". You are using your own DLL which appears to be respecting your own environment variables. I'm not sure what it is doing that it shouldn't be.
Victorious wants MUSHclient's Lua DLL to not know about the LUA_PATH system environment variable. The "own DLL" here is, as I understand it, somewhere else, and not associated with MUSHclient.
So there's...
C:\MUSHclient\Lua5.1.dll
And there's...
C:\SomeOtherPath\Lua5.3.dll
which is used by
C:\SomeOtherPath\Lua5.3.exe
And there's...
LUA_PATH=C:\SomeOtherPath\libs;C:\SomeOtherPath\lua
or whatever
And the complaint is that C:\MUSHclient\MUSHclient.exe with its linked C:\MUSHclient\Lua5.1.dll is digging around in C:\SomeOtherPath instead of staying confined to C:\MUSHclient
And the reason for the complaint is that C:\SomeOtherPath\lua has code for Lua 5.3 that doesn't work in Lua 5.1, or maybe uses a different library called "bit" which seems to cause a name collision with MUSHclient's included bit library, or some other problem of a similar nature.
Victorious, is that correct? |
https://github.com/fiendish/aardwolfclientpackage | Top |
|
Posted by
| Nick Gammon
Australia (23,133 posts) Bio
Forum Administrator |
Date
| Reply #11 on Sat 11 Nov 2017 05:57 AM (UTC) |
Message
| I don't think MUSHclient changes the LUA_PATH variable in any way. Can you show where it does? |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Fiendish
USA (2,534 posts) Bio
Global Moderator |
Date
| Reply #12 on Sat 11 Nov 2017 03:25 PM (UTC) Amended on Sat 11 Nov 2017 03:31 PM (UTC) by Fiendish
|
Message
| |
Posted by
| Nick Gammon
Australia (23,133 posts) Bio
Forum Administrator |
Date
| Reply #13 on Sat 11 Nov 2017 09:33 PM (UTC) |
Message
| You mean line 90?
But ... if the defines there are the same as your own compiled defines would be, why do they need to be changed? In any case, since the Lua code is not compiled into MUSHclient, it won't reference those defines anywhere.
Nowhere in MUSHclient is LUA_PATH referenced or changed. It is just something in luaconf.h which is used when compiling Lua. Now if you use your own Lua compile they won't be used at all.
It sounds like Victorious may need to set LUA_PATH early on in using Lua, for example in Global Preferences -> Lua -> Preliminary code. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Nick Gammon
Australia (23,133 posts) Bio
Forum Administrator |
Date
| Reply #14 on Sat 11 Nov 2017 09:35 PM (UTC) |
Message
| Possibly it might also help to put the custom Lua DLL into the same place that MUSHclient has it (ie. the executable folder). |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).
To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.
50,033 views.
This is page 1, subject is 2 pages long: 1 2
It is now over 60 days since the last post. This thread is closed.
Refresh page
top