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
join
method for allPool*Array
metatypes with the same implementation as forArray
andPoolStringArray
.- Possibility for using
ClassWrapper
s asextends
of a script instead of their string name. E.g. script:return { extends = Node }
Object:get_class_wrapper
method that returns theClassWrapper
associated with the Object's class.ClassWrapper:has_property
method 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
Server
platform pointing to thelinux_x86_64
build. string.quote
function for quoting values.- [build] Passing
DEBUG=1
tomake docs
adds--all
flag toldoc
, which adds documentation for locals. - [build] Passing
DEBUG_INTERACTIVE=1
tomake test*
makes errors trigger a debugger.lua breakpoint, for debugging tests.
Fixed
- Return values passed to
lps_coroutine:resume(...)
when callingGD.yield()
. - Comparing
Array
andPool*Array
s against Lua primitives likenil
and numbers now returnfalse
instead of raising. - Support for
false
as the default value for a property.
Changed
- BREAKING CHANGE:
Array
andPool*Array
's__index
and__newindex
metamethods now use 1-based indices to match Lua tables. For 0-based indexing, useget
/set
orsafe_get
/safe_set
instead. - 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
rawget
andrawset
to bypass getter/setter functions and access the data table directly. (#5) - BREAKING CHANGE:
Object.call
now raises instead of failing silently. UseObject.pcall
to protect from errors.