[cairo] Updated ROADMAP for cairo 1.2.0 (and beyond)
Andreas Raab
andreas.raab at gmx.de
Thu Apr 27 12:06:06 PDT 2006
> Does that make sense?
In a world of statically compiled single binaries, yes. In a world of
dynamically loadable modules, no. You can't omit the runtime check
however hard you try if you can't foresee what clients have installed on
their machine (e.g., there simply is no "compilation-time verification
that the functionality exists" other than on the one machine you compile
it on). It's fine if you want to use this in addition to the necessary
runtime checks but if you're trying to replace the runtime checks
entirely that would get problematic very quickly.
Cheers,
- Andreas
Carl Worth wrote:
> On Thu, 27 Apr 2006 16:50:47 +0200, Adib Taraben wrote:
>> So this means every new version you change the API?
>
> Yes. If cairo gets new functionality to target a new version, then the
> application will have to change to start taking advantage of that new
> functionality. This really isn't different than any other
> functionality.
>
>> I would prefer this:
>> cairo_svg_surface_create_1_2 (int major_version, int minor_version)
>> If you would really prevent enums or strings.
>
> While the numeric nature of the interface is nice, this doesn't
> actually advertise what guarantees cairo is making for the application
> here.
>
> For example, Emmanuel's initial implementation of the SVG backend
> would emit SVG using features from SVG 1.2. What he has now
> implemented is new functionality that allows this backend to restrict
> itself to using only features available in SVG 1.1.
>
> Now let's imagine we had one cairo release of the original (1.2 only)
> stuff and a subsequent one with the (1.1 or 1.2) stuff. What's an
> application that requires the 1.1 restriction supposed to do here?
>
> With a single, numeric API as above, the best the application can do
> is call the function, hope it works, and carefully handle a run-time
> error if it fails.
>
> However, by associating the new functionality with new API, we now get
> compilation-time verification that the functionality exists, (perhaps
> link-time failure in case of a broken installation), and no need to
> introduce any run-time error for this.
>
> The earlier the error checks are, (in the sense of compile-time
> vs. run-time), the better.
>
> Does that make sense?
>
> -Carl
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> cairo mailing list
> cairo at cairographics.org
> http://cairographics.org/cgi-bin/mailman/listinfo/cairo
More information about the cairo
mailing list