Incompatibility feedback at configure-time
The socket-based stack is not compatible with xen, but the configuration tool completely fails to communicate that, and you get an error at link time telling you that unix is not found.
Shouldn't the CONFIGURABLE signature possess a "compatibility" field to ensure everything is fine from this point of view ?
The configuration choices form a tree of conflicting possibilities. Not sure how to express that easily to the user. But I agree that the current situation is not ideal and we should somehow check that the configuration plan is consistent.
other devices, such as tracing, resolver_unix, do a failwith during packages.
We should have a uniform way, and now that configure and dependencies/build are separate, I'd prefer to constrain packages to never fail, but always return a (potentially empty) list of packages; and configure to return a result (and thus fail in there).
This is no longer the case:
mirage configure -t hvt --net=socket
UDPv4 socket not supported on non-UNIX targets.