|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for-4.9 2/2] oxenstored: make it work on FreeBSD
> On 18. Apr 2017, at 11:16, Ian Jackson <ian.jackson@xxxxxxxxxxxxx> wrote:
>
> Wei Liu writes ("[PATCH for-4.9 2/2] oxenstored: make it work on FreeBSD"):
>> Call the uname syscall to determine sysname and return device names
>> accordingly.
> ...
>> -let xenstored_proc_kva = "/proc/xen/xsd_kva"
>> -let xenstored_proc_port = "/proc/xen/xsd_port"
>> +let xenstored_proc_kva =
>> + let info = Unix_syscalls.uname () in
>> + match info.sysname with
>> + | "Linux" -> "/proc/xen/xsd_kva"
>> + | "FreeBSD" -> "/dev/xen/xenstored"
>> + | _ -> "nonexistent"
>
> This isn't very good. If this code wants to fail, it returns a string
> "nonexistent" which would then be used to construct pathnames, and
> actually accessed.
>
> In Haskell one could simply leave the default case off, which would
> generate a runtime failure. Is that possible in ocaml ?
In Ocaml you would either use “assert false” or raise a dedicated exception for
the catch-all case. You would get a run-time Match_failure exception without
but this is nasty. The current solution has the problem you describe.
— C
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |