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]
    + Reduce code duplications when generation base-access
  - vala:
    + Warn when passing arrays to typeof(), except for "string[]" [#868]
    + Don't falsely resolve binary-expression to bool [#869]
    + Do not allow += for arrays with fixed length
    + Infer array length of inline allocated arrays for fields [#644046]
    + Do not allow to .resize() on arrays with fixed length
    + Do not allow to change .length of arrays with fixed length
    + Improve error message for arrays as type arguments
    + Improve error reporting for invalid interface prerequisites [#437]
    + Write value of constants/enums in fast-vapi if constant only [#461]
    + Restore DestroysInstance behaviour for non-compact classes [#873]
  - parser: `owned` is not allowed on Constants
  - girparser: Detect and replace "-" in parameter names
  - girwriter: Add readable="0"/private="1" attribute to type-specific fields
  - gidl:
    + Calculate size correctly, avoid use-after-free
    + Avoid use of uninitialized "markup" warning
    + Ignore flags like -mfpmath=sse, -msse or -msse2
  - valadoc:
    + libvaladoc: Fix parameter and property ownership declarations
    + Fix ownership declarations of Constants
  - pkg-config:
    + vala: Add missing gmodule-2.0 to Requires.private of pkg-config file
    + libvaladoc: Move gmodule-2.0 to Requires.private of pkg-config file

 * Bindings:
  - glib-2.0: Guard against passing null source to GLib.Memory.copy()
  - gio-2.0: Use custom TaskReadyCallback delegate in Task.report*_error()
  - gstreamer: Update from 1.17.0+ git master
  - gtk+-3.0: Skip _MountOperationHandler* symbols
  - gtk4,gtk4-unix-print: Update to 3.96.0+ab407ba5
  - libusb-1.0: Don't depend on glib-2.0
  - libusb-1.0: Remove unused private "malloc" binding
  - linux: Add memfd_create(2)
  - posix: Bind some essential memory allocation functions
  - webkit2gtk-4.0: Update to 2.27.2


ChangeLog
=========
https://download.gnome.org/sources/vala/0.46/vala-0.46.4.changes  (4.64K)

Download
========
https://download.gnome.org/sources/vala/0.46/vala-0.46.4.tar.xz (3.22M)
  sha256sum: 4bb9b60fc0230b0db2c8a0e2a80ec29f1c10b43dc78355abba78adedbc2e03a1

_______________________________________________
ftp-release-list mailing list
ftp-release-list@gnome.org
https://mail.gnome.org/mailman/listinfo/ftp-release-list

Reply via email to