tag:blogger.com,1999:blog-38632291768465802882024-03-14T07:53:46.702+00:00Vala JournalLuca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.comBlogger70125tag:blogger.com,1999:blog-3863229176846580288.post-48807087041497246822015-01-13T12:13:00.000+00:002015-01-13T12:13:07.735+00:00Vala 0.27.1 releasedThe new development version 0.27.1 of the <a href="https://wiki.gnome.org/Projects/Vala" target="_blank">Vala programming language</a> contains a lot of enhancements and bug fixes.<br />
<br />
Release notes are the following:<br />
<br />
<h3 id="Changes" style="background-color: white; color: #3f3f3f; font-family: Cantarell, sans-serif; font-size: 1em;">
Changes</h3>
<ul style="background-color: white; font-family: Cantarell, sans-serif;">
<li>Print compiler messages in color.<span class="anchor" id="line-12"></span></li>
<li>Add clutter-gdk-1.0 bindings.<span class="anchor" id="line-13"></span></li>
<li>Add clutter-gst-3.0 bindings.<span class="anchor" id="line-14"></span></li>
<li>Add clutter-x11-1.0 bindings.<span class="anchor" id="line-15"></span></li>
<li>Add rest-extras-0.7 bindings.<span class="anchor" id="line-16"></span></li>
<li>Bug fixes and binding updates.</li>
</ul>
<div>
However I'd like to tell more:</div>
<div>
<ul>
<li>The compiler now checks for unknown attributes.</li>
<li>More checks in the compiler about invalid semantics.</li>
<li>Now XOR works with boolean, like bitwise OR and AND</li>
<li>A new attribute [ConcreteAccessor], mostly used for bindings. It's common that in C interface properties have concrete accessors instead of abstract accessors. Before this, you had [NoAccessorMethod] on top of such properties.</li>
<li>Sometimes the "type" property is used in projects but Vala could not support it. Now if the bindings have [NoAccessorMethod] you can use it.</li>
<li>We now infer generics recursively in method calls, so less typing for you.</li>
<li>And more.</li>
</ul>
<div>
Have fun.</div>
</div>
Luca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.com4tag:blogger.com,1999:blog-3863229176846580288.post-2413211083856089062014-12-07T16:22:00.003+00:002014-12-07T16:28:16.755+00:00Vala deadlocks with glib 2.42Since glib 2.41.2, the mutex/cond implementation on Linux has changed. The code compiled with Vala < 0.26 which targets at least glib 2.32 with <span style="font-family: Courier New, Courier, monospace;">--target-glib 2.32</span> will suffer from deadlocks.<br />
<br />
Your options are either:<br />
<ul>
<li>Do not <span style="font-family: Courier New, Courier, monospace;">--target-glib 2.32</span></li>
<li>Update Vala to at least 0.25.2</li>
<li>Instead of upgrading Vala, pick the bindings for Mutex and Cond from the new glib-2.0.vapi</li>
<li>Downgrade glib</li>
</ul>
<div>
To clarify, it's not a glib bug. It's an old valac bug in the glib-2.0.vapi bindings of Mutex and Cond that became now critical after the glib implementation change.<br />
<br />
The relevant Vala bug can be found here: <a href="https://bugzilla.gnome.org/show_bug.cgi?id=733500">https://bugzilla.gnome.org/show_bug.cgi?id=733500</a></div>
Luca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.com0tag:blogger.com,1999:blog-3863229176846580288.post-12991213255068200612014-07-23T14:56:00.001+00:002014-07-23T14:56:17.517+00:00Vala 0.25.1 releasedThis new release of the <a href="https://wiki.gnome.org/Projects/Vala" target="_blank">Vala programming language</a> brings a new set of features together with several bug fixes.<br />
<h3 id="Changes" style="background-color: white; color: #3f3f3f; font-family: Cantarell, sans-serif; font-size: 1em;">Changes</h3><ul style="background-color: white; font-family: Cantarell, sans-serif;"><li>Support explicit interface method implementation.<span class="anchor" id="line-12"></span></li>
<li>Support (unowned type)[] syntax.<span class="anchor" id="line-13"></span></li>
<li>Support non-literal length in fixed-size arrays.<span class="anchor" id="line-14"></span></li>
<li>Mark regular expression literals as stable.<span class="anchor" id="line-15"></span></li>
<li>GIR parser updates.<span class="anchor" id="line-16"></span></li>
<li>Add webkit2gtk-3.0 bindings.<span class="anchor" id="line-17"></span></li>
<li>Add gstreamer-allocators-1.0 and gstreamer-riff-1.0 bindings.<span class="anchor" id="line-18"></span></li>
<li>Bug fixes and binding updates.</li>
</ul><div>The explicit interface method implementation allows to implement two interfaces that have methods (not properties) with the same name. Example:<br />
<br />
</div><div><pre>interface Foo {
public abstract int m();
}
interface Bar {
public abstract string m();
}
class Cls: Foo, Bar {
public int Foo.m() {
return 10;
}
public string Bar.m() {
return "bar";
}
}
void main () {
var cls = new Cls ();
message ("%d %s", ((Foo) cls).m(), ((Bar) cls).m());
}
</pre></div><div><br />
Will output 10 bar.<br />
<br />
The new <span style="font-family: Courier New, Courier, monospace;">(unowned type)[]</span> syntax allows to represent "transfer container" arrays. Whereas it's possible to do <span style="font-family: Courier New, Courier, monospace;">List<unowned type></span>, now it's also possible with Vala arrays.<br />
Beware that doing var arr = transfer_container_array; will not correctly reference the elements. This is a <a href="https://bugzilla.gnome.org/show_bug.cgi?id=731017" target="_blank">bug</a> that will eventually get fixed. It's better to always specify <span style="font-family: Courier New, Courier, monospace;">(unowned type)[] arr = transfer_container_array;</span><br />
<span style="font-family: inherit;">Note that inside the parenthesis only the unowned keyword is currently allowed.</span><br />
<span style="font-family: inherit;"><br />
</span> <span style="font-family: inherit;">The <span style="background-color: white;">non-literal length in fixed-size arrays has still a bug (lost track of it) that if not fixed may end up being reverted. So we advice not to use it yet.</span></span><br />
<span style="font-family: inherit;"><span style="background-color: white;"><br />
</span></span> <span style="font-family: inherit;"><span style="background-color: white;">Thanks to our Florian for always making the documentation shine, Evan and Rico for constantly keeping the bindings up-to-date to the bleeding edge, and all other contributors.</span></span><br />
<span style="font-family: inherit;"><span style="background-color: white;"><br />
</span></span> <span style="font-family: inherit;"><span style="background-color: white;">More information and download at the <a href="https://wiki.gnome.org/Projects/Vala" target="_blank">Vala homepage</a>.</span></span></div>Luca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.com0tag:blogger.com,1999:blog-3863229176846580288.post-90616100851502053222014-03-21T08:35:00.000+00:002014-03-21T08:35:45.249+00:00Planet ValaAfter a discussion on the mailing list about the wish of having an rss aggregator for Vala, here it comes: <a href="http://planet.vala-project.org/">http://planet.vala-project.org/</a><br />
The announcement can be read here: <a href="http://www.mail-archive.com/vala-list@gnome.org/msg10337.html">http://www.mail-archive.com/vala-list@gnome.org/msg10337.html</a><br />
<br />
Please visit the <a href="http://www.vala-project.org/" target="_blank">home of the Vala programming language</a> for more information.Luca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.com0tag:blogger.com,1999:blog-3863229176846580288.post-17660023212866143542014-02-06T21:15:00.000+00:002014-02-06T21:15:04.103+00:00What to expect from the wip/transform branchYou may be wondering what is it all about the wip/transform branch in the vala git lying around since a couple of years.<br />
It introduces a new layer to the compiler in order to write transformations of Vala code into other Vala code, such that it's easier for the codegen layer to generate C code, and it's easier for us developers to write and maintain such transformations.<br />
<br />
The current Vala pipeline is as follows:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvKS9Ht9zKCBHOOekNgHgfhwc4wp8n1_SB_hWu6x9ccG0IzipAiOxnkUoLruZPSzV28NPiVMkFbH2c0Gk11iB5vjnFoeKZQ7qOe78-DklIwvbgl04ZLYx_oc-GkfhnEkr3ars9-ZL-F895/s1600/Legacy+Pipeline.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvKS9Ht9zKCBHOOekNgHgfhwc4wp8n1_SB_hWu6x9ccG0IzipAiOxnkUoLruZPSzV28NPiVMkFbH2c0Gk11iB5vjnFoeKZQ7qOe78-DklIwvbgl04ZLYx_oc-GkfhnEkr3ars9-ZL-F895/s1600/Legacy+Pipeline.png" height="90" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
You already got it. There are a couple of flaws in this pipeline:</div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<ul>
<li>The semantic analyzer not only checks the code, but also does transformations for simplifying the code that will reach the codegen.</li>
<li>The flow analyzer does not analyze the original code, rather the transformed code. This leads to loss of information, thus bugs that are fixable only by making the flow analyzer more intelligent or with hacks (see <a href="https://bugzilla.gnome.org/show_bug.cgi?id=574352" target="_blank">this bug</a> for example)</li>
<li>At the codegen level, we do complex transformations which are hard to maintain.</li>
</ul>
<div>
The wip/transform branch introduces a pluggable visitor for transforming Vala code into other Vala code, and it sits in between the flow analyzer and the codegen:</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQfQJ9PYgFT3vjlRR2X4fM2psFufB3Zj8Ckhb5SP_-pkly5TPMCX48jfJZILCQ7YnU4Oyn7EX2EHteO_RoOCVfIORm1JyM8AwrfdNySl1gU76YwkR-fQAFcshtGUXKDTicd7upbHXfkHgb/s1600/Transform+Pipeline.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQfQJ9PYgFT3vjlRR2X4fM2psFufB3Zj8Ckhb5SP_-pkly5TPMCX48jfJZILCQ7YnU4Oyn7EX2EHteO_RoOCVfIORm1JyM8AwrfdNySl1gU76YwkR-fQAFcshtGUXKDTicd7upbHXfkHgb/s1600/Transform+Pipeline.png" height="68" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
So this is what we gain and lose with the new approach:</div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<ul>
<li>Probably this change will hit the compiler performance, but I'm planning to reduce the number of temporary variables used, thus save time at the C compilation stage. Though we always head for correctness before optimization.</li>
<li>The semantic analyzer and flow analyzer no longer have the issues explained above.</li>
<li>The C codegen has been extremely simplified, because now the ugly transformations are made simpler in the transformer.</li>
<li>The flow analyzer needs some more code in order to handle cases that were first simplified, like conditional expressions.</li>
</ul>
<div class="separator" style="clear: both; text-align: left;">
Also the transformer has several cool helpers that let us write transformed Vala code using strings, like a meta language, and that's very convenient.</div>
<div class="separator" style="clear: both; text-align: left;">
This new architecture naturally opens for a new feature: Vala plugins. It is possible to specify directories of plugins with --plugindir . A plugin is a file starting with "valaplugin" that is dynamically loadable (a .so, .dll, or whatelse).</div>
<div class="separator" style="clear: both; text-align: left;">
There is no system directory for plugins, that's intentional:</div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<ul>
<li>The feature will be experimental.</li>
<li>The API of libvala is unstable, therefore having system wide plugins would lead to even more breakage for users.</li>
</ul>
<div>
The feature is still useful on the application level. You can create your own plugins to automatically generate code that otherwise requires much boilerplate. Think for example of some rpc protocol, serialization or orm.</div>
<div>
<br /></div>
<div>
<b>Demonstration</b></div>
<div>
Now let's have some fun with a sample plugin for registering unit tests with the glib test framework.</div>
<div>
This is how your code would look like now:</div>
<div>
<br /></div>
<script src="https://gist.github.com/lethalman/8852201.js?file=oldtest.vala"></script><br />
<br />
We want it to be like this:<br />
<br />
<script src="https://gist.github.com/lethalman/8852201.js?file=newtest.vala"></script><br />
So let's write our beloved glib test plugin for Vala:<br />
<br />
<script src="https://gist.github.com/lethalman/8852201.js?file=valaplugintest.vala"></script><br />
What we do here is:<br />
<ul>
<li>Hook on every method definition</li>
<li>Check if they have a [Test (name = ...)] attribute</li>
<li>Then find the return statement in the main() method (context.entry_point) and cache it</li>
<li>Create a dummy statement placed right before the return statement</li>
<li>Replace that dummy statement with Test.add_func(...).</li>
</ul>
<div>
Compile the plugin with:</div>
<div>
<pre>$valasrc/compiler/valac -C $valasrc/vapi/libvala-0.24.vapi valaplugintest.vala
gcc -o valaplugintest.so -shared `pkg-config glib-2.0 gobject-2.0 --cflags --libs` -fPIC -I../vala -I../gee valaplugintest.c
</pre>
<br />
Finally compile newtest.vala with:<br />
<pre>$valadoc/compiler/valac --plugindir . test.vala
</pre>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>Status</b></div>
<div class="separator" style="clear: both; text-align: left;">
The current wip/transform branch is usable and very promising. Many complex projects already build and run flawlessly.</div>
<div class="separator" style="clear: both; text-align: left;">
* While in the picture I put the gtkmodule as transformer, this is not true yet. The gtkmodule is still in the codegen, but won't take much to port it as a transformer.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Hope the next wip/transform branch will be about a call for testing before the merge :-)</div>
<br /></div>
Luca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.com3tag:blogger.com,1999:blog-3863229176846580288.post-33458216630554489842014-02-04T23:04:00.002+00:002014-02-04T23:09:08.045+00:00Vala 0.23.2 releasedA new development version of the Vala programming language has been released.<br />
<div>
<h3 id="Changes" style="background-color: white; color: #3f3f3f; font-family: Cantarell, sans-serif; font-size: 1em;">
Changes</h3>
<h3 id="Changes" style="background-color: white; color: #3f3f3f; font-family: Cantarell, sans-serif; font-size: 1em;">
<span class="anchor" id="line-11" style="color: black; font-size: small; font-weight: normal;"></span><ul style="color: black; font-size: medium; font-weight: normal;">
<li>Bind GDK event structures as compact classes.<span class="anchor" id="line-12"></span></li>
<li>Switch gdk-x11-3.0 bindings to .gir.<span class="anchor" id="line-13"></span></li>
<li>Switch librsvg-2.0 bindings to .gir.<span class="anchor" id="line-14"></span></li>
<li>Bug fixes and binding updates.</li>
</ul>
</h3>
<ul style="background-color: white; font-family: Cantarell, sans-serif;"></ul>
<div>
First I'd like to thank Rico for the great effort put on updating bindings.</div>
</div>
<div>
<br /></div>
<div>
Then, Gdk.EventKey & co have been converted from structs to classes, and this probably broke your code, but that's for a good reason (see <a href="https://bugzilla.gnome.org/show_bug.cgi?id=713240#c2" target="_blank">this bug comment</a>).</div>
<div>
We're aware of this kind of breakage:</div>
<div>
Gdk.EventMotion *e = (Gdk.EventMotion *) (&event);</div>
<div>
<br /></div>
<div>
This could be fixed as:</div>
<div>
Gdk.EventMotion e = (Gdk.EventMotion) event;</div>
<div>
<br /></div>
<div>
For more information please visit the <a href="http://live.gnome.org/Vala" target="_blank">Vala homepage</a>.</div>
Luca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.com3tag:blogger.com,1999:blog-3863229176846580288.post-23852959295530882502013-12-02T08:55:00.000+00:002013-12-02T10:14:18.637+00:00Before using GTask in Vala......consider this function:<br />
<br />
<script src="https://gist.github.com/lethalman/7746798.js"></script><br />
<br />
As an exercise, extend this code to use ThreadPool.Luca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.com0tag:blogger.com,1999:blog-3863229176846580288.post-86427261939142487432013-11-19T19:08:00.003+00:002013-11-19T19:09:09.885+00:00Vala 0.22.1 releasedA new stable version of the Vala programming language has been released.<br />
<br />
<h3 id="Changes" style="background-color: white; color: #3f3f3f; font-family: sans-serif; font-size: 1em;">
Changes since 0.22.0</h3>
<ul style="background-color: white; font-family: sans-serif;">
<li>GIR parser updates.<span class="anchor" id="line-11"></span></li>
<li>Bug fixes and binding updates.</li>
</ul>
<div>
<span style="font-family: sans-serif;">Though the summary above does not seem to be impressive, this release brings important bug fixes, refinements to the compiler and lots of language bindings updates.</span></div>
<div>
<span style="font-family: sans-serif;"><br /></span></div>
<div>
<span style="font-family: sans-serif;">More information at the <a href="http://live.gnome.org/Vala" target="_blank">Vala homepage</a>.</span></div>
Luca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.com0tag:blogger.com,1999:blog-3863229176846580288.post-12867281676803313502013-09-14T19:29:00.000+00:002013-09-14T19:30:14.901+00:00Vala 0.21.2 released<span style="font-weight: normal;">This new development version of the Vala programming language has been released. It includes several bindings enhancements.</span><br />
<span style="font-weight: normal;"><br /></span>
<h3 id="Changes" style="background-color: white; color: #3f3f3f; font-family: sans-serif; font-size: 1em;">
Changes</h3>
<ul style="background-color: white; font-family: sans-serif;">
<li>Recognize ref/unref functions in .gir files.<span class="anchor" id="line-11"></span></li>
<li>Add geocode-glib bindings.<span class="anchor" id="line-12"></span></li>
<li>Bug fixes and binding updates.</li>
</ul>
<div>
<span style="font-family: sans-serif;">Recognizing ref/unref functions in .gir files is especially useful to avoid calling g_boxed_copy/free instead of _ref/_unref directly, or to catch some compact classes that are not glibish yet reference counted.</span><br />
<span style="font-family: sans-serif;"><br /></span>
<span style="font-family: sans-serif;">More information and download at the <a href="http://live.gnome.org/Vala" target="_blank">Vala homepage</a>.</span></div>
Luca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.com0tag:blogger.com,1999:blog-3863229176846580288.post-50568315192588367682013-08-04T07:46:00.005+00:002013-08-04T07:59:11.989+00:00Vala 0.21.1 releasedThis is the first 0.21.x develeopment release of the Vala programming language. It includes several bug fixes and enhancements.<br />
The changes since Vala 0.20.1 follows:<br />
<br />
<h3 id="Changes" style="background-color: white; color: #3f3f3f; font-family: sans-serif; font-size: 1em;">
Changes</h3>
<ul style="background-color: white; font-family: sans-serif;">
<li>Support \uXXXX escape sequences.<span class="anchor" id="line-11"></span></li>
<li>Support specifying vfunc order in interfaces to define ABI.<span class="anchor" id="line-12"></span></li>
<li>Support GTK+ widget templates.<span class="anchor" id="line-13"></span></li>
<li>Bug fixes and binding updates.</li>
</ul>
<div>
<span style="font-family: sans-serif;">For a primer on how to use GTK+ widget templates, please see: </span><a href="http://blogs.gnome.org/tvb/2013/05/29/composite-templates-lands-in-vala/">http://blogs.gnome.org/tvb/2013/05/29/composite-templates-lands-in-vala/</a></div>
<div>
The above tutorial is not up-to-date but it's a good starting point.</div>
<div>
<br /></div>
<div>
About specifying vfunc order, it's done with [CCode (ordering = x)] where x is the desired position of the method in the vtable. Either none or all of the virtual functions must have an ordering.</div>
Luca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.com0tag:blogger.com,1999:blog-3863229176846580288.post-54886639124980890842013-03-19T20:12:00.002+00:002013-03-19T20:13:13.191+00:00Vala on AndroidBreaking news in the Vala programming language <a href="https://mail.gnome.org/archives/vala-list/2013-March/msg00024.html" target="_blank">mailing list here</a>.<br />
<br />
It has been managed by tarnyko to compile Vala sources under Android and be able to use Cairo. GTK+ has not to been ported. I'm quoting the interesting part of message verbatim below:<br />
<blockquote class="tr_bq">
I managed to compile a Vala source directly to Android binary yesterday. And I think it might be of some interest to some people here.<br />
<br />
For the record, I've written a tutorial here: <a href="http://www.tarnyko.net/en/?q=node/25">http://www.tarnyko.net/en/?q=node/25</a><br />
<br />
It's still very limited (only access to core Vala + GLib/Gobject methods) but it could easily be extended by porting libraries having Vala bindings ; although I know it's not easy stuff.<br />
<br />
For the graphical part, GTK+ doesn't work yet but I know Cairo has been ported (<a href="http://code.google.com/p/cairo4android/">http://code.google.com/p/cairo4android/</a>) -and Cairo definitely has Vala bindings.</blockquote>
<br />
More information at the <a href="http://live.gnome.org/Vala" target="_blank">Vala programming language homepage</a>.Luca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.com2tag:blogger.com,1999:blog-3863229176846580288.post-60950126307621876322013-02-21T16:14:00.000+00:002013-02-21T16:17:53.578+00:00Vala 0.19.0 releasedA new development version of the Vala programming language has been released.<br />
<br />
<h3 id="Changes">
Changes</h3>
<ul>
<li>Support scope = "async" attribute for parameters. <span class="anchor" id="line-11"></span></li>
<li>Add --api-version option. <span class="anchor" id="line-12"></span></li>
<li>Add atspi-2 bindings. <span class="anchor" id="line-13"></span></li>
<li>Add gstreamer-rtsp-server-1.0 bindings. <span class="anchor" id="line-14"></span></li>
<li>Bug fixes and binding updates. </li>
</ul>
It must be noted that the new scope = "async" attribute is implemented only for bindings and not for Vala-written code. The scope = "async" is used with delegates without GDestroyNotify, and it specifies that the delegate will be called only once. So Vala will automatically take care of ref'ing the user data when passing the delegate, and unref'ing it after the delegate has been called.Luca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.com3tag:blogger.com,1999:blog-3863229176846580288.post-87990205237099249992012-10-23T08:02:00.003+00:002012-10-23T08:03:24.959+00:00Vala 0.18.0 + GTK 3.4.2 for Win32This is an update of the unofficial build of the <a href="http://live.gnome.org/Vala">Vala programming language</a> for Win32 kindly contributed by t<span class="gD" name="tarnyko@tarnyko.net">arnyko. His announcement is as follows</span>:<br />
<br />
I come back to announce a bundle for <span class="il">Vala</span> 0.18.0 and GTK+ 3.4.2 on Windows. for <span class="il">Vala</span> 0.18.0 and GTK+ 3.4.2 on Windows.<br />
Download link here :<br />
<a href="http://www.tarnyko.net/en/?q=node/13" target="_blank">http://www.tarnyko.net/en/?q=n<wbr></wbr>ode/13</a><br />
or here :<br />
<a href="http://www.tarnyko.net/dl/vala.htm" target="_blank">http://www.tarnyko.net/dl/<span class="il">vala</span><wbr></wbr>.htm</a> <br />
(A helpful being told me that my formers installers had the bad habit of
emptying the PATH variable if it was longer than 1023 characters: <a href="http://www.tarnyko.net/en/?q=comment/307#comment-307" target="_blank">http://www.tarnyko.net/en/?q=c<wbr></wbr>omment/307#comment-307</a>. It is now fixed for all installers ; please re-download them just in case.)<br />
<br />
<b>News for ValaWinPKG users</b> <br />
<ul>
<li>The repos for <span class="il">Vala</span> 0.16.0 and 0.18.0 are finally up !</li>
<li>There are some packages regressions:</li>
<ul>
<li>FreeGLUT VAPI doesn't seem to work with <span class="il">Vala</span> > 0.12.0. Needs some fixes from its original maintainer;</li>
<li>Poppler doesn't work anymore, should apparently be updated. Will do this when I have time.</li>
<li>There is a new package: LibUSB.</li>
</ul>
<li>If you want to use these new repos, you should really update ValaWinPKG before (<a href="http://www.tarnyko.net/en/?q=node/12" target="_blank">http://www.tarnyko.net/en/?q=<wbr></wbr>node/12</a>). Sorry, but it's the last time it should be necessary.</li>
<li>The new version of ValaWinPKG allows you to have multiple <span class="il">Vala</span> installations and maintain their packages separately. See this tutorial (<a href="http://www.tarnyko.net/en/?q=node/14" target="_blank">http://www.tarnyko.net/en/?q=<wbr></wbr>node/14</a>) for more info. </li>
</ul>
Regards, <br />
TarnykoLuca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.com5tag:blogger.com,1999:blog-3863229176846580288.post-15056461729552368242012-09-25T07:37:00.000+00:002012-09-25T07:37:20.781+00:00Gee 0.8.0 releasedTogether with Vala 0.18.0, the Vala collections library has also released the major 0.8.0 version, due to changes to the ABI.<br />
<br />
<h3 id="Changes-1">
Changes</h3>
<ul>
<li>Fix Traversable.chop (bug #684348)</li>
<li>Remove unnecessary method</li>
<li>Update README</li>
<li>Move everything to GenericAccessor</li>
</ul>
For more information and downloads see the <a href="http://live.gnome.org/Libgee">Gee homepage</a>.Luca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.com0tag:blogger.com,1999:blog-3863229176846580288.post-71236233034138243872012-09-25T07:30:00.003+00:002012-09-25T07:33:02.908+00:00Vala 0.18.0 releasedThe new stable branch of the Vala programming language has reached the 0.18.x version. There are major fixes and enhancements since the 0.16.x that are described below.<br />
<br />
<h3 id="Changes-1">Changes since 0.16.0</h3><ul><li>Add libgnome-menu-3.0, gstreamer-1.0 core, gst-plugins-base-1.0, gobject-introspection-1.0 bindings. </li>
<li>Support subclassing of GLib.Source. <span class="anchor" id="line-39"></span></li>
<li>Switch pango bindings to .gir. <span class="anchor" id="line-40"></span></li>
<li>Warn when accessing static members with an instance reference. <span class="anchor" id="line-53"></span></li>
<li>Recompute length when casting between array types. </li>
<li><div class="line862">Support [GenericAccessors] attribute for interfaces. <span class="anchor" id="line-55"></span></div></li>
<li>Deprecate implicit .begin for async methods.<span class="anchor" id="line-56"></span></li>
<li>Drop Dova and POSIX profile. <span class="anchor" id="line-57"></span></li>
<li><div class="line862">Require and target GLib >= 2.18. <span class="anchor" id="line-68"></span></div></li>
<li>Support async creation methods. </li>
<li>Improve assertion messages. <span class="anchor" id="line-97"></span></li>
<li>Add --enable-gobject-tracing commandline option. </li>
<li>Support simple method-level profiling. <span class="anchor" id="line-108"></span></li>
<li>Add VALA_CHECK_MODULES and VALA_PROG_VAPIGEN to vala.m4. </li>
<li>Bug fixes and binding updates.</li>
</ul>The [GenericAccessors] attribute allows using generics in interface methods. Before this change, it was impossible to access the generics information of a subclass from within an interface method. Adding this attribute on top of an interface will autogenerate virtual methods at the C level that are automatically implemented by subclasses. It must be noted that using this feature on an existing interface will break the ABI.<br />
<br />
The method-level profiling is enabled by adding the [Profile] attribute on top of your methods. When your application terminates, some stats will be printed to the output.<br />
<br />
For more information and download see the <a href="http://live.gnome.org/Vala">Vala homepage</a>. Luca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.com0tag:blogger.com,1999:blog-3863229176846580288.post-11753427395595533632012-09-17T18:09:00.003+00:002012-09-17T18:10:05.131+00:00Vala bundle for WindowsHi,<br />
<span class="hb"><span class="g2" name="tarnyko">tarnyko contributed an unofficial Vala bundle containing Vala 0.12.0 and GTK+ 3.4.2 for Windows XP/Vista/7.</span></span><br />
<span class="hb"><span class="g2" name="tarnyko">This one contains GTK+ 2.20.0, too, so you can still compile older GTK+ programs without modification.<br />
Download here :<br />
<a href="http://www.tarnyko.net/en/?q=node/1" target="_blank">http://www.tarnyko.net/en/?q=n<wbr></wbr>ode/1</a><br />
or here :<br />
<a href="http://www.tarnyko.net/dl/vala.htm" target="_blank">http://www.tarnyko.net/dl/vala<wbr></wbr>.htm</a><br /><br />
For ValaWinPKG users, </span></span><span class="hb"><span class="g2" name="tarnyko">the corresponding repository has been uploaded. A few notes:</span></span><br />
<ul>
<li><span class="hb"><span class="g2" name="tarnyko">you should definitely update the program (here: <a href="http://www.tarnyko.net/dl/valawinpkg.htm" target="_blank">http://www.tarnyko.net/dl/vala<wbr></wbr>winpkg.htm</a>) because 0.9b is broken with this bundl;</span></span> </li>
<li>newer GLib allows use to have a Clutter package<span class="hb"><span class="g2" name="tarnyko"> </span></span></li>
<li><span class="hb"><span class="g2" name="tarnyko">newer GLib, however, gives problems with older LibGee and WebKit, so they've been </span></span>removed from this new repo (should only be temporary);</li>
<li>LibMX package is planned.</li>
</ul>
<span class="hb"><span class="g2" name="tarnyko">
Final note:<br />
A Vala 0.16.0 for Win32 bundle is WIP. It already works, only needs a few tweaks before uploading.</span></span><br />
<br />
<span class="hb"><span class="g2" name="tarnyko">Original discussion here: <a href="https://mail.gnome.org/archives/vala-list/2012-September/msg00065.html">https://mail.gnome.org/archives/vala-list/2012-September/msg00065.html</a></span></span>Luca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.com0tag:blogger.com,1999:blog-3863229176846580288.post-61039149328048841792012-08-20T12:46:00.004+00:002012-08-20T12:46:54.498+00:00Vala 0.17.5 has been releasedHello, the new 0.17.5 development version of the Vala programming language has been released with lots of enhancements, bug fixes and language bindings.<br />
<br />
<h3 id="Changes">
Changes</h3>
<span class="anchor" id="line-10"></span><ul>
<li>Support subclassing of GLib.Source. <span class="anchor" id="line-11"></span></li>
<li>Switch pango bindings to .gir. <span class="anchor" id="line-12"></span></li>
<li>Add gstreamer-1.0 core bindings. <span class="anchor" id="line-13"></span></li>
<li>Add gst-plugins-base-1.0 bindings. <span class="anchor" id="line-14"></span></li>
<li>Add gobject-introspection-1.0 bindings. <span class="anchor" id="line-15"></span></li>
<li>Bug fixes and binding updates. </li>
</ul>
More information and download at the <a href="http://live.gnome.org/Vala">Vala homepage</a>.Luca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.com0tag:blogger.com,1999:blog-3863229176846580288.post-59010496220848506172012-08-06T17:38:00.000+00:002012-08-06T17:38:02.553+00:00Vala 0.17.4 releasedThe 0.17.4 development version of the Vala programming language has been released. Some interesting changes have been introduced, while others have been dropped toward a more cleaned up code base.<br />
<br />
<h3 id="Changes">
Changes</h3>
<span class="anchor" id="line-10"></span><ul>
<li>Warn when accessing static members with an instance reference. <span class="anchor" id="line-11"></span></li>
<li>Recompute length when casting between array types. <span class="anchor" id="line-12"></span></li>
<li><div class="line862">
Support [GenericAccessors] attribute for interfaces. <span class="anchor" id="line-13"></span></div>
</li>
<li>Deprecate implicit .begin for async methods. <span class="anchor" id="line-14"></span></li>
<li>Drop Dova profile. <span class="anchor" id="line-15"></span></li>
<li>Drop POSIX profile. <span class="anchor" id="line-16"></span></li>
<li>Bug fixes and binding updates. </li>
</ul>
The [GenericAccessors] attribute allows using generics in interface methods. Before this change, it was impossible to access the generics information of a subclass from within an interface method. Adding this attribute on top of an interface will autogenerate virtual methods at the C level that are automatically implemented by subclasses. It must be noted that using this feature on an existing interface will break the ABI.<br />
<br />
More information and download at the <a href="http://live.gnome.org/Vala">Vala homepage</a>.Luca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.com1tag:blogger.com,1999:blog-3863229176846580288.post-56112458262123905082012-07-17T08:02:00.003+00:002012-07-17T08:02:31.128+00:00Vala 0.17.3 releasedThe new 0.17.3 version of the Vala programming language has been released. We'll include the changes of the 0.17.1 release as we haven't posted them previously. We skipped the 0.17.2 and 0.16.1 versions as they haven't enhanced any feature.<br />
<br />
<h3 id="Changes">
Changes (both 0.17.3 and 0.17.1)</h3>
<span class="anchor" id="line-10"></span><ul>
<li><div class="line862">
Require and target GLib >= 2.18. <span class="anchor" id="line-11"></span></div>
</li>
<li>Support async creation methods.</li>
<li>Improve assertion messages. <span class="anchor" id="line-40"></span></li>
<li>Add --enable-gobject-tracing commandline option. <span class="anchor" id="line-41"></span></li>
<li>Bug fixes and binding updates. </li>
</ul>
More information and downloads at the <a href="http://live.gnome.org/Vala">Vala homepage</a>.Luca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.com1tag:blogger.com,1999:blog-3863229176846580288.post-74167679385366130592012-05-11T08:48:00.004+00:002012-05-11T08:48:44.520+00:00Vala 0.17.0 releasedThe new 0.17.x development cycle has started. This is the first release introducing several bug fixes and some enhancements.<br />
<br />
<h3 id="Changes">
Changes</h3>
<span class="anchor" id="line-10"></span><ul>
<li>Support simple method-level profiling. <span class="anchor" id="line-11"></span></li>
<li>Add VALA_CHECK_MODULES and VALA_PROG_VAPIGEN to vala.m4. <span class="anchor" id="line-12"></span></li>
<li>Bug fixes and binding updates. </li>
</ul>
The method-level profiling is enabled by adding the [Profile] attribute on top of your methods. When your application terminates, some stats will be printed to the output.<br />
<br />
More information at the <a href="http://live.gnome.org/Vala">homepage of Vala</a>.Luca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.com2tag:blogger.com,1999:blog-3863229176846580288.post-49741723010119566812012-03-29T19:38:00.002+00:002012-03-29T19:39:31.796+00:00Vala 0.16.0 releasedThe new stable version of the Vala programming language has been released.<br />
<br />
<h3 id="Changes">
Changes since 0.15.2</h3>
<ul>
<li>Add udisks2 bindings. <span class="anchor" id="line-11"></span></li>
<li>Bug fixes and binding updates. </li>
</ul>
<br />
More information and downloads at the <a href="http://live.gnome.org/Vala">Vala homepage</a>.Luca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.com0tag:blogger.com,1999:blog-3863229176846580288.post-21909079966668733282012-02-25T19:00:00.002+00:002012-02-25T19:01:51.215+00:00Vala 0.15.2 releasedThe new 0.15.2 version of the Vala programming language has been released. This version includes several bug fixes (including some regression fixes) and small but worthy enhancements.<br />
<br />
<h3 id="Changes">
Changes</h3>
<ul>
<li>Switch poppler-glib bindings to .gir. <span class="anchor" id="line-11"></span></li>
<li>Many bug fixes and binding updates. </li>
</ul>
More information at the <a href="http://live.gnome.org/Vala">Vala homepage</a>.Luca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.com0tag:blogger.com,1999:blog-3863229176846580288.post-46564019897899218272012-02-21T09:28:00.001+00:002012-02-21T09:28:58.975+00:00Valadoc website renewalThe <a href="http://unstable.valadoc.org/">valadoc website for unstable packages</a> gets renewed:<br />
<ul>
<li>A fast search for looking up symbols</li>
<li>Tooltips to read signature and short descriptions of symbols without leaving the page</li>
<li>Ajax loading of the web pages </li>
<li>It has a slightly new look that resembles gnome.org</li>
</ul>
Planned features:<br />
<ul>
<li>Comments by the community, for sharing experience and examples</li>
<li>Proper syntax highlighting</li>
</ul>
This new version will be soon available for stable packages as well.<br />
<br />
<a href="http://live.gnome.org/Valadoc">Valadoc</a> is a tool for generating documentation for <a href="http://live.gnome.org/Vala">Vala</a> projects and external projects featuring a <a href="https://live.gnome.org/GObjectIntrospection/">GIR</a> file, and much more.Luca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.com7tag:blogger.com,1999:blog-3863229176846580288.post-32635103920992843832012-01-31T15:12:00.002+00:002012-01-31T15:12:30.534+00:00Vala 0.14.2 releasedThe new 0.14.2 stable version of the Vala programming language has been released. This version doesn't only include many bug fixes but also many enhancements.<br />
<br />
<h3 id="Changes">
Changes</h3>
<span class="anchor" id="line-10"></span><ul>
<li>Add libnl-3.0 bindings. <span class="anchor" id="line-11"></span></li>
<li>Add packagekit-glib2 bindings. <span class="anchor" id="line-12"></span></li>
<li>Add xtst bindings. <span class="anchor" id="line-13"></span></li>
<li>Many bug fixes and binding updates. </li>
</ul>
More information at the <a href="http://live.gnome.org/Vala">Vala homepage.</a>Luca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.com0tag:blogger.com,1999:blog-3863229176846580288.post-49649315422703227692012-01-26T23:41:00.000+00:002012-01-31T15:13:15.960+00:00Vala 0.15.1 releasedThe new 0.15.1 version of the Vala programming language has been released. This version introduces a lot of enhancements and regression fixes with regards to the previous 0.15.0 release.<br />
<br />
<h3 id="Changes">
Changes</h3>
<ul>
<li>Support arrays with nullable elements. <span class="anchor" id="line-11"></span></li>
<li><div class="line862">
Add <doc> support to .gir reader and writer. <span class="anchor" id="line-12"></span></doc></div>
</li>
<li>Switch clutter-gtk-1.0 bindings to .gir. <span class="anchor" id="line-13"></span></li>
<li>Switch gio-2.0 bindings to .gir. <span class="anchor" id="line-14"></span></li>
<li>Add cogl-pango-1.0 bindings. <span class="anchor" id="line-15"></span></li>
<li>Add gdl-3.0 bindings. <span class="anchor" id="line-16"></span></li>
<li>Add libnl-3.0 bindings. <span class="anchor" id="line-17"></span></li>
<li>Add packagekit-glib2 bindings. <span class="anchor" id="line-18"></span></li>
<li>Add xtst bindings. <span class="anchor" id="line-19"></span></li>
<li>Many bug fixes and binding updates. </li>
</ul>
<b>Important breakage note</b><br />
Now captured parameters of <u>array type</u> are no more copied implicitly by Vala. A captured parameter is one of the following:<br />
<ul>
<li>Either it is a parameter of an async method</li>
<li>Or it is a parameter used inside of a closure </li>
</ul>
The advantage is that async methods in GIO that have arrays as parameters (like buffers) can finally be overridden, otherwise impossible. Same goes parameters referred by closures.<br />
Therefore, if you were relying on the implicit array copy made by Vala in these cases, please take care of this change.<br />
<br />
More information and downloads at the <a href="http://live.gnome.org/Vala">Vala homepage</a>.Luca Brunohttp://www.blogger.com/profile/06329046616630750783noreply@blogger.com3