|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2-resend 08/30] libxl: ocaml: support for KeyedUnion in the bindings generator.
Ian Campbell writes ("Re: [Xen-devel] [PATCH v2-resend 08/30] libxl: ocaml:
support for KeyedUnion in the bindings generator."):
> On Tue, 2013-08-27 at 16:09 +0100, Ian Jackson wrote:
> > I think you have some confusion betwwen bar,baz and foo,bar ? At
> > least, I hope so, as otherwise I haven't understood at all.
>
> I don't think so, foo is an enumeration with possible values of "bar"
> and "baz".
>
> The keyed union has a discriminator (called blargle in this example)
> which is of type "enum foo". There is then an anonymous union with two
> members, "bar" and "baz" corresponding to the possible values of
> blargle.
That's what I thought. So this part is wrong then ?
] We generate C:
]
] enum { FOO, BAR } foo;
] struct s {
> > Is this indirection (through S.t) really needed ? It seems a bit
> > ugly. But I'm no expert on ocaml syntax or style.
>
> It's the common idiom in ocaml, for a reason I cannot remember.
Fair enough.
> > > These type names are OK because they are already within the namespace
> > > associated with the struct "s".
> > >
> > > If the struct associated with bar is empty then we don't bother with
> > > blargle_bar of "of blargle_bar".
> >
> > I'm not sure I follow this observation.
>
> In the type blargle__union we don't bother with the "of blargle_bar"
> case of the corresponding struct is empty.
So we generate
type blargle__union = Bar of blargle_bar | Baz;
? If this is legal ocaml syntax, then fine, I guess. (I can't
remember what "of" does here.)
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |