Skip to content

Releases: hugopl/gi-crystal

v0.18.0

19 Sep 21:47
Compare
Choose a tag to compare

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

14 Jul 18:16
Compare
Choose a tag to compare

Added

  • Annotate deprecated methods in bindings (#114).
  • Add #to_s, #== and .parse to GLib::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

16 Jun 18:16
Compare
Choose a tag to compare

Added

  • Add test helper methods: ClosureDataManager.count, ClosureDataManager.info and ClosureDataManager.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

31 May 20:03
Compare
Choose a tag to compare

Fixed

  • Let struct bindings allocated on help to obey -Ddebugmemory flag.
  • Translate GTK doc parameter markup to crystal doc style.

Changed

  • Removed version_from_shard dependency.

v0.15.2

16 Apr 21:32
Compare
Choose a tag to compare

Added

  • Added declaration of LibGLib.g_bytes_new_static, used internally by other modules.

v0.15.1

10 Mar 19:18
Compare
Choose a tag to compare

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 of GObject::Object.
  • Fix GLib::List of modules.
  • Fix GLib::List of GObject::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

15 Jan 16:33
Compare
Choose a tag to compare

Fixed

  • Fix callback generation of callbacks without user_data paramenter as last parameter (#63).
  • Fix signal boolean parameters (#66).
  • Allow chaining up unsafe vfuncs, thanks @BlobCodes.

v0.14.0

02 Sep 19:00
Compare
Choose a tag to compare

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

  • Enum and flags #g_type method now works (#56).
  • Convert return values of vfuncs (#60).

Changed

  • Changed format of binding.yml file for better flexibility.
  • Generate bindings for POD structs as Crystal structs (#58).
  • Doc comments generation is now disabled by default (#59).

v0.13.1

04 Jul 03:58
Compare
Choose a tag to compare

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

30 Jun 19:55
Compare
Choose a tag to compare

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 now GICrystal::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)