Work in progress
Source code repository
You can always find the latest version of AngelScript in the repository on github.com. There you can browse the repository online or download the code for a revision of choice.Before the move to github in 2025 I used SourceForge.net to hold the repository. It still has the source code up until the release 2.38.0.
- github.com
- SourceForge.net (until 2.38.0)
Version 2.39.0 WIP - 2026/04/27
- Bug fixes
- Fixed using namespaces with nested namespaces (Thanks sashi0034)
- Fixed issue in compiling the switch cases for large numbers due to 32bit overflow (Thanks power_mcu)
- Fixed assert failure in compiling foreach with iterator as non-pod value type (Thanks atoft)
- GetGlobalFunctionByDecl wasn't using the explicit namespace in the declaration (Thanks Miss)
- Fixed used of deprecated OSAtomicIncrement32 on MacOS (Thanks Billy O'Neal)
- Unprepare was not clearing exception info (Thanks romanpunia_gd)
- Compiler was incorrectly making copy of object member property before type conversion in expressions (Thanks Sam Tupy)
- Added proper error message when opCast returned type by value
- Fixed compilation error with AS_DEBUG with computed gotos (Thanks williamjcm)
- Fixed crash with AS_DEBUG on engines with more than 32768 functions (Thanks Alexander Orefkov)
- Fixed crash with foreach on empty array of strings (Thanks li zhuang)
- Fixed crash after loading saved bytecode with template functions (Thanks gyxos-logan)
- Fixed crash that could happen while loading saved bytecode on certain compilers and platforms (Thanks Aleksander Jaronik)
- Variadic functions were incorrectly matched to non-variadic functions when the argument types were the same (Thanks oktonion)
- Fixed compiler error for Android NDK (Thanks luadebug)
- Fixed problem with calling constructor that has only default arguments (Thanks jit-zs)
- Fixed crash on CompilerGlobalVar when attempting to clean up after a name conflict (Thanks Wing-summer)
- Included error message when declaring virtual set property with & for types that do not support it (Thanks Mikk155)
- Fixed crash with multiple chained opCast(?&out) in the same expression (Thanks codecat)
- Fixed dTOu (and variants) in the VM to correctly convert large positive values that use the highest bit in target unsigned integer (Thanks Aaron Baker)
- Fixed registration of multiple methods referring to template specialized types (Thanks Jackozzo)
- Call to default constructor where constructor has default arguments wouldn't free temporary variables (Thanks Patrick Jeeves)
- Fixed assert failure on explicit conversion from bool (Thanks codecat)
- Fixed crash after calling Unprepare on nested context (Thanks LeonMrBonnie)
- Fixed compiler warnings (Thanks Jordon Moss)
- Fixed issue with initialization lists and inheritance where the initialization list element could get the wrong type (Thanks Violet CLM)
- Fixed assert error on some expressions with ternary conditions (Thanks tspivey)
- Variadic functions now accept 0 args (Thanks Alexander Orefkov)
- Fixed case where a construct call could use the wrong function if there were valid value cast options (Thanks Aleksander Jaronik)
- Fixed assert error on using foreach within switch statement (Thanks Fort-TM)
- Fixed assert error on compiling initialization lists where the element must be converted (Thanks Miss)
- Fixed instantiating delegates for global functions (Thanks Miss)
- Compiler didn't give proper error when passing primitive to function expecting &inout to object (Thanks Wambo)
- When compiling bitwise operator the compiler will try to convert object types to math type (Thanks Violet CLM)
- Fixed loading bytecode that uses variadic functions (Thanks Aleksander Jaronik)
- Declaring a type as ?[] will no longer be silently accepted (Thanks Aleksander Jaronik)
- Fixed exception handling with native calling convention and clang on MacOS x86-64 (Thanks pollend)
- Fixed crash in compiler when compiling a call to an imported function with the wrong types (Thanks Miss)
- Fixed macros in angelscript.h to use AS_NAMESPACE_QUALIFIER (Thanks CrackedMatter)
- Fixed issue in asCompareStrings (Thanks huison-cao)
- Fixed assert error on instantiating a template function with invalid subtype (Thanks sebight)
- Fixed issue on big endian platforms with 8 and 16bit constants (Thanks keqing996)
- Library
- Removed the first SUSPEND instruction in all compiled functions (Thanks OriolCS2)
- Added support for Fiber Local Storage on Windows (Thanks Roel Binnendijk)
- Improved error messages for function matching to indicate the reason a match failed (Thanks Paril)
- asIJITCompilerV2::CleanFunction is now called for all script functions regardless if the JIT function was compiled or not (Thanks Asu)
- Improved error message when lambda function can't be converted to target type (Thanks Aaron Baker)
- Made the core library code compatible with C++98 again (Thanks oktonion)
- Improved error message for mismatching shared declaration to inform the other module (Thanks Miss)
- Library interface
- Added GetLineEntryCount and GetLineEntry to asIScriptFunction (Thanks a-k-)
- Now it is possible to register enum types with defined underlying types (Thanks Paril)
- Added asITypeInfo::GetUnderlyingTypeId for retrieving the underlying type for enums and typedefs
- Deprecated asITypeInfo::GetTypedefTypeId
- Deprecated asIScriptFunction::FindNextLineWithCode
- Virtual machine
- Changed asBC_CALLSYS, asBC_ALLOC, and asBC_CallPtr to hold an extra WORD with the arg count for variadic functions
- Script language
- Added support for number separators, e.g. 1'000'000 (Thanks Paril)
- Enums can now be declared with underlying type to define the size of the enum (Thanks Paril)
- Variadic functions are no longer matching if there is a more specialized matching function for a call (Thanks oktonion)
- Add-ons & Samples
- Prepared the samples for building on unix based OS (Thanks Yangfl)
- Added option to use the full file path for breakpoints in the debugger (Thanks OriolCS2)
- Debugger is now using the GetLineEntry to move the breakpoint to next valid line
- Improved compatibility for C++98 in add-ons (Thanks oktonion)
- Fixed memory leak upon cleanup of dictionaryValue used standalone as a global var (Thanks li zhuang)
- Fixed string add-on's format with uint8 (Thanks li zhuang)
- Project
- Added port of MSVC assembly to GNU/AT&T assembly for pure clang builds on Windows (Thanks OctalCodes)
- Updated meson project file to add support for riscv64 processors (Thanks Vixea 0)
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.
The complete list of planned changes can be found in the link below:
AngelScript To-Do List on Google Docs