- Fixed
undefined symbol: lua_*when requiring Lua/C modules in POSIX systems (#41)
- Plugin initialization on Windows (#31)
- [build] Fixed
make distdependencies to include LuaJIT'sjit/*.luafiles - [build] Fixed
make unzip-to-buildto only copy contents frombuildfolder
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.
- 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.
- 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.
- Support for running without JIT enabled
- Support for iOS builds
exportfunction, an alias forpropertythat always marks the property as exported
- Quote
CODE_SIGN_IDENTITYargument passed tocodesigninvocations - ABI mismatch for math types in Linux x86_64 + Mono (#4)
- BREAKING CHANGE: properties are not exported by default. Either pass
a usage with the
PropertyUsage.EDITORbit set or callexportinstead ofproperty
- Support for
codesigning OSX builds directly from make invocation. The optional parameters areCODE_SIGN_IDENTITYandOTHER_CODE_SIGN_FLAGS. LUA_BINoption for specifying a Lua command other thanluawhen buildingnative-luajitmake target, used by CIunzip-to-buildmake target, for unzipping artifacts from CI to build folder
stripinvocation on OSX builds- Update build GitHub Actions workflow with newer build pipeline
- Added
build/.gdignoreto distribution, to stop Godot from trying to importbuild/jit/*.luafiles - Added default values for
MACOSX_DEPLOYMENT_TARGET, making it an optional parameter for OSX builds
EditorExportPluginfor minifying Lua scripts withLuaSrcDieton release exports. Minification may be turned off with thelua_pluginscript/export/minify_on_release_exportproject setting.
- Release builds' init Lua script are minified with
LuaSrcDietand libraries are nowstriped, resulting in smaller dynamic libraries - HGDN functions are now compiled with static visibility and unused GDNative extensions are excluded, also resulting in smaller dynamic libraries
- Makefile targets for cross-compiling for Windows were renamed from
cross-windows*tomingw-windows*
PoolByteArray.extendwhen called with a string argument
Array.joinmethod, similar toPoolStringArray.join- Project Settings for setting up
package.pathandpackage.cpath - Bundle LuaJIT's
jit/*.luamodules in build folder
- Error handler now uses
tostringto stringify the incoming parameter, avoiding type errors. It also checks for the result ofstring.match, so it does not errors if the message is not in the format expected. - Loading of C modules now uses absolute library paths, so that files found in
patterns like
res://*are correctly loaded. - Always try loading active library, so that dynamic loader knows about
lua*symbols when loading C modules. Pool*Arrays'__gcmetamethod
GD._VERSIONObject.null- Call
Object.setonObject.__newindex - Stack trace to error message when loading script fails
- Initialize known properties when instantiating script
- Unit test infrastructure
- Android ARMv7/ARM64/x86/x86_64 builds
- [plugin] REPL history, with up/down keys choosing previous/next line
- Properties with
nilas default value not accesible from Lua - Call
Array.duplicateusing API 1.1 instead of 1.0 Array.duplicateandArray.slicereturn value GC- Call
Dictionary.duplicateusing API 1.2 instead of 1.0 VariantTypeused for float properties- Calling
NodePath()returns an empty NodePath, rather than one with the path"nil"
- Lua PluginScript language
- Embedded LuaJIT
- Metatypes for all Godot basic types
yieldfunction similar to GDScript's- Script validation and template source code
- Editor plugin with a simple REPL
- Package searcher for Lua and C modules that work with paths relative to
the
res://folder and/or exported games' executable path - API documentation