Re: CamlIDL and string options.

From: Xavier Leroy (Xavier.Leroy@inria.fr)
Date: Thu Feb 24 2000 - 11:21:35 MET

  • Next message: Fabrice Le Fessant: "Re: Preferred GUI Toolkit for O'Caml 3?"

    > I'm trying to write a camlidl interface for a function that returns a
    > char *. I want the ML result to be a string option. If the returned
    > pointer is null, then return None, otherwise return the string it
    > points to in Some.
    >
    > I can make it work, but only by writing my own c2ml routine

    I'm afraid this is the only solution with the current CamlIDL. C strings
    ([string] char *) are treated internally like a special case of arrays
    ([string] char []), and arrays are assumed not to be "NULL" pointers.

    In particular, the "obvious" CamlIDL declaration [string,unique] char *
    doesn't work because the "unique" attribute is ignored.

    I'll keep that in mind for future versions of CamlIDL.

    > In actuality, the function is more complicated than even this. It
    > actually returns a char**. There is a function available that returns
    > the number of char*'s in it. There is another function that returns
    > the length of each char* (provided they aren't NULL).

    It looks like you'll really have to write a specialized c2ml routine!
    I'm willing to help; just send me (personally, not to the list) some
    more details on the C API you're interfacing with.

    > The other possibility is that someone else has already written an
    > interface of MySQL, and I'm duplicating their effort.

    The Caml Hump (http://caml.inria.fr/pub/old_caml_site/) lists some OCaml database bindings,
    but none for MySQL.

    - Xavier Leroy



    This archive was generated by hypermail 2b29 : Thu Feb 24 2000 - 15:35:29 MET