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

Re: [MirageOS-devel] Remove DEVICE.connect?

On 22 January 2015 at 11:04, Thomas Gazagnaire <thomas@xxxxxxxxxxxxxx> wrote:
>>> So, I propose removing connect from the type signatures (but keeping
>>> it in the implementations). Then, being given a device only implies
>>> the ability to use it, not the ability to create more devices.
> Can you still easily compose devices together if you don't have a way to 
> connect? Who will be responsible for calling the implementation-dependant 
> connect function? Only the mirage tool in main.ml? (I guess that's already 
> the case)

Yes, code that wants to call connect (such as the generated main.ml)
has to know the concrete module type. But this is already the case,
because the "id" types are all abstract in V1_LWT.

The case that is prevented is the one in my example: (connect (id
dev)) where a module uses an abstract type to get a second instance of
the same device.

It will also mean we can use other signatures for connect (e.g.
allowing multiple arguments or optional arguments) if needed.

Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

MirageOS-devel mailing list



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