Stephen,

I am fine with these issues.  I have been told that the interfaces
are not nearly as "volatile" as it sounded in the proposal.  I am
fine with the stated stability level in the document.

Thanks,

John

On 04/ 2/10 08:43 AM, Stefan Teleman wrote:
John Fischer wrote:
Stefan,

Thanks for being thorough as usual.

I have truncated the fast track below for the issues/concerns
that I would like to address in this email thread.

    1.  Interfaces Uncommitted vs. Volatile
         Why was Uncommitted chosen instead of Volatile?  These
         interfaces sure seem to lend themselves to Volatile with
         stuff simply being removed at whim.

Because Volatile would mandate contracts. The likeliest consumers of the XCB interfaces are Userland or Desktop applications [ GStreamer would be a prime candidate ]. Even Gtk and/or Cairo might decide in the near future to use XCB [ IIRC Cairo already looks for XCB if it is available ].

If GStreamer or Cairo would have to sign contracts with XCB for every single micro release update, it would seriously hinder progress. Especially in case these updates do not actually break anything.

Also, XCB consumers [ application or library developers ] seem to have handled this implicit volatility quite well. They have accepted the fact that XCB can change unexpectedly, and they check for the version of XCB available at construction time, and adjust their software accordingly.

Finally, the pitfalls with XCB's willingness to change only affect direct consumers of XCB. Application which use X11 won't be affected by these changes at all, since they will not see them [ in spite of the fact that X11 binds to XCB ].

         Are the file names and directory structure Uncommitted?
         Or is this referring to the actual APIs?  Or both?

Both.


    2.  Interface Evolution
         What are the plans to mitigate against the "volatility" of
         the community with regards to interface evolution?  Will
         multiple version be used or will we simply follow along?

I propose "follow along" here. Too often, maintaining multiple versions creates a maintenance burden which is not justified by the practical benefits.

Also, having multiple versions installed can easily create confusion. Assuming that we have XCB Version x1.y1.z1 and XCB Version x2.y2.z2, and we want to integrate a new, super-cool graphics library which uses XCB, and can handle both versions of XCB above. Which version does it pick ?


         What are the plans when the "volatility" of the community
         spills over?  Will there be Release Notes issued?  Other?
         My assumption is that there will be a single version shipped.

There will be a single version shipped, and those cases where incompatible changes are introduced by a new release, we warn the interested parties [ i.e. Desktop / Userland ].

I am much less concerned with advertising XCB breakage in the upstream communities. If XCB breaks API's for us, it also breaks API's for everyone else. :-)


    3.  X11 Applications
         All X11 Applications except those directly using Xtrans
         will work with any instability within the underlying XCB
         changes.  Is that correct?

Only applications which were using Private Interfaces from Xtrans [ leading underscore for those interfaces ] will be affected.

I've been building the entire X Consolidation [ for my own personal use ] since Xorg 1.5.3 with various versions of XCB, and there is only one function in the SUN-DGA client library which requires a trivial change because of the disappearance of an X11/Xtrans private function [ _X11TransGetHostname, which fortunately has an identical replacement X11 function named _X11GetHostname ].

--Stefan

--
Stefan Teleman
Oracle Corporation
[email protected]


_______________________________________________
opensolaris-arc mailing list
[email protected]

Reply via email to