I've made a patch against vala git for getting this directly with valac (but only when it's possible), please test it http://go.3v1n0.net/euaIxh and let me know how it works for you ;)
Hi Marco, I appreciate your patch - it is really good and I can't wait for it included in mainline Vala :) I've at last tested it. It gives significant speedup, on my computer it's like 1.025 to 0.86. As I can see in the patch description, there are significant limitations. If the class comes from external vapi, old style (calling signal by name) will be used. Maybe some attributes can be used to control this? So for example: - each signal ID is in the object's Type structure, and has some name, unless some attribute is used, - CCode has_signal_id=false can be set in vapis on bindings to external libraries to indicate, that the particular signal's ID is not stored in the Type, - maybe some CCode signal_id_name="foo" can be used to control how is the ID named in the Type struct? - maybe even something like CCode signal_id_path="Namespace.[int|Class.static_member]" to be able to store signal ID anywhere you like? Maybe there are also other things to consider? My contribution to Vala is only in testing existing features; I reported a few bugs, but I never dug in Vala compiler's code or in gobject, so I'm just giving some random ideas now. best regards, and thanks for this patch once more :) AW. -- Mój klucz publiczny o identyfikatorze 1024D/E12C5A4C znajduje się na serwerze hkp://keys.gnupg.net My public key with signature 1024D/E12C5A4C is on the server hkp://keys.gnupg.net
Attachment:
signature.asc
Description: PGP signature