Hello parrot-dev,

the GSoC application deadline draws closer, so I really should get a formal proposal written. The template available on trac asks for likely mentors, so I'd like to know who is interested in overseeing the GObject interoperability project.

The project idea has somewhat matured during the last few dates, thus I'll provide a revised outline:

The basic goal is to get Parrot and GObject to talk to each other. For the GObject side of things, this means creating a wrapper API over libparrot, for the Parrot side, this means using GObject introspection to automagically get wrappers for GObject-based libraries installed into Parrot at runtime.

The second part is probably a lot harder than the first, and having thought some more about it, I'm actually planning to leverage the first part to make things more approachable:

libgirepository, the library providing access to GObject introspection information, is itself GObject-based, so getting access to that from within Parrot must either use C or a Parrot language and go through NCI, both of which is likely more painful than it needs to be: There's a natural language for GObject, called Vala, and if the first part of the proposal is extended to a proper extension API instead of just providing access to the embedding API, it should be possible to code the second part completely in Vala.

I actually already got access to all vtable functions in a first prototype which can be found at <https://github.com/cgaertner/gparrot>, and I do not see any unsolvable problems with that approach.

There are some performance concerns, as the GObject wrappers for PMCs and GObjects's dynamic type checking don't come for free, but I don't consider them a deal-breaker: The cost only has to be paid when loading libraries, the installed wrapper-PMCs won't have any unnecessary overhead.

If you (ie the Parrot developers) think this approach doable and valuable to the Parrot project, please let me know if you are interested in mentoring me, and I'll post the actual proposal with a proper timeline tomorrow.

Christoph
_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev

Reply via email to