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.30.0 WIP - 2014/10/22
- Bug fixes
- Fixed bug with use of scoped reference types declared in global variables (Thanks ic0de)
- 2014/07/21 - Problem with declaring funcdef that uses arrays of script classes. status: needs changes
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. Reported by Andris. 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
- 2014/01/05 - Native calling conventions doesn't work on Windows Phone 8. status: needs investigation
- 2014/01/21 - Dead-code-stripping doesn't work on 32bit MacOS status: needs investigation
- 2014/02/16 - Crash in CallCDeclFuction on 32bit Mac with XCode 5 and OS 10.9. status: needs investigation
- 2014/06/03 - Throwing exception from application causes seg fault on Linux Arm with softfp status: needs investigation
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 prioritization of already planned feature.
planned for 2.30.0
- Imported functions in namespaces
- Add a flag asOBJ_NEVER_GC for RegisterObjectType to tell AngelScript never to garbage collect handles of the type, i.e. objects that contain the handles do not need to bother with garbage collection
- Default args should use the namespace of the function they were declared for
- Look into possibility of implementing compound assignments for virtual properties
- Allow use of & when registering properties
- Possibly add engine property to support private and protected members. second thread.
- CScriptHandle add-on doesn't support casting to other types than the contained type
- Optimization opportunity
- add support for using constructor while performing implicit conversion
- Add engine property for setting how empty elements should be treated
- Deprecate asBEHAVE_VALUE_CAST since opConv is now available
- Implement the asIScriptEngine::CastObject method and deprecate IsHandleCompatibleWithObject
- Evaluate possibility of having a compiler callback to allow application to verify if function calls should be allowed for specific types when having variable arguments. Should the callback be global? Or should I have a callback for each registered function?
- Opportunity for optimization. Perhaps a special bytecode to call functions with signature 'void *obj::func(int)'? Or else, how to allow direct access to elements through offset with safe bounds checking?
- Change the weakref add-on to a value type
- Allow registered types to use the flag asOBJ_IMPLICIT_HANDLE when implicit handles is turned on
- Make asBEHAVE_REF_CAST into opCast. How to resolve conflict with normal refcast to interface or related class?
- Add validation for the returntype of refcast behaviour
- the context needs a SetArgType method for setting the argument when the called function has a variable argument type
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;