Re: [ANN] luabind 0.9-rc1
liam mail <[email protected]>
| Newsgroups | gmane.comp.lang.lua.bind.user |
|---|---|
| Message-ID | <[email protected]> |
2009/12/10 Daniel Wallin <[email protected]> > I'm happy to announce the first RC of luabind 0.9. There have been a lot > of improvements since 0.8.1. Among the more interesting ones are the > automatic handling of down casts, as well as better smart pointer > support, and of course the improved performance. > > Many thanks to Athena Capital Research who funded a large part of the > development for this release. > > Please test and report problems! > > Source packages available for download at: > > http://sourceforge.net/projects/luabind/files/ > > > User visible changes since 0.8.1 > -------------------------------- > > * Major optimizations. For example, calling member functions should be > close to twice as fast. > > * Can now automatically handle conversion of any pointer like type > that implements a get_pointer() overload. > > * Now handles virtual and multiple inheritance properly. > > * Automatically perform down-casts as well as up-casts when converting > arguments from Lua to C++. > > * When converting from C++ to Lua, polymorphic instances are > automatically cast to their most derived type. > > * Memory optimizations. > > * Added `table<>` object wrapper. Can be used to limit a function > parameter to tables. > > Previously: > > void f(object const& x) > { > // assert that x is table > } > > Now: > > void f(table<object> const& x) > { > } > > * Uses standard luaL_ref() and luaL_unref() functions. This should > simplify integration with other libraries that make use of the > registry. > > * Deprecated the `raw()` converter policy. lua_State* arguments are now > automatically handled by the library. > > * Fixed common problem where objects would reference a garbage > collected coroutine. > > Breaking changes > ---------------- > > * Dropped support for using a custom type_info. > > * `get_const_holder()' was removed, and by extension the automatic > smart_ptr<X> -> smart_ptr<X const>. > > > Changes since 0.8.1: > -------------------- > > Daniel Wallin (100): > Remove a lot of unused code. > Remove unnecessary dependency on Boost.Python. > Don't use boost::function. > Remove a bunch of dead code and unnecessary includes. > Use mpl::vector instead of mpl::list in class_<>. > Simplify parameter deduction code in class_<> template. > Use partial specialization for is_bases<>. > Move "bases<>" definition to class.hpp. > Add missing <stdexcept> include. > Replace ref/unref with luaL_ref/luaL_unref. > Use luaL_ref/luaL_unref in weak_ref. > Add type_info wrapper class. > Add table<> object wrapper. > Fix placeholder macro for GCC4.0. > Replace include with forward declaration. > New instance holders. Can hold instance by any pointer type. > New instance storage implementation. Cleaner and faster. > Add default converter for boost::shared_ptr<>. > Use luaL_ref/luaL_unref instead of old ref() mechanism. > Don't try to return void* from Lua in test. > Add missing LUABIND_API to luabind::open(). > Add test for creating instances in Lua threads. > Add luabind::get_main_thread() API. > Create instance table reference in the main thread. > New recursive overload resolver. > Compute argument indices with converters. > Automatically convert lua_State* arguments. > Test user defined converter that consumes 2 parameters. > Inline more calls when invoking functions. Improves code on GCC. > Cache conversion result from the scoring stage. > Reduce the number of API calls for numeric converters. > Use lua_rawgeti() instead of lua_pushnumber, lua_rawget pair. > Make adopt_policy::match() stateful. > Make const_pointer_converter stateful. > Make shared_ptr_converter stateful. > Fix builtin converter test. All converters need both conversion stages. > Fix tests. Need to contain subconverters. > Add missing detail/ref.hpp include. > New inheritance graph code. > Add make_instance() helper function. > Add tests for new inheritance code. > Add missing <luabind/wrapper_base.hpp> include. > Use add_cast() for wrappers as well. > Handle null pointer in shared_ptr_converter. > Rework local_id allocation in class_id_map. > Fix bug in id allocation. > Make shared_ptr_converter public. > Test object identity with shared_ptr_converter. > Handle NULL smart pointers. > Remove use of conversion_storage. > Test that adopt() leaves a weak pointer in the Lua object. > Hold a weak pointer in instance_holder when ownership is released. > Use false : x : 0 idiom to avoid evaluating x. > Suppress unused variable warning. > Keep overload chain alive in function_object. > Remove old unused table ref member from object_rep. > Store dependency refs directly in the registry. > Update version.hpp for v0.9. > Silence uninitialized variable warning. > Cache conversion result in value_converter. > Update version for 0.9 in Jamroot. > Add test for extending exported classes in Lua. > Associate polymorphic wrapper back reference with the main thread. > Remove some stale code. > Handle returning references to smart pointers. > Allocate storage for instances with object_rep::allocate(). > Add missing LUABIND_API to invoke_context. > Use boost::scoped_ptr<> for pimpl. > Add missing LUABIND_API to class_id_map. > Fix bug where local class ids would become incorrect. > Supress int->bool warnings on MSVC. > Add missing LUABIND_BUILDING define to inheritance.cpp. > Use std::size_t instead of int for dependency count. > Const holder conversion isn't supported any more. Don't test it. > Use lua_tointeger() instead of casting the result of lua_tonumber(). > Suppress a bunch of "unreferenced parameter" warnings. > Suppress MSVC alignment warning (C4121). > Suppress MSVC unreachable code warning. > Suppress MSVC "assignment operator could not be generated" warning. > Make object_rep noncopyable. > Cast to lua_Integer and lua_Number explicitly in converter. > Remove compute_arity(). This isn't used any more. > Revert 5134297. This caused overload ambiguities. > Fix leak in "super" upvalue. > Store main thread lua_State* in shared_ptr_deleter. > Fix class_info() calling lua_typename() with stack index. > Kill old detail::is_class_object() function. > Fix set_instance_value() bug that overwrote class values. > Don't test smart ptr features that have been removed. > docs: Rewrite section on smart pointers. > docs: Remove note about library being in beta phase. > Use lua_pushliteral() where possible. > Don't use lua_tointeger() for unsigned int on MSVC. > Suppress int->bool warnings on MSVC. > Don't leak cast-graph objects. > docs: Add note about functions returning smart pointers. > Accept "nil" in char const* converter. > Always use lua_tonumber() for unsigned int/long. > cast_graph::cast() should return the score as int. > Fix placeholder definitions to match changes in Boost 1.39. > > Evan Wies (3): > Don't crash if class_info() is called on non-luabind objects. > Add Lua function class_names() giving a list of registered types. > Test that class_info() don't crash when passed non-luabind objects. > > Kenny Peng (1): > Address a name conflict with termios.h. > > Nigel Atkinson (1): > Don't use same name for parameter and type. > > -- > Daniel Wallin > BoostPro Computing > http://www.boostpro.com > > > > ------------------------------------------------------------------------------ > Return on Information: > Google Enterprise Search pays you back > Get the facts. > http://p.sf.net/sfu/google-dev2dev > _______________________________________________ > luabind-user mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/luabind-user > Is there a packaging mistake for the 0.9rc1 zip file, I still see the directory inside named luabind-0.8.1 and the speed it almost the same? Liam ------------------------------------------------------------------------------ Return on Information: Google Enterprise Search pays you back Get the facts. http://p.sf.net/sfu/google-dev2dev _______________________________________________ luabind-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/luabind-user