Make Obj.is_block an inline OCaml function

instead of a C external
master
Demetri Obenour 2016-01-14 12:03:03 -05:00 committed by Demi Obenour
parent dcc7b1c327
commit b1f93a660e
2 changed files with 5 additions and 2 deletions

View File

@ -20,8 +20,9 @@ type t
external repr : 'a -> t = "%identity"
external obj : t -> 'a = "%identity"
external magic : 'a -> 'b = "%identity"
external is_block : t -> bool = "caml_obj_is_block"
external is_int : t -> bool = "%obj_is_int"
let is_block a = is_int a |> not
[@@ocaml.inline]
external tag : t -> int = "caml_obj_tag"
external set_tag : t -> int -> unit = "caml_obj_set_tag"
external size : t -> int = "%obj_size"

View File

@ -23,7 +23,9 @@ type t
external repr : 'a -> t = "%identity"
external obj : t -> 'a = "%identity"
external magic : 'a -> 'b = "%identity"
external is_block : t -> bool = "caml_obj_is_block"
val is_block : t -> bool
[@@ocaml.inline]
external is_int : t -> bool = "%obj_is_int"
external tag : t -> int = "caml_obj_tag"
external size : t -> int = "%obj_size"