Work in progressYou can always find the latest version of AngelScript in the SVN on SourceForge.net. There you can browse the repository online and download a tarball with all the code for revision of choice.
If you prefer to use an SVN client to download the code, point your client to the following address:
Version 2.28.1 WIP - 2013/12/04
- Bug fixes
- Fixed improper warning of used types when releasing engine and having circular references between registered types (Thanks Jason Goepel)
- Fixed memory leak on registering opAssign twice for the same object type (Thanks Jason Goepel)
- Compiler will not used enum values from registered enum types if the module doesn't have access to it
- Fixed assert failure in Execute when forgetting to set the object on a class method call (Thanks simps)
- Compiler now uses the default args declared in derived methods instead of the default args in base method (Thanks Aaron Baker)
- Fixed the position reported for errors while compiling global variables
- Compiler wasn't searching parent namespaces when resolving the symbol for class inheritance (Thanks Agnis)
- Defined default arg for asSFuncPtr constructor to allow trivial instanciation (Thanks _Vicious_)
- Added verification to avoid use of context from a different engine to call functions (Thanks GGLucas)
- Removed some more unused code in AS_NO_COMPILER mode
- Optimized compiler performance with faster lookups (Thanks GGLucas)
- Added check against attempts to register multiple list factories (Thanks Jason Goepel)
- Compiler is able to resolve ambiguous enum values if it can determine the enum type from the destination (Thanks Jason Goepel)
- Slightly reduced memory consumption as virtual functions no longer store the default args
- Linux with ARM now supports native calling conventions for both soft-float ABI and hard-float ABI
- Compiler is capable of using constructors with default args as default constructor (Thanks Sir Ementaler)
- Add-ons & samples
- WriteConfigToFile now writes the engine properties too
- asbuild sample updated to set the engine properties as informed in config file
- Added GetTypeId to the script handle to make it easier to work with function pointers (Thanks Ava Skoog)
- Implemented FindByRef in the script array (Thanks Marcus L)
- 2013/05/13 - Potential infinite loop. status: needs investigation
- 2013/09/05 - Registering template method as taking template subtype by value or returning by value will cause crash in PrepareSystemFunction. status: needs changes
- 2013/10/02 - Garbage collector is not properly guarded for multithreading status: needs investigation
Known portability issues
- 2012/06/11 - 64bit integer arguments are not supported for native functions on XBox 360. status: needs changes
- 2012/08/23 - Android on MIPS doesn't support native functions status: needs changes
- 2012/12/14 - Linux with MIPS doesn't support native functions. status: needs investigation
- 2013/02/07 - C++ Builder and Win64 doesn't support native functions status: needs changes
- 2013/02/11 - Linker failure on Linux when trying to build shared object library. status: needs investigation
- 2013/08/11 - Passing std::string by value to app function in debug mode on MSVC2010+ and x86 can cause crash due to the string holding a back-pointer to original location. status: needs changes
- 2013/10/31 - 64bit ARM doesn't support native calling conventions. status: needs implementation
- 2013/11/22 - Borland C++ Builder 6.00 issues. status: needs changes
Changes planned for later versions
You're always welcome to send me your comments on current and/or upcoming features. Your feedback is very important for my planning and priorization of already planned feature.
planned for 2.28.1
- Add support for index operators with multiple args, e.g. Obj.opIndex(int,int) used as Obj[1,1]
- Implement grid add-on using the index operator with multiple args (multidimensional array)
- The initialization list for the grid add-on should guarantee a rectangular area
- inline allocation of value types
- Patch for quicker vftable lookups
- Analyze patch
planned for 2.29.0
- Add support for multiple user data in all entities
- Add RequestContext and DoneWithContext callbacks to allow application to pool contexts or set context variables for those script calls made internally by engine. more
long term goals for 3.0.0
- Redesign the import feature. Use of BindImportedFunction should be removed.
- Remove use of @. All ref types should be treated as handles implicitly, similar to Java.
- Change script language parameter references to simplify syntax.
- Change to caller owns object handles.
- TypeId and asIObjectType should be removed. asITypeInfo should be introduced instead.
- Remove the syntax for declaring dynamic array types, i.e. int arr;. Dynamic arrays should be declared as the template type, e.g. array<int> arr;. Static arrays (when implemented) should still be declared with int arr;