Re: New maintainer

2010/4/24 Tomaž Vajngerl <quikee gmail com>:
> Hi,
>> Is Tomaž working on Vala bindings for 0.5? I think we should stop writing
>> them by hand and generate them from the gobject-introspection files (and
>> additional metadata).
> I don't write the bindings by hand - I use vala-gen-introspect and
> vapigen tools provided by Vala (which are a predecessor to g-ir
> tools). With this I mostly get the correct bindings out of the source
> code but still some things need to be tweaked which is possible with
> "metadata" files where you can describe what you want to change (for
> example if the #include files are not correct or missing or if a
> parameter is an "out" parameter but was not detected like that). From
> this you get a working vapi files (with help of vapigen tool) which
> are then used by Vala. This step is now always done by me so I can
> inspect the bindings and fix them if necessary, but it could also be
> made automatically at compile time in which case the bindings would be
> always up-to-date like the gobject-introspection files are. But this
> would complicate the build process and I think that currently it is
> the best to just regenerate the vapi file before a release (or at
> least when the API changes) is enough. This is then the same as
> bindings provided by the Vala itself.

In the future it would be best if the generation was integrated into
the build process to have always up to date bindings but for now it
can can be generated manually before the release.

Just out of curiosity - are the "metadata" identical to the annotated
sources as described here:

just put somewhere separately from the sources? I'm actually quite
surprised that the introspection works even when we don't have the
annotations in the comments. If these are the same then maybe it's
better to put the annotations directly to the corresponding sources.

Introspection support will be more and more important in the future
for other bindings (such as PyGI for Python) so it's really good you
are working on this!


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