As promised with the previous release, this new version includes all the stuff that I didn't have the time to implement for version 2.25.1.
Most of the bytecode optimazations are now done locally for each statement that is compiled. This reduces the search time for uses of temporary variables. With this the compilation time should be close to linearly proportional to the size of the source code.
I've enhanced the bytecode optimizations to remove some more redundant code. Especially some common instruction sequences that would make unnecessary work on object handles has been improved a lot.
The engine has been improved to avoid notifying the garbage collector of internal objects, e.g. functions, object types, and properties, when it is known that they are still in use. This will reduce the amount of time the gc spends trying to detect garbage for these kind of objects, and thus allow it spend that time elsewhere.
Finally the script language has received an enhancement. The mixin classes can now implement interfaces. When a class includes a mixin class that class will also implement all the interfaces that are in the mixin class.
Regards,
Andreas
AngelScript 2.25.2 is out
Started by Andreas Jonsson, Nov 24 2012 02:37 PM
6 replies to this topic
#1 Moderators - Reputation: 2309
Posted 24 November 2012 - 02:37 PM
AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game
Ad:
#3 Moderators - Reputation: 2309
Posted 26 November 2012 - 09:54 AM
I'm glad you see an improvement, even though it is only 10%.
Most users probably won't notice a big difference as the slow compilation times only happened with very large functions (thousands of lines) with lots of conditional code in it. If the functions are broken down to more reasonable sizes of at most hundreds of lines in each, then the problem wasn't noticeable.
Most users probably won't notice a big difference as the slow compilation times only happened with very large functions (thousands of lines) with lots of conditional code in it. If the functions are broken down to more reasonable sizes of at most hundreds of lines in each, then the problem wasn't noticeable.
AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game
#5 Members - Reputation: 248
Posted 05 December 2012 - 11:46 PM
<p>Ran into a minor problem compiling for MSVC 2008 with AS_NO_THREADS defined.
1>as_thread.cpp
1>..\..\source\as_thread.cpp(75) : error C2220: warning treated as error - no 'object' file generated
1>..\..\source\as_thread.cpp(75) : warning C4390: ';' : empty controlled statement found; is this the intent?
1>..\..\source\as_thread.cpp(81) : warning C4390: ';' : empty controlled statement found; is this the intent?
1>..\..\source\as_thread.cpp(87) : warning C4390: ';' : empty controlled statement found; is this the intent?
1>..\..\source\as_thread.cpp(93) : warning C4390: ';' : empty controlled statement found; is this the intent?
Removing the \WX (treat warnings as errors) property fixed the error for me.EDIT: Awesome. I see you've added namespaces! (well they are new to me)
EDIT2: What am I doing wrong here?
r = engine->SetDefaultNamespace("input"); assert( r >= 0 );
r = engine->RegisterGlobalFunction( "::joystick@ get_joystick(int)", asFUNCTION(Input::GetJoystick), asCALL_CDECL); assert( r >= 0 );
r = engine->SetDefaultNamespace(""); assert( r >= 0 );
script:
input::joystick[0]; //input is undeclared.
1>as_thread.cpp
1>..\..\source\as_thread.cpp(75) : error C2220: warning treated as error - no 'object' file generated
1>..\..\source\as_thread.cpp(75) : warning C4390: ';' : empty controlled statement found; is this the intent?
1>..\..\source\as_thread.cpp(81) : warning C4390: ';' : empty controlled statement found; is this the intent?
1>..\..\source\as_thread.cpp(87) : warning C4390: ';' : empty controlled statement found; is this the intent?
1>..\..\source\as_thread.cpp(93) : warning C4390: ';' : empty controlled statement found; is this the intent?
Removing the \WX (treat warnings as errors) property fixed the error for me.EDIT: Awesome. I see you've added namespaces! (well they are new to me)
EDIT2: What am I doing wrong here?
r = engine->SetDefaultNamespace("input"); assert( r >= 0 );
r = engine->RegisterGlobalFunction( "::joystick@ get_joystick(int)", asFUNCTION(Input::GetJoystick), asCALL_CDECL); assert( r >= 0 );
r = engine->SetDefaultNamespace(""); assert( r >= 0 );
script:
input::joystick[0]; //input is undeclared.
#6 Moderators - Reputation: 2309
Posted 06 December 2012 - 07:58 AM
The problem with AS_NO_THREADS has already been fixed in the WIP. Thanks anyway.
There is a problem with namespaces and property accessors. I've not yet had the time to investigate this problem properly.
Regards,
Andreas
There is a problem with namespaces and property accessors. I've not yet had the time to investigate this problem properly.
Regards,
Andreas
AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game
#7 Moderators - Reputation: 2309
Posted 06 December 2012 - 05:59 PM
The problem with the global property accessors and namespaces has been fixed in revision 1492.
Let me know if you find any further problems.
Regards,
Andreas
Let me know if you find any further problems.
Regards,
Andreas
AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game







