Jump to content

  • Log In with Google      Sign In   
  • Create Account


- - - - -

AngelScript 2.23.0 is out


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
4Likes
Like

Posted 11 March 2012 - 11:53 AM


I've released yet another update to the AngelScript library. The major enhancement with this release is the improvement to the way the bytecode is saved.


With the changes I made in this release to abstract the pointer size the bytecode is now almost 100% platform independent, and should cover all modern platforms including computers, consoles, and mobile devices. The only things that prevent me from saying the code is 100% platform independent are 2 things; 1) that bit representation for float values is left as-is, so a CPU that doesn't use IEEE 754 will get the wrong value when reading bytecode saved on a PC, 2) that the size and value of the boolean type is left as-is, e.g. older Mac's on PPC used 4 bytes for the boolean type.


With the saved bytecode being platform independent many applications will not need to compile any scripts, so with this I added the preprocessor define AS_NO_COMPILER that can be used to remove all the code related to the compiler from the library. This can reduce the size of the executable quite a bit, so if size is important to you this will hopefully be a welcome change.


Another change that many has asked for is a way to register reference types that doesn't use reference counting. It was possible before by registering dummy functions for the ADDREF and RELEASE behaviours, but now the new flag asOBJ_NOCOUNT can be used instead so the dummy functions won't be needed anymore.


As I do with every new *.0 release, I've done some changes to the library interface. For the most part it is just to add proper methods for using the namespace feature I implemented in the last release, but there may be a few methods that needs to be adapted when upgrading to this version, most notably the GetExceptionFunction() and NotifyGarbageCollectorOfNewObject() methods.


The add-ons have also received a few improvements. I've implemented string pooling for the string type, which should improve the performance for scripts that use a lot of strings. I also added the method getKeys() to the dictionary object.

SiCrane implemented a new autowrapper system that eliminates the separate declaration of the function wrapper and the registration of it with AngelScript. The new macros are almost identical to the asFUNCTION and asMETHOD macros used to get the address of functions and class methods, so it becomes just as easy to use the generic calling convention as the native calling convention.


On the script language front, very little changed in this version. The only change is that enums can now be declared as 'shared' too.

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 _Vicious_   Members   -  Reputation: 240

Like
0Likes
Like

Posted 12 March 2012 - 02:31 AM

Thanks a lot, Andreas!

Looking forward to updating.. It'll be interesting to see your version of Dictionary::getKeys :) We've been using ours for some time in our project. Although app-registered namespaces is something I've been anticipating most. Great job!

#3 Schrompf   Prime Members   -  Reputation: 954

Like
0Likes
Like

Posted 12 March 2012 - 03:15 AM

Good work! Both the NOCOUNT and the string optimisations sound really good to me. The other enhancements need a test before I can voice an opinion on them :-)
----------
Gonna try that "Indie" stuff I keep hearing about. Let's start with Splatter.

#4 _Vicious_   Members   -  Reputation: 240

Like
0Likes
Like

Posted 12 March 2012 - 12:01 PM

Andreas, may I also suggest adding 'bool empty() const' method to Array and Dictionary addons and renaming/aliasing deleteAll() to clear()? clear() follows STL and is probably more intuitive than deleteAll()

#5 Andreas Jonsson   Moderators   -  Reputation: 3292

Like
0Likes
Like

Posted 12 March 2012 - 12:20 PM

Thanks for the suggestion. I'll add this for the next release.

Though I prefer the slightly more verbose names isEmpty and deleteAll, rather than the shorter names used by STL.
AngelCode.com - game development and more - Reference DB - game developer references
AngelScript - free scripting library - BMFont - free bitmap font generator - Tower - free puzzle game

#6 FDsagizi   Members   -  Reputation: 514

Like
0Likes
Like

Posted 13 March 2012 - 09:35 PM

Wow! Super!

#7 _Vicious_   Members   -  Reputation: 240

Like
0Likes
Like

Posted 20 March 2012 - 11:27 AM

Thanks for the suggestion. I'll add this for the next release.

Though I prefer the slightly more verbose names isEmpty and deleteAll, rather than the shorter names used by STL.

Thanks for adding these methods! May I also suggest adding the empty/isEmpty method to the string class addon? I found it a lot more convenient than .length() == 0 or comparison with an empty string.

#8 Andreas Jonsson   Moderators   -  Reputation: 3292

Like
0Likes
Like

Posted 20 March 2012 - 12:56 PM

Sure, I'll add this 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 _Vicious_   Members   -  Reputation: 240

Like
0Likes
Like

Posted 21 March 2012 - 03:37 PM

Thanks, Andreas!

#10 slicer4ever   Crossbones+   -  Reputation: 3480

Like
0Likes
Like

Posted 24 March 2012 - 12:09 PM

awesome work=-)
Check out https://www.facebook.com/LiquidGames for some great games made by me on the Playstation Mobile market.




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