let load =
let _initialized = ref false
in
fun _path file ->
(if not !_initialized
then
(try
(Dynlink.init ();
Dynlink.allow_unsafe_modules true;
_initialized := true)
with
| Dynlink.Error e ->
raise
(Error ("Camlp4's dynamic loader initialization",
(Dynlink.error_message e))))
else ();
let fname =
try find_in_path _path file
with
| Not_found ->
raise (Error (file, "file not found in path"))
in
try Dynlink.loadfile fname
with
| Dynlink.Error e ->
raise (Error (fname, (Dynlink.error_message e))))