summaryrefslogtreecommitdiff
path: root/bytecomp
diff options
context:
space:
mode:
authorJacques Garrigue <garrigue at math.nagoya-u.ac.jp>2013-12-20 06:55:26 +0000
committerJacques Garrigue <garrigue at math.nagoya-u.ac.jp>2013-12-20 06:55:26 +0000
commitd90b126bd428999d767ef4db4c5d3b05eb27c345 (patch)
tree237a045f93257e65ea8b9276d18e79973b5775f7 /bytecomp
parentc20af454f38f13d7dd3b417e293335fcc82e479f (diff)
downloadocaml-module-alias.tar.gz
Add -trans-mod option for transparent module dependencies.module-alias
Without that option, dependencies are strict, both for typing and linking. git-svn-id: http://caml.inria.fr/svn/ocaml/branches/module-alias@14382 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'bytecomp')
-rw-r--r--bytecomp/translobj.ml7
1 files changed, 7 insertions, 0 deletions
diff --git a/bytecomp/translobj.ml b/bytecomp/translobj.ml
index c6a958cfc3..7f0d8577eb 100644
--- a/bytecomp/translobj.ml
+++ b/bytecomp/translobj.ml
@@ -93,12 +93,19 @@ let prim_makearray =
{ prim_name = "caml_make_vect"; prim_arity = 2; prim_alloc = true;
prim_native_name = ""; prim_native_float = false }
+(* Also use it for required globals *)
let transl_label_init expr =
let expr =
Hashtbl.fold
(fun c id expr -> Llet(Alias, id, Lconst c, expr))
consts expr
in
+ let expr =
+ List.fold_right
+ (fun id expr -> Lsequence(Lprim(Pgetglobal id, []), expr))
+ (Env.get_required_globals ()) expr
+ in
+ Env.reset_required_globals ();
reset_labels ();
expr