Re: [Vala] [ANNOUNCE] Vala 0.3.3 - Compiler for the GObject type system

2008-06-04 Thread Jürg Billeter
On Tue, 2008-06-03 at 14:58 -0700, Michael Lawrence wrote:
 On Tue, Jun 3, 2008 at 2:18 PM, Jürg Billeter [EMAIL PROTECTED] wrote:
 Vala 0.3.3 is now available for download at:
   http://download.gnome.org/sources/vala/0.3/
 
 Changes since 0.3.2
  * Support overriding default method handlers of signals.

Signals often have a virtual default method handler, it's now possible
to override this handler in derived classes in Vala, that's for example
necessary to implement custom widgets and convenient in other places.
The syntax is the same as for overriding normal methods, an example
custom widget can be found in the Wiki[1].

  * Support dynamic access to properties and signals of
 GObjects.
 
 Every time a new Vala release comes out, there are features that I
 don't understand. Maybe these are obvious to everyone else, but what
 does dynamic access to properties mean? 

This enables reading and setting property values from GObjects in a
similar way as the dynamic D-Bus client support. This can for example be
useful for GStreamer elements where you might not have bindings for all
plugins.

dynamic Element spectrum = ElementFactory.make (spectrum, spectrum);
spectrum.width = 256;

valac will generate calls to g_object_set for unknown properties, if the
variable of the corresponding object has been declared with the
`dynamic' modifier.

  * Experimental support for nullable value types.

Structs and basic types can now also be marked as nullable, this has the
effect of boxing the value.

int? foo = null;
int? bar = 42;

  * Improve support for classes not deriving from GLib.Object.

All classes without the [Compact] attribute will now be registered with
GType and therefore will have support for virtual methods, runtime type
information, and reference counting, even if the class doesn't derive
from GLib.Object. Classes without a base class will be registered as new
fundamental types in GType.

We still recommend to derive all classes from GLib.Object unless you
require higher performance for object instantiation.

  * Support verbatim strings.

Verbatim strings may contain line breaks, backslashes, and quotes,
however, they don't provide an escape mechanism.

  * Add parser for Genie (Jamie McCracken)

Best explained in the Wiki[2]

HTH,

Juerg

[1] http://live.gnome.org/Vala/GTKSample
[2] http://live.gnome.org/Genie

___
Vala-list mailing list
Vala-list@gnome.org
http://mail.gnome.org/mailman/listinfo/vala-list


[Vala] [ANNOUNCE] Vala 0.3.3 - Compiler for the GObject type system

2008-06-03 Thread Jürg Billeter
We are pleased to announce version 0.3.3 of Vala, a compiler for the
GObject type system.

Vala 0.3.3 is now available for download at:
   http://download.gnome.org/sources/vala/0.3/

Changes since 0.3.2
 * Support overriding default method handlers of signals.
 * Support dynamic access to properties and signals of GObjects.
 * Experimental support for nullable value types.
 * Improve support for classes not deriving from GLib.Object.
 * Support verbatim strings.
 * Add parser for Genie (Jamie McCracken)
 * Experimental support for arrays of arrays.
 * Documentation improvements (Phil Housley)
 * Improvements to D-Bus support (Ali Sabil, Philip Van Hoof, Yu Feng)
 * Add libepc-1.0 bindings (Ali Sabil)
 * Add libtiff bindings (Christian Meyer)
 * Updates to the GStreamer bindings (Ali Sabil and Jaap A. Haitsma)
 * Many bug fixes and performance improvements.

Vala is a new programming language that aims to bring modern programming
language features to GNOME developers without imposing any additional
runtime requirements and without using a different ABI compared to
applications and libraries written in C.

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. It's also planned to generate GIDL files when gobject-
introspection is ready.

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

Vala is designed to allow access to existing C libraries, especially
GObject-based libraries, without the need for runtime bindings. Each to
be used library requires a Vala API file at compile-time, containing the
class and method declarations in Vala syntax. Vala currently comes with
bindings for current versions of GLib, GTK+, and many more.

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.

More information about Vala is available at

http://live.gnome.org/Vala


The Vala Team

Jürg Billeter and Raffaele Sandrini


___
Vala-list mailing list
Vala-list@gnome.org
http://mail.gnome.org/mailman/listinfo/vala-list