Vala 0.51.1 =========== * Highlights: - Support "binding" to bind GtkCallback to class of given property [#1093] - Add support for type narrowing [#894] - Support chain up to simple generics constructor [#342] - Perform runtime version check of libvala [#88] - girparser: Handle anonymous delegate not backed by virtual-method or signal - Add support for 'opaque' compact classes [#1129] - Add further support for params arrays in constructors [#128] - Improve handling of "NoWrapper" attribute - Improve support of SimpleType struct constructors - Use __attribute__ instead of G_GNUC_* in POSIX profile - Add SDL 2.x bindings [#1032] amd drop SDL 1.x * Various improvements and bug fixes: - codegen: + Improve GValueModule.visit_cast_expression() + Drop obsolete dedicated handling of property value-parameter + Apply CCodeModifiers.PRINTF to "string_printf" (POSIX) + Allow CCode.type_cname for classes and use get_ccode_type_name() + Always use G_TYPE_INSTANCE_GET_CLASS/INTERFACE for external symbols + Also check array type of variable argument for ref parameters + Don't leak array memory after it was implicitly copied + Use g_boxed_free in free-wrapper for heap-allocated GLib.Value + Don't leak GLib.Value when implicitly unboxing it + Don't leak memory moving heap-allocated struct to stack + Chain up to base struct destroy function + Use g_memdup2 if target glib >= 2.68 is set + Replace "g_memdup" with "_vala_memdup2" for target glib < 2.68 + Correctly retrieve symbol_reference of nested cast expressions [#1134] + Strip all nested occurances of CCodeCastExpression [#1134] - vala: + Improve detection of duplicate package source files + GtkChild fields/properties must be declared as unowned [#1121] + Don't allow assigning GtkChild fields/properties [#1121] + Apply stricter condition for lambda to delegate assignment + Don't allow disposable SimpleType structs + Rename Loop to LoopStatement and introduce a common base class + GLib.Value unboxing returns unowned value + Don't allow GLib.Value casting to nullable struct/simple types + Add Block.unreachable_exit and have it set by FlowAnalyzer [#838] + Convert Report.*() to real printf-like functions + Avoid taking extra reference of foreach collection for index iteration + Make sure parent_symbol for special async parameters is available + Require a valid DataType instance for every TargetValue - girparser: + Minor improvement to field getter detection + Apply "delegate_target" metadata for methods and parameters + Apply "destroy_notify_cname" metadata for fields + Apply "type_get_function" metadata for classes and inferfaces + Set CCode.type_cname for classes if it doesn't match our default - girwriter: Infer gir_namespace/version from target GIR filename [#606] - girwriter: Write instance-parameter elements [#1128] - libvaladoc/html: Don't sort struct fields to keep their original order - libvaladoc: Correctly retrieve value for Api.Class.is_compact - libvaladoc: Add wrapper for "agedge" of graphviz - valadoc: Correctly set verbose flag on CodeContext - valadoc: Replace png icons with elementary's svg version * Bindings: - Add enchant-2 bindings for Enchant 2.x - Add gnu.vapi with binding for getopt_long() and some other GNU APIs - Add libunwind-generic binding - Fix several bindings which lead to invalid code by using them in: cairo, gobject-2.0, pango, goocanvas-2.0, curses, alsa, bzlib, sqlite3, libgvc, posix, gstreamer-1.0, gdk-3.0, gdk-x11-3.0, gtk+-3.0, gtk4, fuse, libxml-2.0 - curses: Remove initial “w” from some Window method names for consistency - gdk-pixbuf-2.0: Fix Pixbuf.save_to_streamv_async() - gdk-pixbuf-2.0: Update to 2.42.3~ - gio-2.0: Fix binding of PollableOutputStream.write*_nonblocking() - gio-2.0,gtk+-3.0,gtk4: Drop explicit c-type attributes of va_list parameters - gio-2.0: Pick up missing invoker for some AppInfo/File.*() methods - gio-2.0: Update to 2.67.3 - glib-2.0: Add GLib.[S]List.is_empty() convenience methods for non-null - glib-2.0: Add new symbols from 2.68 - glib-2.0: Bind assert_cmp* functions [#395] - glib-2.0: Improve type of OptionEntry.flags field - glib-2.0: Make PtrArray a subclass of GenericArray - gobject-2.0: Add new symbols from 2.68 - gstreamer-1.0: Set CCode.type_id of MiniObject to G_TYPE_BOXED [#1133] - gstreamer: Update from 1.19.0+ git master - gtk+-2.0,javascriptcoregtk-4.0: Wrong usage of CCode.type_cname attribute - gtk+-3.0,gtk4: Fix some delegate return values and parameters - gtk4: Update to 4.1.0+2712f536 - posix: Add POSIX, GNU and BSD Regex APIs - webkit2gtk-4.0: Update to 2.31.1