diff options
Diffstat (limited to 'camlp4/Camlp4/Struct/DynLoader.ml')
-rw-r--r-- | camlp4/Camlp4/Struct/DynLoader.ml | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/camlp4/Camlp4/Struct/DynLoader.ml b/camlp4/Camlp4/Struct/DynLoader.ml deleted file mode 100644 index 00ab05ab3..000000000 --- a/camlp4/Camlp4/Struct/DynLoader.ml +++ /dev/null @@ -1,84 +0,0 @@ -(* camlp4r pa_macro.cmo *) -(****************************************************************************) -(* *) -(* OCaml *) -(* *) -(* INRIA Rocquencourt *) -(* *) -(* Copyright 2001-2006 Institut National de Recherche en Informatique et *) -(* en Automatique. All rights reserved. This file is distributed under *) -(* the terms of the GNU Library General Public License, with the special *) -(* exception on linking described in LICENSE at the top of the OCaml *) -(* source tree. *) -(* *) -(****************************************************************************) - -(* Authors: - * - Daniel de Rauglaudre: initial version - * - Nicolas Pouillard: refactoring - *) - - - - -type t = Queue.t string; - -exception Error of string and string; - -value include_dir x y = Queue.add y x; - -value fold_load_path x f acc = Queue.fold (fun x y -> f y x) acc x; - -value mk ?(ocaml_stdlib = True) ?(camlp4_stdlib = True) () = - let q = Queue.create () in do { - if ocaml_stdlib then include_dir q Camlp4_config.ocaml_standard_library else (); - if camlp4_stdlib then do { - include_dir q Camlp4_config.camlp4_standard_library; - include_dir q (Filename.concat Camlp4_config.camlp4_standard_library "Camlp4Parsers"); - include_dir q (Filename.concat Camlp4_config.camlp4_standard_library "Camlp4Printers"); - include_dir q (Filename.concat Camlp4_config.camlp4_standard_library "Camlp4Filters"); - } else (); - include_dir q "."; - q -}; - -(* Load files in core *) - -value find_in_path x name = - if not (Filename.is_implicit name) then - if Sys.file_exists name then name else raise Not_found - else - let res = - fold_load_path x - (fun dir -> - fun - [ None -> - let fullname = Filename.concat dir name in - if Sys.file_exists fullname then Some fullname else None - | x -> x ]) None - in match res with [ None -> raise Not_found | Some x -> x ]; - -value load = - let _initialized = ref False in - fun _path file -> - do { - if not _initialized.val then - try do { - Dynlink.init (); - Dynlink.allow_unsafe_modules True; - _initialized.val := 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)) ] - }; - - -value is_native = Dynlink.is_native; |