<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jürg Billeter's blog &#187; Vala</title>
	<atom:link href="http://blogs.gnome.org/juergbi/category/vala/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.gnome.org/juergbi</link>
	<description>Just another GNOME Blogs weblog</description>
	<lastBuildDate>Thu, 17 Sep 2009 22:22:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Closures and asynchronous methods in Vala</title>
		<link>http://blogs.gnome.org/juergbi/2009/09/18/closures-and-asynchronous-methods-in-vala/</link>
		<comments>http://blogs.gnome.org/juergbi/2009/09/18/closures-and-asynchronous-methods-in-vala/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 22:22:36 +0000</pubDate>
		<dc:creator>juergbi</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Vala]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/juergbi/?p=28</guid>
		<description><![CDATA[It&#8217;s time for the release of Vala 0.7.6. Tarballs are available from the GNOME FTP servers. This release includes a couple of new features worth explaining in a bit more detail.
Closures
While Vala has lambda expressions for a long time, they haven&#8217;t supported accessing local variables from the outer method. With the release of Vala 0.7.6 [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s time for the release of <a href="http://mail.gnome.org/archives/vala-list/2009-September/msg00168.html">Vala 0.7.6</a>. Tarballs are available from the <a href="http://download.gnome.org/sources/vala/0.7/">GNOME FTP servers</a>. This release includes a couple of new features worth explaining in a bit more detail.</p>
<h2>Closures</h2>
<p>While Vala has lambda expressions for a long time, they haven&#8217;t supported accessing local variables from the outer method. With the release of Vala 0.7.6 this has changed, and you can access and set any local variable from lambda expressions. One place where I&#8217;d expect this to be convenient is in signal handlers:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">void</span> main <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> args<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
    Gtk.<span style="color: #0000FF;">init</span> <span style="color: #000000;">&#40;</span><span style="color: #0600FF;">ref</span> args<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
    var window <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Gtk.<span style="color: #0000FF;">Window</span> <span style="color: #000000;">&#40;</span>Gtk.<span style="color: #0000FF;">WindowType</span>.<span style="color: #0000FF;">TOPLEVEL</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    window.<span style="color: #0000FF;">set_default_size</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">300</span>, <span style="color: #FF0000;">50</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    window.<span style="color: #0000FF;">destroy</span>.<span style="color: #0000FF;">connect</span> <span style="color: #000000;">&#40;</span>Gtk.<span style="color: #0000FF;">main_quit</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
    var button <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Gtk.<span style="color: #0000FF;">Button</span>.<span style="color: #0000FF;">with_label</span> <span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Click me!&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    button.<span style="color: #0000FF;">clicked</span>.<span style="color: #0000FF;">connect</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">=&gt;</span> <span style="color: #000000;">&#123;</span>
        window.<span style="color: #0000FF;">title</span> <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Closures in Vala&quot;</span><span style="color: #008000;">;</span>
    <span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
    window.<span style="color: #0000FF;">add</span> <span style="color: #000000;">&#40;</span>button<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    window.<span style="color: #0000FF;">show_all</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
    Gtk.<span style="color: #0000FF;">main</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>You can even write recursive lambda expressions:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #FF0000;">delegate</span> <span style="color: #FF0000;">int</span> Func <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> i<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF;">void</span> main <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
	Func fib <span style="color: #008000;">=</span> null<span style="color: #008000;">;</span>
	fib <span style="color: #008000;">=</span> <span style="color: #000000;">&#40;</span>i<span style="color: #000000;">&#41;</span> <span style="color: #008000;">=&gt;</span> <span style="color: #000000;">&#40;</span>i <span style="color: #008000;">&lt;=</span> <span style="color: #FF0000;">1</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">?</span> i <span style="color: #008000;">:</span> <span style="color: #000000;">&#40;</span>fib <span style="color: #000000;">&#40;</span>i <span style="color: #008000;">-</span> <span style="color: #FF0000;">2</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">+</span> fib <span style="color: #000000;">&#40;</span>i <span style="color: #008000;">-</span> <span style="color: #FF0000;">1</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
	<span style="color: #0600FF;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> i <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> i <span style="color: #008000;">&lt;</span> <span style="color: #FF0000;">10</span><span style="color: #008000;">;</span> i<span style="color: #008000;">++</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
		message <span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;%d&quot;</span>, fib <span style="color: #000000;">&#40;</span>i<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
	<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<h2>Asynchronous methods</h2>
<p>The idea of integrating async methods into the language is to make it easier to write code that calls or implements async methods. Async methods are frequently used in I/O API such as GIO and in D-Bus clients and servers. Traditionally, writing async code has beeen quite painful as you often end up writing callback chains and completely lose track over the control flow in the process.</p>
<p>Experimental support for async methods has been implemented in Vala almost a year ago. However, the implementation was rather a proof of concept than a finished solution. While I still expect a few bugs in that area with 0.7.6, it&#8217;s a lot more robust and complete than it used to be a short time ago.</p>
<p>So how does it look like? It&#8217;s not unlike <a href="http://blogs.gnome.org/alexl/2008/09/16/async-io-made-easy-using-javascript/">Alex&#8217;s AsyncRunner in JavaScript</a> except that it&#8217;s even more concise as it&#8217;s fully integrated into the language. The following code defines an async method list_dir that asynchronously enumerates all files in the home directory:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">async <span style="color: #0600FF;">void</span> list_dir <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
    var dir <span style="color: #008000;">=</span> File.<span style="color: #0000FF;">new_for_path</span> <span style="color: #000000;">&#40;</span>Environment.<span style="color: #0000FF;">get_home_dir</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #0600FF;">try</span> <span style="color: #000000;">&#123;</span>
        var e <span style="color: #008000;">=</span> yield dir.<span style="color: #0000FF;">enumerate_children_async</span> <span style="color: #000000;">&#40;</span>FILE_ATTRIBUTE_STANDARD_NAME, <span style="color: #FF0000;">0</span>, Priority.<span style="color: #0600FF;">DEFAULT</span>, <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #0600FF;">while</span> <span style="color: #000000;">&#40;</span><span style="color: #0600FF;">true</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
            var files <span style="color: #008000;">=</span> yield e.<span style="color: #0000FF;">next_files_async</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">10</span>, Priority.<span style="color: #0600FF;">DEFAULT</span>, <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>files <span style="color: #008000;">==</span> <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
                break<span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
            <span style="color: #0600FF;">foreach</span> <span style="color: #000000;">&#40;</span>var info <span style="color: #0600FF;">in</span> files<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
                print <span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;%s<span style="color: #008080; font-weight: bold;">\n</span>&quot;</span>, info.<span style="color: #0000FF;">get_name</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
        <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span> <span style="color: #0600FF;">catch</span> <span style="color: #000000;">&#40;</span>GLib.<span style="color: #0000FF;">Error</span> err<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
        warning <span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Error: %s<span style="color: #008080; font-weight: bold;">\n</span>&quot;</span>, err.<span style="color: #0000FF;">message</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0600FF;">void</span> main <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
    list_dir.<span style="color: #0000FF;">begin</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
    var loop <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> GLib.<span style="color: #0000FF;">MainLoop</span> <span style="color: #000000;">&#40;</span><span style="color: #0600FF;">null</span>, <span style="color: #0600FF;">false</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    loop.<span style="color: #0000FF;">run</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>As you can see, it&#8217;s very easy to call the async methods enumerate_children_async and next_files_async in try-catch blocks and loops. There is no need for manually creating structs for user_data or similar inconveniences.</p>
<p>Async methods in Vala can also be used to implement D-Bus servers that can process multiple requests at the same time. Using it couldn&#8217;t be easier, just write an async method such as the above example, add it to a class annotated with <strong>[DBus (name = "org.example.Test")]</strong>, and register an instance of that class with the D-Bus connection. Vala also supports async methods on client-side D-Bus interfaces.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/juergbi/2009/09/18/closures-and-asynchronous-methods-in-vala/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Vala 0.5.3</title>
		<link>http://blogs.gnome.org/juergbi/2008/12/17/vala-053/</link>
		<comments>http://blogs.gnome.org/juergbi/2008/12/17/vala-053/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 14:25:41 +0000</pubDate>
		<dc:creator>juergbi</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Vala]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/juergbi/?p=13</guid>
		<description><![CDATA[Long time no post, I&#8217;ll try to get better. Yesterday we&#8217;ve released Vala 0.5.3. Tarballs are available from the GNOME FTP servers.

D-Bus server support has been rewritten to directly use libdbus. Avoiding dbus-glib marshalling helps Vala to support complex D-Bus types more easily.
All Vala structs will now be registered with GBoxed.
Many critical warnings and crashes [...]]]></description>
			<content:encoded><![CDATA[<p>Long time no post, I&#8217;ll try to get better. Yesterday we&#8217;ve released <a href="http://mail.gnome.org/archives/vala-list/2008-December/msg00121.html">Vala 0.5.3</a>. Tarballs are available from the GNOME FTP servers.</p>
<ul>
<li>D-Bus server support has been rewritten to directly use libdbus. Avoiding dbus-glib marshalling helps Vala to support complex D-Bus types more easily.</li>
<li>All Vala structs will now be registered with GBoxed.</li>
<li>Many critical warnings and crashes on invalid code have been fixed and replaced by better understandable error messages.</li>
<li>Private class fields and class destructors (base_finalize) are now supported.</li>
<li>vala-gen-project has been dropped from the package, it is now part of <a href="http://mail.gnome.org/archives/vala-list/2008-December/msg00122.html">Vala Toys for gEdit</a>, which is progressing very well.</li>
<li>Many bug fixes all over the place.</li>
</ul>
<p>In the following weeks and months we will focus on bug fixing, finishing some partially implemented features, and switching to <a href="http://live.gnome.org/GObjectIntrospection/">GObject Introspection</a> trunk for our bindings. We&#8217;re aiming to release a stable Vala 1.0 in March 2009.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/juergbi/2008/12/17/vala-053/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Vala 0.3.3</title>
		<link>http://blogs.gnome.org/juergbi/2008/06/04/vala-033/</link>
		<comments>http://blogs.gnome.org/juergbi/2008/06/04/vala-033/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 08:53:24 +0000</pubDate>
		<dc:creator>juergbi</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Vala]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/juergbi/2008/06/04/vala-033/</guid>
		<description><![CDATA[It&#8217;s release time again. Yesterday we&#8217;ve released Vala 0.3.3. Tarballs are available from the GNOME FTP servers.

Support for overriding default method handlers of signals.
See custom GTK+ Widget example
Improvements to D-Bus service support
Parser for Genie
Documentation and binding updates
Many bug fixes and performance improvements

Thanks a lot to all the people helping out and have fun with the [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s release time again. Yesterday we&#8217;ve released <a href="http://mail.gnome.org/archives/vala-list/2008-June/msg00014.html">Vala 0.3.3</a>. Tarballs are available from the <a href="http://download.gnome.org/sources/vala/0.3/">GNOME FTP servers</a>.</p>
<ul>
<li>Support for overriding default method handlers of signals.<br />
See custom <a href="http://live.gnome.org/Vala/GTKSample">GTK+ Widget example</a></li>
<li>Improvements to <a href="http://live.gnome.org/Vala/DBusServerSample">D-Bus service support</a></li>
<li>Parser for <a href="http://live.gnome.org/Genie">Genie</a></li>
<li>Documentation and binding updates</li>
<li>Many bug fixes and performance improvements</li>
</ul>
<p>Thanks a lot to <a href="http://svn.gnome.org/svn/vala/trunk/THANKS">all the people helping out</a> and have fun with the new version! For the following two releases we will focus on <a href="http://live.gnome.org/GObjectIntrospection">GObject introspection</a> hacking to make it easy to write great bindings for many languages.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/juergbi/2008/06/04/vala-033/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Vala 0.3.1</title>
		<link>http://blogs.gnome.org/juergbi/2008/04/22/vala-031/</link>
		<comments>http://blogs.gnome.org/juergbi/2008/04/22/vala-031/#comments</comments>
		<pubDate>Mon, 21 Apr 2008 22:35:01 +0000</pubDate>
		<dc:creator>juergbi</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Vala]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/juergbi/2008/04/22/vala-031/</guid>
		<description><![CDATA[We&#8217;ve just released Vala 0.3.1. Tarballs are available from the GNOME FTP servers.

Non-null types are enabled by default
Experimental support for writing D-Bus services
New handwritten parser
Don&#8217;t require `new&#8217; operator for structs
var color = Color (0&#215;00, 0&#215;88, 0xee);
Many bug fixes and binding updates

]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve just released <a href="http://mail.gnome.org/archives/vala-list/2008-April/msg00077.html">Vala 0.3.1</a>. Tarballs are available from the <a href="http://download.gnome.org/sources/vala/0.3/">GNOME FTP servers</a>.</p>
<ul>
<li><a href="http://mail.gnome.org/archives/vala-list/2008-April/msg00050.html">Non-null types</a> are enabled by default</li>
<li>Experimental support for writing <a href="http://live.gnome.org/Vala/DBusServerSample">D-Bus services</a></li>
<li>New handwritten parser</li>
<li>Don&#8217;t require `new&#8217; operator for structs<br />
var color = Color (0&#215;00, 0&#215;88, 0xee);</li>
<li>Many bug fixes and binding updates</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/juergbi/2008/04/22/vala-031/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Vala Roadmap and 0.2.0</title>
		<link>http://blogs.gnome.org/juergbi/2008/04/08/vala-roadmap-and-020/</link>
		<comments>http://blogs.gnome.org/juergbi/2008/04/08/vala-roadmap-and-020/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 22:03:41 +0000</pubDate>
		<dc:creator>juergbi</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Vala]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/juergbi/2008/04/08/vala-roadmap-and-020/</guid>
		<description><![CDATA[Last week I wrote an initial roadmap that we want to follow for the upcoming Vala releases on our way towards guaranteed language stability. Today we&#8217;ve released Vala 0.2.0 as planned. Tarballs are available from the GNOME FTP servers. It&#8217;s mainly a bug fix release, however, it also got some new features like nested namespaces, [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I wrote an initial <a href="http://live.gnome.org/Vala/RoadMap">roadmap</a> that we want to follow for the upcoming <a href="http://live.gnome.org/Vala">Vala</a> releases on our way towards guaranteed language stability. Today we&#8217;ve released <a href="http://mail.gnome.org/archives/vala-list/2008-April/msg00049.html">Vala 0.2.0</a> as planned. Tarballs are available from the <a href="http://download.gnome.org/sources/vala/0.2/">GNOME FTP servers</a>. It&#8217;s mainly a bug fix release, however, it also got some new features like nested namespaces, static constructors, and GType-registered enums. We also have three new contributed bindings for GNOME Keyring, SDL, and libftdi, and the usual updates for existing bindings.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/juergbi/2008/04/08/vala-roadmap-and-020/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Vala 0.1.7</title>
		<link>http://blogs.gnome.org/juergbi/2008/03/02/vala-017/</link>
		<comments>http://blogs.gnome.org/juergbi/2008/03/02/vala-017/#comments</comments>
		<pubDate>Sun, 02 Mar 2008 15:59:20 +0000</pubDate>
		<dc:creator>juergbi</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Vala]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/juergbi/2008/03/02/vala-017/</guid>
		<description><![CDATA[We&#8217;ve just released Vala 0.1.7. Tarballs are available from the GNOME FTP servers.

Enhanced property syntax
public int foo { get; private set; default (3); }
New errordomain syntax
public errordomain MyError { NOT_FOUND, TIMED_OUT }
Detect missing return and break statements and unreachable code
Improved pointer support (pointer member access, pointer element access, and pointer arithmetic)
New bindings: WebKit, JSON-GLib, goocanvas, [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve just released <a href="http://mail.gnome.org/archives/vala-list/2008-March/msg00011.html">Vala 0.1.7</a>. Tarballs are available from the <a href="http://download.gnome.org/sources/vala/0.1/">GNOME FTP servers</a>.</p>
<ul>
<li>Enhanced property syntax<br />
public int foo { get; private set; default (3); }</li>
<li>New errordomain syntax<br />
public errordomain MyError { NOT_FOUND, TIMED_OUT }</li>
<li>Detect missing return and break statements and unreachable code</li>
<li>Improved pointer support (pointer member access, pointer element access, and pointer arithmetic)</li>
<li>New bindings: WebKit, JSON-GLib, goocanvas, hildon-fm-2, taglib, libusb, and bzip2</li>
<li>A lot of bug fixes</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/juergbi/2008/03/02/vala-017/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Vala Project Generator</title>
		<link>http://blogs.gnome.org/juergbi/2007/11/25/vala-project-generator/</link>
		<comments>http://blogs.gnome.org/juergbi/2007/11/25/vala-project-generator/#comments</comments>
		<pubDate>Sun, 25 Nov 2007 19:10:17 +0000</pubDate>
		<dc:creator>juergbi</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Vala]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/juergbi/2007/11/25/vala-project-generator/</guid>
		<description><![CDATA[Vala 0.1.5 has been released. Tarballs are available from the GNOME FTP servers. I&#8217;ve added a small tool to create new Vala projects:

It generates the necessary autotools magic for a Vala console or GTK+ application including i18n support and it passes distcheck. Suggestions for improvements are more than welcome.
We&#8217;ve also replaced the bindings generator gidlgen [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.paldo.org/pipermail/vala/2007-November/000597.html" title="Vala 0.1.5">Vala 0.1.5</a> has been released. Tarballs are available from the <a href="http://download.gnome.org/sources/vala/0.1/" title="GNOME FTP servers">GNOME FTP servers</a>. I&#8217;ve added a small tool to create new Vala projects:</p>
<p><img src="http://www.gnome.org/~juergbi/vala-gen-project-0.1.5.png" alt="Vala Project Generator" height="323" width="552" /></p>
<p>It generates the necessary autotools magic for a Vala console or GTK+ application including i18n support and it passes distcheck. Suggestions for improvements are more than welcome.</p>
<p>We&#8217;ve also replaced the bindings generator gidlgen by vala-gen-introspect which includes a real C parser instead of Perl scripts using regular expressions. The 20 included bindings have all been ported. Some smaller features and many bug fixes can also be found in the new release.</p>
<p>There are <a href="http://www.linux-magazin.de/online_artikel/gobject_ohne_kopfschmerzen">two</a> <a href="http://www.linux-magazin.de/online_artikel/vala_im_detail">articles</a> about Vala and an <a href="http://www.linux-magazin.de/online_artikel/vorteile_kombinieren">interview</a> in the German <a href="http://www.linux-magazin.de/">Linux-Magazin</a>, all by Christian Meyer.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/juergbi/2007/11/25/vala-project-generator/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Vala 0.1.4</title>
		<link>http://blogs.gnome.org/juergbi/2007/10/09/vala-014/</link>
		<comments>http://blogs.gnome.org/juergbi/2007/10/09/vala-014/#comments</comments>
		<pubDate>Tue, 09 Oct 2007 21:03:56 +0000</pubDate>
		<dc:creator>juergbi</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Vala]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/juergbi/2007/10/09/vala-014/</guid>
		<description><![CDATA[Vala 0.1.4 has been released. Tarballs are available from the GNOME FTP servers. We&#8217;ve added some small enhancements besides bug fixes and the previously mentioned #line support for debugging.

Object initializers
var btn = new Button () { label = &#8220;Button&#8221; };
Creation methods in structs
Experimental support for new fundamental classed types
class MiniObject : TypeInstance { &#8230; }
[Notify] [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.paldo.org/pipermail/vala/2007-October/000518.html">Vala 0.1.4</a> has been released. Tarballs are available from the <a href="http://download.gnome.org/sources/vala/0.1/">GNOME FTP servers</a>. We&#8217;ve added some small enhancements besides bug fixes and the previously mentioned #line support for debugging.</p>
<ul>
<li>Object initializers<br />
var btn = new Button () { label = &#8220;Button&#8221; };</li>
<li>Creation methods in structs</li>
<li>Experimental support for new fundamental classed types<br />
class MiniObject : TypeInstance { &#8230; }</li>
<li>[Notify] attribute for properties</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/juergbi/2007/10/09/vala-014/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Vala and Nemiver</title>
		<link>http://blogs.gnome.org/juergbi/2007/09/05/vala-and-nemiver/</link>
		<comments>http://blogs.gnome.org/juergbi/2007/09/05/vala-and-nemiver/#comments</comments>
		<pubDate>Wed, 05 Sep 2007 14:39:37 +0000</pubDate>
		<dc:creator>juergbi</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Vala]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/juergbi/2007/09/05/vala-and-nemiver/</guid>
		<description><![CDATA[I&#8217;ve added preliminary support for #line directives to Vala. This means that the debug information of your application compiled with valac -g will now contain the filename and line number of your Vala sources, instead of the generated C sources. Vala applications can be more or less graphically debugged using Nemiver now   Mathias [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve added preliminary support for #line directives to <a href="http://live.gnome.org/Vala">Vala</a>. This means that the debug information of your application compiled with <strong>valac -g</strong> will now contain the filename and line number of your Vala sources, instead of the generated C sources. Vala applications can be more or less graphically debugged using <a href="http://home.gna.org/nemiver/">Nemiver</a> now <img src='http://blogs.gnome.org/juergbi/wp-content/mu-plugins/tango-smilies/tango/face-smile.png' alt=':)' class='wp-smiley' />  <a href="http://taschenorakel.de/mathias/">Mathias</a> was kind enough to create a <a href="http://taschenorakel.de/files/vala-debug.ogg">little demo video</a> as the screencast tools didn&#8217;t work well on my system. There are still some issues left but it&#8217;s a start.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/juergbi/2007/09/05/vala-and-nemiver/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Vala 0.1.3</title>
		<link>http://blogs.gnome.org/juergbi/2007/08/31/vala-013/</link>
		<comments>http://blogs.gnome.org/juergbi/2007/08/31/vala-013/#comments</comments>
		<pubDate>Fri, 31 Aug 2007 13:38:48 +0000</pubDate>
		<dc:creator>juergbi</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Vala]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/juergbi/2007/08/31/vala-013/</guid>
		<description><![CDATA[Vala 0.1.3 is out. Tarballs are available from the GNOME FTP servers. There are a lot of new bindings from many contributors: D-Bus, GConf, libgnome, libgnomeui, Glade, libnotify, GnomeVFS, GtkSourceView, Panel Applet, GNOME Desktop Library, libsoup, libwnck, GtkMozEmbed, Poppler, Enchant, Hildon, SQLite, and curses. Many bugs have been fixed all over the place.
A noteworthy change [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.paldo.org/pipermail/vala/2007-August/000399.html">Vala 0.1.3</a> is out. Tarballs are available from the <a href="http://download.gnome.org/sources/vala/0.1/">GNOME FTP servers</a>. There are a lot of new bindings from many contributors: D-Bus, GConf, libgnome, libgnomeui, Glade, libnotify, GnomeVFS, GtkSourceView, Panel Applet, GNOME Desktop Library, libsoup, libwnck, GtkMozEmbed, Poppler, Enchant, Hildon, SQLite, and curses. Many bugs have been fixed all over the place.</p>
<p>A noteworthy change is that the type system has been made more consistent by converting the reference-type structs in the bindings to classes. The [ReferenceType] attribute is gone, you can now declare all reference types as classes in bindings, even if they don&#8217;t derive from GObject. A side-effect of this change is that you now always have to specify the base class in your class declarations, e.g. use</p>
<p>using GLib;<br />
public class Bar : Object { &#8230; }</p>
<p>to declare a class Bar which derives from GObject. The advantage is that you can be sure now that all structs have value-type semantics and all classes have reference-type semantics, no mixup anymore.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/juergbi/2007/08/31/vala-013/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>
