On 2015-09-25 12:25, Nils Chr. Brause wrote :
Hi,

On Fri, Sep 25, 2015 at 10:52 AM, Victor Berger
<victor.ber...@polytechnique.org> wrote:

What I meant here is that the format and contents of the XML files is
currently defined by the implementation of the C scanner, which is a less
than optimal situation to discuss evolutions of this format.

There will most likely be a need to write a proper document describing the format of the XML files, as well as the semantic meanings of each field and
attribute it contains.

Isn't the DTD file the specification for the XML file format?

Not exactly, it only defines the valid structure of the file, but not how a scanner should interpret the values contained in the fields.

Mainly, a specification of how a scanner should behave given an XML input. In my opinion, it should be informative enough to write a new scanner for any language _without_ needing to reverse-engineer the C scanner (which I had to do to write my Rust bindings).

Ideally, the protocol itself could be separated from the wayland-{client,server} libraries, but in practice it is not possible to re-implement the protocol down from the wire format (which is a shame, but required for EGL support with mesa). So I think it makes sense to describe it altogether.

The questions about how breaking evolutions will be handled need to be
specified as well: how should an old scanner behave when it encounters a
more recent protocol file, containing fields or attributes it does not
recognize ? Ignore them ? Fail and declare being "not compatible with this
protocol format, please upgrade" ?

The last one makes the most sense to me. Someone who develops a
language binding should always keep her/his scanner up to date with the
most recent XML file format.

Agreed...

[...]
Also, from the discussion last year it emerged that the scanner should also be
modified to at least check for the validity of the new attribues.
You can find the work that I had done so far here:
https://github.com/NilsBrause/Wayland/commits/xml

... but from the discussion I had with pq on IRC, it does not seem like having the C-scanner start rejecting "old" protocol files is a welcomes outcome, from they point of view.

However, maybe checking the file, and emitting warnings if it is in an old format could be an option ?

The other bindings could explicitly refuse old formats, I don't think it's a deal breaker either.

----
Victor


_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to