Releases: hugopl/gi-crystal
Releases · hugopl/gi-crystal
v0.18.0
Fixed
- Fix compilation with glibs2 2.78 and gobj introspection 1.78 (#125).
- Increase reference of transfer full interface parameters (#122).
- Check if object is null before increase its reference (#119).
- Fix array of string properties (#118).
Changed
- Remove hardcoded
g_object_ref
calls, binding authors now need to implement
GICrystal.ref
/GICrystal.unref
for their special types (#123).
v0.17.0
Added
- Annotate deprecated methods in bindings (#114).
- Add
#to_s
,#==
and.parse
toGLib::Variant
(#113). - Add GC resistant GObject subclasses 🎉️, thanks @BlobCodes (#107).
- Allow enum and flags to be ignored in binding.yml (#101).
- Print GI annotation info for vfunc, helping debugging.
Fixed
- Bind false boolean constants to false (#111).
- Ensure Bool return type on vfuncs that return booleans (#110).
- Fix ownership transfer of vfunc return values (#102).
- Fix compilation for vfuncs returning nullable objects or strings (#104).
Changed
- Ignore deprecated
GObject::ValueArray
object. (#115)
v0.16.0
Added
- Add test helper methods:
ClosureDataManager.count
,ClosureDataManager.info
andClosureDataManager.deregister_all
(#92). - Added bindings for
GLib.real_name
(#93). - Added option to ignore constants in binding generation, thanks @charitybell (#95)
Fixed
- Fix compilation with
-Ddebugmemory
for some struct bindings (#91). - Convert boolean return values in virtual functions (#96).
Changed
- Removed a lot of constants from GLib and GObject bindings (#97).
v0.15.3
v0.15.2
v0.15.1
Added
- Show Crystal version on generator logs.
- Support
Path
objects in signals, they are exposed as C strings to C code.
Fixed
- Fix
GLib::SList
of modules (GObject interfaces) (#68). - Fix
GLib::SList
ofGObject::Object
. - Fix
GLib::List
of modules. - Fix
GLib::List
ofGObject::Object
. - Fix signals with modules (GObject interfaces) parameters.
- Do not use relative paths on
GiCrystal.require
macro (#70). - Fix binding generation for modules with no errors that doesn't depend on GLib (#79).
v0.15.0
v0.14.0
Added
- Added support to declare GObject properties in Crystal classes 🎉️, thanks @BlobCodes (#44).
- Added possibility to ignore some struct fields in binding generation (#58).
- Crystalize even more docs, thanks @GeopJr. (#62).
Fixed
Changed
v0.13.1
Added
- Added option to complete ignore functions (i.e. ignore new added HarfBuzz functions that broke the generator).
Fixed
- Fixed naming of virtual functions, now they can have any name.
- Correct generate code for structs with static array of structs, thanks @BlobCodes.
v0.13.0
Added
- Property constructors can be called in constructor super calls from user classes, e.g.
super(property: value)
. - Show if return value is nullable in generated code, helping debug.
- Implement virtual functions and allow including interfaces, thanks @BlobCodes (#26).
- Implement unsafe virtual functions, thanks @BlobCodes (#41).
- Implement user-transparent GObject enums, thanks @BlobCodes
Changed
- Use
GC.malloc_atomic
to allocate wrappers to reduce GC work, thanks @BlobCodes (#18). - Move struct wrappers data inside struct, reducing 1 malloc call, thanks @BlobCodes (#19).
- Translate GError in return values or signal parameters to exception objects. (#25)
- Raise a compile error when using
GObject::ParamSpec.g_type
. (#24) - Print info about ClosureDataManager when compiling using -Ddebugmemory.
GObject::GeneratedWrapper
annotation is nowGICrystal::GeneratedWrapper
.
Fixed
- Don't use invalid characters when registering GObject types, thanks @BlobCodes (#30)
- Allow binding objects with functions named initialize/finalize, thanks @BlobCodes (#42)