Browse thread
[Caml-list] Troubles with C->Caml
[
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: | 2001-10-20 (23:34) |
From: | malc <malc@p...> |
Subject: | [Caml-list] Troubles with C->Caml |
==== value f (value u) { value result; value res = <some function>; if (Is_exception_result (res)) { #ifdef FULL result = alloc_small (1, 2); Field (result, 0) = <some value>; Field (result, 1) = Extract_exception (res); #else result = alloc_small (1, 1); Field (result, 0) = Extract_exception (res); #endif return result; } result = alloc_small (0, 1); Field (result, 0) = <some value>; return result; } === type t type result = A of t | B of (t * exn) external cfunc : unit -> result = "f" let _ = match cfunc () with A t -> print_endline "ok" | B (t, e) -> prerr_endline (Printexc.to_string e) === The above dumps core in Printexc.to_string, what am i doing wrong here? Why if: "type result = A of t | B of exn" and -DFULL everything works fine? -- mailto:malc@pulsesoft.com ------------------- Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr