🎉 Celebrating 25 Years of GameDev.net! 🎉
Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!
AngelScript 1.10.0 FINAL (2004/11/02)
This is the largest update ever made in one release, during the AngelScript history. A very shortened list of updates that were made is:
Further optimized the VM with perhaps 1.5x average performance improvement
Quite a few bug fixes
A new boolean operator, xor, was added
The library interface was improved, especially functions that returned strings
ExecuteStep() now works as before (if the correct compile time flags are set)
ExecuteString() has gotten a much needed overhaul. It's now possible to call it recursively, and also from multiple threads at the same time.
The much awaited native support for arrays have finally been implemented. Now script writers can enjoy the full power of arrays in their functions. Application writers can easily register the exact array objects that they need for their functions, which makes the interaction very easy.
Basic support for multithreading has been added, though it can be disabled at compile time for those who need the extra performance.
Those are the most important points. You can read the complete list on the AngelScript site.
Enjoy!
I finally got some time to mess with AngelScript again, and it seems that the threading is causing crashes all over. None of the tests ran for me, they all crashed at ENTERCRITICALSECTION(criticalSection);
The crashes went away when I declared NO_THREADS in the project. I believe multi-threading is still not working fully yet, but they are on by default in MSVC project found in angelscript\projects\msvc6. Also the "compiling and linking with the library" link at the top of http://www.angelcode.com/angelscript/ is broken.
Not griping here, I LOVE angelscript. Just pointing out the problems I ran into just loading it up after a long break.
Forgot to mention I am using MSVC 7 with MSVC 6 libraries if that had anything to do with it.
[Edited by - lxnyce on November 4, 2004 10:21:25 AM]
The crashes went away when I declared NO_THREADS in the project. I believe multi-threading is still not working fully yet, but they are on by default in MSVC project found in angelscript\projects\msvc6. Also the "compiling and linking with the library" link at the top of http://www.angelcode.com/angelscript/ is broken.
Not griping here, I LOVE angelscript. Just pointing out the problems I ran into just loading it up after a long break.
Forgot to mention I am using MSVC 7 with MSVC 6 libraries if that had anything to do with it.
[Edited by - lxnyce on November 4, 2004 10:21:25 AM]
The problem is most likely because you're using MSVC7. The library works just fine in all my tests with multithreading turned on.
Still I will set the NO_THREADS flag as on by default, since multithreading is not yet stable.
Thanks for pointing out the broken link as well.
Regards,
Andreas
Still I will set the NO_THREADS flag as on by default, since multithreading is not yet stable.
Thanks for pointing out the broken link as well.
Regards,
Andreas
andreas
take a look at http://softwire.sourceforge.net, it might help with the performance issues uve havin
take a look at http://softwire.sourceforge.net, it might help with the performance issues uve havin
1. Congratulations! What's next on the agenda? :)
2. So, just to be clear:
int a[5](6);
would be the proper syntax in C++ to create an array of five floats initialized to the value 6. What is the syntax in angelscript?
3. I'm glad that you added the output message to Build(), but now I get an "Invalid Configuration" and an asINVALID_CONFIGURATION with no idea as to *why* it is invalid.
2. So, just to be clear:
int a[5](6);
would be the proper syntax in C++ to create an array of five floats initialized to the value 6. What is the syntax in angelscript?
3. I'm glad that you added the output message to Build(), but now I get an "Invalid Configuration" and an asINVALID_CONFIGURATION with no idea as to *why* it is invalid.
ceasar4:
I'm aware of SoftWire, but AngelScript hasn't come so far as to compile directly to native code yet. Once it does I will most likely use SoftWire though.
Thanks anyway.
Aggrav8d:
1. Thanks. What's next is AS2, with the slightly changed syntax. AS1 will also be improved with a few things, like initialization lists, -> operator overload, better compile speed, etc.
2. AS still don't support automatic initialization of arrays, so in this case you'll have to write a loop to initialize each of the elements.
int[] a(5);
for( int n = 0; n < 5; n++ ) a[n] = 6;
3. AS doesn't store the function call that failed during configuration. You'll have to verify each of the return codes. I recommend doing it like this:
r = engine->RegisterObjectType(...); assert( r >= 0 );
r = engine->RegisterObjectMethod(...); assert( r >= 0 );
r = engine->RegisterObjectMethod(...); assert( r >= 0 );
r = engine->RegisterGlobalFunction(...); assert( r >= 0 );
This doesn't polute the code with lots of if statements, and it will let you easily find the problem in debug mode. In release mode the return codes aren't verified but they won't fail if they don't fail in debug mode (unless I made a mistake somewhere).
I'm aware of SoftWire, but AngelScript hasn't come so far as to compile directly to native code yet. Once it does I will most likely use SoftWire though.
Thanks anyway.
Aggrav8d:
1. Thanks. What's next is AS2, with the slightly changed syntax. AS1 will also be improved with a few things, like initialization lists, -> operator overload, better compile speed, etc.
2. AS still don't support automatic initialization of arrays, so in this case you'll have to write a loop to initialize each of the elements.
int[] a(5);
for( int n = 0; n < 5; n++ ) a[n] = 6;
3. AS doesn't store the function call that failed during configuration. You'll have to verify each of the return codes. I recommend doing it like this:
r = engine->RegisterObjectType(...); assert( r >= 0 );
r = engine->RegisterObjectMethod(...); assert( r >= 0 );
r = engine->RegisterObjectMethod(...); assert( r >= 0 );
r = engine->RegisterGlobalFunction(...); assert( r >= 0 );
This doesn't polute the code with lots of if statements, and it will let you easily find the problem in debug mode. In release mode the return codes aren't verified but they won't fail if they don't fail in debug mode (unless I made a mistake somewhere).
I manage to hit the assert(false) at the end of Dereference() without getting any kind of error message or code. What should I be looking for?
Digging a little further I see that it is trying to do a conversion but the type->dataType.GetSizeInMemoryDWords() is equal to 16 (!!)
[Edited by - Aggrav8d on November 5, 2004 1:44:23 PM]
Digging a little further I see that it is trying to do a conversion but the type->dataType.GetSizeInMemoryDWords() is equal to 16 (!!)
[Edited by - Aggrav8d on November 5, 2004 1:44:23 PM]
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement