vala 0.43.4



About vala
==========

valac, the Vala compiler, is a self-hosting compiler that translates
Vala source code into C source and header files. It uses the GObject
type system to create classes and interfaces declared in the Vala
source code.

The syntax of Vala is similar to C#, modified to better fit the
GObject type system. Vala supports modern language features as the
following: Interfaces, Properties, Signals, Foreach, Lambda
expressions, Type inference for local variables, Generics, Non-null
types, Assisted memory management, Exception handling, Type modules
(Plugins)

Vala is designed to allow access to existing C libraries, especially
GObject-based libraries, without the need for runtime bindings. All
that is needed to use a library with Vala is an API file, containing
the class and method declarations in Vala syntax. Vala currently comes
with bindings for GLib and GTK+ and many others from the GNOME
Platform.

Using classes and methods written in Vala from an application written
in C is not difficult. The Vala library only has to install the
generated header files and C applications may then access the GObject-
based API of the Vala library as usual. It should also be easily
possible to write a bindings generator for access to Vala libraries
from applications written in e.g. C# as the Vala parser is written as
a library, so that all compile-time information is available when
generating a binding.

News
====

 * Various improvements and bug fixes:
  - vala:
    + Array with fixed length don't require explicit instantiation (#720)
    + Add GenericType.get_actual_type()
    + Allow get_actual_type() to be used for expected failures
    + Add Method.compatible_no_error()
    + Don't just guess and check for a matching base_interface_method (#548)
    + Search in all interfaces for an implementation match (#548)
    + Allow explicit interface methods to be virtual (#548)
    + Report invalid instance member access to property (#605)
  - codegen:
    + Use properly checked implicit interface implementations (#548)
    + Use temp-var for MethodCall with out/ref arguments (#722)
    + Use temp-vars for ellipsis out-arguments to fix memory management (#722)
    + Add default_value for CType to initialize variables if needed (#724)
    + Cast instance parameter for property access in object-initializer
    + Don't check boolean values for (in)equality in GTask API (#726)
    + Add missing data parameter to GTypeInfo callbacks
    + Properly set annotations field of GDBus*Info struct to NULL
    + Cast instance and result of g_async_initable_new_finish() call
  - valadoc: Drop duplicated code to add source files and use CodeContext API
  - libvaladoc: Skip empty Version.replacement attribute to avoid critical
  - build: Don't leak libvalaccode symbols to libvaladoc
  - Add a basic CONTRIBUTING.md file that links to the relevant Wiki page
  - tests:
    + Fix try_parse() tests to not compare to already free'd memory
    + Warnings and criticals should be fatal on compile time too

 * Bindings:
  - glib-2.0: Use correct array-length-type for returned arrays (#171)
  - glib-2.0: Add RecMutexLocker since 2.60
  - gio-2.0: Fix File.replace_contents_bytes_async() (!37)
  - gobject-2.0: Use correct array-length-type for returned arrays
  - poppler-glib: Update to 0.71
  - gstreamer: Update from 1.15+ git master
  - gtk+-3.0: Update to 3.24.2+a8e07254
  - gtk+-4.0: Update to 3.94.0+4404afc9
  - sqlite3: Correct return C type of Statement.column_text & Value.to_text
  - webkitgtk-4.0: Update to 2.23.1
  - vapi: Update GIR-based bindings


ChangeLog
=========
https://download.gnome.org/sources/vala/0.43/vala-0.43.4.changes  (5.83K)

Download
========
https://download.gnome.org/sources/vala/0.43/vala-0.43.4.tar.xz (3.16M)
  sha256sum: 7a6e54f35e0f46272ba7ecb5aaa9057d7d4309025c588870e2e6a9c6e217b5eb



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]