summaryrefslogtreecommitdiff
path: root/otherlibs/dynlink/dynlink.mli
diff options
context:
space:
mode:
Diffstat (limited to 'otherlibs/dynlink/dynlink.mli')
-rw-r--r--otherlibs/dynlink/dynlink.mli129
1 files changed, 0 insertions, 129 deletions
diff --git a/otherlibs/dynlink/dynlink.mli b/otherlibs/dynlink/dynlink.mli
deleted file mode 100644
index ac5c1a2113..0000000000
--- a/otherlibs/dynlink/dynlink.mli
+++ /dev/null
@@ -1,129 +0,0 @@
-(***********************************************************************)
-(* *)
-(* Objective Caml *)
-(* *)
-(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
-(* *)
-(* Copyright 1996 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 file ../../LICENSE. *)
-(* *)
-(***********************************************************************)
-
-(* $Id$ *)
-
-(** Dynamic loading of bytecode object files. *)
-
-(** {6 Initialization} *)
-
-val init : unit -> unit
-(** Initialize the [Dynlink] library.
- Must be called before any other function in this module. *)
-
-(** {6 Dynamic loading of compiled bytecode files} *)
-
-val loadfile : string -> unit
-(** Load the given bytecode object file ([.cmo] file) or
- bytecode library file ([.cma] file), and link it with the running program.
- All toplevel expressions in the loaded compilation units
- are evaluated. No facilities are provided to
- access value names defined by the unit. Therefore, the unit
- must register itself its entry points with the main program,
- e.g. by modifying tables of functions. *)
-
-val loadfile_private : string -> unit
-(** Same as [loadfile], except that the compilation units just loaded
- are hidden (cannot be referenced) from other modules dynamically
- loaded afterwards. *)
-
-(** {6 Access control} *)
-
-val allow_only: string list -> unit
-(** [allow_only units] restricts the compilation units that dynamically-linked
- units can reference: it only allows references to the units named in
- list [units]. References to any other compilation unit will cause
- a [Unavailable_unit] error during [loadfile] or [loadfile_private].
-
- Initially (just after calling [init]), all compilation units composing
- the program currently running are available for reference from
- dynamically-linked units. [allow_only] can be used to grant access
- to some of them only, e.g. to the units that compose the API for
- dynamically-linked code, and prevent access to all other units,
- e.g. private, internal modules of the running program. *)
-
-val prohibit: string list -> unit
-(** [prohibit units] prohibits dynamically-linked units from referencing
- the units named in list [units]. This can be used to prevent
- access to selected units, e.g. private, internal modules of
- the running program. *)
-
-val default_available_units: unit -> unit
-(** Reset the set of units that can be referenced from dynamically-linked
- code to its default value, that is, all units composing the currently
- running program. *)
-
-val allow_unsafe_modules : bool -> unit
-(** Govern whether unsafe object files are allowed to be
- dynamically linked. A compilation unit is ``unsafe'' if it contains
- declarations of external functions, which can break type safety.
- By default, dynamic linking of unsafe object files is
- not allowed. *)
-
-(** {6 Deprecated, low-level API for access control} *)
-
-(** @deprecated The functions [add_interfaces], [add_available_units]
- and [clear_available_units] should not be used in new programs,
- since the default initialization of allowed units, along with the
- [allow_only] and [prohibit] function, provides a better, safer
- mechanism to control access to program units. The three functions
- below are provided for backward compatibility only. *)
-
-val add_interfaces : string list -> string list -> unit
-(** [add_interfaces units path] grants dynamically-linked object
- files access to the compilation units named in list [units].
- The interfaces ([.cmi] files) for these units are searched in
- [path] (a list of directory names). *)
-
-val add_available_units : (string * Digest.t) list -> unit
-(** Same as {!Dynlink.add_interfaces}, but instead of searching [.cmi] files
- to find the unit interfaces, uses the interface digests given
- for each unit. This way, the [.cmi] interface files need not be
- available at run-time. The digests can be extracted from [.cmi]
- files using the [extract_crc] program installed in the
- Objective Caml standard library directory. *)
-
-val clear_available_units : unit -> unit
-(** Empty the list of compilation units accessible to dynamically-linked
- programs. *)
-
-(** {6 Error reporting} *)
-
-type linking_error =
- Undefined_global of string
- | Unavailable_primitive of string
- | Uninitialized_global of string
-
-type error =
- Not_a_bytecode_file of string
- | Inconsistent_import of string
- | Unavailable_unit of string
- | Unsafe_file
- | Linking_error of string * linking_error
- | Corrupted_interface of string
- | File_not_found of string
- | Cannot_open_dll of string
-
-exception Error of error
-(** Errors in dynamic linking are reported by raising the [Error]
- exception with a description of the error. *)
-
-val error_message : error -> string
-(** Convert an error description to a printable message. *)
-
-
-(**/**)
-
-(** {6 Internal functions} *)
-
-val digest_interface : string -> string list -> Digest.t