[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Damien Doligez <damien.doligez@i...> |
| Subject: | Re: [Caml-list] Questions about the C interface |
On Thursday, February 13, 2003, at 07:39 AM, Falk Hueffner wrote: > I would like to use C functions to manipulate small binary objects and > Ocaml to manage these objects in data structures. So far, I used > alloc_small(WORDS, Abstract_tag) to allocate them. However, that means > I cannot put them into a Hashtbl, and I cannot compare them. Do I need > "custom blocks" to achieve that? Yes. > I don't really need any fancy > comparison or hash function, plain memcmp and hash would do. So I > would like to save the overhead of one pointer per object and the more > costly calling. Unfortunately, we don't have a tag for uninterpreted binary data. The closest we have is strings, but you'd still lose one word, because of the final NUL byte. > Also, I'm wondering when exactly I need CAMLparam/local. If you want to know *exactly*, then the answer is incredibly complex. > I would think > that if I don't allocate anything in the C function, I don't need to > protect locals. That's true. > Also, I would > think that values that are really ints don't need protection... Also true. > The manual doesn't mention that, though. Taking advantage of all these exceptions is very error-prone, and we don't want to encourage it. > Finally, I wonder why the first parameter to alloc_custom (the ops > block) is not a const pointer? Because we don't believe in the const keyword. It's more trouble than it's worth. -- Damien ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners