vala 0.43.1



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
====

 * Highlights:
  - Emit G_DEFINE_AUTOPTR_CLEANUP_FUNC() for classes (requires glib 2.44) [#670]
  - Enforce "return yield ..." syntax to be expected [#675]
  - Drop deprecated syntax support of += and -= for signals [#676]
  - Drop deprecated syntax support of # modifier and operator [#677]
  - Allow disabling the build of valadoc [#596]
  - Add support for SingleInstance attribute for GObject classes [#647]
  - Don't allow to declare array parameters with "type array[]" [#163]
  - Collect error_types on demand to allow transformations
  - Check for matching ownership of type-arguments [#696]
  - Add profile specific delegate target/destroy types
  - Don't explicitly add glib headers, the use of symbols will do that [#623]
  - Add --enable-debug configure option
  - Move setting of default defines for VALA_0_XX and GLIB_2_XX to CodeContext
  - Add support for delegate parameters in signals [#205]
  - Admit that structs are emtpy even with a static property [#446]

 * Various improvements and bug fixes:
  - codegen:
    + Fix method pointer cast if instance isn't at first position
    + Transfer ownership of compact class to DestroysInstance method [#645]
    + Add destroy function for GLib.Array [#572]
    + Fix canonical string for quark of error domains
    + Make sure to include declarations for delegate typed parameters
    + Don't emit type_id for enum in non GOBJECT profile
    + Don't emit unused temp variable for element access assignments
    + Actually create method cast for base interface method as needed
    + Mark needle parameter of internal array-contains methods as const [#504]
    + Emit initializer for enum-value into wanted declaration space [#167]
    + Add void to delegate typedef declarations without parameters
    + Deprecate "finish_function" and "ctype" ccode-attribute
    + Fix get_ccode_name() for properties
    + Add ccode getters for GType functions of Classes and Interfaces
    + Don't allow more than one consecutive empty lines in generated code
  - vala:
    + Copy instance_pos argument from virtual/abstract base methods [#540483]
    + Compact classes don't allow private/class fields and to lock fields
    + Use comment which was already retrieved in parse_declaration()
    + Add missing re-check guards for Do/For/WhileStatement and SwitchLabel
    + Type check for errors require an error expression [#362]
    + Make check_arguments() more verbose and don't bail on first error [#438]
    + Don't emit member access of assignments on static properties [#573]
    + Use clearer error message for automatic properties in interfaces [#656]
    + Admit that structs are emtpy even with a static property [#684]
    + Let UsingDirective hold reference to UnresolvedSymbol instances only
    + Add ArrayType.length_type and ArrayCreationExpression.length_type [#607]
    + Remove hardcoded "int" length type and use ArrayType.length_type [#607]
    + Use is_weak() for type-arguments in DataType.to_qualified_string()
  - girwriter: Write glib-type attributes for Enums/Structs with type_id
  - girparser: Skip "source-position" elements and docs in transparent union
  - valadoc:
    + Match property signature with vala's codewriter
    + Sort symbols and members where possible
    + Actually assign type_id of Api.Structs
    + Add type_id to Api.Enum/Interface
    + Skip package dependency if target directory already exists
    + Fix a few errors and warnings in stylesheet
    + Adjust stylesheet to unbreak Epiphany [#644]
    + Several API clean ups
    + Add --fatal-warnings command line option
  - docs: Use Markdown for README and include build instructions
  - testrunner: Compile and run tests separately and pass buildsystem's CC
    through to valac, add various -Werror=* build cflags

 * Bindings:
  - gio-2.0: Add missing File.new_build_filename()
  - glib-2.0: Add missing Array.set_clear_func() binding
  - glib-2.0: Avoid double-free in GLib.Array if clear_func is set
  - glib-2.0: Drop g_object_unref which is part of gobject-2.0
  - gobject-2.0: Attribute all symbols with cheader_filename = "glib-object.h"
  - gdk-x11-3.0,gtk+-3.0: Update to 3.24.1+356f1f59
  - gtk+-3.0: Treat Gtk.IconInfo as GLib.Object which it is since 3.8 [#663]
  - gtk+-4.0: Update to 3.94.0+8de1ba2c
  - gstreamer: Update from 1.15+ git master
  - posix: Add CommandPipe as a sub-type of FILE [#645]


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

Download
========
https://download.gnome.org/sources/vala/0.43/vala-0.43.1.tar.xz (3.15M)
  sha256sum: 2eb68a64f693ad9797327b1ea3862458f93af6323c4df6e50e67cfb4396ab699



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