2011-12-06

Vala 0.15.0 released

The development snapshot version 0.15.0 of the Vala programming language has been released. All the bugs fixes shipped with 0.14.1 have been included in 0.15.0 plus other fixes and enhancements.

Changes


  • Manage memory of GQueue elements.
  • Switch atk bindings to .gir.
  • Switch gdk-pixbuf-2.0 bindings to .gir.
  • Switch gdk-3.0 bindings to .gir.
  • Add libwnck-3.0 bindings.
  • Many bug fixes and binding updates. 
Most notably this release fixes the memory management with GLib.Queue. If you were using this data structure, the change will fix several memory leaks.

More information and download at the Vala homepage.

2011-11-30

Vala 0.14.1 released

The new stable release 0.14.1 of the Vala programming language introduces a number of significant fixes with regards to the first 0.14.0 stable release. It is very recommended to upgrade to 0.14.1.

Changes

  • Add libwnck-3.0 bindings.
  • Many bug fixes and binding updates. 
 
More information and downloads at the Vala homepage.

2011-09-17

Vala 0.14.0 released

Hello,
the new stable 0.14 version of Vala has been released. Changes since 0.13.4 are bug fixes, nothing particularly noteworthy.

Changes since version 0.12.1:
  • Enable flow analysis for out parameters.
  • Refactor attribute handling. 
  • More refactoring in the code generator.
  • Improvements to the .gir reader.
  • Drop deprecated support for D-Bus GLib in favor of GDBus.
  • Add gedit-3.0, gtksourceview-3.0, rest-0.7, vte-2.90 and libpeas-1.0 bindings.
  • Switch pangocairo, gudev-1.0, mx-1.0, clutter-1.0, libgdata, libsoup-2.4 and json-glib-1.0 bindings to use GIR.
  • Many bug fixes and binding updates. 
Additionally you might want to take a look at the notes in the following two links when upgrading to vala 0.14:
More information at the Vala homepage.

2011-09-07

Vala 0.13.4 has been released

The new 0.13.4 version of the Vala programming language has been released. Notice that we didn't announce the 0.13.3 version on this blog. So this post will be cumulative of the changes since version 0.13.2:

Changes

  • Switch pangocairo bindings to .gir.
  • Switch gudev-1.0 bindings to .gir.
  • Switch mx-1.0 bindings to .gir.
  • Many bug fixes and binding updates. 
As usual more information and download at the Vala homepage.

2011-08-19

Libgee 0.7.0 released

Hello,
the new 0.7.0 version of libgee has been released. Libgee is a collection library providing GObject-based interfaces and classes for commonly used data structures.

API changes
  • Move to delegates with targets
  • Name of delegates moved into Gee namespace (Alban Browaeys)
  • Gee.Hashable interface
  • Moved Iterator.first into BidirIterator.first
  • Allow checking if iterator is valid by Iterator.valid property
  • Add highier-level functions by Traversable interface
  • Add lazy values
  • Introduce SortedMap interface
New implementations
  • TreeMap now implements SortedMap
Infrastructure
  • Use automake 1.11 vala support
  • Allow installation in parallel with libgee 0.5/0.6
Code Quality
  • Many bug fixes
  • Allow better code optimization for user by higher level functions
  • Lots of additional documentation
Also please note that now Libgee has its own mailing-list and its own #gee IRC channel.

More information at the libgee homepage.

2011-08-16

Vala 0.13.2 released

Hello,
after one month of active development, the new 0.13.2 version of the Vala programming language has been released.

Changes

  • Enable flow analysis for out parameters.
  • Refactor attribute handling.
  • Add gedit-3.0 bindings.
  • Add gtksourceview-3.0 bindings.
  • Add rest-0.7 bindings.
  • Add vte-2.90 bindings.
  • Switch clutter-1.0 bindings to .gir.
  • Switch libgdata bindings to .gir.
  • Switch libsoup bindings to .gir.
  • Many bug fixes and binding updates.
