Hi John,

> Download 2.8.12.1 and try it. I have tested with
> luasocket-2.0.2-lua-5.1.2-Win32-vc8.zip downloaded from Lua binaries
> and it works.

This is huge progress; very close to where I'd like to be. I got the
application working with these binaries (including luasocket) and
almost all the functions I tested are working correctly. The UTF
characters are also displayed and copied correctly.

Couple of things that are not working. Shortcuts in the full screen
mode I reported earlier are not working. Either something has changed
or I did not test them correctly with the previous version.

The other thing that is not working is the debugging for wxwidgets
apps I have, which triggers this "wxLua: Creating a callback function
in a coroutine is not allowed since it will only be called when the
thread is either suspended or dead." message. This seems to be caused
by the fact that I have two main loop in the application. Your earlier
explanation sheds some light on this:

> The logic to trigger this error is very
> simple, when wxLua starts it saves a pointer to the lua_State* in the
> Lua registry. When an event callback is created the given lua_State*
> is compared with the original lua_State* in the registry and if they
> don't match you must be in a coroutine which means that Lua will give
> you an error about running code in a "suspended or dead coroutine" so
> instead of that rather cryptic message given later I error out earlier.

It seems like the check is too aggressive, as this functionality has
been working fine before in many different situations (I have never
had a single problem with it) and this is a deal breaker for me. As
far as I can tell, any debugger that executes the main script in a
separate co-routine (as mine does) will get this error.

You can check it with this simple script:

local func,err = loadfile('minimal.wx.lua')
if err then error(err) end
local ok, err = coroutine.resume(coroutine.create(func))
if err then error(err) end

If you run this, you will get "minicoro.lua:4: minimal.wx.lua:49:
wxLua: Creating a callback function in a coroutine is not allowed
since it will only be called when the thread is either suspended or
dead.", which should not really happen.

> ps. Note that I don't think you ever got error messages from wx.dll...
> When lua.exe is run it does a pcall() on the input file and so it gets
> the error messages, I don't believe it's even possible for wxLua to
> get them. I think what you got are print() statements? Though, it has
> been a long time since 2.8.10 and I have not retested it. I have
> reinstated the error handler, but it's never called, but it's there
> and will pop up a dialog if it ever gets called. Run your program from
> a DOS prompt and the print and error messages will be printed to the
> console.

This part seems to be working as I expect it to work (or even better).
I do get a window with an error AND the same error reported to the
console, which is good. I won't attach the screenshot, but you can see
the same message I'm talking about if you take "minimal.wx.lua" sample
and change wx.wxMessageBox to wx.wxMessageBox1 (anything that causes
run-time error will do). I get a messageBox with "wxLua Runtime Error"
title and this error message (also reported to stdout):

wxLua Runtime Error:
Lua: Error while running chunk
minimal.wx.lua:79: attempt to call field 'wxMessageBox1' (a nil value)
stack traceback:
        minimal.wx.lua:79: in function <minimal.wx.lua:78>
        [C]: in function 'MainLoop'
        minimal.wx.lua:96: in main chunk
        [C]: ?

So, my main issue is that check for coroutine that breaks my debugging
and some other functionality. Thank you!

Paul.

On Sat, Jun 30, 2012 at 1:48 PM, John Labenski <jlaben...@gmail.com> wrote:
> Ok... lets start fresh and not try to debug the old stuff.
>
> Download 2.8.12.1 and try it. I have tested with
> luasocket-2.0.2-lua-5.1.2-Win32-vc8.zip downloaded from Lua binaries
> and it works.
>
> This is how I did it, put luasocket's bin/ mime/ socket/ dirs as
> subdirs of the wxLua/bin dir (or anywhere, but then adjust
> LUA_PATH...) then you can run :
>
> lua myapp.lua
> wxLua myapp.lua
> wxLuaFreeze myapp.lua
> wxLuaEdit myapp.lua
>
> where myapp.lua has
>
> ------
> require("socket")
> print("Is socket here ? ", socket)
>
> require("wx")
> print(print, print_lua)
>
> f = wx.wxFrame(wx.NULL, -1, "Hello")
> f:Show()
> wx.wxGetApp():MainLoop()
> ------
>
> Success!
>
> Please read here to understand what lua51.dll and lua5.1.dll are all about:
>
> http://wxlua.svn.sourceforge.net/viewvc/wxlua/trunk/wxLua/modules/luaproxydll/proxydll.c?revision=100&view=markup
>
> DO NOT COPY someone else's lua51.dll into the wxLua bin dir, it will never 
> work.
>
> ps. Note that I don't think you ever got error messages from wx.dll...
> When lua.exe is run it does a pcall() on the input file and so it gets
> the error messages, I don't believe it's even possible for wxLua to
> get them. I think what you got are print() statements? Though, it has
> been a long time since 2.8.10 and I have not retested it. I have
> reinstated the error handler, but it's never called, but it's there
> and will pop up a dialog if it ever gets called. Run your program from
> a DOS prompt and the print and error messages will be printed to the
> console.
>
> Regards,
>    John
>
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> _______________________________________________
> wxlua-users mailing list
> wxlua-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wxlua-users

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
wxlua-users mailing list
wxlua-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wxlua-users

Reply via email to