AngelScript bug hunt (list of known bugs)

Started by
-1 comments, last by WitchLord 19 years, 9 months ago
I'm sure many of you have noticed the many bugs that was/are in the release of 1.8.0. I'm deeply sorry for that, and I hope you can forgive me. I'm currently working very hard to test the library both on MSVC and MinGW. This has allowed me to discovered quite a few other bugs. More bugs have been discovered by you, the users. Because of all these bugs, I've decided that version 1.8.1 will be a release that fixes broken functionality, and hopefully removes all bugs. I will try not to add new functionality for this version, and if I do it will be out of necessity. I've already fixed quite a few bugs. I was going to have a first WIP of 1.8.1 up yesterday, but the GameDev.net server was down so I couldn't upload it. Hopefully I'll be able to upload it tonight instead. Here's a list of bugs that have not yet been fixed but that I'm aware of and will fix as soon as possible:
  • Some compiler errors were always reported on line 1 column 1. This bug has been fixed in WIP 1.
  • An assertion failed when a function called used temporary variable and the function wasn't found. This bug has been fixed in WIP 1. Discovered by krajzega.
  • Objects registered with asOBJ_IS_NOT_COMPLEX and with 8 bytes didn't work. Fixed in WIP 1.
  • Return with objects larger than 8 bytes didn't work with MinGW. Fixed in WIP 1.
  • MinGW doesn't treat complex and simple classes differently, which made applications crash when returning objects registered with asOBJ_IS_COMPLEX. Fixed in WIP 1.
  • Using global variables didn't work for multiple modules. Fixed in WIP 1. Discovered by Dentoid.
  • Objects with destructors are always destroyed at function return even though the variables haven't been declared yet, hence the destruction of invalid objects. Bug discovered by Dentoid. Fixed in WIP 2.
  • Registered objects cannot be returned from class methods in Visual C++. Fixed in WIP 2.
  • Registered objects larger than 8 bytes cannot be returned from class methods in MinGW. Fixed in WIP 2.
  • Registered objects larger than 8 bytes doesn't work in Visual C++ for stdcall functions. It was no bug, but an error in the test.
  • Virtual class methods doesn't work on MinGW. This is not really a bug, but the library should detect virtual methods and report an error. (They will be supported in version 1.8.2). Fixed in WIP 3.
  • Class methods for classes with multiple inheritance or virtual inheritance doesn't work. Not a bug either but should be detected. (Multiple inheritance will be supported in version 1.8.2) Fixed in WIP 3. AngelScript can't detect virtual inheritance in GNUC.
  • There can be problems with registering object types that really are primitive data types as C++ treats these types differently from classes. I will fix this by adding two more flags for RegisterObjectType(): asOBJ_PRIMITIVE and asOBJ_FLOAT. Flags added for WIP 2, but they are not yet supported.
  • Extremely long tokens, e.g. 400 characters, causes a segmentation fault acCString::Format(). Bug discovered by krajzega. Bug is no longer existing in WIP 2.
  • ExecuteString() can cause a crash when executed on a script compiled for the second time using the same module name. Bug discovered by krajzega. The fix for this bug is to change line 972 in as_scriptengine.cpp (WIP 2) to:
    r = stringContext->PrepareSpecial(mode->moduleID | asFUNC_STRING, stackSize);
    Fixed in WIP 3.
Many of these bugs were discovered when I wrote test cases for testing how objects are returned. MinGW and Visual C++ returns objects very differently so AngelScript has to be configured for both of them. I've started on an article that identifies the differences in calling conventions, and hopefully that article can help when porting the library to other compilers and platforms. If you find more bugs, let me know and I'll add them to the list. [Edited by - WitchLord on August 3, 2004 8:02:00 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

This topic is closed to new replies.

Advertisement