What's new in Vala 0.47.3
Jan 22, 2020
- Highlights:
- Add further support for params arrays [#128]
- Various improvements and bug fixes:
- codegen:
- + Don't set implemenation of interface property to its own [#891]
- + Use result value of assignment rather than its computation [#895]
- + Cast instance parameter in member-initializer for base-properties [#899]
- vala:
- + Infer target_type in coalescing expressions [#892]
- + Non-nullable value-type in coalesce expression needs to be copied [#893]
- + Fix short-circuiting behavior of coalescing operator [#534]
- + Always bail if there are semantic errors
- - girparser: Apply explicitly given ctype metadata attributes on callables
- Bindings:
- - glib-2.0: Let (u)int.try_parse() return false if there is an unparsed part
- - gtk4: Update to 3.96.0+7e2e92a8
- - gstreamer: Update from 1.17.0+ git master
- - vapi: Update GIR-based bindings
- - webkit2gtk-4.0: Update to 2.27.4
New in Vala 0.47.2 (Jan 8, 2020)
- Highlights:
- compiler: Add "--depfile" option writing package dependencies to given file
- Various improvements and bug fixes:
- - codegen:
- + Fix support of dynamic DBus methods
- + Fix vfunc signature of delegate-typed property in interface
- + Fix precondition in creation method of structs
- + Remove unreachable code in TypeRegisterFunction.init_from_type()
- + Improve *_get_type() fast path (requires glib >= 2.58) [#879]
- - vala:
- + Report error for async creation expression without yield
- + Don't require constant initializer in fast-vapi [#461]
- + VoidType is actually compatible with itself [#878]
- + Improve handling of "void" as generic type [#878]
- + Keep formal_target_type on transform of method-call/object-creation [#835]
- + Add a basic parameter check for [Print] methods
- + Let the parser have set namespace members as static
- + Don't ignore inner errors in Block and acknowledge them further
- + Improve error message for unsupported inner types and declarations
- + Don't allow "va_list" as return-type or type of fields [#884]
- + Check before accessing "name" of parent_symbol which might be null
- + Allow to override base interface properties explicitly
- - gidl/girparser: Creation methods must not be marked as static
- - parser: Implicit "main" method of main-block is public and static
- - scanner: "x" requires two hex digits at most
- - scanner: Improve check of "u" escape sequence
- - genie: Fix parser's inner state when a struct is declared after a class
- Bindings:
- - glib-2.0: Add to_string() for GLib.PollFd and GLib.Pid
- - glib-2.0: Add new symbols from 2.64
- - glib-2.0: Reset errno before calling strto*() functions.
- - gstreamer: Update from 1.17.0+ git master
- - gtk4: Update to 3.96.0+448a4023
- - pango: Update to 1.44+
- - vapi: Update GIR-based bindings
- - webkit2gtk-4.0: Update to 2.27.3
New in Vala 0.46.5 (Nov 18, 2019)
- Regression and bug fixes:
- codegen:
- Fix vfunc signature of delegate-typed property in interface
- Fix support of dynamic DBus methods
- vala:
- Don't require constant initializer in fast-vapi [#461]
- Report error for async creation expression without yield
- Bindings:
- glib-2.0: Add "has_typedef = false" to custom MarkupParser*Func delegates
New in Vala 0.46.4 (Nov 11, 2019)
- Various improvements and bug fixes:
- - codegen:
- + Use G_TYPE_INSTANCE_GET_INTERFACE to get vtable for base-access
- + Fix setting of generic-type properties for gobject chain up [#654702]
- + Make type-parameter properties readable [#190]
- + Reduce code duplications when generation base-access
- - vala:
- + Warn when passing arrays to typeof(), except for "string[]" [#868]
- + Don't falsely resolve binary-expression to bool [#869]
- + Do not allow += for arrays with fixed length
- + Infer array length of inline allocated arrays for fields [#644046]
- + Do not allow to .resize() on arrays with fixed length
- + Do not allow to change .length of arrays with fixed length
- + Improve error message for arrays as type arguments
- + Improve error reporting for invalid interface prerequisites [#437]
- + Write value of constants/enums in fast-vapi if constant only [#461]
- + Restore DestroysInstance behaviour for non-compact classes [#873]
- - parser: `owned` is not allowed on Constants
- - girparser: Detect and replace "-" in parameter names
- - girwriter: Add readable="0"/private="1" attribute to type-specific fields
- - gidl:
- + Calculate size correctly, avoid use-after-free
- + Avoid use of uninitialized "markup" warning
- + Ignore flags like -mfpmath=sse, -msse or -msse2
- - valadoc:
- + libvaladoc: Fix parameter and property ownership declarations
- + Fix ownership declarations of Constants
- - pkg-config:
- + vala: Add missing gmodule-2.0 to Requires.private of pkg-config file
- + libvaladoc: Move gmodule-2.0 to Requires.private of pkg-config file
- Bindings:
- - glib-2.0: Guard against passing null source to GLib.Memory.copy()
- - gio-2.0: Use custom TaskReadyCallback delegate in Task.report*_error()
- - gstreamer: Update from 1.17.0+ git master
- - gtk+-3.0: Skip _MountOperationHandler* symbols
- - gtk4,gtk4-unix-print: Update to 3.96.0+ab407ba5
- - libusb-1.0: Don't depend on glib-2.0
- - libusb-1.0: Remove unused private "malloc" binding
- - linux: Add memfd_create(2)
- - posix: Bind some essential memory allocation functions
- - webkit2gtk-4.0: Update to 2.27.2
New in Vala 0.47.1 (Nov 11, 2019)
- Highlights:
- - Various improvements for the POSIX profile
- - codegen:
- + Allow passing/retrieving any delegate to/from varargs parameter
- + Support gobject property of null-terminated array without length [#855]
- + Support gobject property of delegates not carrying their target [#856]
- + Warn when directly accessing member of silent cast-expression
- - vala:
- + Add DelegateType.target/destroy fields to access its user-data [#857]
- + Accept interface as inner type for object-type symbols [#697]
- + Add GenericType.dup/destroy fields [#190]
- + Support "unowned var" to declare local variables [#152]
- - compiler: Add "--list-sources" options to output list of all sources [#872]
- * Various improvements and bug fixes:
- - codegen:
- + Move type-argument checks to SemanticAnalyzer
- + Make CCodeBaseModule.generate_method_declaration() return bool
- + Fix custom reference-counting for compact classes
- + G_DEFINE_AUTOPTR_CLEANUP_FUNC must not declared more than once
- + Use SemanticAnalyzer.get_data_type_for_symbol()
- + Commonize the determining of return-type for delegates and methods
- - vala:
- + Rename DataType.data_type property to DataType.type_symbol
- + Unify backing symbol instance of data-types
- + Respect --abi-stability in Class/Interface.accept_children()
- + Don't mark method as used on recursive usage of itself [#100]
- + Set GLib.Error as symbol of error-types if no error-domain was given
- + Make Callable derive from Symbol
- - libvaladoc: Remove TypeReference.pass_ownership API
- - valadoc: Rename FormalParameter to Parameter
- - girwriter: Fix position of priv field (--abi-stability) [#850]
- Bindings:
- - glib-2.0: Add binding for "gettext()" [#864]
- - glib-2.0: Add new symbols from 2.64
- - glib-2.0: Add optional "base" parameter to *.parse/try_parse() of integers
- and check errno for EINVAL and ERANGE in *.try_parse() [#223]
- - glib-2.0: Add (u)int.try_parse() [#649]
- - glib-2.0: Add "has_typedef = false" to custom MarkupParser*Func delegates
- - gtk+-*.0: Fix iter parameter of TextBuffer.backspace()
- - gtksourceview-2.0: Fix iter parameter in SourceBuffer.backward/forward/...
- - libusb-1.0: Use a wrapper for Context.get_device_list() [#151]
New in Vala 0.46.3 (Oct 9, 2019)
- Various improvements and bug fixes:
- codegen:
- + Accept children after generating type specific declarations
- + Preserve full access to delegate variables and its target/destroy cvalues
- + Initialize delegate temp-var which is assigned by property getter
- + Silence warning about copying if delegate doesn't carry its target
- + Use gtype-boxed API for structs with "g_boxed_free" attribute [#863]
- ccode: Implicitly register declaration for added CCodeFunction
- vala: Fix compatible/disposable check between structs and their subtypes
- vala: Don't issue a warning for non-public struct fields in bindings
- girparser: Add required copy/free attributes for gtype-boxed structs and regenerate GIR-based bindings to pick up copy/free attributes [#863]
- docs: Mention requirement of autoconf-archive as build-dependency
- vapi: Perform syntax and semantic check for all bindings on "make check"
- Bindings:
- avahi-client: Fix "use of possibly unassigned parameter" warnings
- glib-2.0: Set default_value attribute for GLib.pointer
- gnutls: Fix "use of possibly unassigned parameter" warnings
- tokyocabinet: Fix deprecation warnings
- xcb: Fix "missing return statement at end of subroutine body" errors
New in Vala 0.46.2 (Sep 30, 2019)
- Various improvements and bug fixes:
- vala:
- Report dedicated error message for params-array parameter mismatch
- Output "params" qualifier of parameters
- Allow to override virtual interface implementations [#852]
- Perform stricter compatibility check for delegates
- codegen: Directly use "memmove()" while g_memmove() is deprecated
- valadoc: Explicitly pass --pkg libgvc
- tests: Add more tests to increase coverage
- Bindings:
- gio-unix-2.0: Fix DesktopAppInfo.get_string(), UnixFDMessage.steal_fds()
- glib-2.0: DateTime.from_iso8601() can take a null TimeZone
- gobject-2.0: Some cherry-picking from GIR generated binding
- gstreamer: Update from 1.17.0+ git master
- gtk4: Update to 3.96.0+bcea9652
- gtk4: Constructors of Gtk.MediaFile needs to be static functions
- sqlite3: Fix use of possibly unassigned parameter `errmsg'
New in Vala 0.46.0 (Sep 5, 2019)
- Highlights:
- Add boolean CodeContext.keep_going and corresponding compiler option
- Various improvements and bug fixes:
- - vala:
- + Move find_parent_type_symbol/get_this_type() to SemanticAnalyzer
- + Exclude nullable simple-type structs from gobject-property support
- + Reject unary operations on nullable integer/floating/boolean type [#772]
- - codegen:
- + Don't append unreachable clean-up section of Block [#838]
- + Don't cause double-free due append_local_free() in uncaught-errors [#838]
- + Don't unconditionally add/return internal "result" variable [#838]
- - codewriter: Write "weak" modifier for properties
- - girparser: Improve evalution of instance-parameter information [#836] (Regenerate GIR-based bindings to pick up out/ref instance-parameters)
- - girparser/gidlparser: "value_owned = true" by default for property types
- - libvaladoc: Don't traverse into close circles with parent [#829]
- - genie: Creation methods should not be static
- Bindings:
- - glib-2.0: Fix MutexLocker binding
- - glib-2.0: Add missing "DestroysInstance" attributes to Mutex/Locker API
- - glib-2.0: Use 'GStatBuf' as ctype for 'Stat'
- - glib-2.0: Add new symbols from 2.62
- - gio-2.0: Drop metadata for NativeSocketAddress
- - gstreamer: Update from 1.17.0+ git master
- - gtk4: Regenerate to pick up DestroyInstance attributes
- - json-glib-1.0: Change abstract methods of Serializable to virtual [#840]
- - libsoup-2.4: soup_auth_new is not a constructor but a factory method [#791]
- - vapi: Update GIR-based bindings
New in Vala 0.46.0 Beta 2 (Aug 31, 2019)
- Various improvements and bug fixes:
- vala: Init formal_target_type of built ArrayCreationExpression from InitializerList [#835]
- vala: Add missing closing brace/bracket in to_string() of ArrayCreationExpression and InitializerList
- Bindings:
- cairo: Add 1.16 symbols
- linux: Add more Input and update UserspaceInput bindings [#830]
- sqlite3: Bind sqlite3_expanded_sql() and sqlite3_normalised_sql()
New in Vala 0.45.3 (Jul 24, 2019)
- Various improvements and bug fixes:
- vala: Add Symbol.is_extern and use/set is accordingly (#745)
- codegen:
- Don't write declaration of extern symbols with given header (#745)
- Real structs are allowed by simple generics and passed as reference (#819)
- Assign GValue result of function calls to temp-var on copy_value (#819)
- build: Pass -no-undefined when linking libvalaccodegen (#820)
- Bindings:
- glib-2.0: Add binding for g_strv_equal() (since 2.60)
- glib-2.0: Bind strcmp0 as GLib.CompareFunc (#810)
- glib-2.0: Fix RecMutexLocker binding
- glib-2.0: Add new symbols from 2.62
- gstreamer: Update from 1.17.0+ git master
- gtk4: Update to 3.96.0+b05d1676
- xtst: Fix signature of XTest.fake_relative_motion_event()
- vapi: Update GIR-based bindings
New in Vala 0.44.5 (Jun 19, 2019)
- Various improvements and bug fixes:
- Only warn about imcompatible type of external construct property [#803]
- codegen: Use array_length of collection variable instead of expression
- girparser: Skip 'attribute' elements
- girwriter: Report error on secondary top-level namespace [#805]
- Bindings:
- gtk+-3.0: Update to 3.24.9~18177388
- gtk4: Update to 3.96.0+8cfdd6c5
New in Vala 0.44.4 (Jun 5, 2019)
- Various improvements and bug fixes:
- vala: No-accessor struct properties in GLib.Object class must be owned
- codegen: Always use G_TYPE_CHECK_INSTANCE_TYPE for external symbols
- parser: Multiple corrections for source-location of code-nodes
- build: Pass some useful G_LOG_DOMAIN definitions
- girwriter: Mention that this file is generated and not meant to be modified
- girwriter: Properly resolve GLib.TypeInterface instead of hardcoding it
- girwriter: Multiple improvements and fixes for e.g. GType classes
- girparser: Add support for string "ctype" metadata [#793]
- codegen: Move GObject property validity checks to SemanticAnalyzer
- When freeing local variables don't stop at "switch" on "continue" [#799]
- compiler: Add OptionFlags.NO_ARG to deprecated "--thread" option
- Bindings:
- glib-2.0: Don't annotate dedicated GLib.assert_*() functions with [Assert] [#769]
- clutter-1.0: Bind Margin, PaintVolume, Point, Rect and Size as struct [#795]
- cogl-1.0: Fix out-params in Cogl.get_modelview_matrix/projection_matrix/ bitmasks [#794]
- gstreamer: Cherry-pick some fixes from 0.46
- gtk4: Update to 3.96.0+69016825
New in Vala 0.45.1 (May 22, 2019)
- Highlights:
- Require and target GLib >= 2.48 [#671]
- Add support for --target-glib=auto [#761]
- Report error for public creation methods of abstract classes [#766]
- Report error for yield statements without async context
- Write "Source" attribute in fast-vapi mode
- No-accessor struct properties in GLib.Object class must be owned
- Support GObject properties with nullable GType-based struct type [#792]
- Always use G_TYPE_CHECK_INSTANCE_TYPE for external symbols
- valadoc: Drop obsolete "Driver" API
- Various improvements and bug fixes:
- parser: Multiple corrections for source-location of code-nodes
- build: Pass some useful G_LOG_DOMAIN definitions
- girwriter: Mention that this file is generated and not meant to be modified
- girwriter: Properly resolve GLib.TypeInterface instead of hardcoding it
- girwriter: Multiple improvements and fixes for e.g. GType classes
- girparser: Add support for string "ctype" metadata [#793]
- codegen: Move GObject property validity checks to SemanticAnalyzer
- When freeing local variables don't stop at "switch" on "continue" [#799]
- compiler: Add OptionFlags.NO_ARG to deprecated "--thread" option
- Bindings:
- Remove vte, vte-2.90 bindings [#584]
- Rename graphene-1.0 to graphene-gobject-1.0
- glib-2.0: Don't annotate dedicated GLib.assert_*() functions with [Assert] [#769]
- clutter-1.0: Bind Margin, PaintVolume, Point, Rect and Size as struct [#795]
- cogl-1.0: Fix out-params in Cogl.get_modelview_matrix/projection_matrix/ bitmasks [#794]
- gstreamer: Update from 1.17.0+ git master
- gtk4: Update to 3.96.0+322507f2
- vapi: Update GIR-based bindings
New in Vala 0.44.3 (Apr 10, 2019)
- Regression and bug fixes:
- codegen: Always assign original variable when consuming instance to destroy [#781]
- build: Require --with-cgraph configure flag when cross-compiling [#775]
- Bindings:
- gdk-3.0,gtk+-3.0: Update from 3.24.7+
- gtk4: Update to 3.94.0+2594593d
- gstreamer: Update from 1.15.2+ git master
- pango: Fix StringBuilder parameter of scan_word()
New in Vala 0.44.2 (Mar 31, 2019)
- Various improvements and bug fixes:
- ccodegen:
- Resolve generics in sizeof-expression of parameter initializer
- Move implicit GValue cast for comparison to BinaryExpression [#585063]
- Use available *_unref functions in G_DEFINE_AUTOPTR_CLEANUP_FUNC
- Move get_type_signature() to DataType
- Move try_cast_variant_to_type() to GVariantModule.visit_cast_expression()
- Don't create special GArray clear-func for non-null structs
- Implement silent-cast for GLib.Variant [#767]
- vala: Variadic parameters are not supported for async methods
- vala: Report error for unsupported operator instead of assertion
- girparser: Create correct output in get_default_lower_case_suffix() [#778]
- libvaladoc: Handle missing Content.List.Bullet.ORDERED in switch
- libvaladoc: Handle missing Run.Style.NONE in switch
- Add explicit "default: break;" statements for coverage of enum-typed switch
- Bindings:
- glib-2.0: Don't annotate dedicated GLib.assert_*() with [Assert] [#769]
- gio-2.0: Revert enum-typed flags parameters in Socket API [glib!728]
- gobject-introspection-1.0: Fix TypeInfo and TypeTag method references
- gstreamer: Update from 1.15.2+ git master
- gstreamer-1.0: Fix TypeFind and TypeFindFactory method references [#778]
- gtk4: Update to 3.94.0+f273eca7
- vapi: Update GIR-based bindings
New in Vala 0.44.1 (Mar 25, 2019)
- Various improvements and bug fixes:
- ccodegen:
- Use unsigned default value for flags-enum
- Use guint to represent flags-enum in custom GMarshalFunc
- Move disconnect error from signal-module to semantic-analyzer pass
- Mark defined constructors of abstract classes as protected
- parser: Implicit creation method of abstract classes must be protected
- vala: Allow assignment of 0U to enum types
- libvaladoc: Don't try to create a Content.ListItem when there is none
- Bindings:
- gio-2.0: SocketAddress.from_native() is a factory method not a constructor
- glib-2.0: Add string.validate_len() since 2.60
- gstreamer: Update from 1.15.2+ git master
- gtk4: Update to 3.94.0+f14d998c
- libgvc: Some additions and ownership/return-type fixes
- vte-2.90: Mark as deprecated, it was replaced by vte-2.91
- vapi: Update GIR-based bindings
New in Vala 0.44.0 (Mar 13, 2019)
- Various improvements and bug fixes:
- parser: Adjust various source references
- vala: More regular invocations of check() on inferred Expression.value_type
- Bindings:
- gstreamer: Update from 1.15.2+ git master
- gtk4: Update to 3.94.0+eacbeb9e
- vapi: Update GIR-based bindings
New in Vala 0.44.0 Beta 2 (Feb 25, 2019)
- Various improvements and bug fixes:
- Revert "valadoc: Drop duplicated code to add source files and use CodeContext API" and "valadoc: Update API tests" (#748)
- valadoc: Report warning if resources for doclet could not be copied
- libvaladoc: Properly support the output of async constructors (#753)
- girparser: Correctly set array_length_type for delegates returning an array
- Revert "vala: Don't replace assignments for local variables with non-null simple-types" (#755)
- Bindings:
- Follow GTK upstream rename to gtk4 and gtk4-unix-print
- gtk4,gtk4-unix-printer: Update to 3.94.0+02e856f6
- gtk+-unix-print-*.0: Fix PrintJob.get_page_ranges(), Printer.get_hard_margins()
- atk-1.0: Adjust for upstream revert of Implementor using G_DEFINE_INTERFACE
- clutter-1.0: Drop deprecated from Actor.pick() (#625)
- glib-2.0: Add "delegate_target = false" to Log.writer_journald/ _standard_streams/_default
- gio-unix-2.0: Add DesktopAppInfo.get_string_list() since 2.60
- gstreamer: Update from 1.15.1+ git master
- webkit2gtk-4.0: Update to 2.23.91
- vapi: Update GIR-based bindings
New in Vala 0.44.0 Beta (Feb 6, 2019)
- Various improvements and bug fixes:
- codegen: Replace some unfortunate asserts with internal error reports
- codegen: Properly handle and catch inner-error of finally-block (#742)
- codegen: Pass lambda expression of variable initializer to signal connect
- vala: Check inferred variable_type of LocalVariables
- vala: Parser doesn't ensure "protected" to be applied on TypeSymbol members
- libvaladoc: Don't change the size of an array in-parameter
- g-i: Fix return value on error in start_discriminator()
- Bindings:
- Add goocanvas-2.0 bindings (#739)
- gdk-3.0: Update to 3.24.4+a0129f55
- glib-2.0: Bind g_log_writer_journald/_standard_streams/_default as LogWriterFunc (#559)
- goocanvas: Update from 1.0.0+af07af5d
- gstreamer: Update from 1.15.1+
- gtk+-4.0: Update to 3.94.0+a7fa1cf6
- vapi: Update GIR-based bindings
New in Vala 0.43.6 (Jan 21, 2019)
- Various improvements and bug fixes:
- codegen: Don't apply address-of operator on literals when casting to array
- vala: Don't tweak closure on static lambdas [#740]
- Revert "codegen: Use copies of error_variable of catch-clauses for nested usage" and add asynchronous "catch-error-scope" regression test [#741]
- libvaladoc: Build backing Vala.SourceFile for GIRs processed by importer
- libvaladoc/girimporter: Skip "source-position" elements
- genie: Support "protected" accessibility and allow explicit "public" [#346]
- Bindings:
- gst-editing-services-1.0: Fix some construtors and (un)hide symbols
- javascriptcoregtk-4.0: Fix GLib.Callback parameters which can't hold target
New in Vala 0.43.5 (Jan 21, 2019)
- Various improvements and bug fixes:
- vala:
- Use dedicated error message for assignments to literals
- Async methods don't allow out-parameters before in-parameters [#636]
- Allow direct access to the integer constants of an error-domain [#732]
- Multiple lamdba arguments in method call should all use same scope [#59]
- codegen:
- Use a parameter-map for creation of delegate declaration [#728]
- Add "error_pos" CCode attribute and use it as needed [#728]
- Emit struct declaration typedef before resolving its fields [#318]
- Add "destroy_notify_cname" CCode attribute
- Use get_ccode_*name/get_parameter_cexpression() for Parameters
- Set owner for ValaDestroyNotify (POSIX) [#730]
- Include "stddef.h" in CCodeBaseModule.destroy_value() (POSIX) [#730]
- girparser: Recognize error parameter before delegate target parameter [#265]
- compiler: Report deprecated command-line option "--thread"
- valadoc: Specify that the "--driver" option is deprecated [#736]
- Bindings:
- atk: Don't use a custom SignalEmissionHook while it is part of gobject-2.0
- gdk-pixbuf-2.0: Make PixbufSaveFunc usable [#728]
- gio-2.0: Make DBusInterface[GS]etPropertyFunc usable [#728]
- gio-2.0: Add CancellableSource ctor and update PollableSource ctors
- glib-2.0: Add Queue.clear_full() since 2.60
- gstreamer: Update from 1.15+ git master
- gdk-3.0,gtk+-3.0: Update to 3.24.3+9c8f1478
- gtk+-4.0: Update to 3.94.0+9b15c690
- libsoup-2.4: Fix Message.add_*_handler() [#731]
- vapi: Update GIR-based bindings
New in Vala 0.43.4 (Jan 9, 2019)
- Various improvements and bug fixes:
- vala:
- Array with fixed length don't require explicit instantiation (#720)
- Add GenericType.get_actual_type()
- Allow get_actual_type() to be used for expected failures
- Add Method.compatible_no_error()
- Don't just guess and check for a matching base_interface_method (#548)
- Search in all interfaces for an implementation match (#548)
- Allow explicit interface methods to be virtual (#548)
- Report invalid instance member access to property (#605)
- codegen:
- Use properly checked implicit interface implementations (#548)
- Use temp-var for MethodCall with out/ref arguments (#722)
- Use temp-vars for ellipsis out-arguments to fix memory management (#722)
- Add default_value for CType to initialize variables if needed (#724)
- Cast instance parameter for property access in object-initializer
- Don't check boolean values for (in)equality in GTask API (#726)
- Add missing data parameter to GTypeInfo callbacks
- Properly set annotations field of GDBus*Info struct to NULL
- Cast instance and result of g_async_initable_new_finish() call
- valadoc: Drop duplicated code to add source files and use CodeContext API
- libvaladoc: Skip empty Version.replacement attribute to avoid critical
- build: Don't leak libvalaccode symbols to libvaladoc
- Add a basic CONTRIBUTING.md file that links to the relevant Wiki page
- tests:
- Fix try_parse() tests to not compare to already free'd memory
- Warnings and criticals should be fatal on compile time too
- Bindings:
- glib-2.0: Use correct array-length-type for returned arrays (#171)
- glib-2.0: Add RecMutexLocker since 2.60
- gio-2.0: Fix File.replace_contents_bytes_async() (!37)
- gobject-2.0: Use correct array-length-type for returned arrays
- poppler-glib: Update to 0.71
- gstreamer: Update from 1.15+ git master
- gtk+-3.0: Update to 3.24.2+a8e07254
- gtk+-4.0: Update to 3.94.0+4404afc9
- sqlite3: Correct return C type of Statement.column_text & Value.to_text
- webkitgtk-4.0: Update to 2.23.1
- vapi: Update GIR-based bindings
New in Vala 0.43.1 (Dec 13, 2018)
- Highlights:
- Emit G_DEFINE_AUTOPTR_CLEANUP_FUNC() for classes (requires glib 2.44) [#670]
- Enforce "return yield ..." syntax to be expected [#675]
- Drop deprecated syntax support of += and -= for signals [#676]
- Drop deprecated syntax support of # modifier and operator [#677]
- Allow disabling the build of valadoc [#596]
- Add support for SingleInstance attribute for GObject classes [#647]
- Don't allow to declare array parameters with "type array[]" [#163]
- Collect error_types on demand to allow transformations
- Check for matching ownership of type-arguments [#696]
- Add profile specific delegate target/destroy types
- Don't explicitly add glib headers, the use of symbols will do that [#623]
- Add --enable-debug configure option
- Move setting of default defines for VALA_0_XX and GLIB_2_XX to CodeContext
- Add support for delegate parameters in signals [#205]
- Admit that structs are emtpy even with a static property [#446]
- Various improvements and bug fixes:
- codegen:
- Fix method pointer cast if instance isn't at first position
- Transfer ownership of compact class to DestroysInstance method [#645]
- Add destroy function for GLib.Array [#572]
- Fix canonical string for quark of error domains
- Make sure to include declarations for delegate typed parameters
- Don't emit type_id for enum in non GOBJECT profile
- Don't emit unused temp variable for element access assignments
- Actually create method cast for base interface method as needed
- Mark needle parameter of internal array-contains methods as const [#504]
- Emit initializer for enum-value into wanted declaration space [#167]
- Add void to delegate typedef declarations without parameters
- Deprecate "finish_function" and "ctype" ccode-attribute
- Fix get_ccode_name() for properties
- Add ccode getters for GType functions of Classes and Interfaces
- Don't allow more than one consecutive empty lines in generated code
- vala:
- Copy instance_pos argument from virtual/abstract base methods [#540483]
- Compact classes don't allow private/class fields and to lock fields
- Use comment which was already retrieved in parse_declaration()
- Add missing re-check guards for Do/For/WhileStatement and SwitchLabel
- Type check for errors require an error expression [#362]
- Make check_arguments() more verbose and don't bail on first error [#438]
- Don't emit member access of assignments on static properties [#573]
- Use clearer error message for automatic properties in interfaces [#656]
- Admit that structs are emtpy even with a static property [#684]
- Let UsingDirective hold reference to UnresolvedSymbol instances only
- Add ArrayType.length_type and ArrayCreationExpression.length_type [#607]
- Remove hardcoded "int" length type and use ArrayType.length_type [#607]
- Use is_weak() for type-arguments in DataType.to_qualified_string()
- girwriter: Write glib-type attributes for Enums/Structs with type_id
- girparser: Skip "source-position" elements and docs in transparent union
- valadoc:
- Match property signature with vala's codewriter
- Sort symbols and members where possible
- Actually assign type_id of Api.Structs
- Add type_id to Api.Enum/Interface
- Skip package dependency if target directory already exists
- Fix a few errors and warnings in stylesheet
- Adjust stylesheet to unbreak Epiphany [#644]
- Several API clean ups
- Add --fatal-warnings command line option
- docs: Use Markdown for README and include build instructions
- testrunner: Compile and run tests separately and pass buildsystem's CC through to valac, add various -Werror=* build cflags
- Bindings:
- gio-2.0: Add missing File.new_build_filename()
- glib-2.0: Add missing Array.set_clear_func() binding
- glib-2.0: Avoid double-free in GLib.Array if clear_func is set
- glib-2.0: Drop g_object_unref which is part of gobject-2.0
- gobject-2.0: Attribute all symbols with cheader_filename = "glib-object.h"
- gdk-x11-3.0,gtk+-3.0: Update to 3.24.1+356f1f59
- gtk+-3.0: Treat Gtk.IconInfo as GLib.Object which it is since 3.8 [#663]
- gtk+-4.0: Update to 3.94.0+8de1ba2c
- gstreamer: Update from 1.15+ git master
- posix: Add CommandPipe as a sub-type of FILE [#645]
New in Vala 0.42.3 (Nov 8, 2018)
- Various improvements and bug fixes:
- codegen:
- Initialize internal temp-variables used as reference parameter
- Improve ccode for fixed-length array parameters (#163)
- Fix regex literal compile flags
- Add prototype for *_register_type() function
- Don't emit *_free() of derived compact classes
- Add prototype for *_new() of abstact compact classes
- girwriter: Fix ctype of out/ref and array parameters
- ccode: Fix typo and actually check "end_decls" (#672)
- abstract syntax tree:
- Always analyze nodes after they are inserted into the AST
- Add source_reference to local variable of catch-clause
- Add missing replace_expression() implementations
- Fix several construction/parenting issues
- DataType for GLib.Error should be should resolved as ErrorType
- libvaladoc: Add "unlock" to keywords in Highligher
- posix:
- Add replacement for G_(BEGIN|END)_DECLS
- Don't check for GLib.Variant casting
- testrunner: Reset $run_prefix before generating next test script
- build: Unconditionally add conditional VALAFLAGS to make bootstrap
- doc: Fix build of internal-api-docs
- manual: Update from wiki.gnome.org
- Bindings:
- glib-2.0: Computing length once is enough in string.to_utf8()/splice()
- glib-2.0: Add binding for g_test_add()
- glib-2.0: Add array length to string.skip (#695)
- gio-2.0: Result of DBusMessage.get_header() is unowned
- gobject-2.0,gtk+-*.0: Fix some GLib.Value out/ref parameters
- gstreamer: Update from 1.15+ git master
- gtk+-4.0: Update to 3.94.0+b4b30b49
New in Vala 0.42.2 (Sep 26, 2018)
- Various improvements and bug fixes:
- codewriter: Prepend "yield" if is_yield_expression is set on MethodCall and ObjectCreationExpression
- codegen: Fix typo in is_pure_ccode_expression() [#673]
- gobject-introspection: Fix use after free in scanner [#674]
- vala: Check if ArrayType supports its given element-type in analyzer pass
- valadoc: Fix some string escaping which gettext complains about
- Bindings:
- Update GIDL-based bindings to fix unsupported type-arguments
- glib-2.0: Add feature_test_macro details for Time struct's methods
- glib-2.0: Set DateTime.now () to use local time zone as the default
- gstreamer: Update from 1.15+ git master
- gtk+-4.0: Update to 3.94.0+d90e2733
- libxml-2.0: Add missing context parameter in OutputWriteCallback
- x11: Add binding for XCreateSimpleWindow
New in Vala 0.42.1 (Sep 19, 2018)
- Various improvements and bug fixes:
- vapigen: Warn if the library argument doesn't match any package attribute [#669]
- Bindings:
- glib-2.0: Add some 2.58 symbols
- gtk+-4.0: Update to 3.94.0+f3e6d00d
- Add gnome-desktop-3.0 bindings [#668]
- Remove libgda-4.0, libgda-report-4.0 bindings [#667]
- Update GIR-based bindings
New in Vala 0.40.9 (Aug 20, 2018)
- Various improvements and bug fixes:
- girparser: Actually resolve type-arguments to be able to box them if needed
- girparser: Handle unsupported aliases which could not be fully processed
- codegen: Free errors after returning them on GDBusMethodInvocation [#657]
- codegen: Fix invocation of abstract/virtual methods with NoWrapper in compact classes
- vala: Allow read-only properties
- manual: Update from wiki.gnome.org
- Bindings:
- glib-2.0: Add Array.remove*() wrapper to avoid leaking generic elements
- glib-2.0: Add (u)long.parse/try_parse() and float.parse/try_parse() [#649]
- glib-2.0: Add return-type of Queue.remove*(), add HashTable.foreach_steal()
- gtk+-3.0: Update to 3.23.2+6b6e53fd
- gtk+-4.0: Update to 3.94.0+4e868584
- webkit2gtk-4.0: Update to 2.20.5
New in Vala 0.42.0 Beta 2 (Aug 11, 2018)
- Various bug fixes:
- codegen: Call ref_sink on objects passed to generic type [#655]
- codegen: Free errors after returning them on GDBusMethodInvocation [#657]
- girparser: Actually resolve type-arguments to be able to box them if needed
- vala: Add consts/methods to retrieve and check library version [#304]
- Bindings:
- glib-2.0: Add Array.remove*() wrapper to avoid leaking generic elements
- glib-2.0: Add (u)long.parse/try_parse() [#649]
- gstreamer: Update from 1.15+ git master
- gtk+-3.0: Update to 3.23.2+6b6e53fd
- gtk+-4.0: Update to 3.94.0+4e868584
New in Vala 0.42.0 Beta (Jul 26, 2018)
- Highlights
- Reintroduce POSIX profile
- parser: Add support for explicit "unlock" syntax
- vala: Support anonymous definitions of delegates in bindings
- codegen: Support automatic properties as GtkChild
- codegen: Apply G_PARAM_EXPLICIT_NOTIFY on properties with "notify = false"
- codegen: Drop support for non-auto property initializer in gobjects
- codegen: Avoid using deprecated "g_type_class_add_private"
- Various bug fixes:
- vala: Constants and signals are not lockable
- codegen: Don't apply ref_sink_function if target_type is floating_reference
- vala: Treat floating method-return-type as nullable if error may be thrown
- vala: Transfer floating-reference attribute while casting
- analyzer: Break cyclic references of BasicBlock
- vala: Break reference chain between DataType and Symbol if possible
- codegen: Fix invocation of abstract/virtual methods with NoWrapper in compact classes
- vala: Report error for invalid base access in method/property of compact class
- libvaladoc: Replace void* with corresponding Vala API
- codegen: Don't include the full absolute path in line directives
- codegen: Add source_reference to unsupported floating reference error
- Bindings:
- gobject-2.0: Make GLib.Signal a struct of uint and bind g_signal_new*
- clutter-1.0: Change type of Clutter.Key.* constants to uint
- gdk-3.0: Change type of Gdk.Key.* constants to uint
- gtk+-4.0: Change type of Gdk.Key.* constants to uint
- gstreamer: Update from 1.15+ git master
- webkit2gtk-4.0: Add JSC namespace to javascriptcoregtk-4.0 and fix depends
- Remove clutter-gst-1.0, GStreamer 0.10, rest-0.6, tracker-indexer-module-1.0, libsoup-2.2, gdu and gdu-gtk, twitter-glib-1.0, mx-1.0
- Remove vala-specific deprecations
New in Vala 0.40.8 (Jul 16, 2018)
- Various improvements and bug fixes:
- Fix links in the Manual
- libvaladoc: Change link to Valadoc wiki page for HTML doclet
- valadoc: Use HTML5 doctype in HTML doclet
- codegen: Let methods return -1 on error by default if possible [#526]
- Allow TypeModule subclasses as parameter-type in module-init-method [#648]
- girparser: Allow changing the type of constants using metadata [#643]
- girwriter: Add boolean GIR visible attribute to allow skipping symbols
- vala: Report error for error-domains without any code
- parser: Accept "empty" enums/error-domains [#253]
- codewriter: Output bodies of code-blocks if in VAPIGEN mode [#253]
- Bindings:
- gobject-2.0: Add lower_case_csuffix attributes to Type* symbols
- gdk-3.0,gtk+-3.0: Update to 3.23.0+df045423
- gio-2.0: Add custom IOError.from_errno() to make it work as expected [#253]
- gtk+-4.0: Update to 3.94.0+bf5f27c6
- gstreamer-rtsp-server-1.0: Update from 1.14+ git master [#653]
New in Vala 0.40.7 (Jun 21, 2018)
- Various improvements and bug fixes:
- Update bugtracker links to https://gitlab.gnome.org/GNOME/vala/issues
- codegen:
- Handle delegate_target attribute of fields [#520]
- Free generic elements of glib collections [#694765]
- Fix warning for source_funcs parameter of g_source_new()
- Actually treat GLib.Source as compact class
- Custom abstract methods of GLib.Source are handled differently [#641]
- Consistently use gpointer for delegate targets
- Unify some delegate-type check patterns
- Use default_init instead of base_init when registering interfaces [#699550]
- girparser: Add support for bool delegate_target [#520]
- girwriter:
- Output deprecated="1"
- construct-only properties don't have a setter method
- Don't write any custom attributes [#608]
- valadoc: Fix TreeBuilder.create_array() for stacked Arrays
- Bindings:
- glib-2.0:
- Do not mark simple-type out-parameters as nullable [#634]
- Make Source.attach() use the default MainContext by default
- Make Bytes.slice() use the memory-efficient Bytes.from_bytes() [#638]
- Fix Bytes.with_free_func()
- gio-2.0:
- Mark ActionEntry.parameter_type/state fields as nullable [#632]
- Delegate fields of DBus*VTable do not have implicit target fields
- Apply delegate_target = false on ActionEntry callbacks and make them weak [#630]
- Add default to all io_priority parameters
- gstreamer: Cherry-pick some fixes from 0.42, add gst-editing-services-1.0
- gtk+-3.0: Update to 3.22.30+9ac7f906
- gtk+-4.0: Update to 3.93.0+29fee2e8
- webkit2gtk-4.0: Update to 2.21.4
- Update GIR-based bindings
New in Vala 0.40.6 (May 21, 2018)
- Regression fix:
- codegen: Avoid critical for array in-parameters with custom length-type
- tests: Drop assert which is failing on big-endian archs
New in Vala 0.40.5 (May 21, 2018)
- Various improvements and bug fixes:
- Warn if --gir is used without --library [#708693]
- Report an error if rank attribute is required but was not found [#660991]
- scanner: Accept R and N escape sequences in regex literals [#749576]
- scanner: Accept backreferences 1 through 99 in regex literals [#728574]
- codegen:
- Avoid critical in get_basic_type_info() when there is no signature [#729517]
- Fix serializing multidimensional arrays [#735437]
- Guard get_default_ref_sink_function() against null base-class
- Respect cname ccode-attribute of lockable fields
- Fix casting of length for "ref" array parameters
- codewriter: Add 'new' to symbols if needed to match the original source [#614686]
- girparser: Deal with missing "name" attribute by falling back on "c:type"
- girwriter: Drop errornous indent
- girwriter: Properly output variadic methods and use introspectable="0"
- genie: Add support for the v escape character [#664689]
- genie: Add support for the uXXXX escape sequence
- Bindings:
- glib-2.0: Fix IConv.iconv() [#634753]
- gobject-2.0: Make constructor of ParamSpecBoxed public
- gstreamer: Cherry-pick some fixes from 0.42
- gtk+-3.0: Update to 3.22.30+21fddc39
- gtk+-4.0: Update to 3.93.0+3a860719
- javascriptcoregtk-4.0: buffer of String.get_utf8_cstring() is not "ref" [#788113]
- posix: Add missing cname = "int" to Posix.Signal enum
- sqlite3: Add additional constants for flags of Database.open_v2() [#795627]
- webkit2gtk-4.0: Cherry-pick some fixes from 0.42
New in Vala 0.40.4 (Apr 25, 2018)
- Various improvements and bug fixes:
- girparser: Add support for NoAccessorMethod metadata
- Bindings:
- glib-2.0: Mark str parameter of Variant.take_string() as owned
- gstreamer: Update from 1.15+ git master
- gtk+-*.0: Set NoAccessorMethod on Gtk.Radio*.group properties (Regression in gtk+-3.0)
- gtk+-4.0: Update to 3.93.0+fc6018f1
- json-glib-1.0: Mark return-type of gvariant_deserialize*() as nullable
- webkit2gtk-4.0: Update to 2.20.1
New in Vala 0.40.2 (Apr 1, 2018)
- Various bug fixes:
- gdbus: Fix missing declaration of _fd_list for async methods [#794566]
- Bindings:
- glib-2.0: Use g_value_*et_schar instead of deprecated g_value_*et_char
- gobject-2.0: Add ParamSpecGType
- gtk+-*.0: Hide dedicated constructors of compact classes bound as structs [#794733]
New in Vala 0.40.1 (Mar 26, 2018)
- Various bug fixes:
- codegen: Don't add target fields for captured delegates without target
- codegen: Don't add length fields for captured fixed-length array variables
- valadoc: Bump VALA_0_xx defines and glib_minor to match 0.40 series
- Bindings:
- Add libgeoclue-2.0 bindings [#794376]
- gobject-2.0: Cherry-pick some changes from 0.42
- gdk-3.0,gtk+-3.0: Update to 3.22.29
- gtk+-4.0: Update to 3.93.0+433517fd
- gtk+-*.0: Fix iter parameter of TextView.backward*/forward*/move_visually( [#794345]
- gstreamer-1.0: Update to 1.13.91 and add gstreamer-webrtc-1.0 bindings
- libgsf-1: Switch to GIR and update to 1.14.42
- linux: Add various symbols
- posix: Add various symbols
- posix: Include sys/sysmacros.h for major(), minor() and makedev() [#794651]
- webkit-1.0: Update to 2.4.11
- webkit2gtk-4.0: Update to 2.20.0
- Update GIR-based bindings
New in Vala 0.40.0 (Mar 14, 2018)
- Various bug fixes:
- compiler: Fix critical when vala is called without run args [#793657]
- Bindings:
- alsa: Add the major part of the ALSA Sequencer API [#763127]
- gstreamer-1.0: Update to 1.13.90
- gtk+-4.0: Update to 3.93.0+527d265b
- linux: Add various symbols
- posix: Add various symbols [#663633]
- Update GIR-based bindings
New in Vala 0.40.0 RC (Mar 7, 2018)
- Highlights:
- Add support for feature test macros [#793444] e.g. [CCode (feature_test_macro = "_GNU_SOURCE")]
- Various bug fixes:
- codegen:
- Use pointers when accessing constant multi-dimensional arrays [#604371]
- Add valid support for const multi-dimensional arrays [#604371]
- Don't append fixed-length of array fields in initializers
- Add source_reference to some store_local/_field() calls
- Properly handle array-initializers inside struct-initializers [#622178]
- The rank of an array-initializer should match the target's rank [#744923]
- Make SemanticAnalyzer.check_arguments() independent of context
- Check with same rules for dbus compatibility as in GBusModule [#793859]
- Fix recursive declaration in generic base type [#688732]
- Prevent WITH_CGRAPH conditional having an impact on generated sources
- Update manual from wiki.gnome.org
- Bindings:
- glib-2.0, posix: Add feature test macro _GNU_SOURCE for pow10(3), pow10f(3), exp10(3) and exp10f(3) [#614788]
- gstreamer-1.0: Update from 1.13.1+ git master
- linux: Add dup3 [#729803]
- linux: Add feature_test_macros to non-POSIX file control constants and dup3
- posix: Fix sig*set and sigprocmask parameters to be out/ref [#727425]
- posix: Add feature_test_macro _GNU_SOURCE to sighandler_t [#761975]
- libgnome-menu-3.0: Add deps file
- Update GIR-based bindings
New in Vala 0.38.6 (Jan 30, 2018)
- Various bug fixes:
- girparser:
- Set NoAccessorMethod for non-readable and construct-only properties
- Ignore conflicting closure/destroy indexes
- Don't accept methods as property-accessor which throw errors [#792998]
- codegen:
- Infer error parameter from abstract/virtual base methods [#614294]
- Fix return-type for cancelled async creation methods of classes [#792942]
- vala: Variadic constructors without a real first parameter are not allowed
- libvaladoc: Keep bootstrap-support with valac >= 0.16.1
- Bindings:
- gstreamer-1.0: Update from 1.13+ git master
- gtk+-4.0: Only override type of "event" parameters
New in Vala 0.39.6 (Jan 30, 2018)
- Highlights:
- Add --abi-stability option for ABI stability of libraries
- It ensures that the order of class/interface members in Vala sources will be preserved in generated C source (instance/type structs) [#789069]
- Various bug fixes:
- girparser:
- Set NoAccessorMethod for non-readable and construct-only properties
- Ignore conflicting closure/destroy indexes
- Don't accept methods as property-accessor which throw errors [#792998]
- codegen:
- Infer error parameter from abstract/virtual base methods [#614294]
- Internally generated delegates don't require a typedef [#787521]
- Fix return-type for cancelled async creation methods of classes [#792942]
- Use G_PARAM_STATIC_STRINGS
- vala: Variadic constructors without a real first parameter are not allowed
- libvaladoc: Keep bootstrap-support with valac >= 0.16.1
- Bindings:
- gtk+-3.0: Fix cheader_filename of Plug and Socket
- gtk+-4.0: Update to 3.93.0+4d36a0bf
- gtk+-4.0: Only override type of "event" parameters
- posix: Add ctime(3) and fix binding of struct hostent and gethostbyname(3)
New in Vala 0.39.5 (Jan 21, 2018)
- Various bug fixes:
- libvaladoc: Allow @link tags to be split over multiple lines [#646982]
- libvaladoc: Add support for single line documentation comments [#736483]
- girparser: Improve instance method detection [#732460]
- codegen: Add support for abstract/virtual methods and properties in compact classes [#741465]
- vala: Fix parameter type inference of overridden async methods [#792660]
- codewriter: Don't use string.replace() to apply header_to_override [#731322]
- Bindings:
- gio-unix-2.0: Update to 2.55.1
- gtk+-4.0: Update to 3.93.0+60d3378d
- libwnck-3.0: Update to 3.24.1
- webkit2gtk-4.0: Update to 2.19.5
- webkit2gtk-web-extension-4.0: Fix DOM.EventTarget interface
New in Vala 0.39.3 (Jan 5, 2018)
- Various bug fixes:
- Fix chain-up regression with real non-null struct parameters [#791785]
- Release taken references to CodeContext after using it [#712694] and keep custom invocations of parse_file() possible [#791936]
- parser: Accept comma-separated list in case-statements of switchs [#614015]
- Bindings:
- Remove bindings which are shipped upstream for some years
- gedit 3 [#776021], libgnome-keyring [#776022],
- gtksourceview-3.0 [#776023], libgdata [#776024], librsvg-2.0 [#776025]
- glib-2.0: Add GLib.OPTION_REMAINING and GLib.OptionFlags.NONE
- gstreamer-1.0: Update from 1.13+ git master
- gtk+-2.0: Mark MessageDialog constructor parameter, message_format, as nullable [#791570]
- gtk+-4.0: Update to 3.93.0+6aeae2c8
- webkit2gtk-4.0: Update to 2.19.3
New in Vala 0.39.2 (Dec 27, 2017)
- Various bug fixes:
- vala: Don't transform an explicit "null" into valid format-string [#791215]
- codegen: Don't create null-safe destroy-wrapper for GenericType [#791283]
- Improve error message for missing type-parameter on enclosing type [#587905]
- GIR parser:
- Allow change of parameter names
- Handle metadata for fields inside a transparent union
- Accept setters with boolean return-type as valid property-accessor
- Don't mark simple-type out-parameters with '?' as nullable
- Valadoc
- libvaladoc: Actually resolve "percnt;" to '%'
- Bindings:
- glib-2.0: Fix potential null pointer dereference in string.joinv() [#791257]
- gobject-2.0: Add missing GType constants for fundamentals [#791023]
- gstreamer-1.0: Update from 1.13+ git master
- gtk+-3.0: Switch to GIR [#730746]
- gtk+-4.0: Update to 3.93.0+6af4947e
- posix: Move signal constants to an enum and add few missing ones [#790958]
New in Vala 0.39.1 (Nov 30, 2017)
- Highlights
- Report warning if property-type is not compatible with GLib.Object [#693932]
- Allow to pass compatible delegates to signal.connect() [#787521]
- Allow unscoped enum values where possible
- Avoid use of temp-var for some callables returning ValueType and to access in/ref parameters [#789071]
- Reformat generated source declarations and definitions for better readability [#688447]
- Various bug fixes:
- Use array_length_cexpr to support fixed-arrays for return-values [#784691]
- Properly parse arguments for vala interpeter-mode [#663070]
- Enforce name-length >= 3 for structs using GType [#764041]
- Report error for missing type-parameter on enclosing type [#587905]
- Add boolean "use_inplace" ccode-attribute for methods [#750840]
- Improve handling of unowned/owned keyword occurrences
- Methods need to throw compatible error if target delegate throws one
- Discover invalid member access to instance field [#790903]
- Improve error output of mismatching overriding methods
- Valadoc
- Acknowledge possible properties in structs [#784705]
- Fix fatal typo in GtkdocRenderer.visit_symbol_link() [#790266]
- Bindings:
- glib-2.0: Use type-id/marshaller-type for (u)int16/(u)short from (u)int32 [#693932]
- glib-2.0: Add optional 'unparsed' parameter to *.try_parse () [#774124]
- gobject-2.0: Add some missing symbols
- gstreamer-1.0: Bind GST_TIME_ARGS, GST_STIME_ARGS macros [#750840]
- gstreamer-1.0: Bind GST_DEBUG_BIN_TO_DOT_FILE/*_WITH_TS [#785215]
- gstreamer-1.0: Update from 1.13+ git master
- gtk+-3.0: Update to 3.22.26+9ce824d3
- gtk+-4.0: Split Gsk.RenderNode into several classes
- gtk+-4.0: Update to 3.93.0+2d797dd8
- webkit2gtk-4.0: Update to 2.19.2
New in Vala 0.38.3 (Nov 28, 2017)
- Various bug fixes:
- codegen: Prioritize "array_length=true" over "array_null_terminated=true" [#788775]
- codegen: Avoid possible conflicts with internal property/signal defines [#788964]
- Bindings:
- gio-2.0: Expose g_task_get_source_object as Task.get_unowned_source_object
- gstreamer-1.0: Update from 1.13+ git master
- gtk+-4.0: Update to 3.92.1
- libxml-2.0: Add DTD methods [#789442]
New in Vala 0.38.2 (Oct 29, 2017)
- Various bindings updates:
- gstreamer-1.0,gtk+-3.0,gtk+-4.0: Update from git master
- gnutls: Fix free_function ccode-attribute of Certificate [#788181]
New in Vala 0.38.1 (Sep 13, 2017)
- Various bug fixes:
- valadoc: Don't use 'stderr' as variable name [#787305]
- codegen: Try to use a more unique internal define for properties [#787436]
- vala: Update list of used attributes
- method: Use prototype-string for error-reports of return-type mismatches
- Bindings:
- glib-2.0: Fix MainContext.check(), OptionEntry[] params are null-terminated, Bind g_convert_with_fallback() and g_convert_with_iconv()
New in Vala 0.38.0 (Sep 7, 2017)
- Various bug fixes:
- Improve error output for incompatible method signatures (Add CallableType as base for DelegateType, MethodType, SignalType)
- codegen:
- Initialize temp-variable for fixed-size arrays to zero first [#787152]
- Add support for "type-func" in ui-files [#787033]
- Bindings:
- gtk+-3.0,gtk+-4.0: Update
- libxml-2.0: Bind xmlLastElementChild and xmlPreviousElementSibling
- pangocairo: CairoFontMap.set_default() is not an instance method
- gio-2.0: Application.set_default() is not an instance method
New in Vala 0.36.4 (Jun 29, 2017)
- Highlights:
- Don't warn about deprecated symbols if installed_version is older
- Add --gresourcesdir option [#783133]
- Various bug fixes:
- gdbus: Don't leak nested HashTable on deserialization [#782719]
- Fix finally blocks with async yields [#741929]
- Handle non-null in coalescing expression [#611223]
- Make the task_complete flag for < 2.44 more similar to >= 2.44 [#783543]
- Nullable ValueType requires POINTER as marshaller signature [#783897]
- NoAccessorMethod attribute is allowed for gobject-properties only
- girparser: Fix parsing of delegate-alias without target
- compiler: Use API_VERSION instead of stripping PACKAGE_SUFFIX
- girwriter: Write length-parameters of arrays with rank > 1 [#758019]
- Bindings:
- gio-2.0: Use default 'length = null' for DataInputStream.read_line_utf8* [#783351]
- gobject-2.0: Add GLib.ParamSpecPointer
- poppler-glib: Update to 0.54.0
- gstreamer-1.0: Various binding fixes
New in Vala 0.36.3 (May 3, 2017)
- Various bug fixes:
- scanner: Fix calculation of column value for tokens after multiline comment [#652899]
- codegen: Unref GLib.AsyncResult on uncaught errors in coroutines [#641171]
- Keep initializing result-variable for struct constructors [#782056]
New in Vala 0.36.1 (Apr 4, 2017)
- Various bug fixes:
- Always consider a method compatible with itself [#773135]
- Perform arguments-check against actual .end() method-signature [#684208]
- Slightly improve lamdba-expression error on target-type mismatch
- Fix delegate initializer for instance fields [#683925]
- Don't leak target-reference when casting/assigning owned delegates [#780426]
- GIR parser and writer:
- girparser: Add destroy argument for metadata [#750838]
- vapigen: Add --nostdpkg option like in valac
- Bindings:
- gstreamer-1.0: Fix Pad.set_*_function() bindings [#750838]
- glib-2.0: Add missing version macro and constants, unichar.to_string doesn't return null
- gtk+-2.0,gtk+-3.0: Mark "intersection" param of Widget.intersect() as out
- gtk+-4.0: Update to 3.90.0
New in Vala 0.35.5 (Feb 15, 2017)
New in Vala 0.35.3 (Jan 25, 2017)
- Bug fixes and binding updates.
- Add gtk+-unix-print-{2,3,4}.0 bindings.
New in Vala 0.35.2 (Dec 30, 2016)
- Bug fixes and binding updates.
New in Vala 0.34.4 (Dec 6, 2016)
New in Vala 0.34.3 (Nov 28, 2016)
- Bug fixes and binding updates.
New in Vala 0.34.2 (Oct 29, 2016)
- Bug fixes and binding updates.
New in Vala 0.34.0 (Sep 24, 2016)
- Bug fixes and binding updates.
New in Vala 0.32.1 (Jun 23, 2016)
- Bug fixes and binding updates.
New in Vala 0.30.1 (Feb 14, 2016)
- Bug fixes and binding updates.
New in Vala 0.31.1 (Feb 14, 2016)
- Introduce [Version] attribute.
- Require and target GLib >= 2.32.
New in Vala 0.29.3 (Aug 20, 2015)
- Add --shared-library option for GIR files.
- Bug fixes and binding updates.
New in Vala 0.29.2 (Jun 23, 2015)
- Bug fixes and binding updates.
New in Vala 0.28.0 (Mar 22, 2015)
New in Vala 0.27.2 (Mar 20, 2015)
- Bug fixes and binding updates.
New in Vala 0.27.1 (Jan 12, 2015)
- Print compiler messages in color.
- Add clutter-gdk-1.0 bindings.
- Add clutter-gst-3.0 bindings.
- Add clutter-x11-1.0 bindings.
- Add rest-extras-0.7 bindings.
- Bug fix and binding updates.
New in Vala 0.26.1 (Oct 13, 2014)
- Bug fixes and binding updates.
New in Vala 0.26.0 (Sep 23, 2014)
- Bug fix and binding updates.
New in Vala 0.25.4 (Sep 15, 2014)
- Add option --vapi-comments.
- Bug fixes and binding updates.
New in Vala 0.25.3 (Sep 1, 2014)
- Bug fixes and binding updates.
New in Vala 0.25.2 (Aug 25, 2014)
- Require and target GLib >= 2.24.
- Report warning for private struct fields.
- Replace webkit2gtk-3.0 bindings with webkit2gtk-4.0 bindings.
- Always build vapigen.
- Bug fixes and binding updates.
New in Vala 0.24.0 (Aug 25, 2014)
- Bug fixes and binding updates.
New in Vala 0.23.2 (Feb 6, 2014)
- Bind GDK event structures as compact classes.
- Switch gdk-x11-3.0 bindings to .gir.
- Switch librsvg-2.0 bindings to .gir.
- Bug fixes and binding updates.
New in Vala 0.23.1 (Dec 23, 2013)
- GIR parser updates.
- Switch libnotify bindings to .gir.
- Add libpeas-gtk-1.0 bindings.
- Add xcb-icccm bindings.
- Bug fixes and binding updates.
New in Vala 0.22.1 (Nov 14, 2013)
- GIR parser updates.
- Bug fixes and binding updates.
New in Vala 0.22.0 (Sep 25, 2013)
- Support chain up to constructv functions.
- Bug fixes and binding updates.
New in Vala 0.21.2 (Sep 13, 2013)
- Recognize ref/unref functions in .gir files.
- Add geocode-glib bindings.
- Bug fixes and binding updates.
New in Vala 0.21.1 (Aug 3, 2013)
- Support \uXXXX escape sequences.
- Support specifying vfunc order in interfaces to define ABI.
- Support GTK+ widget templates.
- Bug fixes and binding updates.
New in Vala 0.20.1 (Apr 9, 2013)
New in Vala 0.20.0 (Mar 27, 2013)
- Bug fixes and binding updates.
New in Vala 0.19.0 (Feb 21, 2013)
- Support scope = "async" attribute for parameters.
- Add --api-version option.
- Add atspi-2 bindings.
- Add gstreamer-rtsp-server-1.0 bindings.
New in Vala 0.18.1 (Nov 14, 2012)
- Bug fixes and binding updates.
New in Vala 0.18.0 (Sep 26, 2012)
New in Vala 0.17.3 (Jul 17, 2012)
- Require and target GLib >= 2.18.
- Support async creation methods.
- Bug fixes and binding updates.
New in Vala 0.16.0 (Mar 27, 2012)
- Add udisks2 bindings.
- Bug fixes and binding updates.
New in Vala 0.14.2 (Jan 31, 2012)
- Add libnl-3.0 bindings.
- Add packagekit-glib2 bindings.
- Add xtst bindings.
- Many bug fixes and binding updates.
New in Vala 0.15.0 (Dec 6, 2011)
- Manage memory of GQueue elements.
- Switch atk bindings to .gir.
- Switch gdk-pixbuf-2.0 bindings to .gir.
- Switch gdk-3.0 bindings to .gir.
- Add libwnck-3.0 bindings.
- Many bug fixes and binding updates.
New in Vala 0.13.3 (Aug 23, 2011)
- Switch pangocairo bindings to .gir.
- Bug fixes.
New in Vala 0.11.7 (Mar 17, 2011)
- Add support for async signal handlers (Frederik Sdun).
- More refactoring in the code generator (Luca Bruno).
- Improvements to the .gir writer (Michal Hruby).
- Many bug fixes and binding updates.
New in Vala 0.10.4 (Mar 13, 2011)
- Bug fixes and binding updates.
New in Vala 0.11.6 (Feb 15, 2011)
- Add parse and try_parse methods to boolean and numeric types.
- Add clutter-gtk-1.0 bindings.
- Add pixmap-1 bindings (Evan Nemerson).
- Many bug fixes and binding updates.
New in Vala 0.10.3 (Jan 24, 2011)
- Bug fixes and binding updates.
New in Vala 0.11.4 (Jan 17, 2011)
- Add index_of, index_of_char, and char_count to string class.
- Many bug fixes and binding updates.
New in Vala 0.11.3 (Jan 6, 2011)
- Support BusName sender parameter in GDBus servers.
- More refactoring in the code generator.
- Many bug fixes and binding updates.
New in Vala 0.10.2 (Dec 29, 2010)
- Bug fixes and binding updates.
New in Vala 0.11.2 (Nov 9, 2010)
- Update libnotify bindings to 0.7.0.
- Improvements to the .gir reader.
- Bug fixes and binding updates.
New in Vala 0.11.1 (Oct 26, 2010)
- Require and target GLib >= 2.16.
- Guard access to out parameters to allow null arguments.
- Add support for local constants.
- Support file descriptor passing with GDBus.
- Support cached property values in GDBus clients.
- Support Cancellable parameter in GDBus clients.
- Support no-reply methods in GDBus clients and servers.
- More refactoring in the code generator.
- Many bug fixes and binding updates.
New in Vala 0.9.8 (Sep 6, 2010)
- Add --fatal-warnings commandline option.
- Deprecate string.len () in favor of string.length.
- Deprecate use of D-Bus GLib in favor of GDBus.
- Many bug fixes and binding updates.
New in Vala 0.9.6 (Aug 18, 2010)
- Drop deprecated support for assigning to construct properties.
- Some refactoring in the code generator.
- Bug fixes in bindings and vapigen.
New in Vala 0.9.5 (Aug 9, 2010)
- Add version suffix to support parallel installation.
- Define VALA_X_Y according to compiler version.
- Enable version header by default.
- Add vala.m4 with VALA_CHECK_PACKAGES macro.
- Add gedit-2.20 bindings (Andrea Del Signore).
- Add tokyocabinet bindings (Evan Nemerson).
- Various improvements to the Dova profile.
- Many bug fixes and binding updates.
New in Vala 0.9.4 (Jul 27, 2010)
- Append documentation comments to generated C files.
- Skip tags in .gir files.
- Various improvements to the Dova profile.
- Many bug fixes and binding updates.
New in Vala 0.9.3 (Jul 15, 2010)
- Support newlines in double quoted string literals.
- Add experimental support for main blocks.
- Add experimental vala tool to compile and run code.
- Initial support for generic delegates.
- Support using GClosure for delegate parameters.
- Support GBoxed-based memory management.
- Improvements to the .gir reader and writer.
- Various improvements to the Dova profile.
- Many bug fixes and binding updates.
New in Vala 0.9.2 (Jun 21, 2010)
- Initial support for GDBus-based clients and servers.
- Support implicit and explicit GVariant casts.
- Add support for [Deprecated] attribute.
- Add GenericArray as alternative binding to GPtrArray.
- Add gdk-pixbuf-3.0, gdk-3.0, gdk-x11-3.0, and gtk+-3.0 bindings.
- Updates to the GLib bindings.
- Many bug fixes.
New in Vala 0.7.2 (May 8, 2009)
- Improvements to the .gir reader and writer (Didier Ptitjes).
- Many bug fixes and binding updates.
New in Vala 0.5.5 (Jan 10, 2009)
- Improve syntax of owned property getters.
- Add --enable-deprecated and --enable-experimental commandline options.
- Remove --disable-non-null commandline option.
- Many bug fixes.
New in Vala 0.5.1 (Nov 4, 2008)
- This release adds experimental support for yield statements and co-routines, and supports type checks for error domains and error codes.
- D-Bus clients can now pass and receive GValue and GHashTable values.
- Various issues in the .gir reader have been fixed.
- Deprecated support for static classes has been dropped.
- The code generator has been modularized, and many bugs have been fixed.
New in Vala 0.4.0 (Oct 22, 2008)
- This release adds support for a more flexible object construction scheme, including constructor chain-up.
- Partial support for reading and writing GObject Introspection .gir files has been integrated into the compiler and vapigen.
- The compiler performance has been improved and arrays are now copied where necessary.
- Tracker indexer bindings have been added. GLib, GTK+, and GStreamer bindings have been updated.
- Many bugs have been fixed.