vala 0.40.18



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:
  - codegen:
    + Use G_TYPE_INSTANCE_GET_INTERFACE to get vtable for base-access
    + Fix setting of generic-type properties for gobject chain up [#654702]
    + Make type-parameter properties readable [#190]
    + Fix vfunc signature of delegate-typed property in interface
    + Fix support of dynamic DBus methods
  - vala:
    + Warn when passing arrays to typeof(), except for "string[]" [#868]
    + Don't falsely resolve binary-expression to bool [#869]
    + Do not allow += for arrays with fixed length
    + Array with fixed length don't require explicit instantiation [#720]
    + Infer array length of inline allocated arrays for fields [#644046]
    + Do not allow to .resize() on arrays with fixed length
    + Do not allow to change .length of arrays with fixed length
    + Improve error message for arrays as type arguments
    + Improve error reporting for invalid interface prerequisites [#437]
    + Write value of constants/enums in fast-vapi if constant only [#461]
    + Don't require constant initializer in fast-vapi [#461]
    + Restore DestroysInstance behaviour for non-compact classes [#873]
    + Report error for async creation expression without yield
  - parser: `owned` is not allowed on Constants
  - girparser: Detect and replace "-" in parameter names
  - girwriter: Add readable="0"/private="1" attribute to type-specific fields
  - gidl:
    + Calculate size correctly, avoid use-after-free
    + Avoid use of uninitialized "markup" warning
    + Ignore flags like -mfpmath=sse, -msse or -msse2
  - valadoc:
    + libvaladoc: Fix parameter and property ownership declarations
    + Fix ownership declarations of Constants
  - pkg-config:
    + vala: Add missing gmodule-2.0 to Requires.private of pkg-config file
    + libvaladoc: Move gmodule-2.0 to Requires.private of pkg-config file

 * Bindings:
  - glib-2.0: Guard against passing null source to GLib.Memory.copy()
  - gtk+-3.0: Skip _MountOperationHandler* symbols
  - libusb-1.0: Don't depend on glib-2.0
  - libusb-1.0: Remove unused private "malloc" binding
  - linux: Add memfd_create(2)
  - posix: Bind some essential memory allocation functions


ChangeLog
=========
https://download.gnome.org/sources/vala/0.40/vala-0.40.18.changes  (4.29K)

Download
========
https://download.gnome.org/sources/vala/0.40/vala-0.40.18.tar.xz (3.27M)
  sha256sum: 55c842c99270b70b5f597c4a44b4985519525b6b7ff110336be469dfe46cecb8



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