0.5.0
Built platforms: Windows, Linux/X11, OSX, iOS, Android
Notes: OSX .dylib is not signed and will need explicit permission from the user or codesigning for running. iOS .dylibs are not signed and require codesigning before building the application.
Added
joinmethod for allPool*Arraymetatypes with the same implementation as forArrayandPoolStringArray.- Possibility for using
ClassWrappers asextendsof a script instead of their string name. E.g. script:return { extends = Node } Object:get_class_wrappermethod that returns theClassWrapperassociated with the Object's class.ClassWrapper:has_propertymethod that returns whether a class has a property with the passed name. Properties are considered available if they are found in the result ofClassDB:class_get_property_list.- Library mapping for
Serverplatform pointing to thelinux_x86_64build. string.quotefunction for quoting values.- [build] Passing
DEBUG=1tomake docsadds--allflag toldoc, which adds documentation for locals. - [build] Passing
DEBUG_INTERACTIVE=1tomake test*makes errors trigger a debugger.lua breakpoint, for debugging tests.
Fixed
- Return values passed to
lps_coroutine:resume(...)when callingGD.yield(). - Comparing
ArrayandPool*Arrays against Lua primitives likeniland numbers now returnfalseinstead of raising. - Support for
falseas the default value for a property.
Changed
- BREAKING CHANGE:
ArrayandPool*Array's__indexand__newindexmetamethods now use 1-based indices to match Lua tables. For 0-based indexing, useget/setorsafe_get/safe_setinstead. - BREAKING CHANGE: property setter functions don't receive property name anymore (#5). That is, instead of
function(self, property_name, value), setters now look likefunction(self, value). - BREAKING CHANGE: script instances are now structs instead of tables. They still have a backing table for storing data, but indexing now calls getter and setter functions for known properties. Use
rawgetandrawsetto bypass getter/setter functions and access the data table directly. (#5) - BREAKING CHANGE:
Object.callnow raises instead of failing silently. UseObject.pcallto protect from errors.