Guest User

Untitled

a guest
Jun 1st, 2013
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.52 KB | None | 0 0
  1. /* Ocaml code:
  2. type foo = Bar of int;;
  3. Callback.register "test-cb" (fun (x : int) -> Bar x);;
  4. external do_test : int -> foo = "do_test";;
  5.  
  6. let _ = match do_test 4 with
  7.     Bar x -> print_endline "success!";;
  8. */
  9. // c code
  10. #include<mlvalues.h>
  11. #include<memory.h>
  12. #include<assert.h>
  13.  
  14. CAMLprim value do_test(value foo) {
  15.   CAMLparam1(foo);
  16.   CAMLlocal1(ret);
  17.   assert(Is_long(foo));
  18.   value *cb = caml_named_value("test-cb");
  19.   ret = caml_callback(*cb, foo);
  20.   printf("%u\n", Tag_val(ret));
  21.   CAMLreturn(ret);
  22. }
Advertisement
Add Comment
Please, Sign In to add comment