(* Initialise the toplevel environment. -*- tuareg -*-
- * $Id: init.in,v 1.4 2007/06/29 19:39:13 rjones Exp $
+ * $Id: init.in,v 1.9 2010/04/04 19:38:40 rjones Exp $
* - Removes the Pervasives module and any dangerous functions.
* - Loads just the modules we want to give access to, and just
* the functions within those modules that we want to give.
*)
(* Load some libraries. *)
+#load "dynlink.cma";;
#load "nums.cma";;
#load "unix.cma";;
#load "str.cma";;
let _ = Hashtbl.create
let _ = Int32.to_string
let _ = Int64.to_string
+let _ = Lazy.force
let _ = List.length
let _ = Nativeint.to_string
let _ = Num.add_num
+let _ = Random.int
let _ = Ratio.null_denominator
let _ = Stack.create
let _ = Str.regexp
module StringSet = Set.Make(String)
module StringMap = Map.Make(String)
-(* Create an object, so we get the CamlinternalOO module. *)
-(* XXX Are any of the methods unsafe? *)
+(* Create an object, so we get the CamlinternalOO module ... *)
let _ = object end
-(* Load our custom grammar, which disables "external". *)
+(* ... but prevent public access to CamlinternalOO. *)
+module CamlinternalOO = struct end
#load "camlp4o.cma";;
#load "./pa_noexternal.cmo";;