4

I would like to debug my application using ZeroBraneStudio 1.4 with my own lua interpreter (5.1) on Windows 7.

I set the interpreter in user.lua as

path.lua = '<PATH_OWN_INTERPRETER>'

my_app.lua has the following as the first line

package.path = package.path .. ';../CommonScripts/?.lua'
print(package.path)

which prints

;.\?.lua;<PATH_OWN_INTERPRETER>\lua\?.lua;<PATH_OWN_INTERPRETER>\lua\?\init.lua;<PATH_OWN_INTERPRETER>\?.lua;<PATH_OWN_INTERPRETER>\?\init.lua;./?.lua;./?/init.lua;./lua/?.lua;./lua/?/init.lua;<PATH_ZBS>\lualibs/?/?.lua;<PATH_ZBS>\lualibs/?.lua;<PATH_ZBS>\lualibs/?/?/init.lua;<PATH_ZBS>\lualibs/?/init.lua;../CommonScripts/?.lua

When I start debugging, the following error occurs.

<PATH_ZBS>\lualibs/ssl.lua:19: module 'ssl.x509' not found:
    no field package.preload['ssl.x509']
    no file '.\ssl\x509.lua'
    no file '<PATH_OWN_INTERPRETER>\lua\ssl\x509.lua'
    no file '<PATH_OWN_INTERPRETER>\lua\ssl\x509\init.lua'
    no file '<PATH_OWN_INTERPRETER>\ssl\x509.lua'
    no file '<PATH_OWN_INTERPRETER>\ssl\x509\init.lua'
    no file './ssl\x509.lua'
    no file './ssl\x509/init.lua'
    no file './lua/ssl\x509.lua'
    no file './lua/ssl\x509/init.lua'
    no file '<PATH_ZBS>\lualibs/ssl\x509/ssl\x509.lua'
    no file '<PATH_ZBS>\lualibs/ssl\x509.lua'
    no file '<PATH_ZBS>\lualibs/ssl\x509/ssl\x509/init.lua'
    no file '<PATH_ZBS>\lualibs/ssl\x509/init.lua'
    no file '../CommonScripts/ssl\x509.lua'
    no file '.\ssl\x509.dll'
    no file '.\ssl\x50951.dll'
    no file '<PATH_OWN_INTERPRETER>\ssl\x509.dll'
    no file '<PATH_OWN_INTERPRETER>\ssl\x50951.dll'
    no file '<PATH_OWN_INTERPRETER>\clibs\ssl\x509.dll'
    no file '<PATH_OWN_INTERPRETER>\clibs\ssl\x50951.dll'
    no file '<PATH_OWN_INTERPRETER>\loadall.dll'
    no file '<PATH_OWN_INTERPRETER>\clibs\loadall.dll'
    no file '<PATH_ZBS>\bin/ssl\x509.dll'
    no file '<PATH_ZBS>\bin/clibs/ssl\x509.dll'
    no module 'ssl.x509' in file '<PATH_OWN_INTERPRETER>\ssl.dll'
stack traceback:
    [C]: in function 'require'
    <PATH_ZBS>\lualibs/ssl.lua:19: in main chunk
    [C]: in function 'require'
    <PATH_OWN_INTERPRETER>\ssl\https.lua:10: in main chunk
    [C]: in function 'require'
    ../CommonScripts/Class2.lua:36: in main chunk
    [C]: in function 'require'
    ../CommonScripts/Class1.lua:40: in main chunk
    [C]: in function 'require'
    my_app.lua:48: in main chunk

I have the following line in Class2.lua:36

local https = require'ssl.https'

It seems that the ZBS is mixing up the directories of built in Lua interpreter with the one that I would like to use.

How can I prevent this?

yigitsoy
  • 41
  • 3

2 Answers2

0

@EgorSkriptunoff is correct in his comment: You have <PATH_OWN_INTERPRETER>\ssl.dll, which doesn't seem to have ssl.x509 module (no module 'ssl.x509' in file '<PATH_OWN_INTERPRETER>\ssl.dll') and don't have <PATH_OWN_INTERPRETER>\ssl.lua, so the Lua version of the module is loaded from ZeroBrane Studio folders, but the binary part of the module is loaded from your Lua folders and is missing (for some reason x509 component). You need to use both (Lua and binary) components from the same source.

Paul Kulchenko
  • 25,884
  • 3
  • 38
  • 56
0

Apparently when the lua path in user.lua is set as

path.lua = '<PATH_OWN_INTERPRETER>'

It is expanded by ZeroBrane Studio to

<PATH_OWN_INTERPRETER>\lua\?.lua;
<PATH_OWN_INTERPRETER>\lua\?\init.lua;
<PATH_OWN_INTERPRETER>\?.lua;
<PATH_OWN_INTERPRETER>\?\init.lua;

In my own interpreter, ssl is located at <PATH_OWN_INTERPRETER>\lua\ssl\ssl.lua with is not included in the list above.

So, my solution was to define LUA_PATH as environmental variables so that I get

<PATH_OWN_INTERPRETER>/?.lua;
<PATH_OWN_INTERPRETER>/lua/?.lua;
<PATH_OWN_INTERPRETER>/lua/?/?.lua;

in the path.

yigitsoy
  • 41
  • 3