Jump to content

  • Log In with Google      Sign In   
  • Create Account


- - - - -

AngelScript 2.24.1 is released


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
9 replies to this topic

#1 Andreas Jonsson   Moderators   -  Reputation: 3292

Like
3Likes
Like

Posted 07 August 2012 - 07:37 PM

Another month, another release. A new version is now available with more enhancements and general bug fixes. Version 2.24.0a has a rather serious bug causing a memory invasion that can be hard to track down if hit, so it is highly recommended you upgrade to this latest version if you're using 2.24.0a.


Besides fixing reported bugs related to the namespace feature, I've also done improvements to the way they are handled internally in the script engine. If you're using or planning on using namespaces, this is yet another reason for upgrading.

The bytecode serialization has also received some care, with bug fixes and a slight reduction in used space.


Other than that this new version doesn't really have any major new features. It's mostly only minor fixes or enhancements that will likely go unnoticed by the majority but makes the library better all together.

For the upcoming version 2.25.0 I plan on spending time improving the compilation performance, and bytecode loading performance. I've received a great contribution from Markus Lenger, that should bring a very significant reduction for the compilation when dealing with large scripts. I also received a report from loboWu that the bytecode load performance has degraded severly since I made the bytecode platform independent, so I plan to bring that performance back up to at least previous levels.


Other than performance I also plan to implement a new language feature, called mixin classes. This is a language feature that I'm borrowing from other languages, e.g. D, Ruby, etc. Mixin classes will improve code reuseability for classes without burdening the language and VM with the complexity of multiple inheritances.

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

Sponsor:

#2 FDsagizi   Members   -  Reputation: 514

Like
0Likes
Like

Posted 07 August 2012 - 08:33 PM

It's greate!!!

#3 saejox   Members   -  Reputation: 714

Like
0Likes
Like

Posted 08 August 2012 - 05:49 AM

Awesome!

Mixins will be a great addition. i use lots of inheritance in my game.
interfaces do not cut it.

Do you have any plans for partial module compilation?
like module->RemoveScriptSection(...)
or adding one modules byte code to another module.
asIScriptModule::AddByteCode(asIBinaryStream *)

probably there are infinite ideas..

Edited by saejox, 08 August 2012 - 06:05 AM.


#4 Andreas Jonsson   Moderators   -  Reputation: 3292

Like
0Likes
Like

Posted 08 August 2012 - 11:12 AM

I haven't given partial module compilation much thought, though it is not the first time people ask for it.

It's already possible to dynamically add and remove global functions and global variables, but it will probably not be that easy to expand this to types (classes, interfaces, etc).

Markus mentioned that in his patch he has implemented something like AddByteCode(), I might be able to incorporate that in the library too, but I've yet to dig into the details of what that implies.
AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

#5 Tzarls   Members   -  Reputation: 848

Like
0Likes
Like

Posted 08 August 2012 - 02:10 PM

Andreas, do the changes introduced in this release (actually, back in 2.24.0) break compatibility with the JIT? I noticed some members in asCContext had their names changed, but today I compiled my project (which worked fine with the JIT using Angelscript 2.23) and if I use the JIT my app just hangs.

#6 ThyReaper   Members   -  Reputation: 462

Like
1Likes
Like

Posted 08 August 2012 - 03:51 PM

The JIT was broken (mostly by the new nested context feature, the member name change was very minor). I fixed it a day ago, but forgot to commit the changes. If you update, you'll be compatible with 2.24.1.

#7 Tzarls   Members   -  Reputation: 848

Like
0Likes
Like

Posted 08 August 2012 - 04:07 PM

Excellent! Just downloaded the new version and it works as expected. You guys rock!

#8 Andreas Jonsson   Moderators   -  Reputation: 3292

Like
0Likes
Like

Posted 08 August 2012 - 06:55 PM

Just a few hours after the release I receive a bug report with 3 more problems related to namespaces. :(

Anyway, this has now been fixed in revision 1388. So for those who plan on using it probably want to pick up those changes too.

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

#9 Tzarls   Members   -  Reputation: 848

Like
0Likes
Like

Posted 08 August 2012 - 08:51 PM

Andreas, I´ve noticed a decrease in performance with this version compared to 2.23.1.

For the exact same code executing the exact same script for both versions 2.23.1 and 2.24.1 (with their corresponding JITs), I´m getting this readings:

2.23.1
Task #1 : CPU 0%
Task #2 : CPU 3 - 4%

2.24.1
Task #1 : CPU 0 - 6%
Task #2 : CPU 4 - 6%

While this are readings taken by the Task Manager (in Windows) and not by a proper profiler, they still show that there has been a significant loss of performance with the new version. Have there been any significant changes in the execution path that might be introducing this? Maybe some allocations and / or if/then checks?

#10 Andreas Jonsson   Moderators   -  Reputation: 3292

Like
0Likes
Like

Posted 09 August 2012 - 09:16 AM

Anything change can affect the performance. While I always try to maintain a good performance, my main priority is correctness, and sometimes performance suffers a bit for that.

I really can't say if there is anything specific that would have affected the performance that you see. It depends a lot on how exactly you're using the script library. If you can do some profiling on the code and let me know the bottlenecks the profiler identifies I'd gladly take a look at improving those for a future release.

Edited by Andreas Jonsson, 09 August 2012 - 09:16 AM.

AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS