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:
    + Always use G_TYPE_CHECK_INSTANCE_TYPE for external symbols
    + When freeing local variables don't stop at "switch" on "continue" [#799]
      !!! Introduces an API/ABI Break of CCodeBaseModule.append_local_free() !!!
    + Use array_length of collection variable instead of expression
    + Assign GValue result of function calls to temp-var on copy_value [#819]
    + Real structs are allowed by simple generics and passed as reference [#819]
    + Use G_TYPE_CHECK_INSTANCE_CAST for comparisons with interfaces
    + Include required type-definition when casting from generic pointer [#828]
  - girwriter:
    + Mention that this file is generated and not meant to be modified
    + Properly resolve GLib.TypeInterface instead of hardcoding it
    + Multiple improvements and fixes for e.g. GType classes
  - girparser:
    + Add support for string "ctype" metadata [#793]
    + Skip 'attribute' elements
    + Handle "function-macro" by skipping them [gi#159]
  - parser: Multiple corrections for source-location of code-nodes
  - compiler: Add OptionFlags.NO_ARG to deprecated "--thread" option
  - tests: Null-terminate arrays for compatibility test of uint8 / uchar [#809]

 * Bindings:
  - clutter-1.0: Bind Margin, PaintVolume, Point, Rect and Size as struct [#795]
  - cogl-1.0: Fix out-params in Cogl.get_modelview_matrix/projection_matrix/
    bitmasks [#794]
  - glib-2.0: Bind strcmp0 as GLib.CompareFunc<string?> [#810]
  - glib-2.0: Add MappedFile.from_fd constructor [#824]
  - posix: Fix return-value of mknod() and c-include for tcgetsid()
  - webkit2gtk-4.0: Fix WebContext.initialize_notification_permissions()
  - x11: Fix return type of XInternAtoms and XGetAtomNames bindings
  - xtst: Fix signature of XTest.fake_relative_motion_event()


ChangeLog
=========
https://download.gnome.org/sources/vala/0.36/vala-0.36.20.changes  (5.00K)

Download
========
https://download.gnome.org/sources/vala/0.36/vala-0.36.20.tar.xz (2.78M)
  sha256sum: be960a87841d85ff76cbd0e10eb691675190e54bd690d76982b3fb94a1fc67a7

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

Reply via email to