Dear subscribers, another update has been made. There's been a few changes to the interface to make it more consistent and easier to use. However, after receiving user feedback, I have kept backwards compatibility with 1.9.x. Though this backwards compatibility is only available if the library and host application is compiled with the preprocessor define AS_DEPRECATED. The methods that have changed are: - RegisterObjectBehaviour(), it only accepts true object behaviours now, i.e. the ones that you register with the first parameter naming the object. Another method, RegisterGlobalBehaviour(), has been created for the other behaviour functions. - GetFunctionName(), GetFunctionDeclaration(), GetGlobalVarName(), GetGlobalVarDeclaration(), GetImportedFunctionDeclaration(), and GetExceptionString() has changed to return const char * instead so that you no longer have to allocate the buffer before. The pointer that is returned is shared between these functions so you shouldn't store it for later use. - All methods that return a string, also take an optional parameter that allow the host to get the length of the returned string directly instead of calling strlen(). I've also started to add support for multithreading. Currently this only works on Win32 and with MSVC++, but I plan on expanding this to Linux (I'll need help on that one) and MinGW. I got some strange problem when trying to support multithreading with MinGW, the code compiled ok, but when testing it would crash at inlogical places, places that haven't been changed. I think it is somehow connected to including windows.h or STL map in the code. Anyway, the support that was added for multithreading was: - All reference counting is now threadsafe - asGetActiveContext() is working correctly - The shared string (mentioned above) is working by keeping a string buffer for each thread - Created a new global function asThreadCleanup() that should be called before terminating any secondary threads that have accessed the library. If it is not called the local data allocated for the thread will be cleaned up at application exit. Note, it is not necessary to call this function in a single threaded environment. It should now be possible to use AngelScript and access the engine and modules from multiple threads at the same time. It still very experimental, but at least rudimentary support for multithreading is now available. Please let me know if you find some trouble or wish to help me provide support for Linux and MinGW as well. I've also made a bug fix in the optimization. I had mistakedly optimized subtractions as if they were associative, this could make calculations with subtractions give the wrong result. Many thanks to Lennart Denninger for helping me find that bug. Regards, Andreas Jönsson Author of AngelScript AngelScript - AngelCode Scripting Library http://www.angelcode.com/angelscript/ http://www.angelcode.com/forums/