summaryrefslogtreecommitdiff
path: root/testsuite/tests/embedded/cmcaml.ml
blob: f176cc57cf86a3fabb02054d764618e6225db4b6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
(* TEST
 modules = "cmstub.c cmmain.c";
*)

(* OCaml part of the code *)

let rec fib n =
  if n < 2 then 1 else fib(n-1) + fib(n-2)

let format_result n =
  let r = "Result = " ^ Int.to_string n in
  (* Allocate gratuitously to test GC *)
  for i = 1 to 1500 do ignore (Bytes.create 256) done;
  r

(* Registration *)

let _ =
  Callback.register "fib" fib;
  Callback.register "format_result" format_result