Library download
The library is no longer distributed in binary form, because most developers prefer to link statically and usually need to control the settings used when compiling the library. See the manual for more information on how to compile the library.
If you have used AngelScript before you might want to take a look at the change list.
Don't forget to check out the work in progress version. You might also find some useful downloads on the utilities and add-ons page.
I maintain a few different versions for download, each of which I consider important releases, e.g. with major new features. I can at requests provide bug fixes for anyone of these, though obviously the latest release is the one that receives the most attention and priority.
2.13.0
AngelScript library 2.13.0
(2008/06/08, 2.13.0, 840KB)
- Complete source code
- Project files
- MSVisual C++ 6.0
- MSVisual C++ 7.1
- MSVisual C++ 8.0
- Code::Blocks
- Dev-C++/MinGW
- GNUC
- MinGW
- Dreamcast
- XCode
- Trolltech Qt
- Documentation
- Sample applications
- Console - a Quake like console that allow the user to execute simple script statements
- Events - a long running scripts with interaction from the application through event handlers
- Concurrent - more than one script running in parallel using a simple context manager
- CoRoutine - shows how to implement coroutines that can be controlled from the scripts
- Tutorial - A tutorial that loads a script from disk, and execute a function with parameters and return value
- Include - Shows how to implement the #include directive
- Add ons
- Script string
- Script math
- Script dictionary
- Script any
- Test applications
2.7.1b
AngelScript library 2.7.1b
(2006/12/03, 2.7.1b, 554KB)
- Complete source code
- Project files
- MSVisual C++ 6.0
- MSVisual C++ 7.1
- MSVisual C++ 8.0
- Code::Blocks
- Dev-C++/MinGW
- GNUC
- MinGW
- Dreamcast
- XCode
- Documentation
- Sample applications
- Console - a Quake like console that allow the user to execute simple script statements
- Events - a long running scripts with interaction from the application through event handlers
- Concurrent - more than one script running in parallel using a simple context manager
- CoRoutine - shows how to implement coroutines that can be controlled from the scripts
- Tutorial - A tutorial that loads a script from disk, and execute a function with parameters and return value
- Include - Shows how to implement the #include directive
- Add ons
- Test applications
2.4.1e
AngelScript library 2.4.1e
(2006/02/04, 2.4.1e, 495KB)
- Complete source code
- Project files
- MSVisual C++ 6.0
- MSVisual C++ 7.1
- Dev-C++/MinGW
- GNUC
- MinGW
- Dreamcast
- Documentation
- API reference
- Script language reference
- Articles
- Sample applications
- Console - a Quake like console that allow the user to execute simple script statements
- Events - a long running scripts with interaction from the application through event handlers
- Concurrent - more than one script running in parallel using a simple context manager
- CoRoutine - shows how to implement coroutines that can be controlled from the scripts
- Tutorial - A tutorial that loads a script from disk, and execute a function with parameters and return value
- Add ons
- Test applications
2.1.0c
AngelScript library 2.1.0c
(2005/05/26, 2.1.0c, 410KB)
- Complete source code
- Project files
- MSVisual C++ 6.0
- Dev-C++/MinGW
- GNUC
- MinGW
- Dreamcast
- Documentation
- Sample applications
- Console - a Quake like console that allow the user to execute simple script statements
- Events - a long running scripts with interaction from the application through event handlers
- Add ons
- Test applications
1.10.1d
AngelScript library 1.10.1d
(2005/01/21, 1.10.1d, 340KB)
- Complete source code
- Microsoft Visual C++ 6.0 project files
- Dev-C++/MinGW project files
- MinGW makefile
- Documentation
- Test applications
- Add ons
Known issues
Issue: If an application function that returns an object calls SetException() on the context, the object that is returned is not properly destroyed. This could lead to memory leaks or resource locks.
Work-around: Make sure the object that is returned to the VM after the SetException() has been called is not holding any resources.
Issue: If the script calls an object method that performs an action that indirectly leads to the destruction of the object, it is possible that the method will use references that are no longer valid.
Work-around: It is the responsibility of the application to make sure the method is using valid references.
Issue: It is possible to pass an object by reference to a script function, and the function performs an action that indirectly destroys the object before it is being used.
Work-around: No easy work around is available for this one, though the situation is very rare.
Issue: The compiler is unable to understand creation of temporary array objects in expressions, because the parser believes it is an index access or a type conversion.
Work-around: It is possible to workaround this problem by declaring a variable for the array and using it in the expression instead.
Issue: With GCC the library doesn't support passing objects with destructors by value to application functions. The C++ compiler passes these types by reference, even though declared to be by value, and the library cannot do this conversion.
Work-around: Rewrite the registered function to take the parameter by reference instead.
Issue: The script language doesn't accept initialization of object variables using overloaded assignment operator where the right hand type is different from the variable type.
Work-around: This can be worked around by declaring the variable without initialization, and then assigning the wanted value in a separate statement.
Issue: When computing expressions with overloaded operators on objects, it is possible that the second operand invalidates the reference computed by the first operand.
Work-around: The only possible work-around for this is to not register overloaded operators for objects.