Great work John!

I'll make an autopackage for this release and update the download page 
on wxlua.sf.net ....

Francesco


John Labenski ha scritto:
> We are pleased to announce the latest release of wxLua.
> 
> -------------------------------------------------------------------------------
> wxLua is a Lua scripting language wrapper around the wxWidgets cross-platform
> GUI library. It consists of an executable for running standalone wxLua scripts
> and a library for extending C++ programs with a fast, small, fully embeddable
> scripting language.
> 
> References:
> http://wxlua.sourceforge.net
> http://www.lua.org
> http://www.wxwidgets.org
> 
> -------------------------------------------------------------------------------
> The wxLua "big picture"
> 
> Lua is an ANSI C compatible scripting language that can load and run
> interpreted scripts as either files or strings. The language itself is very
> dynamic and contains a limited number of data types, mainly numbers, strings,
> and tables. Perhaps the most powerful feature of the Lua language is that the
> tables can be used as either arrays or as hashtables that can contain numbers,
> strings, and/or subtables.
> 
> wxLua adds to this small and elegant language the power of the wxWidgets
> cross-platform GUI library. This incudes the ability to create complex user
> interface dialogs, image manipulation, file manipulation, sockets, displaying
> HTML, and printing to name a few.
> 
> -------------------------------------------------------------------------------
> 
> Notes:
> Major update to the C/C++ API of wxLua. See changelog for more information.
> 
> wxLua-2.8.7.0-MSW-bin.zip : static linked executables for MS Windows
> that do not rely of DLLs.
> 
> wxLua-2.8.7.0-MSW-dll.zip : dynamically linked executables for MS
> Windows including wx.dll for using with Lua's require("wx") function.
> 
> 
> Changes:
>  version 2.8.7.0  (released 02/02/2008)
>  --------------------------------------------------------------------
> 
>  - Streamlined wxLuaBinding::RegisterBinding(...) and remove the bool
>    "registerClasses" since it didn't do anything useful anyway.
>    If there needs to be a way to reregister the wxLua functions it should
>    to be implemented from the ground up.
>  - Renamed the functions wxlua_txxx to wxluaT_xxx to make it easier to
>    search for their usage. The functions in the wxLuaState used to be
>    called just "txxx" and are now called wxluaT_Xxx where the first
>    letter of each word is capitalized for searching.
>  - Made wxluaT_insert(L, idx) not pop the value that it refs since
>    it may not be the one at the top of the stack.
>  - Made wxLuaCheckStack class work a little nicer for easier debugging in C++.
>  - Use wxSIGKILL to kill debuggee process since wxSIGTERM doesn't work in MSW.
>  - wxLuaStackDialog has better search for all columns, collapse and expand
>    tables, and show metatables. It also now uses a virtual wxListCtrl so
>    it's much faster. You can expand both key and values of a table and
>    more information is provided about items wxLua knows about.
>  - Separated the "tags" for C++ classes from "refs" for objects we want a
>    handle on in the Lua registry by putting them in separate tables.
>  - Removed wxlua_pushkey_XXX #defines since we now have a few tables in the
>    registry that we use and those methods were not useful anymore.
>    The lightuserdata keys are now const char* strings with a descriptive name,
>    however it is the mem address that is used as the table key.
>  - wxluaT_newtag() now leaves the created table on the stack.
>  - Removed wxluaT_newweaktag() and wxluaT_settagmethod() since they were
>    not needed anymore.
> 
>  * A large portion of the internal workings of the wxLuaState have been
>    rewritten. All of the data that was stored in wxLuaStateData that might
>    be needed by a function taking a lua_State* is now in the
>    LUA_REGISTRYINDEX. C functions have been added to access these values.
>    The generated bindings no longer need to have "wxLuaState wxlState(L);"
>    since everything can be done with the C functions.
>    The result is that wxLua should be faster.
> 
>  - Applied patches to Lua 5.1.2 #8-11
>      lua_setfenv may crash if called over an invalid object.
>  - Made the garbage collector more aggressive since we push void* pointers
>    but the data behind them may be quite large. Unfortunately there is no
>    mechanism to give a size hint to Lua without modifying Lua.
>    lua_gc(L, LUA_GCSETPAUSE, 120); lua_gc(L, LUA_GCSETSTEPMUL, 400);
>  - Added wxLuaArtProvider with virtual functions to create custom
>    wxArtProviders in Lua.
> 
>  * Allowed using wxObject:DynamicCast() on an object and be able to use the
>    object as both types. The problem was that wxEvent:GetEventObject()
>    returned a wxObject which overwrote the wxWindow (perhaps) that you had as
>    a userdata in Lua already.
>    Additionally, if you delete an object all of the userdata that wrap it
>    have their metatables cleared for safety.
> 
>    Functions renamed since they don't do the same thing or behave the same.
>    wxluaO_istrackedobject -> wxluaO_isgcobject
>    wxluaO_addtrackedobject -> wxluaO_addgcobject
>    wxluaO_removetrackedobject -> wxluaO_deletegcobject
> 
>  - Created a central luauserdata:delete() function for the bindings to reduce
>    code. wxLua_userdata_delete(L)
>  * Changed signature of the function wxLuaState::SetLuaDebugHook() so that
>    the inputs to lua_sethook() are together and in the same order.
>  - Renamed wxLuaCallback to wxLuaEventCallback to make it more clear that
>    it is a callback for the wxEvents using wxEvtHandlers.
> 
>  - Removed wxluabind_removetableforcall(L) used in the bindings to determine
>    if the function was called from the tables used for class constructors.
>    It makes more sense to call an intermediatary function to remove
>    the table before calling the real function.
>  - Removed the wxLuaFunction class since we no longer need it. It was a
>    userdata with a __call metatable to call the real function we want.
>    We now push the actual function or an overload function helper with the
>    wxLuaBindMethod struct as an upvalue to give better error messages.
>    The new way should be faster since it doesn't generate as much garbage.
>  - Added wxlua_argerror(L, stack_idx, type_str) to give a far more
>    informative message from the bindings when the wrong type is an arg to
>    a function.
>  - Renamed WXLUAARG_XXX to WXLUA_TXXX to match LUA_TXXX.
> 
>  * Do not create a separate overload function in the bindings since we can
>    just as easily check for multiple functions using the wxLuaBindMethod
>    and call the generic overload function or just the single function.
> 
>  * Updated the naming conventions of the wxLua C/C++ functions to get rid of
>    the term "tag" which dates back to Lua 4. Lua 5 does not use "tags", but
>    rather metatables to attach functions to userdata in Lua.
>    The new term for the C++ objects that wxLua wraps in Lua userdata and
>    assigns a metatable to are wxLua types.
>    WXLUA_TXXX types < WXLUA_T_MAX correspond to the LUA_TXXX Lua types.
>    wxLua types > WXLUA_T_MAX are types from the bindings and denote a
> class or struct.
>  - Most notably for people who have written their own overrides for their
>    bindings will be that wxLuaState::PushUserTag() is now
> wxluaT_PushUserDataType().
>    Those two functions existed before, but basically did the same thing.
>    The calling arguments of PushUserTag() were taken however and were the
>    reverse of what PushUserDataType() had.
>  - wxluaT_new/get/set/tag() are now wxluaT_new/setmetatable() and
>    wxluaT_type() where the latter works just like lua_type(), but returns
>    one of the wxLua types.
> 
>  - Fix crash in wxListCtrl and wxTreeCtrl::AssignImageList() to use the
>    %ungc tag to release wxLua from deleting the input wxImageList.
>  - Added image sample translated from C++ by Hakki Dogusan.
> 
>  * Changed wxLuaState_Type enum for wxLuaState(lua_State*, wxLuaState_Type)
>    Removed wxLUASTATE_USESTATE and you now | together wxLUASTATE_SETSTATE with
>    wxLUASTATE_OPENBINDINGS if you want the bindings opened.
>    Cleans up the creation of the wxLuaState so a precreated lua_State
>    should be able to be used easier.
>  - Remove poorly named wxLuaState::LuaError() and CheckRunError() and
>    replaced them with the C functions wxlua_errorinfo() and 
> wxlua_LUA_ERR_msg()
>    respectively.
>  - Added wxlua_pushargs(wxChar**, int) for a standard way to push args
>    into Lua.
>  - Copy Lua's print() function to print_lua() instead of simply
>    overwriting it in case someone really wants to use it.
> 
>  - Revised the build system, specially the configure script under Linux which
>    now accepts more options and automatically detects the presence/absence of
>    each wxWidgets library when --enable-wxbind* options are left in "auto" 
> mode
> 
>  * Updated Lua to 5.1.3
> 
>  - Added static bool wxLuaState::sm_wxAppMainLoop_will_run so that Lua code
>    that calls "wx.wxGetApp:MainLoop()" will not do anything. C++ coders
>    should call it if they create a wxLuaState and run Lua code from
>    their wxApp:OnInit() when wxApp:IsMainLoopRunning() returns false.
>    See the apps for usage.
> 
>  * The wxLua type numbers are now generated when the first wxLuaState is 
> created
>    rather then when the bindings are registered into Lua. This means that
>    each wxLua type stays the same for the life of the program no matter what
>    bindings are installed or in what order.
>  - The copy of the wxLuaBindingList in the wxLuaState was removed since it is
>    no longer needed. Renamed the functions static wxLuaBinding::GetBindXXX()
>    to FindBindXXX() since they no longer needed the extra
> wxLuaBindingList parameter
>    and they had the same signature as the existing GetBindXXX() functions.
>    Removed the wxLuaBinding::Clone() function as it is no longer used.
>  - Added wxLuaState::RegisterBinding(wxLuaBinding*) function to register
>    single bindings at a time. You may also reregister bindings, which means
>    that their metatable functions are simple rewritten.
> 
>  - Removed the wxLuaBinding::PreRegister() and PostRegister() functions and
>    made RegisterBinding() virtual
>    Note: wxLuaBinding::RegisterBinding() now leaves the Lua table that the
>    binding objects were installed into on the stack. You must pop it.
>  * The rules.lua for genwxbind.lua now uses wxLuaBinding_class_declaration and
>    wxLuaBinding_class_implementation to replace wxLuaBinding_preregister and
>    wxLuaBinding_postregister. You may now add whatever you like to the class
>    declaration and implementation source code.
> 
>  - Updated bitlib to version 25.
> 
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2008.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
wxlua-users mailing list
wxlua-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wxlua-users

Reply via email to