Re: package version macros, pango backspace_deletes_character

Owen Taylor said:
> Just pick a version of Pango, and write support for that. If you
> *really* want to conditionalize, you can do it using pkgconfig
> --modversion pango and define a variable from that.

that's been the approach was taken with one of the other modules,
Gnome2::Print i belive. it's what i was refering to in the last message about
being less than ideal.

> But I think trying to support multiple versions is almost always a bad
> idea.  It means that someone using version X.Y.Z of your binding
> has *NO IDEA* what Pango functions it supports ... it will completely
> depend on version of Pango was installed when the Perl binding was
> compiled.

those are the exact issues we've been discussing. which will likely be
addressed  by having check_bound_version/get_bound_verison_info (or something
similar,) which are close to check_version/get_version_info of gtk, but which
instead talk in terms of what version the bindings where compiled against.
we've had a lot of discussion about this (on irc, gtk-perl-list, and even
language-bindings) and i'll spare you the background.

bascially we compile in everything avaible at build time. since CPAN only lets
us have 1 current release for a given module namespace we have to have support
for every level in that single release, if we're going to have support for new
stuff anywhere. trying to have version sync'd rels wouldn't buy us anything
b/c you could get gtk2-perl 2.4.0 and compile it against gtk+ 2.2.0 and then
later upgrade gtk+ to 2.4.0 and then think you'd have support that you didn't.

provided we have checks to make sure that we're linked at runtime against gtk+
at least as new as we compiled against, it came down to
check_bound_version/get_bound_version_info being the 'complete' solution that
would handle all cases so long as app developers use them in place of

these are issues that will affect all non-compiled language bindings, even if
they support particular versions they'll still have to address it. bascially
check_version/get_version_info mean nothing to these bindings, they only tell
what you're linked against which won't help an app know what it can/can't do.


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