Control: tags -1 moreinfo
Hi Rico
On 2021-03-19 16:43:09 +0100, Rico Tzschichholz wrote:
> Package: release.debian.org
> Severity: normal
> User: release.debian.org@packages.debian.org
> Usertags: unblock
> X-Debbugs-Cc: ricotz@ubuntu.com
>
> Please unblock package vala
>
> [ Reason ]
> Vala 0.48.x series is a Long-Term support version and receives important bug
> fixes and binding fixes.
>
> It is part of GNOME SDK and improves the stability of the vala compiler shipped
> in Debian.
>
> Upstream summary at
> https://gitlab.gnome.org/GNOME/vala/-/commit/10166000cbf8963cfebae5e15fa0f13b15791308
>
> [ Impact ]
> Vala is a compiler and affects every reverse-dependency.
>
> [ Tests ]
> The vala 0.48.x series is constantly used by current package set of Debian
> testing.
> The upstream test suite is extended with every release.
> http://ci.vala-project.org:8010/builders/vala-0.48/builds/39
>
> [ Risks ]
> Vala is a compiler and affects every reverse-dependency.
>
> [ Other info ]
> Upstream between 0.48.14 and 0.48.15
> https://gitlab.gnome.org/GNOME/vala/-/compare/8b87a6dbc354d5ec4a04fe6f65238e884bbd7211...10166000cbf8963cfebae5e15fa0f13b15791308
>
> unblock vala/0.48.15-1
109 files changed, 13216 insertions(+), 11665 deletions(-)
That's quite a lot. Could you please prepare a filtered diff with the
relevant changes? Especially the changes to some of the *.c files look
like they were generated from the corresponding vala sources.
Cheers
> diff --git a/NEWS b/NEWS
> index 782900d78..e78d744d0 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -1,3 +1,48 @@
> +Vala 0.48.15
> +============
> + * Various improvements and bug fixes:
> + - codegen:
> + + More use of get_ccode_type_name()
> + + "_first_array" parameter for params-array is variadic too
> + + Inherit GType from base struct of SimpleType structs
> + + Error for missing type-arguments of HashTable (de)serialization [#1147]
> + + Free intermediate temp-variables of postcondition expression [#80]
> + + Use the one available source_reference for internal error [#436]
> + + Fix access to captured generics in async method of interfaces [#537]
> + + Don't ever create null-aware free macro for GenericType
> + + Don't add generics arguments/parameters to async finish method
> + + Drop inner casts before converting between generics and integers
> + + Include "glib.h" for deprecated symbols (GOBJECT) [#1155]
> + - vala:
> + + Report warning if --target-glib=auto was not evaluated successfully
> + + Fix ownership inheritance of "unowned var" in foreach statement
> + + Add missing null-check in DataType.get_type_signature()
> + + Check array type of declarations for errornous type-arguments
> + + Check (optional) type-arguments of array creation expression
> + + Replace all type parameter occurances in parameters for signal delegate
> + + Improve error for incompatible expressions in conditional expression
> + - gdbus: Don't leak memory of deserialized arguments on error in wrapper method
> + - girparser:
> + + Reuse populated Node.gtype_struct_for instead of resolving again
> + + Evaluate "glib:type-struct" twice to pick up reparented structs
> + + Allow overriding of "Compact" attribute for classes
> + + Handle empty "<type/>" element and report an error
> + + Add support for NoWrapper metadata for methods
> + - testrunner: Include Gio-2.0/gio-2.0 for GIR tests too
> +
> + * Bindings:
> + - glib-2.0,gio-2.0: Add some missing type-arguments
> + - gio-2.0: Add some missing NoWrapper and CCode.has_typedef attributes
> + - gnutls: Fix some binding errors
> + - gsl: Fix some binding errors
> + - gtk4: Add Gtk.INVALID_LIST_POSITION [#1151]
> + - gtk4-unix-print: Switch to gir
> + - gtk4: Update to 4.1.2
> + - libwnck-3.0: Update to 3.36.0
> + - linux: Provide Input.Event.input_event_sec/input_event_usec fields [#1152]
> + - vapi: Fix a couple of attribute typos
> + - webkit2gtk-4.0: Update to 2.31.91
> +
> Vala 0.48.14
> ============
> * Highlights:
> diff --git a/build-aux/testrunner.sh b/build-aux/testrunner.sh
> index dd97adb08..6c31fbe76 100755
> --- a/build-aux/testrunner.sh
> +++ b/build-aux/testrunner.sh
> @@ -105,6 +105,7 @@ function sourceheader() {
> xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
> <include name="GLib" version="2.0"/>
> <include name="GObject" version="2.0"/>
> + <include name="Gio" version="2.0"/>
> <c:include name="test.h"/>
> <namespace name="Test"
> version="1.2"
> @@ -130,7 +131,8 @@ function sourceend() {
> echo " </namespace>" >> $SOURCEFILE
> echo "</repository>" >> $SOURCEFILE
> fi
> - echo "$VAPIGEN $VAPIGENFLAGS --library $ns $ns.gir && tail -n +5 $ns.vapi|sed '\$d'|diff -wu $ns.vapi.ref -" > check
> + PACKAGEFLAGS=$([ -z "$PACKAGES" ] || echo $PACKAGES | xargs -n 1 echo -n " --pkg")
> + echo "$VAPIGEN $VAPIGENFLAGS $PACKAGEFLAGS --library $ns $ns.gir && tail -n +5 $ns.vapi|sed '\$d'|diff -wu $ns.vapi.ref -" > check
> else
> PACKAGEFLAGS=$([ -z "$PACKAGES" ] || echo $PACKAGES | xargs -n 1 echo -n " --pkg")
> echo "$VALAC $VALAFLAGS $PACKAGEFLAGS -o $ns$EXEEXT $SOURCEFILE" >> prepare
> diff --git a/codegen/valaccodearraymodule.vala b/codegen/valaccodearraymodule.vala
> index b2b2e7e1e..851778171 100644
> --- a/codegen/valaccodearraymodule.vala
> +++ b/codegen/valaccodearraymodule.vala
> @@ -148,7 +148,7 @@ public class Vala.CCodeArrayModule : CCodeMethodCallModule {
>
> List<CCodeExpression> size = ((GLibValue) value).array_length_cvalues;
> if (size == null || size.size < dim) {
> - Report.error (null, "internal error: invalid array_length for given dimension");
> + Report.error (array_type.source_reference, "internal: invalid array_length for given dimension");
> return new CCodeInvalidExpression ();
> }
> return size[dim - 1];
> diff --git a/codegen/valaccodeattribute.vala b/codegen/valaccodeattribute.vala
> index dd5cb8a52..e647b4152 100644
> --- a/codegen/valaccodeattribute.vala
> +++ b/codegen/valaccodeattribute.vala
> @@ -842,7 +842,7 @@ public class Vala.CCodeAttribute : AttributeCache {
> return "void";
> } else if (node is ClassType) {
> var type = (ClassType) node;
> - return "%sClass*".printf (get_ccode_name (type.class_symbol));
> + return "%s*".printf (get_ccode_type_name (type.class_symbol));
> } else if (node is InterfaceType) {
> var type = (InterfaceType) node;
> return "%s*".printf (get_ccode_type_name (type.interface_symbol));
> @@ -1014,8 +1014,8 @@ public class Vala.CCodeAttribute : AttributeCache {
> return get_ccode_upper_case_name (sym, "TYPE_");
> } else if (sym is Struct) {
> unowned Struct st = (Struct) sym;
> - if (!get_ccode_has_type_id (st)) {
> - unowned Struct? base_struct = st.base_struct;
> + unowned Struct? base_struct = st.base_struct;
> + if (!get_ccode_has_type_id (st) || (base_struct != null && base_struct.is_simple_type ())) {
> if (base_struct != null) {
> return get_ccode_type_id (base_struct);
> }
> diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
> index 60c4d34cd..412ec82d4 100644
> --- a/codegen/valaccodebasemodule.vala
> +++ b/codegen/valaccodebasemodule.vala
> @@ -828,7 +828,12 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
>
> var cenum = new CCodeEnum (get_ccode_name (en));
>
> - cenum.modifiers |= (en.version.deprecated ? CCodeModifiers.DEPRECATED : 0);
> + if (en.version.deprecated) {
> + if (context.profile == Profile.GOBJECT) {
> + decl_space.add_include ("glib.h");
> + }
> + cenum.modifiers |= CCodeModifiers.DEPRECATED;
> + }
>
> var current_cfile = cfile;
> cfile = decl_space;
> @@ -1649,6 +1654,9 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
> }
>
> if (prop.version.deprecated) {
> + if (context.profile == Profile.GOBJECT) {
> + decl_space.add_include ("glib.h");
> + }
> function.modifiers |= CCodeModifiers.DEPRECATED;
> }
>
> @@ -2834,9 +2842,9 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
>
> string method_name = "get_%s_type".printf (type_parameter.name.ascii_down ());
> var cast_self = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_type_get_function (iface)));
> - cast_self.add_argument (new CCodeIdentifier ("self"));
> + cast_self.add_argument (get_this_cexpression ());
> var function_call = new CCodeFunctionCall (new CCodeMemberAccess.pointer (cast_self, method_name));
> - function_call.add_argument (new CCodeIdentifier ("self"));
> + function_call.add_argument (get_this_cexpression ());
> return function_call;
> }
>
> @@ -3461,9 +3469,9 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
>
> string method_name = "get_%s_destroy_func".printf (type_parameter.name.ascii_down ());
> var cast_self = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_type_get_function (iface)));
> - cast_self.add_argument (new CCodeIdentifier ("self"));
> + cast_self.add_argument (get_this_cexpression ());
> var function_call = new CCodeFunctionCall (new CCodeMemberAccess.pointer (cast_self, method_name));
> - function_call.add_argument (new CCodeIdentifier ("self"));
> + function_call.add_argument (get_this_cexpression ());
> return function_call;
> }
>
> @@ -3695,7 +3703,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
> }
> }
>
> - if (!is_gcollection && ccall.call is CCodeIdentifier && !(type is ArrayType) && !is_macro_definition) {
> + if (!is_gcollection && ccall.call is CCodeIdentifier && !(type is ArrayType) && !(type is GenericType) && !is_macro_definition) {
> // generate and use NULL-aware free macro to simplify code
>
> var freeid = (CCodeIdentifier) ccall.call;
> @@ -5926,8 +5934,16 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
> generate_type_declaration (actual_type, cfile);
> result = new CCodeCastExpression (cexpr, get_ccode_name (actual_type));
> } else if (analyzer.is_signed_integer_type_argument (actual_type)) {
> + // FIXME this should not happen
> + while (cexpr is CCodeCastExpression) {
> + cexpr = ((CCodeCastExpression) cexpr).inner;
> + }
> result = new CCodeCastExpression (new CCodeCastExpression (cexpr, "gintptr"), get_ccode_name (actual_type));
> } else if (analyzer.is_unsigned_integer_type_argument (actual_type)) {
> + // FIXME this should not happen
> + while (cexpr is CCodeCastExpression) {
> + cexpr = ((CCodeCastExpression) cexpr).inner;
> + }
> result = new CCodeCastExpression (new CCodeCastExpression (cexpr, "guintptr"), get_ccode_name (actual_type));
> }
> return result;
> @@ -5937,8 +5953,16 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
> unowned SemanticAnalyzer analyzer = context.analyzer;
> var result = cexpr;
> if (analyzer.is_signed_integer_type_argument (actual_type)) {
> + // FIXME this should not happen
> + while (cexpr is CCodeCastExpression) {
> + cexpr = ((CCodeCastExpression) cexpr).inner;
> + }
> result = new CCodeCastExpression (new CCodeCastExpression (cexpr, "gintptr"), get_ccode_name (pointer_type));
> } else if (analyzer.is_unsigned_integer_type_argument (actual_type)) {
> + // FIXME this should not happen
> + while (cexpr is CCodeCastExpression) {
> + cexpr = ((CCodeCastExpression) cexpr).inner;
> + }
> result = new CCodeCastExpression (new CCodeCastExpression (cexpr, "guintptr"), get_ccode_name (pointer_type));
> }
> return result;
> @@ -6461,6 +6485,12 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
> requires_assert = true;
>
> ccode.add_expression (cassert);
> +
> + foreach (var value in temp_ref_values) {
> + ccode.add_expression (destroy_value (value));
> + }
> +
> + temp_ref_values.clear ();
> }
>
> public unowned DataType? get_this_type () {
> diff --git a/codegen/valaccodedelegatemodule.vala b/codegen/valaccodedelegatemodule.vala
> index dd3e0fcf6..b0770a5a0 100644
> --- a/codegen/valaccodedelegatemodule.vala
> +++ b/codegen/valaccodedelegatemodule.vala
> @@ -111,7 +111,13 @@ public class Vala.CCodeDelegateModule : CCodeArrayModule {
> }
>
> var ctypedef = new CCodeTypeDefinition (get_ccode_name (creturn_type), cfundecl);
> - ctypedef.modifiers |= (d.version.deprecated ? CCodeModifiers.DEPRECATED : 0);
> +
> + if (d.version.deprecated) {
> + if (context.profile == Profile.GOBJECT) {
> + decl_space.add_include ("glib.h");
> + }
> + ctypedef.modifiers |= CCodeModifiers.DEPRECATED;
> + }
>
> decl_space.add_type_declaration (ctypedef);
> }
> diff --git a/codegen/valaccodemethodmodule.vala b/codegen/valaccodemethodmodule.vala
> index def8ae955..f15c660ee 100644
> --- a/codegen/valaccodemethodmodule.vala
> +++ b/codegen/valaccodemethodmodule.vala
> @@ -178,6 +178,9 @@ public abstract class Vala.CCodeMethodModule : CCodeStructModule {
> }
>
> if (m.version.deprecated) {
> + if (context.profile == Profile.GOBJECT) {
> + decl_space.add_include ("glib.h");
> + }
> function.modifiers |= CCodeModifiers.DEPRECATED;
> }
>
> @@ -917,7 +920,7 @@ public abstract class Vala.CCodeMethodModule : CCodeStructModule {
> }
>
> cparam = new CCodeParameter ("_first_%s".printf (get_ccode_name (param)), ctypename);
> - cparam_map.set (get_param_pos (get_ccode_pos (param), false), cparam);
> + cparam_map.set (get_param_pos (get_ccode_pos (param) - 0.1, true), cparam);
>
> va_list_name = "_va_list_%s".printf (get_ccode_name (param));
> }
> @@ -979,7 +982,7 @@ public abstract class Vala.CCodeMethodModule : CCodeStructModule {
> cparam_map.set (get_param_pos (get_ccode_instance_pos (m)), class_param);
> }
>
> - if (is_gtypeinstance_creation_method (m)) {
> + if (is_gtypeinstance_creation_method (m) && (direction & 1) == 1) {
> // memory management for generic types
> int type_param_index = 0;
> var cl = (Class) m.parent_symbol;
> diff --git a/codegen/valaccodestructmodule.vala b/codegen/valaccodestructmodule.vala
> index 2eab9e0e1..edd392304 100644
> --- a/codegen/valaccodestructmodule.vala
> +++ b/codegen/valaccodestructmodule.vala
> @@ -77,7 +77,13 @@ public abstract class Vala.CCodeStructModule : CCodeBaseModule {
> }
>
> var instance_struct = new CCodeStruct ("_%s".printf (get_ccode_name (st)));
> - instance_struct.modifiers |= (st.version.deprecated ? CCodeModifiers.DEPRECATED : 0);
> +
> + if (st.version.deprecated) {
> + if (context.profile == Profile.GOBJECT) {
> + decl_space.add_include ("glib.h");
> + }
> + instance_struct.modifiers |= CCodeModifiers.DEPRECATED;
> + }
>
> foreach (Field f in st.get_fields ()) {
> if (f.binding == MemberBinding.INSTANCE) {
> diff --git a/codegen/valagdbusservermodule.vala b/codegen/valagdbusservermodule.vala
> index 6eca1d14a..f0afb3c6a 100644
> --- a/codegen/valagdbusservermodule.vala
> +++ b/codegen/valagdbusservermodule.vala
> @@ -193,6 +193,8 @@ public class Vala.GDBusServerModule : GDBusClientModule {
> }
>
> ccode.close ();
> + } else if (!need_goto_label && m.tree_can_fail && requires_destroy (owned_type)) {
> + need_goto_label = true;
> }
> }
> }
> diff --git a/codegen/valagtypemodule.vala b/codegen/valagtypemodule.vala
> index 7fea7c92e..5d3960ba7 100644
> --- a/codegen/valagtypemodule.vala
> +++ b/codegen/valagtypemodule.vala
> @@ -75,7 +75,7 @@ public class Vala.GTypeModule : GErrorModule {
> macro = "(G_TYPE_CHECK_INSTANCE_CAST ((obj), %s, %s))".printf (get_ccode_type_id (cl), get_ccode_name (cl));
> decl_space.add_type_declaration (new CCodeMacroReplacement ("%s(obj)".printf (get_ccode_type_cast_function (cl)), macro));
>
> - macro = "(G_TYPE_CHECK_CLASS_CAST ((klass), %s, %sClass))".printf (get_ccode_type_id (cl), get_ccode_name (cl));
> + macro = "(G_TYPE_CHECK_CLASS_CAST ((klass), %s, %s))".printf (get_ccode_type_id (cl), get_ccode_type_name (cl));
> decl_space.add_type_declaration (new CCodeMacroReplacement ("%s(klass)".printf (get_ccode_class_type_function (cl)), macro));
>
> macro = "(G_TYPE_CHECK_INSTANCE_TYPE ((obj), %s))".printf (get_ccode_type_id (cl));
> @@ -84,7 +84,7 @@ public class Vala.GTypeModule : GErrorModule {
> macro = "(G_TYPE_CHECK_CLASS_TYPE ((klass), %s))".printf (get_ccode_type_id (cl));
> decl_space.add_type_declaration (new CCodeMacroReplacement ("%s(klass)".printf (get_ccode_class_type_check_function (cl)), macro));
>
> - macro = "(G_TYPE_INSTANCE_GET_CLASS ((obj), %s, %sClass))".printf (get_ccode_type_id (cl), get_ccode_name (cl));
> + macro = "(G_TYPE_INSTANCE_GET_CLASS ((obj), %s, %s))".printf (get_ccode_type_id (cl), get_ccode_type_name (cl));
> decl_space.add_type_declaration (new CCodeMacroReplacement ("%s(obj)".printf (get_ccode_type_get_function (cl)), macro));
> decl_space.add_type_declaration (new CCodeNewline ());
> }
> @@ -473,7 +473,7 @@ public class Vala.GTypeModule : GErrorModule {
> bool has_class_locks = false;
>
> var instance_priv_struct = new CCodeStruct ("_%sPrivate".printf (get_ccode_name (cl)));
> - var type_priv_struct = new CCodeStruct ("_%sClassPrivate".printf (get_ccode_name (cl)));
> + var type_priv_struct = new CCodeStruct ("_%sPrivate".printf (get_ccode_type_name (cl)));
>
> if (is_gtypeinstance) {
> /* create type, dup_func, and destroy_func fields for generic types */
> @@ -527,7 +527,7 @@ public class Vala.GTypeModule : GErrorModule {
>
> if (is_gtypeinstance) {
> if (cl.has_class_private_fields || has_class_locks) {
> - decl_space.add_type_declaration (new CCodeTypeDefinition ("struct %s".printf (type_priv_struct.name), new CCodeVariableDeclarator ("%sClassPrivate".printf (get_ccode_name (cl)))));
> + decl_space.add_type_declaration (new CCodeTypeDefinition ("struct %s".printf (type_priv_struct.name), new CCodeVariableDeclarator ("%sPrivate".printf (get_ccode_type_name (cl)))));
> }
>
> /* only add the *Private struct if it is not empty, i.e. we actually have private data */
> @@ -559,7 +559,7 @@ public class Vala.GTypeModule : GErrorModule {
> if (cl.has_class_private_fields || has_class_locks) {
> decl_space.add_type_definition (type_priv_struct);
>
> - string macro = "(G_TYPE_CLASS_GET_PRIVATE (klass, %s, %sClassPrivate))".printf (get_ccode_type_id (cl), get_ccode_name (cl));
> + string macro = "(G_TYPE_CLASS_GET_PRIVATE (klass, %s, %sPrivate))".printf (get_ccode_type_id (cl), get_ccode_type_name (cl));
> decl_space.add_type_member_declaration (new CCodeMacroReplacement ("%s(klass)".printf (get_ccode_class_get_private_function (cl)), macro));
> }
> }
> @@ -1189,7 +1189,7 @@ public class Vala.GTypeModule : GErrorModule {
> push_context (base_init_context);
>
> var base_init = new CCodeFunction ("%s_base_init".printf (get_ccode_lower_case_name (cl, null)), "void");
> - base_init.add_parameter (new CCodeParameter ("klass", "%sClass *".printf (get_ccode_name (cl))));
> + base_init.add_parameter (new CCodeParameter ("klass", "%s *".printf (get_ccode_type_name (cl))));
> base_init.modifiers = CCodeModifiers.STATIC;
>
> push_function (base_init);
> @@ -1211,7 +1211,7 @@ public class Vala.GTypeModule : GErrorModule {
> push_context (class_init_context);
>
> var func = new CCodeFunction ("%s_class_init".printf (get_ccode_lower_case_name (cl, null)));
> - func.add_parameter (new CCodeParameter ("klass", "%sClass *".printf (get_ccode_name (cl))));
> + func.add_parameter (new CCodeParameter ("klass", "%s *".printf (get_ccode_type_name (cl))));
> func.add_parameter (new CCodeParameter ("klass_data", "gpointer"));
> func.modifiers = CCodeModifiers.STATIC;
>
> @@ -1240,7 +1240,7 @@ public class Vala.GTypeModule : GErrorModule {
> fundamental_class = fundamental_class.base_class;
> }
>
> - var ccast = new CCodeCastExpression (new CCodeIdentifier ("klass"), "%sClass *".printf (get_ccode_name (fundamental_class)));
> + var ccast = new CCodeCastExpression (new CCodeIdentifier ("klass"), "%s *".printf (get_ccode_type_name (fundamental_class)));
> var finalize_assignment = new CCodeAssignment (new CCodeMemberAccess.pointer (ccast, "finalize"), new CCodeIdentifier ("%sfinalize".printf (get_ccode_lower_case_prefix (cl))));
> ccode.add_expression (finalize_assignment);
> }
> @@ -1266,7 +1266,7 @@ public class Vala.GTypeModule : GErrorModule {
>
> CCodeExpression cfunc = new CCodeIdentifier (get_ccode_real_name (m));
> cfunc = cast_method_pointer (m.base_method, cfunc, base_type, (m.coroutine ? 1 : 3));
> - var ccast = new CCodeCastExpression (new CCodeIdentifier ("klass"), "%sClass *".printf (get_ccode_name (base_type)));
> + var ccast = new CCodeCastExpression (new CCodeIdentifier ("klass"), "%s *".printf (get_ccode_type_name (base_type)));
> ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, get_ccode_vfunc_name (m.base_method)), cfunc);
>
> if (m.coroutine) {
> @@ -1283,7 +1283,7 @@ public class Vala.GTypeModule : GErrorModule {
> continue;
> }
>
> - var ccast = new CCodeCastExpression (new CCodeIdentifier ("klass"), "%sClass *".printf (get_ccode_name (cl)));
> + var ccast = new CCodeCastExpression (new CCodeIdentifier ("klass"), "%s *".printf (get_ccode_type_name (cl)));
> ccode.add_assignment (new CCodeMemberAccess.pointer (ccast, get_ccode_vfunc_name (sig.default_handler)), new CCodeIdentifier (get_ccode_real_name (sig.default_handler)));
> }
>
> @@ -1690,7 +1690,7 @@ public class Vala.GTypeModule : GErrorModule {
> var function = new CCodeFunction ("%s_class_finalize".printf (get_ccode_lower_case_name (cl, null)), "void");
> function.modifiers = CCodeModifiers.STATIC;
>
> - function.add_parameter (new CCodeParameter ("klass", "%sClass *".printf (get_ccode_name (cl))));
> + function.add_parameter (new CCodeParameter ("klass", "%s *".printf (get_ccode_type_name (cl))));
>
> push_function (function);
>
> @@ -1712,7 +1712,7 @@ public class Vala.GTypeModule : GErrorModule {
> var function = new CCodeFunction ("%s_base_finalize".printf (get_ccode_lower_case_name (cl, null)), "void");
> function.modifiers = CCodeModifiers.STATIC;
>
> - function.add_parameter (new CCodeParameter ("klass", "%sClass *".printf (get_ccode_name (cl))));
> + function.add_parameter (new CCodeParameter ("klass", "%s *".printf (get_ccode_type_name (cl))));
> function.add_parameter (new CCodeParameter ("klass_data", "gpointer"));
>
> push_function (function);
> @@ -2187,7 +2187,7 @@ public class Vala.GTypeModule : GErrorModule {
> push_context (new EmitContext (iface));
>
> var default_init = new CCodeFunction ("%s_default_init".printf (get_ccode_lower_case_name (iface, null)), "void");
> - default_init.add_parameter (new CCodeParameter ("iface", "%sIface *".printf (get_ccode_name (iface))));
> + default_init.add_parameter (new CCodeParameter ("iface", "%s *".printf (get_ccode_type_name (iface))));
> default_init.add_parameter (new CCodeParameter ("iface_data", "gpointer"));
> default_init.modifiers = CCodeModifiers.STATIC;
>
> diff --git a/codegen/valagvariantmodule.vala b/codegen/valagvariantmodule.vala
> index bd45a7738..d4719b906 100644
> --- a/codegen/valagvariantmodule.vala
> +++ b/codegen/valagvariantmodule.vala
> @@ -468,7 +468,10 @@ public class Vala.GVariantModule : GValueModule {
> string value_name = "_tmp%d_".printf (next_temp_var_id++);
>
> var type_args = type.get_type_arguments ();
> - assert (type_args.size == 2);
> + if (type_args.size != 2) {
> + Report.error (type.source_reference, "Missing type-arguments for GVariant deserialization of `%s'".printf (type.type_symbol.get_full_name ()));
> + return new CCodeInvalidExpression ();
> + }
> var key_type = type_args.get (0);
> var value_type = type_args.get (1);
>
> @@ -785,7 +788,10 @@ public class Vala.GVariantModule : GValueModule {
> string value_name = "_tmp%d_".printf (next_temp_var_id++);
>
> var type_args = type.get_type_arguments ();
> - assert (type_args.size == 2);
> + if (type_args.size != 2) {
> + Report.error (type.source_reference, "Missing type-arguments for GVariant serialization of `%s'".printf (type.type_symbol.get_full_name ()));
> + return new CCodeInvalidExpression ();
> + }
> var key_type = type_args.get (0);
> var value_type = type_args.get (1);
>
> diff --git a/codegen/valatyperegisterfunction.vala b/codegen/valatyperegisterfunction.vala
> index eac326312..2150df0d7 100644
> --- a/codegen/valatyperegisterfunction.vala
> +++ b/codegen/valatyperegisterfunction.vala
> @@ -223,7 +223,7 @@ public abstract class Vala.TypeRegisterFunction {
>
> add_class_private_call = new CCodeFunctionCall (new CCodeIdentifier ("g_type_add_class_private"));
> add_class_private_call.add_argument (new CCodeIdentifier (type_id_name));
> - add_class_private_call.add_argument (new CCodeIdentifier ("sizeof (%sClassPrivate)".printf (get_ccode_name (type_symbol))));
> + add_class_private_call.add_argument (new CCodeIdentifier ("sizeof (%sPrivate)".printf (get_ccode_type_name (cl))));
> type_init.add_statement (new CCodeExpressionStatement (add_class_private_call));
> }
>
> diff --git a/doc/vala-gen-introspect.1 b/doc/vala-gen-introspect.1
> index 250e2e6aa..48edff8a3 100644
> --- a/doc/vala-gen-introspect.1
> +++ b/doc/vala-gen-introspect.1
> @@ -1,5 +1,5 @@
> .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.1.
> -.TH VALA-GEN-INTROSPECT "1" "February 2021" "gen-introspect 0.48.14" "User Commands"
> +.TH VALA-GEN-INTROSPECT "1" "March 2021" "gen-introspect 0.48.15" "User Commands"
> .SH NAME
> vala-gen-introspect \- generate a GI file for GObject and glib based packages
> .SH SYNOPSIS
> diff --git a/doc/valac.1 b/doc/valac.1
> index 8af927f0c..0a09d4469 100644
> --- a/doc/valac.1
> +++ b/doc/valac.1
> @@ -1,5 +1,5 @@
> .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.1.
> -.TH VALAC "1" "February 2021" "Vala 0.48.14" "User Commands"
> +.TH VALAC "1" "March 2021" "Vala 0.48.15" "User Commands"
> .SH NAME
> valac \- compiler that translates Vala source code into C source and header files
> .SH SYNOPSIS
> diff --git a/doc/valadoc.1 b/doc/valadoc.1
> index fd7a785a0..fe893c3ea 100644
> --- a/doc/valadoc.1
> +++ b/doc/valadoc.1
> @@ -1,5 +1,5 @@
> .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.1.
> -.TH VALADOC "1" "February 2021" "Valadoc 0.48.14" "User Commands"
> +.TH VALADOC "1" "March 2021" "Valadoc 0.48.15" "User Commands"
> .SH NAME
> valadoc \- Vala Documentation Tool
> .SH SYNOPSIS
> diff --git a/doc/vapigen.1 b/doc/vapigen.1
> index ca2e1cd00..54daa1bf4 100644
> --- a/doc/vapigen.1
> +++ b/doc/vapigen.1
> @@ -1,5 +1,5 @@
> .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.1.
> -.TH VAPIGEN "1" "February 2021" "Vala API Generator 0.48.14" "User Commands"
> +.TH VAPIGEN "1" "March 2021" "Vala API Generator 0.48.15" "User Commands"
> .SH NAME
> vapigen \- generate a Vala API
> .SH SYNOPSIS
> diff --git a/tests/annotations/deprecated-delegate-minimal.vala b/tests/annotations/deprecated-delegate-minimal.vala
> new file mode 100644
> index 000000000..3e34e8657
> diff --git a/tests/annotations/deprecated-enum-minimal.vala b/tests/annotations/deprecated-enum-minimal.vala
> new file mode 100644
> index 000000000..91f0be73e
> diff --git a/tests/annotations/deprecated-method-minimal.vala b/tests/annotations/deprecated-method-minimal.vala
> new file mode 100644
> index 000000000..99aba27e8
> diff --git a/tests/annotations/deprecated-property-minimal.vala b/tests/annotations/deprecated-property-minimal.vala
> new file mode 100644
> index 000000000..a52e7733f
> diff --git a/tests/annotations/deprecated-struct-minimal.vala b/tests/annotations/deprecated-struct-minimal.vala
> new file mode 100644
> index 000000000..6b1c34493
> diff --git a/tests/basic-types/gvariants-hashtable-missing-type-arguments.test b/tests/basic-types/gvariants-hashtable-missing-type-arguments.test
> new file mode 100644
> index 000000000..2ce71ded5
> diff --git a/tests/generics/gvariant-serialization.test b/tests/generics/gvariant-serialization.test
> new file mode 100644
> index 000000000..e9f9ad593
> diff --git a/tests/generics/integer-member-access.vala b/tests/generics/integer-member-access.vala
> new file mode 100644
> index 000000000..47dc31a13
> diff --git a/tests/gir/async-creation-method.test b/tests/gir/async-creation-method.test
> new file mode 100644
> index 000000000..fccafb0b8
> diff --git a/tests/gir/method-class.test b/tests/gir/method-class.test
> new file mode 100644
> index 000000000..adb7ec105
> diff --git a/tests/gir/method-nowrapper.test b/tests/gir/method-nowrapper.test
> new file mode 100644
> index 000000000..ed2c1deca
> diff --git a/tests/gir/signal-virtual.test b/tests/gir/signal-virtual.test
> new file mode 100644
> index 000000000..b0073eddd
> diff --git a/tests/methods/params-array-with-throws.vala b/tests/methods/params-array-with-throws.vala
> new file mode 100644
> index 000000000..9bffd6680
> diff --git a/tests/methods/postconditions-temp-variables.vala b/tests/methods/postconditions-temp-variables.vala
> new file mode 100644
> index 000000000..46414725d
> diff --git a/tests/methods/preconditions-temp-variables.vala b/tests/methods/preconditions-temp-variables.vala
> new file mode 100644
> index 000000000..b116166bb
> diff --git a/tests/objects/bug626038-2.vala b/tests/objects/bug626038-2.vala
> new file mode 100644
> index 000000000..2a2422846
> diff --git a/tests/objects/interface-async-captured-generic.vala b/tests/objects/interface-async-captured-generic.vala
> new file mode 100644
> index 000000000..ae51d676a
> diff --git a/tests/posix/string-concat.vala b/tests/posix/string-concat.vala
> new file mode 100644
> index 000000000..ead6abeed
> diff --git a/tests/semantic/array-invalid-type-argument.test b/tests/semantic/array-invalid-type-argument.test
> new file mode 100644
> index 000000000..89e6d4039
> diff --git a/tests/semantic/array-too-few-type-arguments.test b/tests/semantic/array-too-few-type-arguments.test
> new file mode 100644
> index 000000000..3161b5b3e
> diff --git a/tests/semantic/array-too-many-type-arguments.test b/tests/semantic/array-too-many-type-arguments.test
> new file mode 100644
> index 000000000..84d64e83f
> diff --git a/tests/semantic/assignment-fixed-array-length.test b/tests/semantic/assignment-fixed-array-length.test
> new file mode 100644
> index 000000000..5de56ba56
> diff --git a/tests/semantic/conditional-expression-incompatible.test b/tests/semantic/conditional-expression-incompatible.test
> new file mode 100644
> index 000000000..1d8c108c3
> diff --git a/tests/structs/gtype-base-struct.vala b/tests/structs/gtype-base-struct.vala
> new file mode 100644
> index 000000000..3a4c2b946
> diff --git a/vala/valaarraycreationexpression.vala b/vala/valaarraycreationexpression.vala
> index 534481562..5e0f46172 100644
> --- a/vala/valaarraycreationexpression.vala
> +++ b/vala/valaarraycreationexpression.vala
> @@ -245,6 +245,12 @@ public class Vala.ArrayCreationExpression : Expression {
>
> if (element_type != null) {
> element_type.check (context);
> +
> + // check whether there is the expected amount of type-arguments
> + if (!element_type.check_type_arguments (context, true)) {
> + error = true;
> + return false;
> + }
> }
>
> if (length_type == null) {
> diff --git a/vala/valaarraytype.vala b/vala/valaarraytype.vala
> index 588539c12..7fff66b04 100644
> --- a/vala/valaarraytype.vala
> +++ b/vala/valaarraytype.vala
> @@ -324,7 +324,18 @@ public class Vala.ArrayType : ReferenceType {
> }
> }
>
> - return element_type.check (context);
> + if (!element_type.check (context)) {
> + error = true;
> + return false;
> + }
> +
> + // check whether there is the expected amount of type-arguments
> + if (!element_type.check_type_arguments (context, true)) {
> + error = true;
> + return false;
> + }
> +
> + return true;
> }
>
> public override DataType get_actual_type (DataType? derived_instance_type, List<DataType>? method_type_arguments, CodeNode? node_reference) {
> diff --git a/vala/valaclass.vala b/vala/valaclass.vala
> index dcd3ecacc..3fffdb352 100644
> --- a/vala/valaclass.vala
> +++ b/vala/valaclass.vala
> @@ -555,15 +555,9 @@ public class Vala.Class : ObjectTypeSymbol {
> return false;
> }
>
> - int n_type_args = base_type_reference.get_type_arguments ().size;
> - int n_type_params = ((ObjectTypeSymbol) base_type_reference.type_symbol).get_type_parameters ().size;
> - if (n_type_args < n_type_params) {
> + // check whether there is the expected amount of type-arguments
> + if (!base_type_reference.check_type_arguments (context)) {
> error = true;
> - Report.error (base_type_reference.source_reference, "too few type arguments");
> - return false;
> - } else if (n_type_args > n_type_params) {
> - error = true;
> - Report.error (base_type_reference.source_reference, "too many type arguments");
> return false;
> }
> }
> diff --git a/vala/valacodecontext.vala b/vala/valacodecontext.vala
> index af9afed33..051cc2c00 100644
> --- a/vala/valacodecontext.vala
> +++ b/vala/valacodecontext.vala
> @@ -602,10 +602,13 @@ public class Vala.CodeContext {
> if (target_glib == "auto") {
> var available_glib = pkg_config_modversion ("glib-2.0");
> if (available_glib != null && available_glib.scanf ("%d.%d", out glib_major, out glib_minor) >= 2) {
> - glib_minor -= ++glib_minor % 2;
> + glib_minor++;
> + glib_minor -= glib_minor % 2;
> set_target_glib_version ("%d.%d".printf (glib_major, glib_minor));
> - return;
> + } else {
> + Report.warning (null, "Could not determine the version of `glib-2.0', target version of glib was not set");
> }
> + return;
> }
>
> glib_major = target_glib_major;
> diff --git a/vala/valaconditionalexpression.vala b/vala/valaconditionalexpression.vala
> index 868b58108..01983ed25 100644
> --- a/vala/valaconditionalexpression.vala
> +++ b/vala/valaconditionalexpression.vala
> @@ -194,7 +194,8 @@ public class Vala.ConditionalExpression : Expression {
> value_type = false_expression.value_type.copy ();
> } else {
> error = true;
> - Report.error (condition.source_reference, "Incompatible expressions");
> + var source_reference = new SourceReference (true_expression.source_reference.file, true_expression.source_reference.begin, false_expression.source_reference.end);
> + Report.error (source_reference, "Cannot resolve target type from `%s' and `%s'".printf (true_expression.value_type.to_prototype_string (), false_expression.value_type.to_prototype_string ()));
> return false;
> }
>
> diff --git a/vala/valadatatype.vala b/vala/valadatatype.vala
> index bb00ff8cf..209a40821 100644
> --- a/vala/valadatatype.vala
> +++ b/vala/valadatatype.vala
> @@ -497,6 +497,38 @@ public abstract class Vala.DataType : CodeNode {
> return result;
> }
>
> + public bool is_generic () {
> + if (this is GenericType) {
> + return true;
> + }
> +
> + if (!has_type_arguments ()) {
> + return false;
> + }
> + foreach (var type_arg in type_argument_list) {
> + if (type_arg.is_generic ()) {
> + return true;
> + }
> + }
> + return false;
> + }
> +
> + public void replace_type_parameter (TypeParameter old_type_param, TypeParameter new_type_param) {
> + if (this is GenericType) {
> + unowned GenericType generic_type = (GenericType) this;
> + if (generic_type.type_parameter == old_type_param) {
> + generic_type.type_parameter = new_type_param;
> + }
> + return;
> + }
> + if (!has_type_arguments ()) {
> + return;
> + }
> + foreach (var type_arg in type_argument_list) {
> + type_arg.replace_type_parameter (old_type_param, new_type_param);
> + }
> + }
> +
> /**
> * Search for the type parameter in this formal type and match it in
> * value_type.
> @@ -574,7 +606,12 @@ public abstract class Vala.DataType : CodeNode {
> str.append_c ('(');
> foreach (Field f in st.get_fields ()) {
> if (f.binding == MemberBinding.INSTANCE) {
> - str.append (f.variable_type.get_type_signature (f));
> + var s = f.variable_type.get_type_signature (f);
> + if (s != null) {
> + str.append (s);
> + } else {
> + return null;
> + }
> }
> }
> str.append_c (')');
> @@ -612,4 +649,49 @@ public abstract class Vala.DataType : CodeNode {
> return null;
> }
> }
> +
> + /**
> + * Returns whether the given amount of type-argument matches the symbol's count of type-parameters
> + *
> + * @param context a CodeContext
> + * @param allow_none whether no type-argments are allowed
> + * @return true if successful
> + */
> + public bool check_type_arguments (CodeContext context, bool allow_none = false) {
> + int n_type_args = get_type_arguments ().size;
> + int expected_n_type_args = 0;
> +
> + if (type_symbol is ObjectTypeSymbol) {
> + expected_n_type_args = ((ObjectTypeSymbol) type_symbol).get_type_parameters ().size;
> + } else if (type_symbol is Struct) {
> + expected_n_type_args = ((Struct) type_symbol).get_type_parameters ().size;
> + } else if (type_symbol is Delegate) {
> + expected_n_type_args = ((Delegate) type_symbol).get_type_parameters ().size;
> + } else if (n_type_args > 0) {
> + Report.error (source_reference, "`%s' does not support type arguments".printf (type_symbol.get_full_name ()));
> + error = true;
> + return false;
> + } else {
> + // nothing to do here
> + return true;
> + }
> +
> + if ((!allow_none || n_type_args > 0) && n_type_args < expected_n_type_args) {
> + error = true;
> + Report.error (source_reference, "too few type arguments for `%s'".printf (type_symbol.get_full_name ()));
> + return false;
> + } else if ((!allow_none || n_type_args > 0) && n_type_args > expected_n_type_args) {
> + error = true;
> + Report.error (source_reference, "too many type arguments for `%s'".printf (type_symbol.get_full_name ()));
> + return false;
> + }
> +
> + foreach (DataType type in get_type_arguments ()) {
> + if (!type.check (context)) {
> + return false;
> + }
> + }
> +
> + return true;
> + }
> }
> diff --git a/vala/valadelegatetype.vala b/vala/valadelegatetype.vala
> index 4029f00af..9821a9e70 100644
> --- a/vala/valadelegatetype.vala
> +++ b/vala/valadelegatetype.vala
> @@ -99,23 +99,9 @@ public class Vala.DelegateType : CallableType {
> return false;
> }
>
> - var n_type_params = delegate_symbol.get_type_parameters ().size;
> - var n_type_args = get_type_arguments ().size;
> - if (n_type_args > 0 && n_type_args < n_type_params) {
> - error = true;
> - Report.error (source_reference, "too few type arguments");
> + // check whether there is the expected amount of type-arguments
> + if (!check_type_arguments (context, true)) {
> return false;
> - } else if (n_type_args > 0 && n_type_args > n_type_params) {
> - error = true;
> - Report.error (source_reference, "too many type arguments");
> - return false;
> - }
> -
> - foreach (DataType type in get_type_arguments ()) {
> - if (!type.check (context)) {
> - error = true;
> - return false;
> - }
> }
>
> return true;
> diff --git a/vala/valaforeachstatement.vala b/vala/valaforeachstatement.vala
> index a04076b58..e225047bc 100644
> --- a/vala/valaforeachstatement.vala
> +++ b/vala/valaforeachstatement.vala
> @@ -332,9 +332,10 @@ public class Vala.ForeachStatement : Block {
> // analyze element type
> if (type_reference is VarType) {
> // var type
> + bool value_owned = type_reference.value_owned;
> type_reference = element_type.copy ();
> // FIXME Only follows "unowned var" otherwise inherit ownership of element-type
> - if (!type_reference.value_owned) {
> + if (!value_owned) {
> type_reference.value_owned = false;
> }
> } else if (!element_type.compatible (type_reference)) {
> @@ -354,9 +355,10 @@ public class Vala.ForeachStatement : Block {
> // analyze element type
> if (type_reference is VarType) {
> // var type
> + bool value_owned = type_reference.value_owned;
> type_reference = element_type.copy ();
> // FIXME Only follows "unowned var" otherwise inherit ownership of element-type
> - if (!type_reference.value_owned) {
> + if (!value_owned) {
> type_reference.value_owned = false;
> }
> } else if (!element_type.compatible (type_reference)) {
> diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala
> index fe9ea451d..5496023c2 100644
> --- a/vala/valagirparser.vala
> +++ b/vala/valagirparser.vala
> @@ -63,6 +63,7 @@ public class Vala.GirParser : CodeVisitor {
> VFUNC_NAME,
> VIRTUAL,
> ABSTRACT,
> + COMPACT,
> SEALED,
> SCOPE,
> STRUCT,
> @@ -93,6 +94,7 @@ public class Vala.GirParser : CodeVisitor {
> DESTROY_NOTIFY_CNAME,
> FINISH_VFUNC_NAME,
> NO_ACCESSOR_METHOD,
> + NO_WRAPPER,
> CNAME,
> DELEGATE_TARGET,
> CTYPE;
> @@ -537,6 +539,8 @@ public class Vala.GirParser : CodeVisitor {
> public ArrayList<int> destroy_parameters;
> // record-specific
> public UnresolvedSymbol gtype_struct_for;
> + // class-specific
> + public UnresolvedSymbol type_struct;
> // alias-specific
> public DataType base_type;
> // struct-specific
> @@ -854,6 +858,25 @@ public class Vala.GirParser : CodeVisitor {
> return res;
> }
>
> + static void move_class_methods (Node target, Node? source) {
> + if (source == null) {
> + return;
> + }
> +
> + var i = 0;
> + while (i < source.members.size) {
> + var node = source.members[i];
> + if (node.symbol is Method) {
> + source.remove_member (node);
> + target.add_member (node);
> +
> + ((Method) node.symbol).binding = MemberBinding.CLASS;
> + } else {
> + i++;
> + }
> + }
> + }
> +
> public void process (GirParser parser) {
> if (processed) {
> return;
> @@ -881,24 +904,12 @@ public class Vala.GirParser : CodeVisitor {
> }
>
> if (symbol is Class && girdata != null) {
> + if (type_struct != null) {
> + move_class_methods (this, parser.resolve_node (parent, type_struct));
> + }
> var class_struct = girdata["glib:type-struct"];
> if (class_struct != null) {
> - var klass = parser.resolve_node (parent, parser.parse_symbol_from_string (class_struct, source_reference));
> - if (klass != null) {
> - var i = 0;
> - while ( i < klass.members.size ) {
> - var node = klass.members[i];
> - if (node.symbol is Method) {
> - klass.remove_member (node);
> - this.add_member (node);
> -
> - Method m = (Method) node.symbol;
> - m.binding = MemberBinding.CLASS;
> - } else {
> - i++;
> - }
> - }
> - }
> + move_class_methods (this, parser.resolve_node (parent, parser.parse_symbol_from_string (class_struct, source_reference)));
> }
> }
>
> @@ -1202,9 +1213,8 @@ public class Vala.GirParser : CodeVisitor {
> merged = true;
> } else {
> // record for a gtype
> - var gtype_struct_for = girdata["glib:is-gtype-struct-for"];
> if (gtype_struct_for != null) {
> - var obj = parser.resolve_node (parent, parser.parse_symbol_from_string (gtype_struct_for, source_reference));
> + var obj = parser.resolve_node (parent, gtype_struct_for);
> if (obj != null && obj.symbol is Interface && "%sIface".printf (obj.get_cname ()) != get_cname ()) {
> // set the interface struct name
> obj.symbol.set_attribute_string ("CCode", "type_cname", get_cname ());
> @@ -2713,7 +2723,16 @@ public class Vala.GirParser : CodeVisitor {
> type_name = ctype;
> }
>
> - DataType type = parse_type_from_gir_name (type_name, out no_array_length, out array_null_terminated, ctype);
> + DataType type;
> + if (type_name != null) {
> + type = parse_type_from_gir_name (type_name, out no_array_length, out array_null_terminated, ctype);
> + } else {
> + // empty <type/>
> + no_array_length = false;
> + array_null_terminated = false;
> + type = new InvalidType ();
> + Report.error (get_current_src (), "empty type element");
> + }
>
> // type arguments / element types
> while (current_token == MarkupTokenType.START_ELEMENT) {
> @@ -2932,6 +2951,11 @@ public class Vala.GirParser : CodeVisitor {
> if (parent != null) {
> cl.add_base_type (parse_type_from_gir_name (parent));
> }
> + var type_struct = reader.get_attribute ("glib:type-struct");
> + if (type_struct != null) {
> + current.type_struct = parse_symbol_from_string (type_struct, current.source_reference);
> + unresolved_gir_symbols.add (current.type_struct);
> + }
> current.symbol = cl;
> } else {
> cl = (Class) current.symbol;
> @@ -3270,9 +3294,12 @@ public class Vala.GirParser : CodeVisitor {
> } else {
> m.is_virtual = true;
> }
> - if (invoker == null && !metadata.has_argument (ArgumentType.VFUNC_NAME)) {
> + if (metadata.has_argument (ArgumentType.NO_WRAPPER)) {
> + s.set_attribute ("NoWrapper", metadata.get_bool (ArgumentType.NO_WRAPPER), s.source_reference);
> + } else if (invoker == null && !metadata.has_argument (ArgumentType.VFUNC_NAME)) {
> s.set_attribute ("NoWrapper", true, s.source_reference);
> - } if (current.girdata["name"] != name) {
> + }
> + if (current.girdata["name"] != name) {
> m.set_attribute_string ("CCode", "vfunc_name", current.girdata["name"]);
> }
> } else if (symbol_type == "function") {
> @@ -3482,7 +3509,11 @@ public class Vala.GirParser : CodeVisitor {
> bool require_copy_free = false;
> if (current.new_symbol) {
> cl = new Class (current.name, current.source_reference);
> - cl.is_compact = true;
> + if (metadata.has_argument (ArgumentType.COMPACT)) {
> + cl.is_compact = metadata.get_bool (ArgumentType.COMPACT);
> + } else {
> + cl.is_compact = true;
> + }
> current.symbol = cl;
> } else {
> cl = (Class) current.symbol;
> diff --git a/vala/valaobjectcreationexpression.vala b/vala/valaobjectcreationexpression.vala
> index ea9565755..321058ae6 100644
> --- a/vala/valaobjectcreationexpression.vala
> +++ b/vala/valaobjectcreationexpression.vala
> @@ -256,14 +256,9 @@ public class Vala.ObjectCreationExpression : Expression {
> value_type = type_reference.copy ();
> value_type.value_owned = true;
>
> - int given_num_type_args = type_reference.get_type_arguments ().size;
> - int expected_num_type_args = 0;
> -
> if (type is Class) {
> var cl = (Class) type;
>
> - expected_num_type_args = cl.get_type_parameters ().size;
> -
> if (struct_creation) {
> error = true;
> Report.error (source_reference, "syntax error, use `new' to create new objects");
> @@ -320,8 +315,6 @@ public class Vala.ObjectCreationExpression : Expression {
> } else if (type is Struct) {
> var st = (Struct) type;
>
> - expected_num_type_args = st.get_type_parameters ().size;
> -
> if (!struct_creation && !context.deprecated) {
> Report.warning (source_reference, "deprecated syntax, don't use `new' to initialize structs");
> }
> @@ -337,13 +330,9 @@ public class Vala.ObjectCreationExpression : Expression {
> }
> }
>
> - if (expected_num_type_args > given_num_type_args) {
> - error = true;
> - Report.error (source_reference, "too few type arguments");
> - return false;
> - } else if (expected_num_type_args < given_num_type_args) {
> + // check whether there is the expected amount of type-arguments
> + if (!type_reference.check_type_arguments (context)) {
> error = true;
> - Report.error (source_reference, "too many type arguments");
> return false;
> }
>
> diff --git a/vala/valaobjecttype.vala b/vala/valaobjecttype.vala
> index 53101926c..8e08ade76 100644
> --- a/vala/valaobjecttype.vala
> +++ b/vala/valaobjecttype.vala
> @@ -103,21 +103,9 @@ public class Vala.ObjectType : ReferenceType {
> return false;
> }
>
> - int n_type_args = get_type_arguments ().size;
> - if (n_type_args > 0 && n_type_args < object_type_symbol.get_type_parameters ().size) {
> - error = true;
> - Report.error (source_reference, "too few type arguments");
> + // check whether there is the expected amount of type-arguments
> + if (!check_type_arguments (context, true)) {
> return false;
> - } else if (n_type_args > 0 && n_type_args > object_type_symbol.get_type_parameters ().size) {
> - error = true;
> - Report.error (source_reference, "too many type arguments");
> - return false;
> - }
> -
> - foreach (DataType type in get_type_arguments ()) {
> - if (!type.check (context)) {
> - return false;
> - }
> }
>
> return true;
> diff --git a/vala/valasignal.vala b/vala/valasignal.vala
> index 392b31489..c63542617 100644
> --- a/vala/valasignal.vala
> +++ b/vala/valasignal.vala
> @@ -122,7 +122,7 @@ public class Vala.Signal : Symbol, Callable {
> actual_param.variable_type = actual_param.variable_type.get_actual_type (sender_type, null, node_reference);
> generated_delegate.add_parameter (actual_param);
>
> - if (actual_param.variable_type is GenericType) {
> + if (actual_param.variable_type.is_generic ()) {
> is_generic = true;
> }
> }
> @@ -136,9 +136,8 @@ public class Vala.Signal : Symbol, Callable {
> // parameter types must refer to the delegate type parameters
> // instead of to the class type parameters
> foreach (var param in generated_delegate.get_parameters ()) {
> - unowned GenericType? generic_type = param.variable_type as GenericType;
> - if (generic_type != null) {
> - generic_type.type_parameter = generated_delegate.get_type_parameters ().get (generated_delegate.get_type_parameter_index (generic_type.type_parameter.name));
> + foreach (var type_param in generated_delegate.get_type_parameters ()) {
> + param.variable_type.replace_type_parameter (cl.get_type_parameters ().get (cl.get_type_parameter_index (type_param.name)), type_param);
> }
> }
> }
> diff --git a/vapi/Makefile.am b/vapi/Makefile.am
> index 5136d5812..854ba8642 100644
> --- a/vapi/Makefile.am
> +++ b/vapi/Makefile.am
> @@ -584,7 +584,7 @@ gtk+-3.0:
> $(GENVAPI) --library $(srcdir)/gtk+-3.0 --pkg atk --pkg gdk-3.0 --pkg gdk-pixbuf-2.0 --pkg gio-2.0 --pkg pango --pkg cairo --metadatadir $(METADATADIR) $(METADATADIR)/Gtk-3.0-custom.vala $(GIRDIR)/Gtk-3.0.gir
>
> gtk4:
> - $(GENVAPI) --library $(srcdir)/gtk4 --pkg cairo --pkg gdk-pixbuf-2.0 --pkg gio-2.0 --pkg graphene-gobject-1.0 --pkg pango --pkg x11 \
> + $(GENVAPI) --library $(srcdir)/gtk4 --pkg cairo --pkg gdk-pixbuf-2.0 --pkg gio-2.0 --pkg graphene-gobject-1.0 --pkg pango --pkg pangocairo --pkg x11 \
> --metadatadir $(METADATADIR) \
> $(METADATADIR)/GdkWayland-4.0-custom.vala $(GIRDIR)/GdkWayland-4.0.gir \
> $(METADATADIR)/GdkX11-4.0-custom.vala $(GIRDIR)/GdkX11-4.0.gir \
> @@ -599,7 +599,9 @@ gtk+-unix-print-3.0:
> $(GENVAPI) --library $(srcdir)/gtk+-unix-print-3.0 $(PACKAGESDIR)/gtk+-unix-print-3.0/gtk+-unix-print-3.0-custom.vala $(PACKAGESDIR)/gtk+-unix-print-3.0/gtk+-unix-print-3.0.gi
>
> gtk4-unix-print:
> - $(GENVAPI) --library $(srcdir)/gtk4-unix-print $(PACKAGESDIR)/gtk4-unix-print/gtk4-unix-print-custom.vala $(PACKAGESDIR)/gtk4-unix-print/gtk4-unix-print.gi
> + ln -s $(GIRDIR)/Gtk-4.0.gir GtkUnixPrint-4.0.gir; \
> + $(GENVAPI) --library $(srcdir)/gtk4-unix-print --pkg gtk4 --pkg pangocairo --metadatadir $(METADATADIR) $(METADATADIR)/GtkUnixPrint-4.0-custom.vala GtkUnixPrint-4.0.gir; \
> + rm -f GtkUnixPrint-4.0.gir
>
> gtksourceview-2.0:
> $(GENVAPI) --library $(srcdir)/gtksourceview-2.0 $(PACKAGESDIR)/gtksourceview-2.0/gtksourceview-2.0.gi
> diff --git a/vapi/gio-2.0.vapi b/vapi/gio-2.0.vapi
> index d9aeb4189..f9bdad9ca 100644
> --- a/vapi/gio-2.0.vapi
> +++ b/vapi/gio-2.0.vapi
> @@ -1682,7 +1682,7 @@ namespace GLib {
> [Version (since = "2.64")]
> public bool find (GLib.Object item, out uint position);
> [Version (since = "2.64")]
> - public bool find_with_equal_func (GLib.Object item, GLib.EqualFunc equal_func, out uint position);
> + public bool find_with_equal_func (GLib.Object item, GLib.EqualFunc<GLib.Object> equal_func, out uint position);
> [Version (since = "2.44")]
> public void insert (uint position, GLib.Object item);
> [Version (since = "2.44")]
> @@ -2284,10 +2284,10 @@ namespace GLib {
> public void changed (string key, void* origin_tag);
> [CCode (cheader_filename = "gio/gsettingsbackend.h", feature_test_macro = "G_SETTINGS_ENABLE_BACKEND")]
> [Version (since = "2.26")]
> - public void changed_tree (GLib.Tree tree, void* origin_tag);
> + public void changed_tree ([CCode (type = "GTree*")] GLib.Tree<string,GLib.Variant> tree, void* origin_tag);
> [CCode (cheader_filename = "gio/gsettingsbackend.h", feature_test_macro = "G_SETTINGS_ENABLE_BACKEND")]
> [Version (since = "2.26")]
> - public static void flatten_tree (GLib.Tree tree, out string path, [CCode (array_length = false, array_null_terminated = true)] out (unowned string)[] keys, [CCode (array_length = false, array_null_terminated = true)] out (unowned GLib.Variant)[] values);
> + public static void flatten_tree ([CCode (type = "GTree*")] GLib.Tree<string,GLib.Variant> tree, out string path, [CCode (array_length = false, array_null_terminated = true)] out (unowned string)[] keys, [CCode (array_length = false, array_null_terminated = true)] out (unowned GLib.Variant)[] values);
> [CCode (cheader_filename = "gio/gsettingsbackend.h", feature_test_macro = "G_SETTINGS_ENABLE_BACKEND")]
> [Version (since = "2.28")]
> public static GLib.SettingsBackend get_default ();
> @@ -2337,7 +2337,7 @@ namespace GLib {
> public virtual bool write (string key, GLib.Variant value, void* origin_tag);
> [CCode (cheader_filename = "gio/gsettingsbackend.h", feature_test_macro = "G_SETTINGS_ENABLE_BACKEND")]
> [NoWrapper]
> - public virtual bool write_tree (GLib.Tree tree, void* origin_tag);
> + public virtual bool write_tree ([CCode (type = "GTree*")] GLib.Tree<string,GLib.Variant> tree, void* origin_tag);
> }
> [CCode (cheader_filename = "gio/gio.h", ref_function = "g_settings_schema_ref", type_id = "g_settings_schema_get_type ()", unref_function = "g_settings_schema_unref")]
> [Compact]
> @@ -3432,14 +3432,19 @@ namespace GLib {
> public bool condition_wait (GLib.IOCondition condition, int64 timeout, GLib.Cancellable? cancellable = null) throws GLib.Error;
> public GLib.Source create_source (GLib.IOCondition condition, GLib.Cancellable? cancellable = null);
> [CCode (vfunc_name = "condition_check")]
> + [NoWrapper]
> public virtual GLib.IOCondition datagram_condition_check (GLib.IOCondition condition);
> [CCode (vfunc_name = "condition_wait")]
> + [NoWrapper]
> public virtual bool datagram_condition_wait (GLib.IOCondition condition, int64 timeout, GLib.Cancellable? cancellable = null) throws GLib.Error;
> [CCode (vfunc_name = "create_source")]
> + [NoWrapper]
> public virtual GLib.Source datagram_create_source (GLib.IOCondition condition, GLib.Cancellable? cancellable = null);
> [CCode (vfunc_name = "receive_messages")]
> + [NoWrapper]
> public virtual int datagram_receive_messages ([CCode (array_length_cname = "num_messages", array_length_pos = 1.5, array_length_type = "guint")] GLib.InputMessage[] messages, int flags, int64 timeout, GLib.Cancellable? cancellable = null) throws GLib.Error;
> [CCode (vfunc_name = "send_messages")]
> + [NoWrapper]
> public virtual int datagram_send_messages ([CCode (array_length_cname = "num_messages", array_length_pos = 1.5, array_length_type = "guint")] GLib.OutputMessage[] messages, int flags, int64 timeout, GLib.Cancellable? cancellable = null) throws GLib.Error;
> public int receive_messages ([CCode (array_length_cname = "num_messages", array_length_pos = 1.5, array_length_type = "guint")] GLib.InputMessage[] messages, int flags, int64 timeout, GLib.Cancellable? cancellable = null) throws GLib.Error;
> public int send_messages ([CCode (array_length_cname = "num_messages", array_length_pos = 1.5, array_length_type = "guint")] GLib.OutputMessage[] messages, int flags, int64 timeout, GLib.Cancellable? cancellable = null) throws GLib.Error;
> @@ -3823,6 +3828,7 @@ namespace GLib {
> public abstract bool is_readable ();
> public ssize_t read_nonblocking ([CCode (array_length_cname = "count", array_length_pos = 1.5, array_length_type = "gsize")] uint8[] buffer, GLib.Cancellable? cancellable = null) throws GLib.Error;
> [CCode (vfunc_name = "read_nonblocking")]
> + [NoWrapper]
> public abstract ssize_t read_nonblocking_fn ([CCode (array_length_cname = "count", array_length_pos = 1.1, array_length_type = "gsize")] uint8[] buffer) throws GLib.Error;
> }
> [CCode (cheader_filename = "gio/gio.h", type_cname = "GPollableOutputStreamInterface", type_id = "g_pollable_output_stream_get_type ()")]
> @@ -3833,10 +3839,12 @@ namespace GLib {
> public abstract bool is_writable ();
> public ssize_t write_nonblocking ([CCode (array_length_cname = "count", array_length_pos = 1.5, array_length_type = "gsize")] uint8[] buffer, GLib.Cancellable? cancellable = null) throws GLib.Error;
> [CCode (vfunc_name = "write_nonblocking")]
> + [NoWrapper]
> public abstract ssize_t write_nonblocking_fn ([CCode (array_length_cname = "count", array_length_pos = 1.1, array_length_type = "gsize")] uint8[]? buffer) throws GLib.Error;
> [Version (since = "2.60")]
> public GLib.PollableReturn writev_nonblocking ([CCode (array_length_cname = "n_vectors", array_length_pos = 1.5, array_length_type = "gsize")] GLib.OutputVector[] vectors, out size_t bytes_written, GLib.Cancellable? cancellable = null) throws GLib.Error;
> [CCode (vfunc_name = "writev_nonblocking")]
> + [NoWrapper]
> [Version (since = "2.60")]
> public abstract GLib.PollableReturn writev_nonblocking_fn ([CCode (array_length_cname = "n_vectors", array_length_pos = 1.5, array_length_type = "gsize")] GLib.OutputVector[] vectors, out size_t bytes_written) throws GLib.Error;
> }
> @@ -4906,9 +4914,9 @@ namespace GLib {
> public delegate GLib.Variant SettingsBindSetMappingShared (GLib.Value value, GLib.VariantType expected_type, void* user_data);
> [CCode (cheader_filename = "gio/gio.h", instance_pos = 2.9)]
> public delegate bool SettingsGetMapping (GLib.Variant value, out void* result);
> - [CCode (cheader_filename = "gio/gio.h")]
> + [CCode (cheader_filename = "gio/gio.h", has_typedef = false)]
> public delegate void SimpleActionActivateCallback (GLib.SimpleAction action, GLib.Variant? parameter);
> - [CCode (cheader_filename = "gio/gio.h")]
> + [CCode (cheader_filename = "gio/gio.h", has_typedef = false)]
> public delegate void SimpleActionChangeStateCallback (GLib.SimpleAction action, GLib.Variant value);
> [CCode (cheader_filename = "gio/gio.h", has_target = false)]
> public delegate void SimpleAsyncThreadFunc (GLib.SimpleAsyncResult res, GLib.Object object, GLib.Cancellable? cancellable = null);
> diff --git a/vapi/glib-2.0.vapi b/vapi/glib-2.0.vapi
> index 39a6b0b88..71df44b9d 100644
> --- a/vapi/glib-2.0.vapi
> +++ b/vapi/glib-2.0.vapi
> @@ -2165,7 +2165,7 @@ namespace GLib {
> public static void yield ();
> public static void exit (T retval);
> [Version (deprecated_since = "2.32", since = "2.10")]
> - public static void @foreach (Func<Thread> thread_func);
> + public static void @foreach (Func<Thread<T>> thread_func);
>
> [CCode (cname = "g_usleep")]
> public static void usleep (ulong microseconds);
> @@ -2346,10 +2346,10 @@ namespace GLib {
> [CCode (cname = "g_thread_pool_free")]
> void _free (bool immediate, bool wait);
> [CCode (cname = "vala__g_thread_pool_free_wrapper")]
> - public static void free (owned ThreadPool? pool, bool immediate, bool wait) {
> - ThreadPool* ptr = (owned) pool;
> + public static void free (owned ThreadPool<T>? pool, bool immediate, bool wait) {
> + ThreadPool<T>* ptr = (owned) pool;
> if (ptr != null) {
> - ((ThreadPool)ptr)._free (immediate, wait);
> + ((ThreadPool<T>)ptr)._free (immediate, wait);
> }
> }
> public static void set_max_unused_threads (int max_threads);
> @@ -4864,7 +4864,7 @@ namespace GLib {
> public uint get_length ();
> [Version (since = "2.4")]
> public void reverse ();
> - public Queue copy ();
> + public Queue<G> copy ();
> [Version (since = "2.4")]
> public unowned List<G> find (G data);
> [Version (since = "2.4")]
> @@ -5392,8 +5392,8 @@ namespace GLib {
>
> /* N-ary Trees */
>
> - public delegate bool NodeTraverseFunc (Node node);
> - public delegate void NodeForeachFunc (Node node);
> + public delegate bool NodeTraverseFunc<G> (Node<G> node);
> + public delegate void NodeForeachFunc<G> (Node<G> node);
>
> [CCode (cprefix = "G_TRAVERSE_")]
> public enum TraverseFlags {
> @@ -5421,8 +5421,8 @@ namespace GLib {
> public unowned Node<G> append_data (owned G data);
> public unowned Node<G> prepend_data (owned G data);
> public void reverse_children ();
> - public void traverse (TraverseType order, TraverseFlags flags, int max_depth, NodeTraverseFunc func);
> - public void children_foreach (TraverseFlags flags, NodeForeachFunc func);
> + public void traverse (TraverseType order, TraverseFlags flags, int max_depth, NodeTraverseFunc<G> func);
> + public void children_foreach (TraverseFlags flags, NodeForeachFunc<G> func);
> public unowned Node<G> get_root ();
> public unowned Node<G> find (TraverseType order, TraverseFlags flags, G data);
> public unowned Node<G> find_child (TraverseFlags flags, G data);
> @@ -5458,10 +5458,10 @@ namespace GLib {
> }
>
> public G data;
> - public Node next;
> - public Node prev;
> - public Node parent;
> - public Node children;
> + public Node<G> next;
> + public Node<G> prev;
> + public Node<G> parent;
> + public Node<G> children;
> }
>
> /* Quarks */
> diff --git a/vapi/gnet-2.0.vapi b/vapi/gnet-2.0.vapi
> index b15338cbf..9bafd317e 100644
> --- a/vapi/gnet-2.0.vapi
> +++ b/vapi/gnet-2.0.vapi
> @@ -115,17 +115,17 @@ namespace GNet {
> }
>
> public class IOChannel {
> - [CCode(name = "gnet_io_channel_writen")]
> + [CCode(cname = "gnet_io_channel_writen")]
> public static GLib.IOError writen(GLib.IOChannel chan, string buf,
> size_t len, out size_t bytes_written);
>
> - [CCode(name = "gnet_io_channel_readn")]
> + [CCode(cname = "gnet_io_channel_readn")]
> public static GLib.IOError readn(GLib.IOChannel chan, string buf,
> size_t len, out size_t bytes_read);
> - [CCode(name = "gnet_io_channel_readline")]
> + [CCode(cname = "gnet_io_channel_readline")]
> public static GLib.IOError readline(GLib.IOChannel chan, string buf,
> size_t len, out size_t bytes_read);
> - [CCode(name = "gnet_io_channel_readline_strdup")]
> + [CCode(cname = "gnet_io_channel_readline_strdup")]
> public static GLib.IOError readline_strdup(GLib.IOChannel chan,
> out string buf,
> size_t bytes_read);
> diff --git a/vapi/gnutls.vapi b/vapi/gnutls.vapi
> index a7299af33..9369792f4 100644
> --- a/vapi/gnutls.vapi
> +++ b/vapi/gnutls.vapi
> @@ -904,9 +904,9 @@ namespace GnuTLS
> public struct Ava
> {
> [CCode (cname = "oid.data", array_length_cname = "oid.size")]
> - uint8[] oid;
> + unowned uint8[] oid;
> [CCode (cname = "value.data", array_length_cname = "value.size")]
> - uint8[] value;
> + unowned uint8[] value;
> ulong value_tag;
> }
>
> @@ -1711,13 +1711,13 @@ namespace GnuTLS
> {
> public CertificateType type;
> [CCode (cname = "cert.x509", array_length_cname = "ncerts", array_length_type = "unsigned int")]
> - public X509.Certificate[] cert_x509;
> + public unowned X509.Certificate[] cert_x509;
> [CCode (cname = "cert.pgp")]
> - public OpenPGP.Certificate cert_pgp;
> + public unowned OpenPGP.Certificate cert_pgp;
> [CCode (cname = "key.x509")]
> - public X509.PrivateKey key_x509;
> + public unowned X509.PrivateKey key_x509;
> [CCode (cname = "key.pgp")]
> - public OpenPGP.PrivateKey key_pgp;
> + public unowned OpenPGP.PrivateKey key_pgp;
> public uint deinit_all;
> }
>
> diff --git a/vapi/gsl.vapi b/vapi/gsl.vapi
> index 2631e5a5f..1b328af9f 100644
> --- a/vapi/gsl.vapi
> +++ b/vapi/gsl.vapi
> @@ -66,10 +66,6 @@ namespace Gsl
> MASS_NEUTRON,
> RYDBERG,
> BOLTZMANN,
> - BOHR_MAGNETON,
> - NUCLEAR_MAGNETON,
> - ELECTRON_MAGNETIC_MOMENT,
> - PROTON_MAGNETIC_MOMENT,
> MOLAR_GAS,
> STANDARD_GAS_VOLUME,
> MINUTE,
> @@ -128,9 +124,6 @@ namespace Gsl
> PSI,
> POISE,
> STOKES,
> - FARADAY,
> - ELECTRON_CHARGE,
> - GAUSS,
> STILB,
> LUMEN,
> LUX,
> @@ -169,10 +162,6 @@ namespace Gsl
> MASS_NEUTRON,
> RYDBERG,
> BOLTZMANN,
> - BOHR_MAGNETON,
> - NUCLEAR_MAGNETON,
> - ELECTRON_MAGNETIC_MOMENT,
> - PROTON_MAGNETIC_MOMENT,
> MOLAR_GAS,
> STANDARD_GAS_VOLUME,
> MINUTE,
> @@ -231,9 +220,6 @@ namespace Gsl
> PSI,
> POISE,
> STOKES,
> - FARADAY,
> - ELECTRON_CHARGE,
> - GAUSS,
> STILB,
> LUMEN,
> LUX,
> @@ -251,7 +237,13 @@ namespace Gsl
> JOULE,
> ERG,
> STEFAN_BOLTZMANN_CONSTANT,
> - THOMSON_CROSS_SECTION
> + THOMSON_CROSS_SECTION,
> + BOHR_MAGNETON,
> + NUCLEAR_MAGNETON,
> + ELECTRON_MAGNETIC_MOMENT,
> + PROTON_MAGNETIC_MOMENT,
> + FARADAY,
> + ELECTRON_CHARGE
> }
>
> [CCode (cprefix="GSL_CONST_MKS_", cheader_filename="gsl/gsl_const_mks.h", has_type_id = false)]
> @@ -272,10 +264,6 @@ namespace Gsl
> MASS_NEUTRON,
> RYDBERG,
> BOLTZMANN,
> - BOHR_MAGNETON,
> - NUCLEAR_MAGNETON,
> - ELECTRON_MAGNETIC_MOMENT,
> - PROTON_MAGNETIC_MOMENT,
> MOLAR_GAS,
> STANDARD_GAS_VOLUME,
> MINUTE,
> @@ -334,9 +322,6 @@ namespace Gsl
> PSI,
> POISE,
> STOKES,
> - FARADAY,
> - ELECTRON_CHARGE,
> - GAUSS,
> STILB,
> LUMEN,
> LUX,
> @@ -353,11 +338,18 @@ namespace Gsl
> DYNE,
> JOULE,
> ERG,
> + BOHR_MAGNETON,
> + NUCLEAR_MAGNETON,
> + ELECTRON_MAGNETIC_MOMENT,
> + PROTON_MAGNETIC_MOMENT,
> STEFAN_BOLTZMANN_CONSTANT,
> THOMSON_CROSS_SECTION,
> + FARADAY,
> + ELECTRON_CHARGE,
> VACUUM_PERMITTIVITY,
> VACUUM_PERMEABILITY,
> - DEBYE
> + DEBYE,
> + GAUSS
> }
>
> [CCode (cprefix="GSL_CONST_MKSA_", cheader_filename="gsl/gsl_const_mksa.h", has_type_id = false)]
> @@ -378,10 +370,6 @@ namespace Gsl
> MASS_NEUTRON,
> RYDBERG,
> BOLTZMANN,
> - BOHR_MAGNETON,
> - NUCLEAR_MAGNETON,
> - ELECTRON_MAGNETIC_MOMENT,
> - PROTON_MAGNETIC_MOMENT,
> MOLAR_GAS,
> STANDARD_GAS_VOLUME,
> MINUTE,
> @@ -440,9 +428,6 @@ namespace Gsl
> PSI,
> POISE,
> STOKES,
> - FARADAY,
> - ELECTRON_CHARGE,
> - GAUSS,
> STILB,
> LUMEN,
> LUX,
> @@ -461,9 +446,16 @@ namespace Gsl
> ERG,
> STEFAN_BOLTZMANN_CONSTANT,
> THOMSON_CROSS_SECTION,
> + BOHR_MAGNETON,
> + NUCLEAR_MAGNETON,
> + ELECTRON_MAGNETIC_MOMENT,
> + PROTON_MAGNETIC_MOMENT,
> + FARADAY,
> + ELECTRON_CHARGE,
> VACUUM_PERMITTIVITY,
> VACUUM_PERMEABILITY,
> - DEBYE
> + DEBYE,
> + GAUSS
> }
>
>
> @@ -518,9 +510,9 @@ namespace Gsl
> APPROX
> }
>
> - [CCode (has_target = false)]
> + [CCode (cname = "gsl_error_handler_t*", has_target = false)]
> public delegate void ErrorHandler (string reason, string file, int line, int errno);
> - [CCode (has_target = false)]
> + [CCode (cname = "gsl_stream_handler_t*", has_target = false)]
> public delegate void StreamHandler (string label, string file, int line, string reason);
>
> [CCode (lower_case_cprefix="gsl_", cheader_filename="gsl/gsl_errno.h")]
> @@ -568,9 +560,9 @@ namespace Gsl
>
> /* The isnan, isinf and finite are define in the double type. The elementary functions are in GLib.Math */
>
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate double _Function (double x, void* params);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate void _FunctionFdf (double x, void* params, out double f, out double df);
>
> [SimpleType]
> @@ -910,7 +902,7 @@ namespace Gsl
> public static int CL_array (double lmin, int kmax, double eta, [CCode (array_length = false)] double[] cl);
> }
>
> - [CCode (lower_case_cprefix="gsl_sf_coupling_", cheader_filename="gsl/gsl_coupling.h")]
> + [CCode (lower_case_cprefix="gsl_sf_coupling_", cheader_filename="gsl/gsl_sf_coupling.h")]
> namespace Coupling
> {
> public static double 3j (int two_ja, int two_jb, int two_jc, int two_ma, int two_mb, int two_mc);
> @@ -990,8 +982,8 @@ namespace Gsl
> public static int E_e (double phi, double k, Mode mode, out Result result);
> public static double P (double phi, double k, double n, Mode mode);
> public static int P_e (double phi, double k, double n, Mode mode, out Result result);
> - public static double D (double phi, double k, double n, Mode mode);
> - public static int D_e (double phi, double k, double n, Mode mode, out Result result);
> + public static double D (double phi, double k, Mode mode);
> + public static int D_e (double phi, double k, Mode mode, out Result result);
>
> public static double RC (double x, double y, Mode mode);
> public static int RC_e (double x, double y, Mode mode, out Result result);
> @@ -1003,7 +995,7 @@ namespace Gsl
> public static int RJ_e (double x, double y, double z, double p, Mode mode, out Result result);
> }
>
> - [CCode (lower_case_cprefix="gsl_sf_elljac_", cheader_filename="gsl/gsl_elljac.h")]
> + [CCode (lower_case_cprefix="gsl_sf_elljac_", cheader_filename="gsl/gsl_sf_elljac.h")]
> namespace EllJac
> {
> public static int e (double u, double m, out double sn, out double cn, out double dn);
> @@ -1037,8 +1029,8 @@ namespace Gsl
> public static int exp_mult_e10_e (double x, double y, out ResultE10 result);
> public static int exp_err_e (double x, double dx, out Result result);
> public static int exp_err_e10_e (double x, double dx, out ResultE10 result);
> - public static int exp_mul_err_e (double x, double dx, double y, double dy, out Result result);
> - public static int exp_mul_err_e10_e (double x, double dx, double y, double dy, out ResultE10 result);
> + public static int exp_mult_err_e (double x, double dx, double y, double dy, out Result result);
> + public static int exp_mult_err_e10_e (double x, double dx, double y, double dy, out ResultE10 result);
> public static double expm1 (double x);
> public static int expm1_e (double x, out Result result);
> public static double exprel (double x);
> @@ -1060,8 +1052,8 @@ namespace Gsl
> public static int expint_En_e (int n, double x, out Result result);
> public static double expint_Ei (double x);
> public static int expint_Ei_e (double x, out Result result);
> - public static double expint_Ei_3 (double x);
> - public static int expint_Ei_3_e (double x, out Result result);
> + public static double expint_3 (double x);
> + public static int expint_3_e (double x, out Result result);
> public static double Shi (double x);
> public static int Shi_e (double x, out Result result);
> public static double Chi (double x);
> @@ -1074,7 +1066,7 @@ namespace Gsl
> public static double atanint_e (double x, out Result result);
> }
>
> - [CCode (lower_case_cprefix="gsl_sf_fermi_dirac_", cheader_filename="gsl/gsl_sf_fermi_dirach.h")]
> + [CCode (lower_case_cprefix="gsl_sf_fermi_dirac_", cheader_filename="gsl/gsl_sf_fermi_dirac.h")]
> namespace FermiDirac
> {
> public static double m1 (double x);
> @@ -1174,10 +1166,10 @@ namespace Gsl
> [CCode (cname="gsl_sf_gegenpoly_3_e")]
> public static double C3_e (double lambda, double x, out Result result);
> [CCode (cname="gsl_sf_gegenpoly_n")]
> - public static double Cn (double lambda, double x);
> + public static double Cn (int n, double lambda, double x);
> [CCode (cname="gsl_sf_gegenpoly_n_e")]
> - public static double Cn_e (double lambda, double x, out Result result);
> - public static int array (int nmax, double lambda, double x, out Result result);
> + public static double Cn_e (int n, double lambda, double x, out Result result);
> + public static int array (int nmax, double lambda, double x, [CCode (array_length = false)] double[] result_array);
> }
>
> [CCode (lower_case_cprefix="gsl_sf_hyperg_", cheader_filename="gsl/gsl_sf_hyperg.h")]
> @@ -1260,11 +1252,11 @@ namespace Gsl
> public static double Plm (int l, int m, double x);
> public static int Plm_e (int l, int m, double x, out Result result);
> public static int Plm_array (int lmax, int m, double x, [CCode (array_length = false)] double[] result_array);
> - public static int Plm_deriv_array (int lmax, int m, double x, double[] result_array, [CCode (array_length = false)] double[] result_deriv_array);
> + public static int Plm_deriv_array (int lmax, int m, double x, [CCode (array_length = false)] double[] result_array, [CCode (array_length = false)] double[] result_deriv_array);
> public static double sphPlm (int l, int m, double x);
> public static int sphPlm_e (int l, int m, double x, out Result result);
> public static int sphPlm_array (int lmax, int m, double x, [CCode (array_length = false)] double[] result_array);
> - public static int sphPlm_deriv_array (int lmax, int m, double x, double[] result_array, [CCode (array_length = false)] double[] result_deriv_array);
> + public static int sphPlm_deriv_array (int lmax, int m, double x, [CCode (array_length = false)] double[] result_array, [CCode (array_length = false)] double[] result_deriv_array);
> public static int array_size (int lmax, int m);
>
> [CCode (cname="gsl_sf_conicalP_half")]
> @@ -1338,21 +1330,21 @@ namespace Gsl
>
> public static int a_array (int order_min, int order_max, double qq, MathieuWorkspace work, [CCode (array_length = false)] double[] result_array);
> public static int b_array (int order_min, int order_max, double qq, MathieuWorkspace work, [CCode (array_length = false)] double[] result_array);
> - public static int a (int order, double qq, out Result result);
> - public static int b (int order, double qq, out Result result);
> + public static int a (int order, double qq);
> + public static int b (int order, double qq);
> public static int a_coeff (int order, double qq, double aa, [CCode (array_length = false)] double[] coeff);
> public static int b_coeff (int order, double qq, double aa, [CCode (array_length = false)] double[] coeff);
>
> [CCode (cname="gsl_sf_mathieu_alloc")]
> public MathieuWorkspace (size_t nn, double qq);
>
> - public static int ce (int order, double qq, double zz, out Result result);
> - public static int se (int order, double qq, double zz, out Result result);
> + public static int ce (int order, double qq, double zz);
> + public static int se (int order, double qq, double zz);
> public static int ce_array (int nmin, int nmax, double qq, double zz, MathieuWorkspace work, [CCode (array_length = false)] double[] result_array);
> public static int se_array (int nmin, int nmax, double qq, double zz, MathieuWorkspace work, [CCode (array_length = false)] double[] result_array);
>
> - public static int Mc (int kind, int order, double qq, double zz, out Result result);
> - public static int Ms (int kind, int order, double qq, double zz, out Result result);
> + public static int Mc (int kind, int order, double qq, double zz);
> + public static int Ms (int kind, int order, double qq, double zz);
> public static int Mc_array (int kind, int nmin, int nmax, double qq, double zz, MathieuWorkspace work, [CCode (array_length = false)] double[] result_array);
> public static int Ms_array (int kind, int nmin, int nmax, double qq, double zz, MathieuWorkspace work, [CCode (array_length = false)] double[] result_array);
> }
> @@ -1380,7 +1372,7 @@ namespace Gsl
> public static int psi_1_e (double x, out Result result);
>
> public static double psi_n (int n, double x);
> - public static int psi_e_n (int n, double x, out Result result);
> + public static int psi_n_e (int n, double x, out Result result);
> }
>
> [CCode (lower_case_cprefix="gsl_sf_", cheader_filename="gsl/gsl_sf_synchrotron.h")]
> @@ -1619,8 +1611,8 @@ namespace Gsl
>
> public VectorComplexView subvector (size_t i, size_t n);
> public VectorComplexView subvector_with_stride (size_t i, size_t stride, size_t n);
> - public VectorView complex_real ();
> - public VectorView complex_imag ();
> + public VectorView const_real ();
> + public VectorView const_imag ();
>
> public int memcpy (VectorComplex src);
> public int swap (VectorComplex w);
> @@ -1632,15 +1624,8 @@ namespace Gsl
> public int sub (VectorComplex b);
> public int mul (VectorComplex b);
> public int div (VectorComplex b);
> - public int scale (double x);
> - public int add_constant (double x);
> -
> - public double max ();
> - public double min ();
> - public void minmax (out double min_out, out double max_out);
> - public size_t max_index ();
> - public size_t min_index ();
> - public void minmax_index (out size_t imin, out size_t imax);
> + public int scale (Complex x);
> + public int add_constant (Complex x);
>
> public bool isnull ();
> public bool ispos ();
> @@ -1657,7 +1642,7 @@ namespace Gsl
> public static MatrixView array ([CCode (array_length = false)] double[] v, size_t n1, size_t n2);
> public static MatrixView array_with_tda ([CCode (array_length = false)] double[] v, size_t n1, size_t n2, size_t tda);
> public static MatrixView vector (Vector v, size_t n1, size_t n2);
> - public static MatrixView vectr_with_tda (Vector v, size_t n1, size_t n2, size_t tda);
> + public static MatrixView vector_with_tda (Vector v, size_t n1, size_t n2, size_t tda);
> }
>
> [Compact]
> @@ -1680,7 +1665,9 @@ namespace Gsl
> [CCode (cname="gsl_matrix_alloc_from_matrix")]
> public Matrix.from_matrix (Matrix m, size_t k1, size_t k2, size_t n1, size_t n2);
>
> + [CCode (cname="gsl_vector_alloc_row_from_matrix")]
> public Vector alloc_row_from_matrix (size_t i);
> + [CCode (cname="gsl_vector_alloc_col_from_matrix")]
> public Vector alloc_col_from_matrix (size_t j);
>
> public double @get (size_t i, size_t j);
> @@ -1752,7 +1739,7 @@ namespace Gsl
> public static MatrixComplexView array ([CCode (array_length = false)] double[] v, size_t n1, size_t n2);
> public static MatrixComplexView array_with_tda ([CCode (array_length = false)] double[] v, size_t n1, size_t n2, size_t tda);
> public static MatrixComplexView vector (VectorComplex v, size_t n1, size_t n2);
> - public static MatrixComplexView vectr_with_tda (VectorComplex v, size_t n1, size_t n2, size_t tda);
> + public static MatrixComplexView vector_with_tda (VectorComplex v, size_t n1, size_t n2, size_t tda);
> }
>
> [Compact]
> @@ -1775,14 +1762,16 @@ namespace Gsl
> [CCode (cname="gsl_matrix_complex_alloc_from_matrix")]
> public MatrixComplex.from_matrix (MatrixComplex m, size_t k1, size_t k2, size_t n1, size_t n2);
>
> + [CCode (cname="gsl_vector_complex_alloc_row_from_matrix")]
> public VectorComplex alloc_row_from_matrix (size_t i);
> + [CCode (cname="gsl_vector_complex_alloc_col_from_matrix")]
> public VectorComplex alloc_col_from_matrix (size_t j);
>
> - public double @get (size_t i, size_t j);
> - public void @set (size_t i, size_t j, double x);
> - public double* ptr (size_t i, size_t j);
> + public Complex @get (size_t i, size_t j);
> + public void @set (size_t i, size_t j, Complex x);
> + public Complex* ptr (size_t i, size_t j);
>
> - public void set_all (double x);
> + public void set_all (Complex x);
> public void set_zero ();
> public void set_identity ();
>
> @@ -1821,16 +1810,9 @@ namespace Gsl
> public int sub (MatrixComplex b);
> public int mul_elements (MatrixComplex b);
> public int div_elements (MatrixComplex b);
> - public int scale (double x);
> - public int add_constant (double x);
> - public int add_diagonal (double x);
> -
> - public double max ();
> - public double min ();
> - public void minmax (out double min_out, out double max_out);
> - public void max_index (out size_t imax, out size_t jmax);
> - public void min_index (out size_t imin, out size_t jmin);
> - public void minmax_index (out size_t imin, out size_t jmin, out size_t imax, out size_t jmax);
> + public int scale (Complex x);
> + public int add_constant (Complex x);
> + public int add_diagonal (Complex x);
>
> public bool isnull ();
> public bool ispos ();
> @@ -1913,9 +1895,9 @@ namespace Gsl
> namespace PermuteVectorComplex
> {
> [CCode (cname="gsl_permute_vector_complex")]
> - public static int permute (Permutation p, Vector v);
> + public static int permute (Permutation p, VectorComplex v);
> [CCode (cname="gsl_permute_vector_complex_inverse")]
> - public static int permute_inverse (Permutation p, Vector v);
> + public static int permute_inverse (Permutation p, VectorComplex v);
> }
>
>
> @@ -2001,7 +1983,7 @@ namespace Gsl
> public static int LU_refine (Matrix A, Matrix LU, Permutation p, Vector b, Vector x, Vector residual);
> public static int complex_LU_refine (MatrixComplex A, MatrixComplex LU, Permutation p, VectorComplex b, VectorComplex x, VectorComplex residual);
> public static int LU_invert (Matrix LU, Permutation p, Matrix inverse);
> - public static int complex_LU_invert (MatrixComplex LU, Permutation p, Matrix inverse);
> + public static int complex_LU_invert (MatrixComplex LU, Permutation p, MatrixComplex inverse);
> public static double LU_det (Matrix LU, int signum);
> public static Complex complex_LU_det (MatrixComplex LU, int signum);
> public static double LU_lndet (Matrix LU);
> @@ -2065,7 +2047,7 @@ namespace Gsl
> public static int bidiag_unpack2 (Matrix A, Vector tau_U, Vector tau_V, Matrix V);
> public static int bidiag_unpack_B (Matrix A, Vector diag, Vector superdiag);
>
> - public static int householder_tansform (Vector v);
> + public static int householder_transform (Vector v);
> public static Complex complex_householder_transform (VectorComplex V);
> public static int householder_hm (double tau, Vector v, Matrix A);
> public static int complex_householder_hm (Complex tau, VectorComplex V, MatrixComplex A);
> @@ -2140,7 +2122,7 @@ namespace Gsl
> [CCode (cname="gsl_eigen_herm_alloc")]
> public EigenHermWorkspace (size_t n);
> [CCode (cname="gsl_eigen_herm", instance_pos=-1)]
> - public int init (MatrixComplex A, VectorComplex eval);
> + public int init (MatrixComplex A, Vector eval);
> }
>
> [Compact]
> @@ -2157,7 +2139,7 @@ namespace Gsl
> [CCode (cname="gsl_eigen_hermv_alloc")]
> public EigenHermvWorkspace (size_t n);
> [CCode (cname="gsl_eigen_hermv", instance_pos=-1)]
> - public int init (MatrixComplex A, VectorComplex eval, MatrixComplex evec);
> + public int init (MatrixComplex A, Vector eval, MatrixComplex evec);
> }
>
> [Compact]
> @@ -2322,7 +2304,7 @@ namespace Gsl
> /*
> * Fast Fourier Transforms (FFTs)
> */
> - [CCode (cname="gsl_fft_direction", cheader_filename="gsl/gsl_fft.h", has_type_id = false)]
> + [CCode (cname="gsl_fft_direction", cprefix = "gsl_fft_", cheader_filename="gsl/gsl_fft.h", has_type_id = false)]
> public enum FFTDirection
> {
> forward = -1,
> @@ -2336,11 +2318,12 @@ namespace Gsl
> public size_t n;
> public size_t nf;
> public size_t factor[64];
> - public Complex twiddle[64];
> - public Complex trig;
> + public Complex* twiddle[64];
> + public Complex* trig;
>
> [CCode (cname="gsl_fft_complex_wavetable_alloc")]
> public FFTComplexWavetable (size_t n);
> + [CCode (cname="gsl_fft_complex_memcpy")]
> public int memcpy (FFTComplexWavetable src);
> }
>
> @@ -2355,7 +2338,6 @@ namespace Gsl
> public FFTComplexWorkspace (size_t n);
> }
>
> - [Compact]
> [CCode (lower_case_cprefix="gsl_fft_complex_", cheader_filename="gsl/gsl_fft_complex.h")]
> namespace FFTComplex
> {
> @@ -2381,8 +2363,8 @@ namespace Gsl
> public size_t n;
> public size_t nf;
> public size_t factor[64];
> - public Complex twiddle[64];
> - public Complex trig;
> + public Complex* twiddle[64];
> + public Complex* trig;
>
> [CCode (cname="gsl_fft_real_wavetable_alloc")]
> public FFTRealWavetable (size_t n);
> @@ -2399,11 +2381,10 @@ namespace Gsl
> public FFTRealWorkspace (size_t n);
> }
>
> - [Compact]
> [CCode (lower_case_cprefix="gsl_fft_real_", cheader_filename="gsl/gsl_fft_real.h")]
> namespace FFTReal
> {
> - public static int radix2_forward ([CCode (array_length = false)] double[] data, size_t stride, size_t n);
> + public static int radix2_transform ([CCode (array_length = false)] double[] data, size_t stride, size_t n);
> public static int transform ([CCode (array_length = false)] double[] data, size_t stride, size_t n, FFTRealWavetable wavetable, FFTRealWorkspace work);
> public static int unpack ([CCode (array_length = false)] double[] real_coefficient, [CCode (array_length = false)] double[] complex_coeficient, size_t stride, size_t n);
> }
> @@ -2415,8 +2396,8 @@ namespace Gsl
> public size_t n;
> public size_t nf;
> public size_t factor[64];
> - public Complex twiddle[64];
> - public Complex trig;
> + public Complex* twiddle[64];
> + public Complex* trig;
>
> [CCode (cname="gsl_fft_halfcomplex_wavetable_alloc")]
> public FFTHalfcomplexWavetable (size_t n);
> @@ -2439,7 +2420,7 @@ namespace Gsl
> /*
> * Numerical Integration
> */
> - [CCode (cprefix="GSL_INTEG_", cheader_filename="gsl/gsl_integration.h", has_type_id = false)]
> + [CCode (cname = "enum gsl_integration_qawo_enum", cprefix="GSL_INTEG_", cheader_filename="gsl/gsl_integration.h", has_type_id = false)]
> public enum QAWO
> {
> COSINE,
> @@ -2523,7 +2504,7 @@ namespace Gsl
> public static void qk61 (Function* f, double a, double b, out double result, out double abserr, out double resabs, out double resasc);
> public static void qcheb (Function* f, double a, double b, out double cheb12, out double cheb24);
>
> - public static void qk (int n, [CCode (array_length = false)] double[] xgk, [CCode (array_length = false)] double[] wg, [CCode (array_length = false)] double[] wgk, [CCode (array_length = false)] double[] fv1, [CCode (array_length = false)] double[] fv2, Function* f, double a, double b, out double result, out double abserr, out double resabs, double resasc);
> + public static void qk (int n, [CCode (array_length = false)] double[] xgk, [CCode (array_length = false)] double[] wg, [CCode (array_length = false)] double[] wgk, [CCode (array_length = false)] double[] fv1, [CCode (array_length = false)] double[] fv2, Function* f, double a, double b, out double result, out double abserr, out double resabs, out double resasc);
> public static int qng (Function* f, double a, double b, double epsabs, double epsrel, out double result, out double abserr, out size_t neval);
> public static int qag (Function* f, double a, double b, double epsabs, double epsrel, size_t limit, int key, IntegrationWorkspace workspace, out double result, out double abserr);
> public static int qagi (Function* f, double epsabs, double epsrel, size_t limit, IntegrationWorkspace workspace, out double result, out double abserr);
> @@ -2541,18 +2522,18 @@ namespace Gsl
> /*
> * Random Number Generation
> */
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate void RNGSetState (void *state, ulong seed);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate ulong RNGGetState (void* state);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate double RNGGetDouble (void* state);
>
> [SimpleType]
> [CCode (cname="gsl_rng_type", cheader_filename="gsl/gsl_rng.h", has_type_id = false)]
> public struct RNGType
> {
> - public string name;
> + public unowned string name;
> public ulong max;
> public ulong min;
> public size_t size;
> @@ -2797,18 +2778,18 @@ namespace Gsl
> /*
> * Quasi-Random Sequences
> */
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate size_t QRNGStateSize (uint dimension);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int QRNGInitState (void* state, uint dimension);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int QRNGGetState2 (void* state, uint dimension, out double x);
>
> [SimpleType]
> [CCode (cname="gsl_qrng_type", cheader_filename="gsl/gsl_qrng.h", has_type_id = false)]
> public struct QRNGType
> {
> - public string name;
> + public unowned string name;
> public uint max_dimension;
> public QRNGStateSize state_size;
> public QRNGInitState init_state;
> @@ -2989,7 +2970,7 @@ namespace Gsl
>
> [CCode (cname="gsl_ran_discrete_preproc")]
> public RanDiscrete (size_t K, double* P);
> - [CCode (cname="gsl_ran_discrete")]
> + [CCode (cname="gsl_ran_discrete", instance_pos = -1)]
> public size_t discrete (RNG g);
> [CCode (instance_pos=-1)]
> public double pdf (size_t k);
> @@ -3179,9 +3160,9 @@ namespace Gsl
> public double cov ();
>
> public double sum ();
> - public int equal_bins_p (Histogram h2) ;
> - public int add (Histogram h2);
> - public int sub (Histogram h2);
> + public int equal_bins_p (Histogram2d h2);
> + public int add (Histogram2d h2);
> + public int sub (Histogram2d h2);
> public int mul (Histogram2d h2);
> public int div (Histogram2d h2);
> public int scale (double scale);
> @@ -3191,7 +3172,7 @@ namespace Gsl
> public int fwrite (GLib.FileStream stream);
> [CCode (instance_pos=-1)]
> public int fread (GLib.FileStream stream);
> - public static int fprintf (GLib.FileStream stream, Histogram h, string range_format, string bin_format);
> + public static int fprintf (GLib.FileStream stream, Histogram2d h, string range_format, string bin_format);
> [CCode (instance_pos=-1)]
> public int fscanf (GLib.FileStream stream);
> }
> @@ -3216,14 +3197,16 @@ namespace Gsl
> /*
> * N-Tuples
> */
> - [CCode (has_target = false)]
> - public delegate int NTupleFunc (void* ntuple_data, void* params);
> + [CCode (has_target = false, has_typedef = false)]
> + public delegate int NTupleSelectFunc (void* ntuple_data, void* params);
> + [CCode (has_target = false, has_typedef = false)]
> + public delegate double NTupleValueFunc (void* ntuple_data, void* params);
>
> [SimpleType]
> [CCode (cname="gsl_ntuple_select_fn", cheader_filename="gsl/gsl_ntuple.h", has_type_id = false)]
> public struct NTupleSelectFn
> {
> - public NTupleFunc function;
> + public NTupleSelectFunc function;
> public void* params;
> }
>
> @@ -3231,7 +3214,7 @@ namespace Gsl
> [CCode (cname="gsl_ntuple_value_fn", cheader_filename="gsl/gsl_ntuple.h", has_type_id = false)]
> public struct NTupleValueFn
> {
> - public NTupleFunc function;
> + public NTupleValueFunc function;
> public void* params;
> }
>
> @@ -3240,7 +3223,7 @@ namespace Gsl
> public class NTuple
> {
> public GLib.FileStream file;
> - public void* ntrupel_data;
> + public void* ntuple_data;
> public size_t size;
>
> public static NTuple open (string filename, void* ntuple_data, size_t size);
> @@ -3264,7 +3247,7 @@ namespace Gsl
> STRATIFIED
> }
>
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate double MonteFunc ([CCode (array_length = false)] double[] x_array, size_t dim, void* params);
>
> [SimpleType]
> @@ -3384,19 +3367,19 @@ namespace Gsl
> [CCode (lower_case_cprefix="gsl_siman_", cheader_filename="gsl/gsl_siman.h", has_type_id = false)]
> namespace Siman
> {
> - [CCode (has_target = false)]
> + [CCode (cname = "gsl_siman_Efunc_t", has_target = false)]
> public delegate double Efunc_t (void *xp);
> - [CCode (has_target = false)]
> + [CCode (cname = "gsl_siman_step_t", has_target = false)]
> public delegate void step_t (RNG r, void *xp, double step_size);
> - [CCode (has_target = false)]
> + [CCode (cname = "gsl_siman_metric_t", has_target = false)]
> public delegate double metric_t (void *xp, void* yp);
> - [CCode (has_target = false)]
> + [CCode (cname = "gsl_siman_print_t", has_target = false)]
> public delegate void print_t (void* xp);
> - [CCode (has_target = false)]
> + [CCode (cname = "gsl_siman_copy_t", has_target = false)]
> public delegate void copy_t (void* source, void* dest);
> - [CCode (has_target = false)]
> + [CCode (cname = "gsl_siman_copy_construct_t", has_target = false)]
> public delegate void copy_construct_t (void* xp);
> - [CCode (has_target = false)]
> + [CCode (cname = "gsl_siman_destroy_t", has_target = false)]
> public delegate void destroy_t (void* xp);
>
> public static void solve(RNG r, void *x0_p, Efunc_t Ef, step_t take_step, metric_t distance, print_t print_position, copy_t copyfunc, copy_construct_t copy_constructor, destroy_t destructor, size_t element_size, SimanParams params);
> @@ -3415,27 +3398,27 @@ namespace Gsl
> DEC
> }
>
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int OdeivFunction (double t, [CCode (array_length = false)] double[] y, [CCode (array_length = false)] double[] dydt, void* params);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int OdeivJacobian (double t, [CCode (array_length = false)] double[] y, [CCode (array_length = false)] double[] dfdy, [CCode (array_length = false)] double[] dfdt, void* params);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate void* OdeivStepAlloc (size_t dim);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int OdeivStepApply (void* state, size_t dim, double t, double h, [CCode (array_length = false)] double[] y, [CCode (array_length = false)] double[] yerr, [CCode (array_length = false)] double[] dydt_in, [CCode (array_length = false)] double[] dydt_out, OdeivSystem* dydt);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int OdeivStepReset (void* state, size_t dim);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate uint OdeivStepOrder (void* state);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate void OdeivStepFree (void* state);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate void* OdeivControlAlloc ();
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int OdeivControlInit (void* state, double eps_abs, double eps_rel, double a_y, double a_dydt);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int OdeivControlHadjust (void* state, size_t dim, uint ord, [CCode (array_length = false)] double[] y, [CCode (array_length = false)] double[] yerr, [CCode (array_length = false)] double[] yp, [CCode (array_length = false)] double[] h);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate void OdeivControlFree (void* state);
>
> [SimpleType]
> @@ -3452,7 +3435,7 @@ namespace Gsl
> [CCode (cname="gsl_odeiv_step_type", cheader_filename="gsl/gsl_odeiv.h", has_type_id = false)]
> public struct OdeivStepType
> {
> - public string name;
> + public unowned string name;
> public int can_use_dydt_in;
> public int gives_exact_dydt_out;
> public OdeivStepAlloc alloc;
> @@ -3499,7 +3482,7 @@ namespace Gsl
> [CCode (cname="gsl_odeiv_control_type", cheader_filename="gsl/gsl_odeiv.h", has_type_id = false)]
> public struct OdeivControlType
> {
> - public string name;
> + public unowned string name;
> public OdeivControlAlloc alloc;
> public OdeivControlInit init;
> public OdeivControlHadjust hadjust;
> @@ -3552,19 +3535,19 @@ namespace Gsl
> /*
> * Interpolation
> */
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate void* InterpAlloc (size_t size);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int InterpInit (void* t, [CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, size_t size);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int InterpEval (void* t, [CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, size_t size, double x, InterpAccel* i, out double y);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int InterpEvalDeriv (void* t, [CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, size_t size, double x, InterpAccel* i, out double y_p);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int InterpEvalDeriv2 (void* t, [CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, size_t size, double x, InterpAccel* i, out double y_pp);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int InterpEvalInteg (void* t, [CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, size_t size, InterpAccel* i, double a, double b, out double result);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate void InterpFree (void* t);
>
> [Compact]
> @@ -3585,7 +3568,7 @@ namespace Gsl
> [CCode (cname="gsl_interp_type", cheader_filename="gsl/gsl_interp.h", has_type_id = false)]
> public struct InterpType
> {
> - public string name;
> + public unowned string name;
> public uint min_size;
> public InterpAlloc alloc;
> public InterpInit init;
> @@ -3618,7 +3601,7 @@ namespace Gsl
> public void* state;
>
> [CCode (cname="gsl_interp_alloc")]
> - public Interp (InterpType T, size_t n);
> + public Interp (InterpType* T, size_t n);
> public int init ([CCode (array_length = false)] double[] xa, [CCode (array_length = false)] double[] ya, size_t size);
> public string name ();
> public uint min_size ();
> @@ -3660,7 +3643,7 @@ namespace Gsl
> /*
> * Numerical Differentiation
> */
> - [CCode (lower_case_cprefix="gsl_deriv_", cheader_fileame="gsl/gsl_deriv.h")]
> + [CCode (lower_case_cprefix="gsl_deriv_", cheader_filename="gsl/gsl_deriv.h")]
> namespace Deriv
> {
> public static int central (Function* f, double x, double h, out double result, out double abserr);
> @@ -3754,21 +3737,21 @@ namespace Gsl
> /*
> * Wavelet Transforms
> */
> - [CCode (has_type_id = false)]
> + [CCode (cname = "gsl_wavelet_direction", cprefix = "gsl_wavelet_", has_type_id = false)]
> public enum WaveletDirection
> {
> forward = 1,
> backward = -1
> }
>
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int WaveletInit (double** h1, double** g1, double** h2, double** g2, size_t* nc, size_t* offset, size_t member);
>
> [SimpleType]
> [CCode (cname="gsl_wavelet_type", cheader_filename="gsl/gsl_wavelet.h", has_type_id = false)]
> public struct WaveletType
> {
> - public string name;
> + public unowned string name;
> public WaveletInit init;
> }
>
> @@ -3817,25 +3800,25 @@ namespace Gsl
> public int transform_2d ([CCode (array_length = false)] double[] data, size_t tda, size_t size1, size_t size2, WaveletDirection dir, WaveletWorkspace work);
> [CCode (cname="gsl_wavelet2d_transform_forward")]
> public int transform_forward_2d ([CCode (array_length = false)] double[] data, size_t tda, size_t size1, size_t size2, WaveletWorkspace work);
> - [CCode (cname="gsl_wavelet2d__transform_inverse")]
> + [CCode (cname="gsl_wavelet2d_transform_inverse")]
> public int transform_inverse_2d ([CCode (array_length = false)] double[] data, size_t tda, size_t size1, size_t size2, WaveletWorkspace work);
> - [CCode (cprefix="gsl_wavelet2d_")]
> + [CCode (cname="gsl_wavelet2d_nstransform")]
> public int nstransform ([CCode (array_length = false)] double[] data, size_t tda, size_t size1, size_t size2, WaveletDirection dir,WaveletWorkspace work);
> - [CCode (cprefix="gsl_wavelet2d_")]
> + [CCode (cname="gsl_wavelet2d_nstransform_forward")]
> public int nstransform_forward ([CCode (array_length = false)] double[] data, size_t tda, size_t size1, size_t size2, WaveletWorkspace work);
> - [CCode (cprefix="gsl_wavelet2d_")]
> + [CCode (cname="gsl_wavelet2d_nstransform_inverse")]
> public int nstransform_inverse ([CCode (array_length = false)] double[] data, size_t tda, size_t size1, size_t size2, WaveletWorkspace * work);
> - [CCode (cprefix="gsl_wavelet2d_")]
> + [CCode (cname="gsl_wavelet2d_transform_matrix")]
> public int transform_matrix (Matrix a, WaveletDirection dir, WaveletWorkspace work);
> - [CCode (cprefix="gsl_wavelet2d_")]
> + [CCode (cname="gsl_wavelet2d_transform_matrix_forward")]
> public int transform_matrix_forward (Matrix a, WaveletWorkspace work);
> - [CCode (cprefix="gsl_wavelet2d_")]
> + [CCode (cname="gsl_wavelet2d_transform_matrix_inverse")]
> public int transform_matrix_inverse (Matrix a, WaveletWorkspace work);
> - [CCode (cprefix="gsl_wavelet2d_")]
> + [CCode (cname="gsl_wavelet2d_nstransform_matrix")]
> public int nstransform_matrix (Matrix a, WaveletDirection dir, WaveletWorkspace work);
> - [CCode (cprefix="gsl_wavelet2d_")]
> + [CCode (cname="gsl_wavelet2d_nstransform_matrix_forward")]
> public int nstransform_matrix_forward (Matrix a, WaveletWorkspace work);
> - [CCode (cprefix="gsl_wavelet2d_")]
> + [CCode (cname="gsl_wavelet2d_nstransform_matrix_inverse")]
> public int nstransform_matrix_inverse (Matrix a, WaveletWorkspace work);
> }
>
> @@ -3869,20 +3852,20 @@ namespace Gsl
> /*
> * One dimensional Root-Finding
> */
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int RootFsolverSet (void* state, Function* f, double* root, double x_lower, double x_upper);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int RootFsolverIterate (void* state, Function* f, double* root, double* x_lower, double* x_upper);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int RootFdfsolverSet (void* state, FunctionFdf* f, double* root);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int RootFdfsolverIterate (void* state, FunctionFdf* d, double* root);
>
> [SimpleType]
> [CCode (cname="gsl_root_fsolver_type", cheader_filename="gsl/gsl_roots.h", has_type_id = false)]
> public struct RootFsolverType
> {
> - public string name;
> + public unowned string name;
> public size_t size;
> public RootFsolverSet @set;
> public RootFsolverIterate iterate;
> @@ -3910,7 +3893,7 @@ namespace Gsl
> [CCode (cname="gsl_root_fdfsolver_type", cheader_filename="gsl/gsl_roots.h", has_type_id = false)]
> public struct RootFdfsolverType
> {
> - public string name;
> + public unowned string name;
> public size_t size;
> public RootFdfsolverSet @set;
> public RootFdfsolverIterate iterate;
> @@ -3960,18 +3943,18 @@ namespace Gsl
> /*
> * One dimensional Minimization
> */
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MinSet (void* state, Function* f, double xminimun, double f_minimum, double x_lower, double f_lower, double x_upper, double f_upper);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MinIterate (void *state, Function* f, double* x_minimum, double* f_minimum, double* x_lower, double* f_lower, double* x_upper, double* f_upper);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MinBracketingFunction (Function* f, double* x_minimum, double* f_minimum, double* x_lower, double* f_lower, double* x_upper, double* f_upper, size_t eval_max);
>
> [SimpleType]
> [CCode (cname="gsl_min_fminimizer_type", cheader_filename="gsl/gsl_min.h", has_type_id = false)]
> public struct MinFminimizerType
> {
> - public string name;
> + public unowned string name;
> public size_t size;
> public MinSet @set;
> public MinIterate iterate;
> @@ -4019,27 +4002,27 @@ namespace Gsl
> /*
> * Multidimensional Root-Finding
> */
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultirootF (Vector x, void* params, Vector f);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultirootFAlloc (void* state, size_t n);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultirootFSet (void* state, MultirootFunction* function, Vector x, Vector f, Vector dx);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultirootFIterate (void* state, MultirootFunction* function, Vector x, Vector f, Vector dx);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate void MultirootFFree (void* state);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultirootDF (Vector x, void* params, Matrix df);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultirootFDF (Vector x, void* params, Vector f, Matrix df);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultirootFdfAlloc (void* state, size_t n);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultirootFdfSet (void* state, MultirootFunctionFdf* fdf, Vector x, Vector f, Matrix J, Vector dx);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultirootFdfIterate (void* state, MultirootFunctionFdf* fdf, Vector x, Vector f, Matrix J, Vector dx);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultirootFdfFree (void* state);
>
> [SimpleType]
> @@ -4058,7 +4041,7 @@ namespace Gsl
> [CCode (cname="gsl_multiroot_fsolver_type", cheader_filename="gsl/gsl_multiroots.h", has_type_id = false)]
> public struct MultirootFsolverType
> {
> - public string name;
> + public unowned string name;
> public size_t size;
> public MultirootFAlloc alloc;
> public MultirootFSet @set;
> @@ -4100,7 +4083,7 @@ namespace Gsl
> [CCode (cname="gsl_multiroot_fdfsolver_type", cheader_filename="gsl/gsl_multiroots.h", has_type_id = false)]
> public struct MultirootFdfsolverType
> {
> - public string name;
> + public unowned string name;
> public size_t size;
> public MultirootFdfAlloc alloc;
> public MultirootFdfSet @set;
> @@ -4157,19 +4140,19 @@ namespace Gsl
> /*
> * Multidimensional Minimization
> */
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate double MultiminF (Vector x, void* params);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate void MultiminDf (Vector x, void* params, Vector df);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate void MultiminFdf (Vector x, void* params, double* f, Vector df);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultiminFAlloc (void *state, size_t n);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultiminFSet (void* state, MultiminFunction* f, Vector x, double* size);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultiminFIterate (void* state, MultiminFunction* f, Vector x, double* size, double* fval);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultiminFFree (void* state);
>
> [SimpleType]
> @@ -4199,7 +4182,7 @@ namespace Gsl
> [CCode (cname="gsl_multimin_fminimizer_type", cheader_filename="gsl/gsl_multimin.h", has_type_id = false)]
> public struct MultiminFminimizerType
> {
> - public string name;
> + public unowned string name;
> public size_t size;
> public MultiminFAlloc alloc;
> public MultiminFSet @set;
> @@ -4233,22 +4216,22 @@ namespace Gsl
> public static int size (double size, double epsabs);
> }
>
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultiminFdfAlloc (void *state, size_t n);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultiminFdfSet (void* state, MultiminFunctionFdf* fdf, Vector x, double* f, Vector gradient, double step_size, double tol);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultiminFdfIterate (void* state, MultiminFunctionFdf* fdf, Vector x, double* f, Vector gradient, Vector dx);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultiminFdfRestart (void* state);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultiminFdfFree (void* state);
>
> [SimpleType]
> [CCode (cname="gsl_multimin_fdfminimizer_type", cheader_filename="gsl/gsl_multimin.h", has_type_id = false)]
> public struct MultiminFdfminimizerType
> {
> - public string name;
> + public unowned string name;
> public size_t size;
> public MultiminFdfAlloc alloc;
> public MultiminFdfSet @set;
> @@ -4302,7 +4285,7 @@ namespace Gsl
> namespace Fit
> {
> public static int linear ([CCode (array_length = false)] double[] x, size_t xstride, [CCode (array_length = false)] double[] y, size_t ystride, size_t n, out double c0, out double c1, out double cov00, out double cov01, out double cov11, out double sumsq);
> - public static int wlinear ([CCode (array_length = false)] double[] x, size_t xstride, [CCode (array_length = false)] double[] w, size_t wstride, [CCode (array_length = false)] double[] y, size_t ystride, size_t n, out double c0, out double c1, out double cov00, out double cov01, out double cov11, double chisq);
> + public static int wlinear ([CCode (array_length = false)] double[] x, size_t xstride, [CCode (array_length = false)] double[] w, size_t wstride, [CCode (array_length = false)] double[] y, size_t ystride, size_t n, out double c0, out double c1, out double cov00, out double cov01, out double cov11, out double chisq);
> public static int linear_est (double x, double c0, double c1, double cov00, double cov01, double cov11, out double y, out double y_err);
> public static int mul ([CCode (array_length = false)] double[] x, size_t xstride, [CCode (array_length = false)] double[] y, size_t ystride, size_t n, out double c1, out double cov11, out double sumsq);
> public static int wmul ([CCode (array_length = false)] double[] x, size_t xstride, [CCode (array_length = false)] double[] w, size_t wstride, [CCode (array_length = false)] double[] y, size_t ystride, size_t n, out double c1, out double cov11, out double sumsq);
> @@ -4331,7 +4314,7 @@ namespace Gsl
> namespace Multifit
> {
> public static int linear (Matrix X, Vector y, Vector c, Matrix cov, out double chisq, MultifitLinearWorkspace work);
> - public static int linear_svd (Matrix X, Vector y, double tol, out size_t rank, Vector c, Matrix cov, out double chisq, MultifitLinearWorkspace work);
> + public static int linear_svd (Matrix X, MultifitLinearWorkspace work);
> public static int wlinear (Matrix X, Vector w, Vector y, Vector c, Matrix cov, out double chisq, MultifitLinearWorkspace work);
> public static int wlinear_svd (Matrix X, Vector w, Vector y, double tol, out size_t rank, Vector c, Matrix cov, out double chisq, MultifitLinearWorkspace work);
> public static int linear_est (Vector x, Vector c, Matrix cov, out double y, out double y_err);
> @@ -4342,27 +4325,27 @@ namespace Gsl
> /*
> * Nonlinear Least-Squares Fitting
> */
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultifitF (Vector x, void* params, Vector f);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultifitFAlloc (void* state, size_t n, size_t p);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultifitFSet (void* state, MultifitFunction* function, Vector x, Vector f, Vector dx);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultifitFIterate (void* state, MultifitFunction* function, Vector x, Vector f, Vector dx);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate void MultifitFFree (void* state);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultifitDf (Vector x, void* params, Matrix df);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultifitFdf (Vector x, void* params, Vector f, Matrix df);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultifitFdfAlloc (void* state, size_t n, size_t p);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultifitFdfSet (void* state, MultifitFunctionFdf fdf, Vector x, Vector f, Matrix J, Vector dx);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate int MultifitFdfIterate (void* state, MultifitFunctionFdf fdf, Vector x, Vector f, Matrix J, Vector dx);
> - [CCode (has_target = false)]
> + [CCode (has_target = false, has_typedef = false)]
> public delegate void MultifitFdfFree (void* state);
>
> [CCode (lower_case_cprefix="gsl_multifit_", cheader_filename="gsl/gsl_multifit_nlin.h")]
> @@ -4373,7 +4356,7 @@ namespace Gsl
> }
>
> [SimpleType]
> - [CCode (cname="gsl_multifit_function", cheader_filename="gls/gsl_multifit_nlin.h", has_type_id = false)]
> + [CCode (cname="gsl_multifit_function", cheader_filename="gsl/gsl_multifit_nlin.h", has_type_id = false)]
> public struct MultifitFunction
> {
> public MultifitF f;
> @@ -4386,7 +4369,7 @@ namespace Gsl
> [CCode (cname="gsl_multifit_fsolver_type", cheader_filename="gsl/gsl_multifit_nlin.h", has_type_id = false)]
> public struct MultifitFsolverType
> {
> - public string name;
> + public unowned string name;
> public size_t size;
> public MultifitFAlloc alloc;
> public MultifitFSet @set;
> @@ -4429,7 +4412,7 @@ namespace Gsl
> [CCode (cname="gsl_multifit_fdfsolver_type", cheader_filename="gsl/gsl_multifit_nlin.h", has_type_id = false)]
> public struct MultifitFdfsolverType
> {
> - public string name;
> + public unowned string name;
> public size_t size;
> public MultifitFdfAlloc alloc;
> public MultifitFdfSet @set;
> @@ -4445,8 +4428,10 @@ namespace Gsl
> public MultifitFunctionFdf* fdf;
> public Vector x;
> public Vector f;
> - public Vector J;
> public Vector dx;
> + public Vector g;
> + public Vector sqrt_wts;
> + public size_t niter;
> public void* state;
>
> [CCode (cname="gsl_multifit_fdfsolver_alloc")]
> diff --git a/vapi/gstreamer-audio-1.0.vapi b/vapi/gstreamer-audio-1.0.vapi
> index 16c60fdb8..21dfdfde9 100644
> --- a/vapi/gstreamer-audio-1.0.vapi
> +++ b/vapi/gstreamer-audio-1.0.vapi
> @@ -341,6 +341,8 @@ namespace Gst {
> public weak Gst.Audio.Info info;
> [CCode (has_construct_function = false)]
> protected Filter ();
> + [CCode (cname = "gst_audio_filter_class_add_pad_templates")]
> + public class void add_pad_templates (Gst.Caps allowed_caps);
> [NoWrapper]
> public virtual bool setup (Gst.Audio.Info info);
> }
> diff --git a/vapi/gstreamer-rtsp-1.0.vapi b/vapi/gstreamer-rtsp-1.0.vapi
> index 988d1deb3..fafa3293b 100644
> --- a/vapi/gstreamer-rtsp-1.0.vapi
> +++ b/vapi/gstreamer-rtsp-1.0.vapi
> @@ -239,7 +239,7 @@ namespace Gst {
> public Gst.RTSP.Result wait_backlog_usec (int64 timeout);
> public Gst.RTSP.Result write_data ([CCode (array_length_cname = "size", array_length_pos = 1.5, array_length_type = "guint")] owned uint8[] data, out uint id);
> }
> - [CCode (cheader_filename = "gst/rtsp/rtsp.h", type_id = "gst_rtsp_extension_get_type ()")]
> + [CCode (cheader_filename = "gst/rtsp/rtsp.h", type_cname = "GstRTSPExtensionInterface", type_id = "gst_rtsp_extension_get_type ()")]
> [GIR (name = "RTSPExtension")]
> public interface Extension : GLib.Object {
> public abstract Gst.RTSP.Result after_send (Gst.RTSP.Message req, Gst.RTSP.Message resp);
> diff --git a/vapi/gstreamer-tag-1.0.vapi b/vapi/gstreamer-tag-1.0.vapi
> index 953fe1711..1ef26138b 100644
> --- a/vapi/gstreamer-tag-1.0.vapi
> +++ b/vapi/gstreamer-tag-1.0.vapi
> @@ -134,7 +134,7 @@ namespace Gst {
> [NoWrapper]
> public virtual Gst.Buffer render_start_tag (Gst.TagList tag_list);
> }
> - [CCode (cheader_filename = "gst/tag/tag.h", type_id = "gst_tag_xmp_writer_get_type ()")]
> + [CCode (cheader_filename = "gst/tag/tag.h", type_cname = "GstTagXmpWriterInterface", type_id = "gst_tag_xmp_writer_get_type ()")]
> [GIR (name = "TagXmpWriter")]
> public interface XmpWriter : Gst.Element {
> public void add_all_schemas ();
> diff --git a/vapi/gstreamer-video-1.0.vapi b/vapi/gstreamer-video-1.0.vapi
> index 8730c72ed..2129c3a4e 100644
> --- a/vapi/gstreamer-video-1.0.vapi
> +++ b/vapi/gstreamer-video-1.0.vapi
> @@ -518,7 +518,7 @@ namespace Gst {
> [HasEmitter]
> public virtual signal void value_changed (Gst.Video.ColorBalanceChannel channel, int value);
> }
> - [CCode (cheader_filename = "gst/video/video.h", type_id = "gst_video_direction_get_type ()")]
> + [CCode (cheader_filename = "gst/video/video.h", type_cname = "GstVideoDirectionInterface", type_id = "gst_video_direction_get_type ()")]
> [GIR (name = "VideoDirection")]
> [Version (since = "1.10")]
> public interface Direction : GLib.Object {
> @@ -560,7 +560,7 @@ namespace Gst {
> [Version (since = "1.18")]
> public void send_mouse_scroll_event (double x, double y, double delta_x, double delta_y);
> }
> - [CCode (cheader_filename = "gst/video/video.h", type_id = "gst_video_orientation_get_type ()")]
> + [CCode (cheader_filename = "gst/video/video.h", type_cname = "GstVideoOrientationInterface", type_id = "gst_video_orientation_get_type ()")]
> [GIR (name = "VideoOrientation")]
> public interface Orientation : GLib.Object {
> public abstract bool get_hcenter (out int center);
> @@ -572,7 +572,7 @@ namespace Gst {
> public abstract bool set_vcenter (int center);
> public abstract bool set_vflip (bool flip);
> }
> - [CCode (cheader_filename = "gst/video/video.h", type_id = "gst_video_overlay_get_type ()")]
> + [CCode (cheader_filename = "gst/video/video.h", type_cname = "GstVideoOverlayInterface", type_id = "gst_video_overlay_get_type ()")]
> [GIR (name = "VideoOverlay")]
> public interface Overlay : GLib.Object {
> public abstract void expose ();
> diff --git a/vapi/gtk4-unix-print.vapi b/vapi/gtk4-unix-print.vapi
> index 38a742e01..6885b50ae 100644
> --- a/vapi/gtk4-unix-print.vapi
> +++ b/vapi/gtk4-unix-print.vapi
> @@ -2,10 +2,10 @@
>
> [CCode (cprefix = "Gtk", gir_namespace = "Gtk", gir_version = "4.0", lower_case_cprefix = "gtk_")]
> namespace Gtk {
> - [CCode (cheader_filename = "gtk/gtkunixprint.h")]
> - public class PageSetupUnixDialog : Gtk.Dialog, Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Native, Gtk.ShortcutManager, Gtk.Root {
> + [CCode (cheader_filename = "gtk/gtkunixprint.h", type_id = "gtk_page_setup_unix_dialog_get_type ()")]
> + public class PageSetupUnixDialog : Gtk.Dialog, Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Native, Gtk.Root, Gtk.ShortcutManager {
> [CCode (has_construct_function = false, type = "GtkWidget*")]
> - public PageSetupUnixDialog (string title, Gtk.Window parent);
> + public PageSetupUnixDialog (string? title, Gtk.Window? parent);
> public unowned Gtk.PageSetup get_page_setup ();
> public unowned Gtk.PrintSettings get_print_settings ();
> public void set_page_setup (Gtk.PageSetup page_setup);
> @@ -14,7 +14,7 @@ namespace Gtk {
> [CCode (cheader_filename = "gtk/gtkunixprint.h")]
> public abstract class PrintBackend : GLib.Object {
> }
> - [CCode (cheader_filename = "gtk/gtkunixprint.h")]
> + [CCode (cheader_filename = "gtk/gtkunixprint.h", type_id = "gtk_print_job_get_type ()")]
> public class PrintJob : GLib.Object {
> [CCode (has_construct_function = false)]
> public PrintJob (string title, Gtk.Printer printer, Gtk.PrintSettings settings, Gtk.PageSetup page_setup);
> @@ -22,6 +22,7 @@ namespace Gtk {
> public uint get_n_up ();
> public Gtk.NumberUpLayout get_n_up_layout ();
> public int get_num_copies ();
> + [CCode (array_length_pos = 0.1)]
> public unowned Gtk.PageRange[] get_page_ranges ();
> public Gtk.PageSet get_page_set ();
> public Gtk.PrintPages get_pages ();
> @@ -39,7 +40,7 @@ namespace Gtk {
> public void set_n_up (uint n_up);
> public void set_n_up_layout (Gtk.NumberUpLayout layout);
> public void set_num_copies (int num_copies);
> - public void set_page_ranges (Gtk.PageRange[] ranges);
> + public void set_page_ranges ([CCode (array_length_cname = "n_ranges", array_length_pos = 1.1)] owned Gtk.PageRange[] ranges);
> public void set_page_set (Gtk.PageSet page_set);
> public void set_pages (Gtk.PrintPages pages);
> public void set_reverse (bool reverse);
> @@ -54,12 +55,12 @@ namespace Gtk {
> public Gtk.PrintSettings settings { get; construct; }
> public string title { get; construct; }
> public bool track_print_status { get; set; }
> - public virtual signal void status_changed ();
> + public signal void status_changed ();
> }
> - [CCode (cheader_filename = "gtk/gtkunixprint.h")]
> - public class PrintUnixDialog : Gtk.Dialog, Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Native, Gtk.ShortcutManager, Gtk.Root {
> + [CCode (cheader_filename = "gtk/gtkunixprint.h", type_id = "gtk_print_unix_dialog_get_type ()")]
> + public class PrintUnixDialog : Gtk.Dialog, Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Native, Gtk.Root, Gtk.ShortcutManager {
> [CCode (has_construct_function = false, type = "GtkWidget*")]
> - public PrintUnixDialog (string title, Gtk.Window parent);
> + public PrintUnixDialog (string? title, Gtk.Window? parent);
> public void add_custom_tab (Gtk.Widget child, Gtk.Widget tab_label);
> public int get_current_page ();
> public bool get_embed_page_setup ();
> @@ -75,7 +76,7 @@ namespace Gtk {
> public void set_has_selection (bool has_selection);
> public void set_manual_capabilities (Gtk.PrintCapabilities capabilities);
> public void set_page_setup (Gtk.PageSetup page_setup);
> - public void set_settings (Gtk.PrintSettings settings);
> + public void set_settings (Gtk.PrintSettings? settings);
> public void set_support_selection (bool support_selection);
> public int current_page { get; set; }
> public bool embed_page_setup { get; set; }
> @@ -87,7 +88,7 @@ namespace Gtk {
> public Gtk.Printer selected_printer { get; }
> public bool support_selection { get; set; }
> }
> - [CCode (cheader_filename = "gtk/gtkunixprint.h")]
> + [CCode (cheader_filename = "gtk/gtkunixprint.h", type_id = "gtk_printer_get_type ()")]
> public class Printer : GLib.Object {
> [CCode (has_construct_function = false)]
> public Printer (string name, Gtk.PrintBackend backend, bool virtual_);
> @@ -132,9 +133,9 @@ namespace Gtk {
> [NoAccessorMethod]
> public bool paused { get; }
> public string state_message { get; }
> - public virtual signal void details_acquired (bool p0);
> + public signal void details_acquired (bool success);
> }
> - [CCode (cheader_filename = "gtk/gtkunixprint.h", cprefix = "GTK_PRINT_CAPABILITY_")]
> + [CCode (cheader_filename = "gtk/gtkunixprint.h", cprefix = "GTK_PRINT_CAPABILITY_", type_id = "gtk_print_capabilities_get_type ()")]
> [Flags]
> public enum PrintCapabilities {
> PAGE_SET,
> @@ -150,8 +151,8 @@ namespace Gtk {
> }
> [CCode (cheader_filename = "gtk/gtkunixprint.h", instance_pos = 1.9)]
> public delegate void PrintJobCompleteFunc (Gtk.PrintJob print_job) throws GLib.Error;
> - [CCode (cheader_filename = "gtk/gtkunixprint.h")]
> + [CCode (cheader_filename = "gtk/gtkunixprint.h", instance_pos = 1.9)]
> public delegate bool PrinterFunc (Gtk.Printer printer);
> [CCode (cheader_filename = "gtk/gtkunixprint.h")]
> - public static void enumerate_printers (owned Gtk.PrinterFunc func, bool wait);
> + public static void enumerate_printers ([CCode (delegate_target_pos = 1.33333, destroy_notify_pos = 1.66667)] owned Gtk.PrinterFunc func, bool wait);
> }
> diff --git a/vapi/gtk4.vapi b/vapi/gtk4.vapi
> index 841487e8d..99574a9c2 100644
> --- a/vapi/gtk4.vapi
> +++ b/vapi/gtk4.vapi
> @@ -5301,12 +5301,16 @@ namespace Gdk {
> public unowned Gdk.Rectangle? get_anchor_rect ();
> public void get_offset (out int dx, out int dy);
> public Gdk.Gravity get_rect_anchor ();
> + [Version (since = "4.2")]
> + public void get_shadow_width (out int left, out int right, out int top, out int bottom);
> public Gdk.Gravity get_surface_anchor ();
> public unowned Gdk.PopupLayout @ref ();
> public void set_anchor_hints (Gdk.AnchorHints anchor_hints);
> public void set_anchor_rect (Gdk.Rectangle anchor_rect);
> public void set_offset (int dx, int dy);
> public void set_rect_anchor (Gdk.Gravity anchor);
> + [Version (since = "4.2")]
> + public void set_shadow_width (int left, int right, int top, int bottom);
> public void set_surface_anchor (Gdk.Gravity anchor);
> public void unref ();
> }
> @@ -6004,6 +6008,8 @@ namespace Gsk {
> public class ConicGradientNode : Gsk.RenderNode {
> [CCode (has_construct_function = false, type = "GskRenderNode*")]
> public ConicGradientNode (Graphene.Rect bounds, Graphene.Point center, float rotation, [CCode (array_length_cname = "n_color_stops", array_length_pos = 4.1, array_length_type = "gsize")] Gsk.ColorStop[] color_stops);
> + [Version (since = "4.2")]
> + public float get_angle ();
> public unowned Graphene.Point? get_center ();
> [CCode (array_length_pos = 0.1, array_length_type = "gsize")]
> public unowned Gsk.ColorStop[] get_color_stops ();
> @@ -6097,6 +6103,12 @@ namespace Gsk {
> public size_t get_n_color_stops ();
> public unowned Graphene.Point? get_start ();
> }
> + [CCode (cheader_filename = "gsk/gsk.h", type_id = "gsk_ngl_renderer_get_type ()")]
> + public class NglRenderer : Gsk.Renderer {
> + [CCode (has_construct_function = false, type = "GskRenderer*")]
> + [Version (since = "4.2")]
> + public NglRenderer ();
> + }
> [CCode (cheader_filename = "gsk/gsk.h", type_id = "gsk_opacity_node_get_type ()")]
> public class OpacityNode : Gsk.RenderNode {
> [CCode (has_construct_function = false, type = "GskRenderNode*")]
> @@ -6451,7 +6463,7 @@ namespace Gtk {
> public void set_license_type (Gtk.License license_type);
> public void set_logo (Gdk.Paintable? logo);
> public void set_logo_icon_name (string? icon_name);
> - public void set_program_name (string name);
> + public void set_program_name (string? name);
> public void set_system_information (string? system_information);
> public void set_translator_credits (string? translator_credits);
> public void set_version (string? version);
> @@ -7388,6 +7400,8 @@ namespace Gtk {
> public bool inconsistent { get; set; }
> public string label { get; set; }
> public bool use_underline { get; set; }
> + [Version (since = "4.2")]
> + public virtual signal void activate ();
> public virtual signal void toggled ();
> }
> [CCode (cheader_filename = "gtk/gtk.h", type_id = "gtk_closure_expression_get_type ()")]
> @@ -8191,9 +8205,10 @@ namespace Gtk {
> public void unref ();
> public unowned Gtk.ExpressionWatch watch (GLib.Object? this_, owned Gtk.ExpressionNotify notify);
> }
> - [CCode (cheader_filename = "gtk/gtk.h", has_type_id = false, ref_function = "gtk_expression_watch_ref", unref_function = "gtk_expression_watch_unref")]
> - [Compact]
> + [CCode (cheader_filename = "gtk/gtk.h", ref_function = "gtk_expression_watch_ref", type_id = "gtk_expression_watch_get_type ()", unref_function = "gtk_expression_watch_unref")]
> public class ExpressionWatch {
> + [CCode (has_construct_function = false)]
> + protected ExpressionWatch ();
> public bool evaluate (GLib.Value value);
> public unowned Gtk.ExpressionWatch @ref ();
> public void unref ();
> @@ -8697,11 +8712,15 @@ namespace Gtk {
> public virtual void focus_in ();
> public virtual void focus_out ();
> public virtual void get_preedit_string (out string str, out Pango.AttrList attrs, out int cursor_pos);
> + [Version (deprecated = true, deprecated_since = "4.2")]
> public virtual bool get_surrounding (out string text, out int cursor_index);
> + public virtual bool get_surrounding_with_selection (out string text, out int cursor_index, out int anchor_index);
> public virtual void reset ();
> public virtual void set_client_widget (Gtk.Widget? widget);
> public virtual void set_cursor_location (Gdk.Rectangle area);
> + [Version (deprecated = true, deprecated_since = "4.2")]
> public virtual void set_surrounding (string text, int len, int cursor_index);
> + public virtual void set_surrounding_with_selection (string text, int len, int cursor_index, int anchor_index);
> public virtual void set_use_preedit (bool use_preedit);
> [NoAccessorMethod]
> public Gtk.InputHints input_hints { get; set; }
> @@ -9114,7 +9133,7 @@ namespace Gtk {
> public unowned Gtk.Adjustment get_adjustment ();
> public unowned Gtk.ListBoxRow? get_row_at_index (int index_);
> public unowned Gtk.ListBoxRow? get_row_at_y (int y);
> - public unowned Gtk.ListBoxRow get_selected_row ();
> + public unowned Gtk.ListBoxRow? get_selected_row ();
> public GLib.List<weak Gtk.ListBoxRow> get_selected_rows ();
> public Gtk.SelectionMode get_selection_mode ();
> public bool get_show_separators ();
> @@ -10642,7 +10661,7 @@ namespace Gtk {
> public bool get_can_unselect ();
> public unowned GLib.ListModel get_model ();
> public uint get_selected ();
> - public void* get_selected_item ();
> + public unowned GLib.Object? get_selected_item ();
> public void set_autoselect (bool autoselect);
> public void set_can_unselect (bool can_unselect);
> public void set_model (GLib.ListModel? model);
> @@ -11083,10 +11102,6 @@ namespace Gtk {
> public signal void preedit_changed (string preedit);
> public signal void toggle_overwrite ();
> }
> - [CCode (cheader_filename = "gtk/gtk.h", has_type_id = false)]
> - [Compact]
> - public class TextBTree {
> - }
> [CCode (cheader_filename = "gtk/gtk.h", type_id = "gtk_text_buffer_get_type ()")]
> public class TextBuffer : GLib.Object {
> [CCode (has_construct_function = false)]
> @@ -12078,7 +12093,7 @@ namespace Gtk {
> public int get_margin_end ();
> public int get_margin_start ();
> public int get_margin_top ();
> - public unowned string? get_name ();
> + public unowned string get_name ();
> public unowned Gtk.Native? get_native ();
> public unowned Gtk.Widget? get_next_sibling ();
> public double get_opacity ();
> @@ -12292,6 +12307,8 @@ namespace Gtk {
> public unowned Gtk.Widget? get_focus ();
> public bool get_focus_visible ();
> public unowned Gtk.WindowGroup get_group ();
> + [Version (since = "4.2")]
> + public bool get_handle_menubar_accel ();
> public bool get_hide_on_close ();
> public unowned string? get_icon_name ();
> public bool get_mnemonics_visible ();
> @@ -12321,6 +12338,8 @@ namespace Gtk {
> public void set_display (Gdk.Display display);
> public void set_focus (Gtk.Widget? focus);
> public void set_focus_visible (bool setting);
> + [Version (since = "4.2")]
> + public void set_handle_menubar_accel (bool handle_menubar_accel);
> public void set_hide_on_close (bool setting);
> public void set_icon_name (string? name);
> public static void set_interactive_debugging (bool enable);
> @@ -12351,6 +12370,8 @@ namespace Gtk {
> public Gtk.Widget focus_widget { owned get; set; }
> [NoAccessorMethod]
> public bool fullscreened { get; set construct; }
> + [Version (since = "4.2")]
> + public bool handle_menubar_accel { get; set; }
> public bool hide_on_close { get; set; }
> public string icon_name { get; set; }
> [NoAccessorMethod]
> @@ -12852,11 +12873,6 @@ namespace Gtk {
> public Gtk.Requisition? copy ();
> public void free ();
> }
> - [CCode (cheader_filename = "gtk/gtk.h", has_type_id = false)]
> - public struct SettingsValue {
> - public weak string origin;
> - public GLib.Value value;
> - }
> [CCode (cheader_filename = "gtk/gtk.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "gtk_text_iter_get_type ()")]
> public struct TextIter {
> public void assign (Gtk.TextIter other);
> @@ -13509,7 +13525,9 @@ namespace Gtk {
> public enum Ordering {
> SMALLER,
> EQUAL,
> - LARGER
> + LARGER;
> + [CCode (cheader_filename = "gtk/gtk.h")]
> + public static Gtk.Ordering from_cmpfunc (int cmpfunc_result);
> }
> [CCode (cheader_filename = "gtk/gtk.h", cprefix = "GTK_ORIENTATION_", type_id = "gtk_orientation_get_type ()")]
> public enum Orientation {
> @@ -14103,6 +14121,8 @@ namespace Gtk {
> public const int INPUT_ERROR;
> [CCode (cheader_filename = "gtk/gtk.h", cname = "GTK_INTERFACE_AGE")]
> public const int INTERFACE_AGE;
> + [CCode (cheader_filename = "gtk/gtk.h", cname = "GTK_INVALID_LIST_POSITION")]
> + public const uint INVALID_LIST_POSITION;
> [CCode (cheader_filename = "gtk/gtk.h", cname = "GTK_LEVEL_BAR_OFFSET_FULL")]
> public const string LEVEL_BAR_OFFSET_FULL;
> [CCode (cheader_filename = "gtk/gtk.h", cname = "GTK_LEVEL_BAR_OFFSET_HIGH")]
> @@ -14236,7 +14256,7 @@ namespace Gtk {
> [CCode (cheader_filename = "gtk/gtk.h")]
> public static void disable_setlocale ();
> [CCode (cheader_filename = "gtk/gtk.h")]
> - public static int distribute_natural_allocation (int extra_space, uint n_requested_sizes, Gtk.RequestedSize sizes);
> + public static int distribute_natural_allocation (int extra_space, [CCode (array_length_cname = "n_requested_sizes", array_length_pos = 1.5, array_length_type = "guint")] Gtk.RequestedSize[] sizes);
> [CCode (cheader_filename = "gtk/gtk.h")]
> public static bool drag_check_threshold (Gtk.Widget widget, int start_x, int start_y, int current_x, int current_y);
> [CCode (cheader_filename = "gtk/gtk.h")]
> @@ -14258,8 +14278,6 @@ namespace Gtk {
> [CCode (cheader_filename = "gtk/gtk.h")]
> public static void hsv_to_rgb (float h, float s, float v, out float r, out float g, out float b);
> [CCode (cheader_filename = "gtk/gtk.h")]
> - public static void im_modules_init ();
> - [CCode (cheader_filename = "gtk/gtk.h")]
> public static void init ();
> [CCode (cheader_filename = "gtk/gtk.h")]
> public static bool init_check ();
> diff --git a/vapi/libftdi.vapi b/vapi/libftdi.vapi
> index 7008985a0..b98f097e0 100644
> --- a/vapi/libftdi.vapi
> +++ b/vapi/libftdi.vapi
> @@ -1,4 +1,4 @@
> -[CCode (cprefix = "FTDI_", lower_case_prefix = "ftdi_", cheader_filename = "ftdi.h")]
> +[CCode (cprefix = "FTDI_", lower_case_cprefix = "ftdi_", cheader_filename = "ftdi.h")]
> namespace FTDI {
>
> public const int DEFAULT_EEPROM_SIZE;
> diff --git a/vapi/libwnck-3.0.vapi b/vapi/libwnck-3.0.vapi
> index 537099c2d..9fce7617f 100644
> --- a/vapi/libwnck-3.0.vapi
> +++ b/vapi/libwnck-3.0.vapi
> @@ -61,6 +61,17 @@ namespace Wnck {
> public virtual signal void icon_changed ();
> public virtual signal void name_changed ();
> }
> + [CCode (cheader_filename = "libwnck/libwnck.h", type_id = "wnck_image_menu_item_get_type ()")]
> + public class ImageMenuItem : Gtk.MenuItem, Atk.Implementor, Gtk.Actionable, Gtk.Activatable, Gtk.Buildable {
> + [CCode (has_construct_function = false, type = "GtkWidget*")]
> + public ImageMenuItem ();
> + public void make_label_bold ();
> + public void make_label_normal ();
> + public void set_image_from_icon_pixbuf (Gdk.Pixbuf pixbuf);
> + public void set_image_from_window (Wnck.Window window);
> + [CCode (has_construct_function = false, type = "GtkWidget*")]
> + public ImageMenuItem.with_label (string label);
> + }
> [CCode (cheader_filename = "libwnck/libwnck.h", type_id = "wnck_pager_get_type ()")]
> public class Pager : Gtk.Widget, Atk.Implementor, Gtk.Buildable {
> [CCode (has_construct_function = false, type = "GtkWidget*")]
> @@ -70,6 +81,7 @@ namespace Wnck {
> public void set_display_mode (Wnck.PagerDisplayMode mode);
> public bool set_n_rows (int n_rows);
> public bool set_orientation (Gtk.Orientation orientation);
> + [Version (since = "3.36")]
> public void set_scroll_mode (Wnck.PagerScrollMode scroll_mode);
> [Version (since = "2.2")]
> public void set_shadow_type (Gtk.ShadowType shadow_type);
> @@ -363,9 +375,11 @@ namespace Wnck {
> CONTENT
> }
> [CCode (cheader_filename = "libwnck/libwnck.h", cprefix = "WNCK_PAGER_SCROLL_", type_id = "wnck_pager_scroll_mode_get_type ()")]
> + [Version (since = "3.36")]
> public enum PagerScrollMode {
> @2D,
> - @1D
> + @1D,
> + NONE
> }
> [CCode (cheader_filename = "libwnck/libwnck.h", cprefix = "WNCK_TASKLIST_", type_id = "wnck_tasklist_grouping_type_get_type ()")]
> public enum TasklistGroupingType {
> diff --git a/vapi/linux.vapi b/vapi/linux.vapi
> index 25b5188f3..37441b0fa 100644
> --- a/vapi/linux.vapi
> +++ b/vapi/linux.vapi
> @@ -664,7 +664,7 @@ namespace Linux {
> SET_TEARSYNC
> }
>
> - [Flags, CCode (cname = "int", has_type_id = false, prefix = "OMAPFB_CAPS_")]
> + [Flags, CCode (cname = "int", has_type_id = false, cprefix = "OMAPFB_CAPS_")]
> public enum Caps {
> GENERIC_MASK,
> LCDC_MASK,
> @@ -1644,7 +1644,10 @@ namespace Linux {
>
> [CCode (cname = "struct input_event", has_type_id = false, cheader_filename = "linux/input.h")]
> public struct Event {
> + [Version (deprecated = true, replacement = "Event.input_event_sec and Event.input_event_usec")]
> public Posix.timeval time;
> + public time_t input_event_sec;
> + public long input_event_usec;
> public uint16 type;
> public uint16 code;
> public int32 value;
> diff --git a/vapi/metadata/Gdk-4.0.metadata b/vapi/metadata/Gdk-4.0.metadata
> index 3053be7df..40cb0fcbf 100644
> --- a/vapi/metadata/Gdk-4.0.metadata
> +++ b/vapi/metadata/Gdk-4.0.metadata
> @@ -57,5 +57,3 @@ Device
>
> // vapigen actually generates the correctly, but in away that breaks BC
> Rectangle.union return_void
> -
> -DrawingContext skip
> diff --git a/vapi/metadata/Gio-2.0-custom.vala b/vapi/metadata/Gio-2.0-custom.vala
> index 9bb88ae92..1b212271a 100644
> --- a/vapi/metadata/Gio-2.0-custom.vala
> +++ b/vapi/metadata/Gio-2.0-custom.vala
> @@ -177,7 +177,9 @@ namespace GLib {
> }
> }
>
> + [CCode (has_typedef = false)]
> public delegate void SimpleActionActivateCallback (SimpleAction action, Variant? parameter);
> + [CCode (has_typedef = false)]
> public delegate void SimpleActionChangeStateCallback (SimpleAction action, Variant value);
> [CCode (cheader_filename = "gio/gio.h", cname = "GAsyncReadyCallback", instance_pos = 2.9)]
> public delegate void TaskReadyCallback (GLib.Object? source_object, GLib.Task task);
> diff --git a/vapi/metadata/Gio-2.0.metadata b/vapi/metadata/Gio-2.0.metadata
> index 51c5e7079..2da6f7838 100644
> --- a/vapi/metadata/Gio-2.0.metadata
> +++ b/vapi/metadata/Gio-2.0.metadata
> @@ -55,6 +55,9 @@ dbus_address_get_for_bus_sync parent="GLib.BusType" name="get_address_sync"
> SETTINGS_BACKEND_EXTENSION_POINT_NAME cheader_filename="gio/gsettingsbackend.h" feature_test_macro="G_SETTINGS_ENABLE_BACKEND"
> SettingsBackend
> .* cheader_filename="gio/gsettingsbackend.h" feature_test_macro="G_SETTINGS_ENABLE_BACKEND"
> + .changed_tree.tree type="GLib.Tree<string,GLib.Variant>"
> + .flatten_tree.tree type="GLib.Tree<string,GLib.Variant>"
> + .write_tree.tree type="GLib.Tree<string,GLib.Variant>"
>
> Action
> .parameter_type nullable
> @@ -81,11 +84,11 @@ Cancellable
> Credentials
> .get_native skip=false
> DatagramBased
> - .condition_check#virtual_method virtual name="datagram_condition_check"
> - .condition_wait#virtual_method virtual name="datagram_condition_wait"
> - .create_source#virtual_method virtual name="datagram_create_source"
> - .receive_messages#virtual_method virtual name="datagram_receive_messages"
> - .send_messages#virtual_method virtual name="datagram_send_messages"
> + .condition_check#virtual_method virtual name="datagram_condition_check" no_wrapper
> + .condition_wait#virtual_method virtual name="datagram_condition_wait" no_wrapper
> + .create_source#virtual_method virtual name="datagram_create_source" no_wrapper
> + .receive_messages#virtual_method virtual name="datagram_receive_messages" no_wrapper
> + .send_messages#virtual_method virtual name="datagram_send_messages" no_wrapper
> DataInputStream
> .read_* throws="GLib.IOError"
> .read_line_finish_utf8 skip
> @@ -157,6 +160,7 @@ ListModel
> .get_item#virtual_method skip
> .get_item#method skip=false abstract type="GLib.Object?"
> ListStore
> + .find_with_equal_func.equal_func type_arguments="GLib.Object"
> .insert_sorted.compare_func type_arguments="GLib.Object"
> .sort.compare_func type_arguments="GLib.Object"
> MemoryInputStream
> @@ -276,11 +280,11 @@ Initable
> PollableInputStream
> .create_source type="GLib.PollableSource"
> .read_nonblocking.buffer type="uint8[]" array_length_idx=1
> - .read_nonblocking#virtual_method name="read_nonblocking_fn"
> + .read_nonblocking#virtual_method name="read_nonblocking_fn" no_wrapper
> PollableOutputStream
> .create_source type="GLib.PollableSource"
> - .write_nonblocking#virtual_method name="write_nonblocking_fn"
> - .writev_nonblocking#virtual_method name="writev_nonblocking_fn"
> + .write_nonblocking#virtual_method name="write_nonblocking_fn" no_wrapper
> + .writev_nonblocking#virtual_method name="writev_nonblocking_fn" no_wrapper
> TlsClientConnection
> .new nullable
> .accepted_cas type="GLib.List<GLib.ByteArray>"
> diff --git a/vapi/metadata/Gtk-4.0-custom.vala b/vapi/metadata/Gtk-4.0-custom.vala
> index c3f98568b..9c600f520 100644
> --- a/vapi/metadata/Gtk-4.0-custom.vala
> +++ b/vapi/metadata/Gtk-4.0-custom.vala
> @@ -39,4 +39,7 @@ namespace Gtk {
> [CCode (delegate_target = false)]
> public unowned Gtk.BuildableParserErrorFunc error;
> }
> +
> + [CCode (cname = "GTK_INVALID_LIST_POSITION")]
> + public const uint INVALID_LIST_POSITION;
> }
> diff --git a/vapi/metadata/Gtk-4.0.metadata b/vapi/metadata/Gtk-4.0.metadata
> index 76cfd5e3b..d918d3c8e 100644
> --- a/vapi/metadata/Gtk-4.0.metadata
> +++ b/vapi/metadata/Gtk-4.0.metadata
> @@ -6,10 +6,22 @@
> * cheader_filename="gtk/gtk.h"
> IMContext cheader_filename="gtk/gtk.h,gtk/gtkimmodule.h"
>
> +// Needs to be in gtk4-unix-print
> +PageSetupUnixDialog skip
> +Printer skip
> +PrinterFunc skip
> +PrintBackend skip
> +PrintCapabilities skip
> +PrintJob skip
> +PrintJobCompleteFunc skip
> +PrintUnixDialog skip
> +enumerate_printers skip
> +
> // Causes vapigen issues, not sure why -- <union> without name
>
> // G-I doesn't support structs
> Border struct
> +ExpressionWatch compact=false
> Requisition struct
> TextIter struct
> TreeIter struct
> diff --git a/vapi/metadata/GtkUnixPrint-4.0-custom.vala b/vapi/metadata/GtkUnixPrint-4.0-custom.vala
> new file mode 100644
> index 000000000..88fb76f6b
> --- /dev/null
> +++ b/vapi/metadata/GtkUnixPrint-4.0-custom.vala
> @@ -0,0 +1,17 @@
> +namespace Gtk {
> + [CCode (cheader_filename = "gtk/gtkunixprint.h")]
> + public class Printer : GLib.Object {
> + [CCode (cname = "gtk_printer_accepts_pdf")]
> + public bool get_accepts_pdf ();
> + [CCode (cname = "gtk_printer_accepts_ps")]
> + public bool get_accepts_ps ();
> + [CCode (cname = "gtk_printer_is_virtual")]
> + public bool get_is_virtual ();
> + public Gtk.PrintBackend backend { get; construct; }
> + }
> + [CCode (cheader_filename = "gtk/gtkunixprint.h")]
> + public abstract class PrintBackend : GLib.Object {
> + }
> + [CCode (cheader_filename = "gtk/gtkunixprint.h", instance_pos = 1.9)]
> + public delegate void PrintJobCompleteFunc (Gtk.PrintJob print_job) throws GLib.Error;
> +}
> diff --git a/vapi/metadata/GtkUnixPrint-4.0.metadata b/vapi/metadata/GtkUnixPrint-4.0.metadata
> new file mode 100644
> index 000000000..c595b6bde
> --- /dev/null
> +++ b/vapi/metadata/GtkUnixPrint-4.0.metadata
> @@ -0,0 +1,12 @@
> +* cheader_filename="gtk/gtkunixprint.h"
> +* skip
> +
> +PageSetupUnixDialog skip=false
> +Printer skip=false
> +PrinterFunc skip=false
> +//PrintBackend skip=false
> +PrintCapabilities skip=false
> +PrintJob skip=false
> +//PrintJobCompleteFunc skip=false
> +PrintUnixDialog skip=false
> +enumerate_printers skip=false
> diff --git a/vapi/packages/gtk4-unix-print/gtk4-unix-print.excludes b/vapi/packages/gtk4-unix-print/gtk4-unix-print.excludes
> deleted file mode 100644
> index e69de29bb..000000000
> diff --git a/vapi/packages/gtk4-unix-print/gtk4-unix-print.files b/vapi/packages/gtk4-unix-print/gtk4-unix-print.files
> diff --git a/vapi/posix.vapi b/vapi/posix.vapi
> index 24c07b326..3bc992d55 100644
> --- a/vapi/posix.vapi
> +++ b/vapi/posix.vapi
> @@ -2496,11 +2496,11 @@ namespace Posix {
> [CCode (cheader_filename = "unistd.h")]
> public int execlp (string path, params string[] arg);
> [CCode (cheader_filename = "unistd.h")]
> - public int execv (string path, [CCode (array_length = false, null_terminated = true)] string[] arg);
> + public int execv (string path, [CCode (array_length = false, array_null_terminated = true)] string[] arg);
> [CCode (cheader_filename = "unistd.h")]
> - public int execvp (string path, [CCode (array_length = false, null_terminated = true)] string[] arg);
> + public int execvp (string path, [CCode (array_length = false, array_null_terminated = true)] string[] arg);
> [CCode (cheader_filename = "unistd.h")]
> - public int pipe ([CCode (array_length = false, null_terminated = false)] int[] pipefd);
> + public int pipe ([CCode (array_length = false, array_null_terminated = false)] int[] pipefd);
> [CCode (cheader_filename = "unistd.h")]
> public ssize_t read (int fd, void* buf, size_t count);
> [CCode (cheader_filename = "unistd.h")]
> diff --git a/vapi/webkit2gtk-4.0.vapi b/vapi/webkit2gtk-4.0.vapi
> index b50ca9885..a7616e387 100644
> --- a/vapi/webkit2gtk-4.0.vapi
> +++ b/vapi/webkit2gtk-4.0.vapi
> @@ -471,14 +471,24 @@ namespace WebKit {
> public unowned WebKit.JavascriptResult @ref ();
> public void unref ();
> }
> + [CCode (cheader_filename = "webkit2/webkit2.h", type_id = "webkit_media_key_system_permission_request_get_type ()")]
> + public class MediaKeySystemPermissionRequest : GLib.Object, WebKit.PermissionRequest {
> + [CCode (has_construct_function = false)]
> + protected MediaKeySystemPermissionRequest ();
> + }
> [CCode (cheader_filename = "webkit2/webkit2.h", ref_function = "webkit_mime_info_ref", type_id = "webkit_mime_info_get_type ()", unref_function = "webkit_mime_info_unref")]
> [Compact]
> public class MimeInfo {
> + [Version (deprecated = true, deprecated_since = "2.32")]
> public unowned string get_description ();
> [CCode (array_length = false, array_null_terminated = true)]
> + [Version (deprecated = true, deprecated_since = "2.32")]
> public unowned string[] get_extensions ();
> + [Version (deprecated = true, deprecated_since = "2.32")]
> public unowned string get_mime_type ();
> + [Version (deprecated = true, deprecated_since = "2.32")]
> public unowned WebKit.MimeInfo @ref ();
> + [Version (deprecated = true, deprecated_since = "2.32")]
> public void unref ();
> }
> [CCode (cheader_filename = "webkit2/webkit2.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "webkit_navigation_action_get_type ()")]
> @@ -614,9 +624,13 @@ namespace WebKit {
> public class Plugin : GLib.Object {
> [CCode (has_construct_function = false)]
> protected Plugin ();
> + [Version (deprecated = true, deprecated_since = "2.32")]
> public unowned string get_description ();
> + [Version (deprecated = true, deprecated_since = "2.32")]
> public unowned GLib.List<WebKit.MimeInfo> get_mime_info_list ();
> + [Version (deprecated = true, deprecated_since = "2.32")]
> public unowned string get_name ();
> + [Version (deprecated = true, deprecated_since = "2.32")]
> public unowned string get_path ();
> }
> [CCode (cheader_filename = "webkit2/webkit2.h", type_id = "webkit_pointer_lock_permission_request_get_type ()")]
> @@ -729,7 +743,7 @@ namespace WebKit {
> public uint16 get_port ();
> [Version (since = "2.16")]
> public unowned string? get_protocol ();
> - [Version (since = "2.16")]
> + [Version (deprecated = true, deprecated_since = "2.32", since = "2.16")]
> public bool is_opaque ();
> [Version (since = "2.16")]
> public unowned WebKit.SecurityOrigin @ref ();
> @@ -760,7 +774,7 @@ namespace WebKit {
> public uint32 get_default_font_size ();
> public uint32 get_default_monospace_font_size ();
> public bool get_draw_compositing_indicators ();
> - [Version (since = "2.2")]
> + [Version (deprecated = true, deprecated_since = "2.32.", since = "2.2")]
> public bool get_enable_accelerated_2d_canvas ();
> [Version (since = "2.24")]
> public bool get_enable_back_forward_navigation_gestures ();
> @@ -790,6 +804,7 @@ namespace WebKit {
> public bool get_enable_mock_capture_devices ();
> public bool get_enable_offline_web_application_cache ();
> public bool get_enable_page_cache ();
> + [Version (deprecated = true, deprecated_since = "2.32")]
> public bool get_enable_plugins ();
> [Version (deprecated = true, deprecated_since = "2.16.")]
> public bool get_enable_private_browsing ();
> @@ -836,7 +851,7 @@ namespace WebKit {
> public void set_default_font_size (uint32 font_size);
> public void set_default_monospace_font_size (uint32 font_size);
> public void set_draw_compositing_indicators (bool enabled);
> - [Version (since = "2.2")]
> + [Version (deprecated = true, deprecated_since = "2.32.", since = "2.2")]
> public void set_enable_accelerated_2d_canvas (bool enabled);
> [Version (since = "2.24")]
> public void set_enable_back_forward_navigation_gestures (bool enabled);
> @@ -866,6 +881,7 @@ namespace WebKit {
> public void set_enable_mock_capture_devices (bool enabled);
> public void set_enable_offline_web_application_cache (bool enabled);
> public void set_enable_page_cache (bool enabled);
> + [Version (deprecated = true, deprecated_since = "2.32")]
> public void set_enable_plugins (bool enabled);
> [Version (deprecated = true, deprecated_since = "2.16.")]
> public void set_enable_private_browsing (bool enabled);
> @@ -913,7 +929,7 @@ namespace WebKit {
> public uint default_font_size { get; set construct; }
> public uint default_monospace_font_size { get; set construct; }
> public bool draw_compositing_indicators { get; set construct; }
> - [Version (since = "2.2")]
> + [Version (deprecated = true, deprecated_since = "2.32.", since = "2.2")]
> public bool enable_accelerated_2d_canvas { get; set construct; }
> [Version (since = "2.24")]
> public bool enable_back_forward_navigation_gestures { get; set construct; }
> @@ -943,6 +959,7 @@ namespace WebKit {
> public bool enable_mock_capture_devices { get; set construct; }
> public bool enable_offline_web_application_cache { get; set construct; }
> public bool enable_page_cache { get; set construct; }
> + [Version (deprecated = true, deprecated_since = "2.32")]
> public bool enable_plugins { get; set construct; }
> [Version (deprecated = true, deprecated_since = "2.16.")]
> public bool enable_private_browsing { get; set construct; }
> @@ -1073,6 +1090,10 @@ namespace WebKit {
> public void remove_filter (WebKit.UserContentFilter filter);
> [Version (since = "2.26")]
> public void remove_filter_by_id (string filter_id);
> + [Version (since = "2.32")]
> + public void remove_script (WebKit.UserScript script);
> + [Version (since = "2.32")]
> + public void remove_style_sheet (WebKit.UserStyleSheet stylesheet);
> [Version (since = "2.8")]
> public void unregister_script_message_handler (string name);
> [Version (since = "2.22")]
> @@ -1095,11 +1116,11 @@ namespace WebKit {
> [Version (since = "2.28")]
> public UserMessage (string name, GLib.Variant? parameters);
> [Version (since = "2.28")]
> - public unowned GLib.UnixFDList get_fd_list ();
> + public unowned GLib.UnixFDList? get_fd_list ();
> [Version (since = "2.28")]
> public unowned string get_name ();
> [Version (since = "2.28")]
> - public unowned GLib.Variant get_parameters ();
> + public unowned GLib.Variant? get_parameters ();
> [Version (since = "2.28")]
> public void send_reply (WebKit.UserMessage reply);
> [CCode (has_construct_function = false)]
> @@ -1161,6 +1182,7 @@ namespace WebKit {
> public unowned string get_favicon_database_directory ();
> [Version (since = "2.26")]
> public unowned WebKit.GeolocationManager get_geolocation_manager ();
> + [Version (deprecated = true, deprecated_since = "2.32")]
> public async GLib.List<WebKit.Plugin> get_plugins (GLib.Cancellable? cancellable = null) throws GLib.Error;
> [Version (since = "2.4")]
> public WebKit.ProcessModel get_process_model ();
> @@ -1170,6 +1192,7 @@ namespace WebKit {
> public bool get_spell_checking_enabled ();
> [CCode (array_length = false, array_null_terminated = true)]
> public unowned string[] get_spell_checking_languages ();
> + [Version (deprecated = true, deprecated_since = "2.32.")]
> public WebKit.TLSErrorsPolicy get_tls_errors_policy ();
> [Version (since = "2.30")]
> public bool get_use_system_appearance_for_scrollbars ();
> @@ -1188,6 +1211,7 @@ namespace WebKit {
> public void register_uri_scheme (string scheme, owned WebKit.URISchemeRequestCallback callback);
> [Version (since = "2.28")]
> public void send_message_to_all_extensions (WebKit.UserMessage message);
> + [Version (deprecated = true, deprecated_since = "2.32")]
> public void set_additional_plugins_directory (string directory);
> [Version (since = "2.18")]
> public void set_automation_allowed (bool allowed);
> @@ -1195,7 +1219,7 @@ namespace WebKit {
> [Version (deprecated = true, deprecated_since = "2.10.")]
> public void set_disk_cache_directory (string directory);
> public void set_favicon_database_directory (string? path);
> - [Version (since = "2.16")]
> + [Version (deprecated = true, deprecated_since = "2.32.", since = "2.16")]
> public void set_network_proxy_settings (WebKit.NetworkProxyMode proxy_mode, WebKit.NetworkProxySettings? proxy_settings);
> public void set_preferred_languages ([CCode (array_length = false, array_null_terminated = true)] string[]? languages);
> [Version (since = "2.4")]
> @@ -1204,6 +1228,7 @@ namespace WebKit {
> public void set_sandbox_enabled (bool enabled);
> public void set_spell_checking_enabled (bool enabled);
> public void set_spell_checking_languages ([CCode (array_length = false, array_null_terminated = true)] string[] languages);
> + [Version (deprecated = true, deprecated_since = "2.32.")]
> public void set_tls_errors_policy (WebKit.TLSErrorsPolicy policy);
> [Version (since = "2.30")]
> public void set_use_system_appearance_for_scrollbars (bool enabled);
> @@ -1526,14 +1551,20 @@ namespace WebKit {
> public bool get_persistent_credential_storage_enabled ();
> [Version (since = "2.30")]
> public unowned string? get_service_worker_registrations_directory ();
> + [Version (since = "2.32")]
> + public WebKit.TLSErrorsPolicy get_tls_errors_policy ();
> [Version (deprecated = true, deprecated_since = "2.24.", since = "2.10")]
> public unowned string? get_websql_directory ();
> [Version (since = "2.16")]
> public async bool remove (WebKit.WebsiteDataTypes types, GLib.List<WebKit.WebsiteData> website_data, GLib.Cancellable? cancellable = null) throws GLib.Error;
> [Version (since = "2.30")]
> public void set_itp_enabled (bool enabled);
> + [Version (since = "2.32")]
> + public void set_network_proxy_settings (WebKit.NetworkProxyMode proxy_mode, WebKit.NetworkProxySettings? proxy_settings);
> [Version (since = "2.30")]
> public void set_persistent_credential_storage_enabled (bool enabled);
> + [Version (since = "2.32")]
> + public void set_tls_errors_policy (WebKit.TLSErrorsPolicy policy);
> [Version (since = "2.10")]
> public string base_cache_directory { get; construct; }
> [Version (since = "2.10")]
> @@ -1983,6 +2014,9 @@ namespace WebKit {
> [CCode (cheader_filename = "webkit2/webkit2.h")]
> public static uint get_minor_version ();
> [CCode (cheader_filename = "webkit2/webkit2.h")]
> + [Version (since = "2.32")]
> + public static unowned string media_key_system_permission_get_name (WebKit.MediaKeySystemPermissionRequest request);
> + [CCode (cheader_filename = "webkit2/webkit2.h")]
> [Version (since = "2.24")]
> public static string? uri_for_display (string uri);
> [CCode (cheader_filename = "webkit2/webkit2.h")]
> diff --git a/vapi/webkit2gtk-web-extension-4.0.vapi b/vapi/webkit2gtk-web-extension-4.0.vapi
> index f0c03aabb..893236c56 100644
> --- a/vapi/webkit2gtk-web-extension-4.0.vapi
> +++ b/vapi/webkit2gtk-web-extension-4.0.vapi
> @@ -4104,11 +4104,11 @@ namespace WebKit {
> public UserMessage (string name, GLib.Variant? parameters);
> public static GLib.Quark error_quark ();
> [Version (since = "2.28")]
> - public unowned GLib.UnixFDList get_fd_list ();
> + public unowned GLib.UnixFDList? get_fd_list ();
> [Version (since = "2.28")]
> public unowned string get_name ();
> [Version (since = "2.28")]
> - public unowned GLib.Variant get_parameters ();
> + public unowned GLib.Variant? get_parameters ();
> [Version (since = "2.28")]
> public void send_reply (WebKit.UserMessage reply);
> [CCode (has_construct_function = false)]
> diff --git a/vapi/zlib.vapi b/vapi/zlib.vapi
> index 2ce34ad16..6f76ba941 100644
> --- a/vapi/zlib.vapi
> +++ b/vapi/zlib.vapi
> @@ -139,7 +139,7 @@ namespace ZLib {
> public int inflate (int flush);
> [CCode (cname = "inflateSetDictionary")]
> public int set_dictionary ([CCode (array_length_type = "guint")] uint8[] dictionary);
> - [CCode (cnmae = "inflateSync")]
> + [CCode (cname = "inflateSync")]
> public int sync ();
> public int reset ();
> public int prime (int bits, int value);
--
Sebastian Ramacher
Attachment:
signature.asc
Description: PGP signature