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

Re: [Xen-devel] [PATCH v2-resend 02/30] libxl: idl: allow KeyedUnion members to be empty

On Tue, 2013-08-27 at 15:59 +0100, Ian Jackson wrote:
> Ian Campbell writes ("Re: [Xen-devel] [PATCH v2-resend 02/30] libxl: idl: 
> allow KeyedUnion members to be empty"):
> > On Tue, 2013-08-27 at 15:53 +0100, Ian Jackson wrote:
> > > I assume that the problem here is that the compiler rejects the empty
> > > struct.
> > 
> > I don't recall exactly, but I think so.
> GCC even permits them as an extension.

I thought you meant the ocaml compiler, but of course we aren't at that
part of the series yet.

> > > Is it really necessary to do this with a special-cased new "None" type
> > > rather than just fixing the empty structs by putting a dummy member in
> > > them ?
> > 
> > I'd rather a bit of skaniness in the idl compiler than in the end user
> > facing eventual API.
> You are introducing skankiness not in the IDL compiler, but in the IDL
> itself.  I think it is better to have skankiness in some particular
> language's output than in the IDL input.

I think:
-                 ("invalid", Struct(None, [])),
+                 ("invalid", None),

is reducing the amount of skank in the IDL, None has a good match with
"nothing here", while "Strict(None, [])" is just random placeholder goo,
which would be even worse if we were to artificially add a member

In hindsight I might even have gone one further and made it:

-                 ("invalid", Struct(None, [])),
+                 ("invalid"),


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.