Some stats since 0.13.1: 216 commits and 77+ bug fixes (56 of which were bug reports).

libvala breakage. Due to the "Refactor attribute handling" point in the release notes, the libvala API regarding the C information of symbols etc. has changed. All the C bits like get_cname() have been moved out of the code tree into CCodeBaseModule. Notice that CCodeBaseModule extensively cache the results of the calls per codenode, and never invalidates it.

valac file.vapi breakage. Passing .vapi files to valac won't peek the relative .deps file anymore. This behavior will be available only when using the --pkg switch.

out parameter warnings. The "Enable flow analysis for out parameters" point in the release notes means that out parameters must be initialized both before using it and before returning from the method.

More information and download at the Vala homepage.

2011-07-09

Generators in Vala

Hello,
here I'll show a cool snippet code making use Vala async functions for emulating Python/Ruby generators. Creating a generator is as simple as extending the Generator class and implementing the generate() method.

abstract class Generator<G> {
private bool consumed;
private G value;
private SourceFunc callback;

public Generator () {
helper ();
}

private async void helper () {
yield generate ();
consumed = true;
}

protected abstract async void generate ();

protected async void feed (G value) {
this.value = value;
this.callback = feed.callback;
yield;
}

public bool next () {
return !consumed;
}

public G get () {
var result = value;
callback ();
return result;
}

public Generator<G> iterator () {
return this;
}
}

class IntGenerator : Generator<int> {
protected override async void generate () {
for (int i=0; i < 10; i++) {
yield feed (i);
}
}
}

void main () {
var gen = new IntGenerator ();
foreach (var i in gen) {
message ("%d", i);
}
}


You can find the above code snippet here as well.

2011-07-06

Vala 0.13.1 released

Hello,
the new development version 0.13.1 of the Vala programming language has been released.
Below the changes since version 0.13.0:

Changes

  • New libpeas-1.0 bindings (Michal Hruby).
  • Many bug fixes and binding updates.

More information and download at the Vala homepage.

2011-06-17

Vala 0.13.0 released

Hello,
after two months of active development, the Vala programming language has reached version 0.13.0.

Changes

  • More refactoring in the code generator.
  • Improvements to the .gir reader.
  • Switch JSON-GLib bindings to .gir.
  • Drop deprecated support for D-Bus GLib in favor of GDBus.
  • Many bug fixes and binding updates.

Some numbers: 314 commits and 94 bug fixes since version 0.12.0. So this new development release is a mix of enhancements and fixes.

A noteworthy change is the deprecation of copying delegates. A delegate is copied when it is assigned to an owned delegate variable like this:

SourceFunc a = () => false;
SourceFunc b = a;

You will get a warning: "copying delegates is discouraged" or "copying delegates it not supported". This is because of the nature of delegates in glib. Owned delegate variables have a related target and a GDestroyNotify, but it's not known how to copy/ref the target. Therefore, it's impossible to copy/ref a delegate target.

So, how do we shut the warning? There are two ways:

1) If you don't need owned delegate, you can assign to an unowned variable like this: unowned SourceFunc b = a;
2) If you want to transfer the ownership: SourceFunc b = (owned) a; After this, you can still invoke a() but the target will not be destroyed anymore when a runs out of the scope.

You might experience the same warning for delegate properties as well, like this:

public SourceFunc func { get; set; }

Here there are two solutions:
1) If you need owned delegate, use owned set like this: public SourceFunc func { get; owned set; }, while keeping the getter unowned.
2) If you don't need owned delegate: public unowned SourceFunc func { get; set }

It must be noted that due to a bug (now fixed in this release), although you defined an owned delegate property, it was practically unowned.

2011-06-01

Vala 0.12.1 released

Hello,
the new stable version 0.12.1 of the Vala programming language has been released.

Release notes are "Many bug fixes and binding updates.".
From a quantitative view point, this release fixed 42 reported bugs plus other 30 commits with fixes.

Stay tuned for the 0.13.0 development release

More information and download at the Vala homepage.

2011-05-23

