haskell-gi-0.26.17: ChangeLog.md
### 0.26.17
+ More robust support for inout arguments, motivated by [issue 472](https://github.com/haskell-gi/haskell-gi/issues/472).
### 0.26.15
+ Fix a code generation mistake when tranferring GClosure arguments of
unknown type.
### 0.26.12
+ Add support for the .gir format dialect generated by vala.
### 0.26.11
+ Don't try to guess which callback arguments are `user_data` arguments, as this can lead to problems, as in [issue 447](https://github.com/haskell-gi/haskell-gi/issues/447).
### 0.26.9
+ Add a workaround for a [GHC issue](https://gitlab.haskell.org/ghc/ghc/-/issues/23392) stopping parallel compilation in GHC >= 9.6.
+ Fix compilation issues regarding `time_t` and similar types in
introspection data.
### 0.26.8
+ Add support for scope type "forever": see [this issue](https://github.com/haskell-gi/haskell-gi/issues/425).
### 0.26.7
+ Work around changing conventions on how to annotate user_data arguments in callbacks, see [this gobject introspection issue](https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/450) for background.
### 0.26.6
+ Work around changing conventions about what the `closure n` annotation means: many annotations appear on the callback, pointing to the user_data argument, but sometimes it also appears on the user_data argument, pointing to the callback. See [issue 407](https://github.com/haskell-gi/haskell-gi/issues/407) for a place where this becomes a problem.
### 0.26.5
+ Add a reference to ?self argument in signals. See [issue 408](https://github.com/haskell-gi/haskell-gi/issues/408) for the motivation.
### 0.26.0
+ Support for 'HasField' methods, which allows the syntax 'widget.show' or 'widget.add child' for invoking methods using the new [RecordDotSyntax](https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0282-record-dot-syntax.rst) in ghc 9.2.
+ And an implicit '?self' parameter for callbacks, for accessing the calling object. See [issue 346](https://github.com/haskell-gi/haskell-gi/issues/346) where this is necessary in practice in gtk4 to use event controllers.
+ Add an 'After' attribute to connect to signals after the default handler on constructors/setters using attribute syntax, similar to [On](https://hackage.haskell.org/package/haskell-gi-base/docs/Data-GI-Base-Attributes.html#t:AttrOp).
+ Add [resolveSignal](https://hackage.haskell.org/package/haskell-gi-base-0.26.0/docs/Data-GI-Base-Signals.html#v:resolveSignal) for showing what an overloaded signal resolves to: `resolveSignal button #notify` will output [GI.GObject.Objects.Object.Object::notify](https://hackage.haskell.org/package/gi-gobject-2.0.27/docs/GI-GObject-Objects-Object.html#g:signal:notify).
### 0.25.0
+ Support non-GObject object attributes.
+ Support for ghc 9.0.1.
+ Improvements in the generated Haddocks.
+ Remove the command line version of the bindings generator.
+ Remove support for non-IsLabel overloading.
+ Add [resolveMethod](https://hackage.haskell.org/package/haskell-gi-base-0.25.0/docs/Data-GI-Base-Overloading.html#v:resolveMethod) for showing what an overloaded method resolves to: `resolveMethod #show widget` will output `GI.Gtk.Objects.Widget.widgetShow`.
### 0.24.5
+ Fix an accidental double free for GValues, see [issue 320](https://github.com/haskell-gi/haskell-gi/issues/320).
+ Accept docsections in gir files, although they are currently ignored. See [issue 318](https://github.com/haskell-gi/haskell-gi/issues/318).
### 0.24.4
+ Relax bound on ansi-terminal.
### 0.24.3
+ Provide type init functions for GParamSpec types. This solves a puzzling linker error saying that the "intern" symbol could not be resolved, see [issue 297](https://github.com/haskell-gi/haskell-gi/issues/297) and [issue 298](https://github.com/haskell-gi/haskell-gi/issues/298).
### 0.24.2
+ Support for allocating GArrays of known size structs in caller-allocates arguments.
### 0.24.1
+ Add support for delete-attr override, to remove attributes.
+ Allow (but ignore) destroyers in scope async callbacks.
### 0.24.0
+ Added support for non-GObject objects
### 0.23.2
+ Fix a possible segfault in functions that return an out pointer to a dynamically allocated array, but do not initialize the array if it has zero size. See [#289](https://github.com/haskell-gi/haskell-gi/issues/289) for an example.
### 0.23.1
+ Check whether symbols exist in the dynamic library before trying to generate bindings for them, in order to avoid linker errors.
### 0.23.0
+ gobjectType now does not require a proxy argument, it needs to be used with TypeApplications instead.
+ Annotated signals are supported: `on widget (signal ::: "detail")`.
+ Safe coercions to parent types supported, with `asA`.
+ Support for GObject subclassing, and registering custom properties.
+ Use TypeApplications in `AttrInfo` implementation, and inherited methods implementation.
+ Add an allocating setting operator `(:&=)`.
+ Support for exporting class structs.
+ IsGValue instances for GObjects and boxed objects.
### 0.22.6
+ Fix generated IsX typeclasses for non-GObject interfaces.
### 0.22.5
+ Add support for inheriting overloading info.
### 0.22.4
+ Do not generate bindings for struct/union fields pointing to private/class structs, which we do not bind.
### 0.22.3
+ Sometimes struct fields marked as not introspectable contain invalid introspection info. We are lenient in these cases with parsing errors, and simply ignore the fields.
### 0.21.5
+ Add support for callback-valued properties.
### 0.21.4
+ Try to guess signedness of enums and flags on the C side, fixes [#184](https://github.com/haskell-gi/haskell-gi/issues/184).
### 0.21.3
+ Do not add nodes in overrides if a node with the same name already exists, fixes [#171](https://github.com/haskell-gi/haskell-gi/issues/171).
### 0.21.2
+ Do not free `Ptr Word8` types after performing the call to C,
since they only get passed along. Otherwise one could easily double free in functions such as [GdkPixbuf.pixbufNewFromData](https://hackage.haskell.org/package/gi-gdkpixbuf/docs/GI-GdkPixbuf-Objects-Pixbuf.html#v:pixbufNewFromData).
+ Fix a leak on optional `ScopeTypeAsync` callbacks.
### 0.20.4
+ Improve marshaling of array arguments with no specified size. This improves the generated bindings for various functions, for instance [`GObject.signalEmitv`](https://hackage.haskell.org/package/gi-gobject/docs/GI-GObject-Functions.html#v:signalEmitv).
+ Replace the enable-overloading flags with a explicit CPP check of the version of `haskell-gi-overloading` we are being compiled against, see [issue 124](https://github.com/haskell-gi/haskell-gi/issues/124) for the rationale.
### 0.20.3
+ Make the overloading code protected by a CPP conditional, depending on ENABLE_OVERLOADING being defined. See [issue 107](https://github.com/haskell-gi/haskell-gi/issues/107).
+ Wrap boxed structs/unions as transient [ManagedPtr](https://hackage.haskell.org/package/haskell-gi-base/docs/Data-GI-Base-BasicTypes.html#t:ManagedPtr)s in callbacks. This is needed to fix a number of issues, including [issue 96](https://github.com/haskell-gi/haskell-gi/issues/96) and [issue 97](https://github.com/haskell-gi/haskell-gi/issues/97).
### 0.20.2
+ Fixes for GHC 8.2.1.
### 0.20.1
+ gtk-doc parser and haddock generator: while by no means perfect,
now the autogenerated bindings come with some reasonable
autogenerated documentation.
+ Many bugfixes. A particularly important one is for
[issue 82](https://github.com/haskell-gi/haskell-gi/issues/82), which
made compilation of
[gi-glib](http://hackage.haskell.org/package/gi-glib) fail, for
the latest version of gobject-introspection.