Vala 0.13 preview

Hello,
Vala 0.12.0 has been released on April the 3th. So, you may think that the project is a little dead without a new release in almost two months. Well, this is not the case!

I'd like to introduce beforehand that the new development cycle will include lots of bug fixes, lots of code generator improvements and lots of gir parser improvements.

If you ever wanted to try out Vala, I'm pretty sure you will enjoy Vala 0.14. Stay tuned!

2011-04-04

Vala 0.12.0 released

Hello,
a new stable release of the Vala programming language has been released. The version 0.12.0 is now out and branched, therefore the new development series will be 0.13.

Changes since 0.11.7

  • Add get_next_char to string class.
  • Many bug fixes and binding updates.

Changes since 0.10.4

  • Add last_index_of, last_index_of_char, get_next_char, index_of, index_of_char, char_count to string class.
  • Add parse and try_parse methods to boolean and numeric types.
  • Add clutter-gtk-1.0, pixmap-1 bindings.
  • Refactoring in the code generator.
  • Improvements to the .gir writer.
  • Support BusName sender parameter in GDBus servers.
  • Update libnotify bindings to 0.7.0.
  • Improvements to the .gir reader.
  • Require and target GLib >= 2.16.
  • Guard access to out parameters to allow null arguments.
  • Add support for local constants.
  • Support file descriptor passing with GDBus.
  • Support cached property values in GDBus clients.
  • Support Cancellable parameter in GDBus clients.
  • Support no-reply methods in GDBus clients and servers.
I'd like to anticipate that the first 0.13.0 version will completely drop the dbus-glib support in favor of gdbus (migrating guide for C).

Stay tuned for the next stable and development releases.

2011-03-16

Vala 0.11.7 released

Hello,
a new version of the 0.11.x development series of the Vala programming language has been released.

Changes

  • Add support for async signal handlers (Frederik Sdun).
  • More refactoring in the code generator (Luca Bruno).
  • Improvements to the .gir writer (Michal Hruby).
  • Many bug fixes and binding updates.
The first mentioned change allows passing an async method as callback for a signal. The behavior is simple: the async method will be started when the signal is fired, like with async_method_cb.begin().

2011-02-15

Vala 0.11.6 released

Hello,
a new version of the 0.11.x development series of the Vala programming language has been released.

Changes

  • Add parse and try_parse methods to boolean and numeric types.
  • Add clutter-gtk-1.0 bindings.
  • Add pixmap-1 bindings (Evan Nemerson).
  • Many bug fixes and binding updates.
Most notably in this release is the deprecation of string.to_basictype() methods in favor of basictype.parse (...). This allows a more elastic convention for adding further parsing methods for other types.

As usual download and more information at the Vala homepage.

2011-01-21

Vala 0.11.5 released

Hello,
a new version of the Vala programming language has been released. The previous version 0.11.4 was released only about a week ago, so the development is going on fast.

Changes

  • Add last_index_of and last_index_of_char to string class.
  • More refactoring in the code generator (Luca Bruno).
  • Improvements to the .gir writer (Michal Hruby).
  • Many bug fixes and binding updates.
More information and download at the Vala homepage.

2011-01-15

Vala 0.11.4 released

Hello,
the 0.11.4 version of the Vala programming language has been released.

Changes

  • Add index_of, index_of_char, and char_count to string class.
  • Many bug fixes and binding updates.
Most of changed the methods to the string class (like string.index_of) replaced other methods (like string.chr), that are now deprecated.
This version, though released soon after the 0.11.3 version, contains a lot of bug fixes.

Information and download at the Vala homepage.

2011-01-06

Vala 0.10.2 and 0.11.3 released

Hello,
stable and development version of the Vala programming language have been released.

Vala 0.10.2 changes are bug fixes and binding updates.

Vala 0.11.3 changes are:
  • Support BusName sender parameter in GDBus servers.

  • More refactoring in the code generator.
  • Many bug fixes and binding updates.
More information and download at the Vala homepage.