summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamien Doligez <damien.doligez-inria.fr>1996-11-02 17:55:06 +0000
committerDamien Doligez <damien.doligez-inria.fr>1996-11-02 17:55:06 +0000
commit1aaf9a118aef383c39ff7424ae8814c836bda771 (patch)
tree4419ad84b1529fe942e779adbcae465fc6b915fb
parentde2bb67cd62cd862747aa3c6dd90da015bba9eaa (diff)
Portage Mac/MPW
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1133 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r--Changes9
-rw-r--r--INSTALL.MPW55
-rw-r--r--Makefile.Mac371
-rw-r--r--Makefile.Mac.depend627
-rw-r--r--bytecomp/bytelink.ml119
5 files changed, 1163 insertions, 18 deletions
diff --git a/Changes b/Changes
index 68f61e615..2d83b528a 100644
--- a/Changes
+++ b/Changes
@@ -1,3 +1,12 @@
+Objective Caml 1.04:
+--------------------
+
+* Macintosh port:
+ - The makefiles are provided for compiling and installing O'Caml on
+ a Macintosh with MPW 3.4.1.
+ - An application with the toplevel in a window is forthcoming.
+
+
Objective Caml 1.03:
--------------------
diff --git a/INSTALL.MPW b/INSTALL.MPW
new file mode 100644
index 000000000..e39bc7fb3
--- /dev/null
+++ b/INSTALL.MPW
@@ -0,0 +1,55 @@
+# PREREQUISITES
+#
+# You need MPW 3.4.1 (with SC and MrC).
+#
+#
+# INSTALLATION INSTRUCTIONS
+#
+# To install Objective Caml in your MPW environment, follow this script.
+# Read the comments and execute the commands. If you run the commands
+# without changing anything, you'll get a reasonable default configuration.
+#
+# Set the shell's stack size to at least 128k because O'Caml uses a lot of
+# stack space.
+
+SetShellSize -s 128k
+
+# Go to the directory where you found this file.
+
+Directory "`echo "{active}" | streamedit -e '1 replace /[Â:]*°/ ""'`"
+
+# Copy some useful scripts to your Commands directory.
+# DoMake is absolutely needed for installation
+# Characters is only needed by the executable error messages
+# MakeDepend is only needed if you rebuild the dependency makefiles
+
+Duplicate :tools:DoMake :tools:Characters :tools:MakeDepend "{MPW}User Commands:"
+
+# Edit ":config:config.Mac" to change the configuration.
+# (mostly, the destination folders for installation)
+
+Open :config:config.Mac
+
+# Set the configuration variables.
+
+Execute :config:config.Mac
+
+# O'Caml needs an environment variable to find its library files.
+# (the value is taken from the configuration variables)
+
+Set -e CAMLLIB "{LIBDIR}"
+
+# Make it persistent.
+
+Echo "Set -e CAMLLIB `quote "{CAMLLIB}"`" >"{MPW}Startup Items:O'Caml"
+
+# Now you're all set. Build the files and install everything.
+# For more explanations on these steps, see the file INSTALL.
+#
+# These commands produce a lot of output, so you may want to copy
+# them to the worksheet for execution.
+
+DoMake world
+DoMake bootstrap
+DoMake install
+DoMake realclean
diff --git a/Makefile.Mac b/Makefile.Mac
new file mode 100644
index 000000000..fad00c372
--- /dev/null
+++ b/Makefile.Mac
@@ -0,0 +1,371 @@
+# The main Makefile
+
+MacVersion = "mac.0x1"
+
+CAMLC = :boot:ocamlrun :boot:ocamlc -I :boot:
+COMPFLAGS = {INCLUDES}
+LINKFLAGS =
+CAMLYACC = :boot:ocamlyacc
+YACCFLAGS =
+CAMLLEX = :boot:ocamlrun :boot:ocamllex
+CAMLDEP = :boot:ocamlrun :tools:ocamldep
+DEPFLAGS = {INCLUDES}
+CAMLRUN = :byterun:ocamlrun
+
+INCLUDES = -I :utils: -I :parsing: -I :typing: -I :bytecomp: ¶
+ -I :driver: -I :toplevel:
+
+UTILS = :utils:misc.cmo :utils:tbl.cmo :utils:config.cmo ¶
+ :utils:clflags.cmo :utils:terminfo.cmo
+
+PARSING = :parsing:location.cmo :parsing:longident.cmo :parsing:pstream.cmo ¶
+ :parsing:parser.cmo :parsing:lexer.cmo :parsing:parse.cmo
+
+TYPING = :typing:ident.cmo :typing:path.cmo ¶
+ :typing:primitive.cmo :typing:types.cmo ¶
+ :typing:subst.cmo :typing:predef.cmo ¶
+ :typing:datarepr.cmo :typing:env.cmo ¶
+ :typing:typedtree.cmo ¶
+ :typing:ctype.cmo :typing:printtyp.cmo ¶
+ :typing:mtype.cmo :typing:includecore.cmo ¶
+ :typing:includemod.cmo :typing:parmatch.cmo ¶
+ :typing:typetexp.cmo :typing:typecore.cmo ¶
+ :typing:typedecl.cmo :typing:typeclass.cmo ¶
+ :typing:typemod.cmo
+
+COMP = :bytecomp:lambda.cmo :bytecomp:printlambda.cmo ¶
+ :bytecomp:translobj.cmo :bytecomp:matching.cmo :bytecomp:translcore.cmo ¶
+ :bytecomp:translclass.cmo :bytecomp:translmod.cmo ¶
+ :bytecomp:simplif.cmo :bytecomp:runtimedef.cmo
+
+BYTECOMP = :bytecomp:meta.cmo :bytecomp:instruct.cmo :bytecomp:bytegen.cmo ¶
+ :bytecomp:printinstr.cmo :bytecomp:opcodes.cmo :bytecomp:emitcode.cmo ¶
+ :bytecomp:symtable.cmo :bytecomp:bytelibrarian.cmo :bytecomp:bytelink.cmo
+
+DRIVER = :driver:errors.cmo :driver:compile.cmo :driver:main.cmo
+
+TOPLEVEL = :driver:errors.cmo :driver:compile.cmo ¶
+ :toplevel:printval.cmo :toplevel:toploop.cmo ¶
+ :toplevel:trace.cmo :toplevel:topdirs.cmo
+
+TOPLEVELMAIN = :toplevel:topmain.cmo
+
+COMPOBJS = {UTILS} {PARSING} {TYPING} {COMP} {BYTECOMP} {DRIVER}
+
+TOPLIB = {UTILS} {PARSING} {TYPING} {COMP} {BYTECOMP} {TOPLEVEL}
+
+EXPUNGEOBJS = :utils:misc.cmo :utils:tbl.cmo ¶
+ :utils:config.cmo :utils:clflags.cmo ¶
+ :typing:ident.cmo :typing:predef.cmo ¶
+ :bytecomp:runtimedef.cmo :bytecomp:symtable.cmo ¶
+ :toplevel:expunge.cmo
+
+PERVASIVES = arg array char digest filename format gc hashtbl lexing list map ¶
+ obj parsing pervasives printexc printf queue random set sort ¶
+ stack string stream sys oo genlex topdirs
+
+# Recompile the system using the bootstrap compiler
+all Ä runtime ocamlc ocamllex ocamlyacc ocamltools library ocaml otherlibraries
+
+# The compilation of ocaml will fail if the runtime has changed.
+# Never mind, just do make bootstrap to reach fixpoint again.
+
+# Compile everything the first time
+world Ä
+ domake coldstart
+ domake clean
+ domake all
+
+# Complete bootstrapping cycle
+bootstrap Ä
+# Save the original bootstrap compiler
+ domake backup
+# Promote the new compiler but keep the old runtime
+# This compiler runs on :boot:ocamlrun and produces bytecode for
+# :byterun:ocamlrun
+ domake promote-cross
+# Rebuild ocamlc and ocamllex (run on :byterun:ocamlrun)
+ domake clean
+ domake ocamlc ocamllex
+# Rebuild the library (using :byterun:ocamlrun :ocamlc)
+ domake library-cross
+# Promote the new compiler and the new runtime
+ domake promote
+# Rebuild everything, including ocaml and the tools
+ domake clean
+ domake all
+# Check if fixpoint reached
+ domake compare
+ beep
+
+LIBFILES = :stdlib.cma :std_exit.cmo :Å.cmi camlheader
+
+# Start up the system from the distribution compiler
+coldstart Ä
+ directory :byterun; domake all; directory ::
+ duplicate -y :byterun:ocamlrun :boot:ocamlrun
+ directory :yacc; domake all; directory ::
+ duplicate -y :yacc:ocamlyacc :boot:ocamlyacc
+ directory :stdlib
+ domake -d COMPILER=::boot:ocamlc all
+ duplicate -y {LIBFILES} ::boot:
+ directory ::
+
+# Save the current bootstrap compiler
+backup Ä
+ if `exists -d :boot:Saved:` == ""
+ NewFolder :boot:Saved:
+ end
+ move :boot:Saved: :boot:Saved.prev:
+ NewFolder :boot:Saved:
+ move :boot:Saved.prev: :boot:Saved:Saved.prev:
+ duplicate -y :boot:ocamlrun :boot:Saved:
+ move :boot:ocamlc :boot:ocamllex :boot:ocamlyacc :boot:Saved:
+ directory :boot; duplicate -y {LIBFILES} :Saved:; directory ::
+
+# Promote the newly compiled system to the rank of cross compiler
+# (Runs on the old runtime, produces code for the new runtime)
+promote-cross Ä
+ duplicate -y :ocamlc :boot:ocamlc
+ duplicate -y :lex:ocamllex :boot:ocamllex
+ duplicate -y :yacc:ocamlyacc :boot:ocamlyacc
+ directory :stdlib
+ duplicate -y {LIBFILES} ::boot: || set status 0
+ directory ::
+
+# Promote the newly compiled system to the rank of bootstrap compiler
+# (Runs on the new runtime, produces code for the new runtime)
+promote Ä promote-cross
+ duplicate -y :byterun:ocamlrun :boot:ocamlrun
+
+# Restore the saved bootstrap compiler if a problem arises
+restore Ä
+ move -y :boot:Saved:Å :boot:
+ delete -y :boot:Saved:
+ move -y :boot:Saved.prev: :boot:Saved:
+
+# Check if fixpoint reached
+compare Ä
+ set exit 0
+ equal -q :boot:ocamlc :ocamlc && equal -q :boot:ocamllex :lex:ocamllex
+ if {status}
+ echo "¶nFixpoint not reached, try one more bootstrapping cycle.¶n"
+ else
+ echo "¶nFixpoint reached, bootstrap succeeded.¶n"
+ end
+
+# Remove old bootstrap compilers
+cleanboot Ä
+ delete -i -y :boot:Saved:Saved.prev:Å || set status 0
+
+# Installation
+install Ä $OutOfDate
+ flush
+ for i in "{BINDIR}" "{LIBDIR}"
+ if "`exists -d "{i}"`" == ""
+ newfolder "{i}"
+ end
+ end
+ directory :byterun:
+ domake install
+ directory ::
+ duplicate -y :ocamlc "{BINDIR}ocamlc"
+ duplicate -y :ocaml "{BINDIR}ocaml"
+ directory :stdlib:
+ domake install
+ directory ::
+ duplicate -y :lex:ocamllex "{BINDIR}ocamllex"
+ duplicate -y :yacc:ocamlyacc "{BINDIR}ocamlyacc"
+ duplicate -y toplevellib.cma expunge "{LIBDIR}"
+ duplicate -y :toplevel:topmain.cmo "{LIBDIR}topmain.cmo"
+ duplicate -y :toplevel:toploop.cmi :toplevel:topdirs.cmi "{LIBDIR}"
+ directory :tools:
+ domake install
+ directory ::
+ duplicate -y :man:ocaml.help "{HELPFILE}"
+ for i in {OTHERLIBRARIES}
+ directory :otherlibs:{i}
+ domake install
+ directory :::
+ end
+
+realclean ÄÄ clean
+
+# The compiler
+
+ocamlc Ä {COMPOBJS}
+ {CAMLC} {LINKFLAGS} -o ocamlc {COMPOBJS}
+
+clean ÄÄ
+ delete -i ocamlc
+
+# The toplevel
+
+ocaml Ä toplevellib.cma {TOPLEVELMAIN} expunge
+ {CAMLC} {LINKFLAGS} -linkall -o ocaml.tmp toplevellib.cma {TOPLEVELMAIN}
+ {CAMLRUN} :expunge ocaml.tmp ocaml {PERVASIVES} || set status 0
+ delete -i ocaml.tmp
+
+toplevellib.cma Ä {TOPLIB}
+ {CAMLC} -a -o toplevellib.cma {TOPLIB}
+
+clean ÄÄ
+ delete -i ocaml toplevellib.cma
+
+# The configuration file
+
+:utils:config.ml Ä :utils:config.mlp :config:Makefile
+ delete -i :utils:config.ml
+ streamedit -e "/let version =/ replace /¶¶¶"°/ ¶"/{MacVersion}¶¶¶"¶"" ¶
+ -e "1,$ replace /%%LIBDIR%%/ ¶"{LIBDIR}¶"" ¶
+ -e "1,$ replace /%%EXT_OBJ%%/ '.o'" ¶
+ -e "1,$ replace /%%EXT_LIB%%/ '.x'" ¶
+ :utils:config.mlp > :utils:config.ml
+
+clean ÄÄ
+ delete -i :utils:config.ml
+
+beforedepend ÄÄ :utils:config.ml
+
+# The parser generator
+
+:parsing:parser.mli Ä :parsing:parser.ml
+ echo -n
+
+:parsing:parser.ml Ä :parsing:parser.mly
+ {CAMLYACC} {YACCFLAGS} :parsing:parser.mly
+
+clean ÄÄ
+ delete -i :parsing:parser.mli :parsing:parser.ml :parsing:parser.output
+
+beforedepend ÄÄ :parsing:parser.mli :parsing:parser.ml
+
+# The lexer generator
+
+:parsing:lexer.ml Ä :parsing:lexer.mll
+ {CAMLLEX} :parsing:lexer.mll
+
+clean ÄÄ
+ delete -i :parsing:lexer.ml
+
+beforedepend ÄÄ :parsing:lexer.ml
+
+# The numeric opcodes
+
+:bytecomp:opcodes.ml Ä :byterun:instruct.h
+ :tools:make-opcodes.Mac :byterun:instruct.h :bytecomp:opcodes.ml
+
+clean ÄÄ
+ delete -i :bytecomp:opcodes.ml
+
+beforedepend ÄÄ :bytecomp:opcodes.ml
+
+# The predefined exceptions and primitives
+
+:byterun:primitives Ä
+ directory :byterun:
+ domake primitives
+ directory ::
+
+:bytecomp:runtimedef.ml Ä :byterun:primitives :byterun:fail.h
+ (echo 'let builtin_exceptions = [|' ; ¶
+ streamedit -d -e '/¶/¶* (¶"[A-Za-z_]*¶")¨0 ¶*¶/°/ print ¨0 ";"' :byterun:fail.h | ¶
+ streamedit -e '$ replace /;°/ "|]"'; ¶
+ echo 'let builtin_primitives = [|'; ¶
+ streamedit -e "1,$ replace /(Å)¨0/ ' ¶"' ¨0 '¶";'" -e '$ replace /;°/ "|]"' :byterun:primitives; ¶
+ ) > :bytecomp:runtimedef.ml
+
+clean ÄÄ
+ delete -i :bytecomp:runtimedef.ml
+
+beforedepend ÄÄ :bytecomp:runtimedef.ml
+
+# The "expunge" utility
+
+expunge Ä {EXPUNGEOBJS}
+ {CAMLC} {LINKFLAGS} -o expunge {EXPUNGEOBJS}
+
+clean ÄÄ
+ delete -i expunge
+
+# The runtime system for the bytecode compiler
+
+runtime Ä
+ directory :byterun:; domake all; directory ::
+realclean ÄÄ
+ directory :byterun:; domake clean; directory ::
+alldepend ÄÄ
+ directory :byterun:; domake depend; directory ::
+
+# The library
+
+library Ä
+ directory :stdlib; domake all; directory ::
+library-cross Ä
+ directory :stdlib; domake -d RUNTIME=::byterun:ocamlrun all; directory ::
+clean ÄÄ
+ directory :stdlib; domake clean; directory ::
+alldepend ÄÄ
+ directory :stdlib; domake depend; directory ::
+
+# The lexer and parser generators
+
+ocamllex Ä
+ directory :lex; domake all; directory ::
+clean ÄÄ
+ directory :lex; domake clean; directory ::
+alldepend ÄÄ
+ directory :lex; domake depend; directory ::
+
+ocamlyacc Ä
+ directory :yacc; domake all; directory ::
+realclean ÄÄ
+ directory :yacc; domake clean; directory ::
+
+# Tools
+
+ocamltools Ä
+ directory :tools; domake all; directory ::
+clean ÄÄ
+ directory :tools; domake clean; directory ::
+alldepend ÄÄ
+ directory :tools; domake depend; directory ::
+
+# The extra libraries
+
+otherlibraries Ä
+ for i in {OTHERLIBRARIES}
+ directory :otherlibs:{i}; domake all; directory :::
+ end
+clean ÄÄ
+ for i in {OTHERLIBRARIES}
+ directory :otherlibs:{i}; domake clean; directory :::
+ end
+realclean ÄÄ
+ for i in {OTHERLIBRARIES}
+ directory :otherlibs:{i}; domake realclean; directory :::
+ end
+alldepend ÄÄ
+ for i in {OTHERLIBRARIES}
+ directory :otherlibs:{i}; domake depend; directory :::
+ end
+
+# Default rules
+
+.cmo Ä .ml
+ {CAMLC} {COMPFLAGS} -c {depdir}{default}.ml
+
+.cmi Ä .mli
+ {CAMLC} {COMPFLAGS} -c {depdir}{default}.mli
+
+clean ÄÄ
+ for i in utils parsing typing bytecomp driver toplevel tools
+ delete -i :{i}:Å.cm[io] || set status 0
+ end
+
+depend Ä beforedepend
+ for d in utils parsing typing bytecomp driver toplevel
+ {CAMLDEP} {DEPFLAGS} :{d}:Å.mli :{d}:Å.ml
+ end > Makefile.Mac.depend
+
+alldepend ÄÄ depend
diff --git a/Makefile.Mac.depend b/Makefile.Mac.depend
new file mode 100644
index 000000000..2583ecbec
--- /dev/null
+++ b/Makefile.Mac.depend
@@ -0,0 +1,627 @@
+:utils:config.cmoÄ :utils:config.cmi
+:utils:config.cmxÄ :utils:config.cmi
+:utils:misc.cmoÄ :utils:misc.cmi
+:utils:misc.cmxÄ :utils:misc.cmi
+:utils:tbl.cmoÄ :utils:tbl.cmi
+:utils:tbl.cmxÄ :utils:tbl.cmi
+:utils:terminfo.cmoÄ :utils:terminfo.cmi
+:utils:terminfo.cmxÄ :utils:terminfo.cmi
+:parsing:lexer.cmiÄ :parsing:parser.cmi
+:parsing:parse.cmiÄ :parsing:parsetree.cmi
+:parsing:parser.cmiÄ :parsing:parsetree.cmi
+:parsing:parsetree.cmiÄ :parsing:asttypes.cmi :parsing:location.cmi ¶
+ :parsing:longident.cmi
+:parsing:pstream.cmiÄ :parsing:parsetree.cmi
+:parsing:lexer.cmoÄ :utils:misc.cmi :parsing:parser.cmi :parsing:lexer.cmi
+:parsing:lexer.cmxÄ :utils:misc.cmx :parsing:parser.cmx :parsing:lexer.cmi
+:parsing:location.cmoÄ :utils:terminfo.cmi :parsing:location.cmi
+:parsing:location.cmxÄ :utils:terminfo.cmx :parsing:location.cmi
+:parsing:longident.cmoÄ :utils:misc.cmi :parsing:longident.cmi
+:parsing:longident.cmxÄ :utils:misc.cmx :parsing:longident.cmi
+:parsing:parse.cmoÄ :parsing:lexer.cmi :parsing:location.cmi ¶
+ :parsing:parser.cmi :parsing:parse.cmi
+:parsing:parse.cmxÄ :parsing:lexer.cmx :parsing:location.cmx ¶
+ :parsing:parser.cmx :parsing:parse.cmi
+:parsing:parser.cmoÄ :parsing:asttypes.cmi :utils:clflags.cmo ¶
+ :parsing:location.cmi :parsing:longident.cmi :parsing:parsetree.cmi ¶
+ :parsing:pstream.cmi :parsing:parser.cmi
+:parsing:parser.cmxÄ :parsing:asttypes.cmi :utils:clflags.cmx ¶
+ :parsing:location.cmx :parsing:longident.cmx :parsing:parsetree.cmi ¶
+ :parsing:pstream.cmx :parsing:parser.cmi
+:parsing:pstream.cmoÄ :parsing:asttypes.cmi :parsing:location.cmi ¶
+ :parsing:longident.cmi :parsing:parsetree.cmi :parsing:pstream.cmi
+:parsing:pstream.cmxÄ :parsing:asttypes.cmi :parsing:location.cmx ¶
+ :parsing:longident.cmx :parsing:parsetree.cmi :parsing:pstream.cmi
+:typing:ctype.cmiÄ :parsing:asttypes.cmi :typing:env.cmi :typing:ident.cmi ¶
+ :typing:path.cmi :typing:types.cmi
+:typing:datarepr.cmiÄ :parsing:asttypes.cmi :typing:path.cmi ¶
+ :typing:types.cmi
+:typing:env.cmiÄ :typing:ident.cmi :parsing:longident.cmi :typing:path.cmi ¶
+ :typing:types.cmi
+:typing:includecore.cmiÄ :typing:env.cmi :typing:ident.cmi ¶
+ :typing:typedtree.cmi :typing:types.cmi
+:typing:includemod.cmiÄ :typing:env.cmi :typing:ident.cmi ¶
+ :typing:typedtree.cmi :typing:types.cmi
+:typing:mtype.cmiÄ :typing:env.cmi :typing:ident.cmi :typing:path.cmi ¶
+ :typing:types.cmi
+:typing:parmatch.cmiÄ :parsing:location.cmi :typing:typedtree.cmi
+:typing:path.cmiÄ :typing:ident.cmi
+:typing:predef.cmiÄ :typing:ident.cmi :typing:path.cmi :typing:types.cmi
+:typing:printtyp.cmiÄ :typing:ident.cmi :parsing:longident.cmi ¶
+ :typing:path.cmi :typing:types.cmi
+:typing:subst.cmiÄ :typing:ident.cmi :typing:path.cmi :typing:types.cmi
+:typing:typeclass.cmiÄ :parsing:asttypes.cmi :typing:ctype.cmi ¶
+ :typing:env.cmi :typing:ident.cmi :parsing:location.cmi ¶
+ :parsing:longident.cmi :parsing:parsetree.cmi :typing:path.cmi ¶
+ :typing:typedtree.cmi :typing:types.cmi
+:typing:typecore.cmiÄ :parsing:asttypes.cmi :typing:env.cmi ¶
+ :parsing:location.cmi :parsing:longident.cmi :parsing:parsetree.cmi ¶
+ :typing:typedtree.cmi :typing:types.cmi
+:typing:typedecl.cmiÄ :typing:env.cmi :typing:ident.cmi :parsing:location.cmi ¶
+ :parsing:parsetree.cmi :typing:types.cmi
+:typing:typedtree.cmiÄ :parsing:asttypes.cmi :typing:env.cmi ¶
+ :typing:ident.cmi :parsing:location.cmi :typing:path.cmi ¶
+ :typing:primitive.cmi :typing:types.cmi
+:typing:typemod.cmiÄ :typing:env.cmi :typing:ident.cmi :typing:includemod.cmi ¶
+ :parsing:location.cmi :parsing:longident.cmi :parsing:parsetree.cmi ¶
+ :typing:typedtree.cmi :typing:types.cmi
+:typing:types.cmiÄ :parsing:asttypes.cmi :typing:ident.cmi :typing:path.cmi ¶
+ :typing:primitive.cmi
+:typing:typetexp.cmiÄ :typing:env.cmi :parsing:location.cmi ¶
+ :parsing:longident.cmi :parsing:parsetree.cmi :typing:types.cmi
+:typing:ctype.cmoÄ :parsing:asttypes.cmi :typing:env.cmi :utils:misc.cmi ¶
+ :typing:path.cmi :typing:types.cmi :typing:ctype.cmi
+:typing:ctype.cmxÄ :parsing:asttypes.cmi :typing:env.cmx :utils:misc.cmx ¶
+ :typing:path.cmx :typing:types.cmx :typing:ctype.cmi
+:typing:datarepr.cmoÄ :parsing:asttypes.cmi :utils:misc.cmi :typing:path.cmi ¶
+ :typing:predef.cmi :typing:types.cmi :typing:datarepr.cmi
+:typing:datarepr.cmxÄ :parsing:asttypes.cmi :utils:misc.cmx :typing:path.cmx ¶
+ :typing:predef.cmx :typing:types.cmx :typing:datarepr.cmi
+:typing:env.cmoÄ :parsing:asttypes.cmi :utils:config.cmi :typing:datarepr.cmi ¶
+ :typing:ident.cmi :parsing:longident.cmi :utils:misc.cmi :typing:path.cmi ¶
+ :typing:predef.cmi :typing:subst.cmi :utils:tbl.cmi :typing:types.cmi ¶
+ :typing:env.cmi
+:typing:env.cmxÄ :parsing:asttypes.cmi :utils:config.cmx :typing:datarepr.cmx ¶
+ :typing:ident.cmx :parsing:longident.cmx :utils:misc.cmx :typing:path.cmx ¶
+ :typing:predef.cmx :typing:subst.cmx :utils:tbl.cmx :typing:types.cmx ¶
+ :typing:env.cmi
+:typing:ident.cmoÄ :typing:ident.cmi
+:typing:ident.cmxÄ :typing:ident.cmi
+:typing:includecore.cmoÄ :parsing:asttypes.cmi :typing:ctype.cmi ¶
+ :utils:misc.cmi :typing:path.cmi :typing:predef.cmi :typing:typedtree.cmi ¶
+ :typing:types.cmi :typing:includecore.cmi
+:typing:includecore.cmxÄ :parsing:asttypes.cmi :typing:ctype.cmx ¶
+ :utils:misc.cmx :typing:path.cmx :typing:predef.cmx :typing:typedtree.cmx ¶
+ :typing:types.cmx :typing:includecore.cmi
+:typing:includemod.cmoÄ :typing:env.cmi :typing:ident.cmi ¶
+ :typing:includecore.cmi :utils:misc.cmi :typing:path.cmi ¶
+ :typing:printtyp.cmi :utils:tbl.cmi :typing:typedtree.cmi ¶
+ :typing:types.cmi :typing:includemod.cmi
+:typing:includemod.cmxÄ :typing:env.cmx :typing:ident.cmx ¶
+ :typing:includecore.cmx :utils:misc.cmx :typing:path.cmx ¶
+ :typing:printtyp.cmx :utils:tbl.cmx :typing:typedtree.cmx ¶
+ :typing:types.cmx :typing:includemod.cmi
+:typing:mtype.cmoÄ :typing:ctype.cmi :typing:env.cmi :typing:ident.cmi ¶
+ :typing:path.cmi :typing:types.cmi :typing:mtype.cmi
+:typing:mtype.cmxÄ :typing:ctype.cmx :typing:env.cmx :typing:ident.cmx ¶
+ :typing:path.cmx :typing:types.cmx :typing:mtype.cmi
+:typing:parmatch.cmoÄ :parsing:asttypes.cmi :typing:ctype.cmi ¶
+ :parsing:location.cmi :utils:misc.cmi :typing:typedtree.cmi ¶
+ :typing:types.cmi :typing:parmatch.cmi
+:typing:parmatch.cmxÄ :parsing:asttypes.cmi :typing:ctype.cmx ¶
+ :parsing:location.cmx :utils:misc.cmx :typing:typedtree.cmx ¶
+ :typing:types.cmx :typing:parmatch.cmi
+:typing:path.cmoÄ :typing:ident.cmi :typing:path.cmi
+:typing:path.cmxÄ :typing:ident.cmx :typing:path.cmi
+:typing:predef.cmoÄ :typing:ident.cmi :typing:path.cmi :typing:types.cmi ¶
+ :typing:predef.cmi
+:typing:predef.cmxÄ :typing:ident.cmx :typing:path.cmx :typing:types.cmx ¶
+ :typing:predef.cmi
+:typing:primitive.cmoÄ :typing:primitive.cmi
+:typing:primitive.cmxÄ :typing:primitive.cmi
+:typing:printtyp.cmoÄ :parsing:asttypes.cmi :typing:ctype.cmi ¶
+ :typing:ident.cmi :parsing:longident.cmi :utils:misc.cmi :typing:path.cmi ¶
+ :typing:primitive.cmi :typing:types.cmi :typing:printtyp.cmi
+:typing:printtyp.cmxÄ :parsing:asttypes.cmi :typing:ctype.cmx ¶
+ :typing:ident.cmx :parsing:longident.cmx :utils:misc.cmx :typing:path.cmx ¶
+ :typing:primitive.cmx :typing:types.cmx :typing:printtyp.cmi
+:typing:subst.cmoÄ :typing:ident.cmi :utils:misc.cmi :typing:path.cmi ¶
+ :utils:tbl.cmi :typing:types.cmi :typing:subst.cmi
+:typing:subst.cmxÄ :typing:ident.cmx :utils:misc.cmx :typing:path.cmx ¶
+ :utils:tbl.cmx :typing:types.cmx :typing:subst.cmi
+:typing:typeclass.cmoÄ :parsing:asttypes.cmi :typing:ctype.cmi ¶
+ :typing:env.cmi :typing:ident.cmi :parsing:location.cmi ¶
+ :parsing:longident.cmi :utils:misc.cmi :parsing:parsetree.cmi ¶
+ :typing:path.cmi :typing:printtyp.cmi :typing:typecore.cmi ¶
+ :typing:typedtree.cmi :typing:types.cmi :typing:typetexp.cmi ¶
+ :typing:typeclass.cmi
+:typing:typeclass.cmxÄ :parsing:asttypes.cmi :typing:ctype.cmx ¶
+ :typing:env.cmx :typing:ident.cmx :parsing:location.cmx ¶
+ :parsing:longident.cmx :utils:misc.cmx :parsing:parsetree.cmi ¶
+ :typing:path.cmx :typing:printtyp.cmx :typing:typecore.cmx ¶
+ :typing:typedtree.cmx :typing:types.cmx :typing:typetexp.cmx ¶
+ :typing:typeclass.cmi
+:typing:typecore.cmoÄ :parsing:asttypes.cmi :typing:ctype.cmi :typing:env.cmi ¶
+ :typing:ident.cmi :parsing:location.cmi :parsing:longident.cmi ¶
+ :utils:misc.cmi :typing:parmatch.cmi :parsing:parsetree.cmi ¶
+ :typing:path.cmi :typing:predef.cmi :typing:printtyp.cmi ¶
+ :typing:typedtree.cmi :typing:types.cmi :typing:typetexp.cmi ¶
+ :typing:typecore.cmi
+:typing:typecore.cmxÄ :parsing:asttypes.cmi :typing:ctype.cmx :typing:env.cmx ¶
+ :typing:ident.cmx :parsing:location.cmx :parsing:longident.cmx ¶
+ :utils:misc.cmx :typing:parmatch.cmx :parsing:parsetree.cmi ¶
+ :typing:path.cmx :typing:predef.cmx :typing:printtyp.cmx ¶
+ :typing:typedtree.cmx :typing:types.cmx :typing:typetexp.cmx ¶
+ :typing:typecore.cmi
+:typing:typedecl.cmoÄ :utils:config.cmi :typing:ctype.cmi :typing:env.cmi ¶
+ :typing:ident.cmi :typing:includecore.cmi :parsing:location.cmi ¶
+ :parsing:parsetree.cmi :typing:primitive.cmi :typing:printtyp.cmi ¶
+ :typing:typedtree.cmi :typing:types.cmi :typing:typetexp.cmi ¶
+ :typing:typedecl.cmi
+:typing:typedecl.cmxÄ :utils:config.cmx :typing:ctype.cmx :typing:env.cmx ¶
+ :typing:ident.cmx :typing:includecore.cmx :parsing:location.cmx ¶
+ :parsing:parsetree.cmi :typing:primitive.cmx :typing:printtyp.cmx ¶
+ :typing:typedtree.cmx :typing:types.cmx :typing:typetexp.cmx ¶
+ :typing:typedecl.cmi
+:typing:typedtree.cmoÄ :parsing:asttypes.cmi :typing:env.cmi ¶
+ :typing:ident.cmi :parsing:location.cmi :utils:misc.cmi :typing:path.cmi ¶
+ :typing:primitive.cmi :typing:types.cmi :typing:typedtree.cmi
+:typing:typedtree.cmxÄ :parsing:asttypes.cmi :typing:env.cmx ¶
+ :typing:ident.cmx :parsing:location.cmx :utils:misc.cmx :typing:path.cmx ¶
+ :typing:primitive.cmx :typing:types.cmx :typing:typedtree.cmi
+:typing:typemod.cmoÄ :typing:ctype.cmi :typing:env.cmi :typing:ident.cmi ¶
+ :typing:includemod.cmi :parsing:location.cmi :parsing:longident.cmi ¶
+ :utils:misc.cmi :typing:mtype.cmi :parsing:parsetree.cmi :typing:path.cmi ¶
+ :typing:printtyp.cmi :typing:subst.cmi :typing:typeclass.cmi ¶
+ :typing:typecore.cmi :typing:typedecl.cmi :typing:typedtree.cmi ¶
+ :typing:types.cmi :typing:typemod.cmi
+:typing:typemod.cmxÄ :typing:ctype.cmx :typing:env.cmx :typing:ident.cmx ¶
+ :typing:includemod.cmx :parsing:location.cmx :parsing:longident.cmx ¶
+ :utils:misc.cmx :typing:mtype.cmx :parsing:parsetree.cmi :typing:path.cmx ¶
+ :typing:printtyp.cmx :typing:subst.cmx :typing:typeclass.cmx ¶
+ :typing:typecore.cmx :typing:typedecl.cmx :typing:typedtree.cmx ¶
+ :typing:types.cmx :typing:typemod.cmi
+:typing:types.cmoÄ :parsing:asttypes.cmi :typing:ident.cmi :utils:misc.cmi ¶
+ :typing:path.cmi :typing:primitive.cmi :typing:types.cmi
+:typing:types.cmxÄ :parsing:asttypes.cmi :typing:ident.cmx :utils:misc.cmx ¶
+ :typing:path.cmx :typing:primitive.cmx :typing:types.cmi
+:typing:typetexp.cmoÄ :typing:ctype.cmi :typing:env.cmi :parsing:location.cmi ¶
+ :parsing:longident.cmi :utils:misc.cmi :parsing:parsetree.cmi ¶
+ :typing:printtyp.cmi :utils:tbl.cmi :typing:types.cmi ¶
+ :typing:typetexp.cmi
+:typing:typetexp.cmxÄ :typing:ctype.cmx :typing:env.cmx :parsing:location.cmx ¶
+ :parsing:longident.cmx :utils:misc.cmx :parsing:parsetree.cmi ¶
+ :typing:printtyp.cmx :utils:tbl.cmx :typing:types.cmx ¶
+ :typing:typetexp.cmi
+:bytecomp:bytegen.cmiÄ :bytecomp:instruct.cmi :bytecomp:lambda.cmi
+:bytecomp:bytelink.cmiÄ :bytecomp:emitcode.cmi :bytecomp:symtable.cmi
+:bytecomp:emitcode.cmiÄ :typing:ident.cmi :bytecomp:instruct.cmi ¶
+ :bytecomp:lambda.cmi
+:bytecomp:instruct.cmiÄ :typing:ident.cmi :bytecomp:lambda.cmi
+:bytecomp:lambda.cmiÄ :parsing:asttypes.cmi :typing:ident.cmi ¶
+ :typing:path.cmi :typing:primitive.cmi
+:bytecomp:matching.cmiÄ :bytecomp:lambda.cmi :parsing:location.cmi ¶
+ :typing:typedtree.cmi
+:bytecomp:printinstr.cmiÄ :bytecomp:instruct.cmi
+:bytecomp:printlambda.cmiÄ :bytecomp:lambda.cmi
+:bytecomp:simplif.cmiÄ :bytecomp:lambda.cmi
+:bytecomp:symtable.cmiÄ :bytecomp:emitcode.cmi :typing:ident.cmi
+:bytecomp:translclass.cmiÄ :typing:ident.cmi :bytecomp:lambda.cmi ¶
+ :typing:typedtree.cmi
+:bytecomp:translcore.cmiÄ :parsing:asttypes.cmi :typing:ident.cmi ¶
+ :bytecomp:lambda.cmi :parsing:location.cmi :typing:primitive.cmi ¶
+ :typing:typedtree.cmi :typing:types.cmi
+:bytecomp:translmod.cmiÄ :bytecomp:lambda.cmi :typing:typedtree.cmi
+:bytecomp:translobj.cmiÄ :typing:ident.cmi :bytecomp:lambda.cmi
+:bytecomp:bytegen.cmoÄ :parsing:asttypes.cmi :typing:ident.cmi ¶
+ :bytecomp:instruct.cmi :bytecomp:lambda.cmi :utils:misc.cmi ¶
+ :typing:primitive.cmi :typing:types.cmi :bytecomp:bytegen.cmi
+:bytecomp:bytegen.cmxÄ :parsing:asttypes.cmi :typing:ident.cmx ¶
+ :bytecomp:instruct.cmx :bytecomp:lambda.cmx :utils:misc.cmx ¶
+ :typing:primitive.cmx :typing:types.cmx :bytecomp:bytegen.cmi
+:bytecomp:bytelibrarian.cmoÄ :utils:clflags.cmo :utils:config.cmi ¶
+ :bytecomp:emitcode.cmi :utils:misc.cmi :bytecomp:bytelibrarian.cmi
+:bytecomp:bytelibrarian.cmxÄ :utils:clflags.cmx :utils:config.cmx ¶
+ :bytecomp:emitcode.cmx :utils:misc.cmx :bytecomp:bytelibrarian.cmi
+:bytecomp:bytelink.cmoÄ :utils:clflags.cmo :utils:config.cmi ¶
+ :bytecomp:emitcode.cmi :typing:ident.cmi :utils:misc.cmi ¶
+ :bytecomp:opcodes.cmo :bytecomp:symtable.cmi :bytecomp:bytelink.cmi
+:bytecomp:bytelink.cmxÄ :utils:clflags.cmx :utils:config.cmx ¶
+ :bytecomp:emitcode.cmx :typing:ident.cmx :utils:misc.cmx ¶
+ :bytecomp:opcodes.cmx :bytecomp:symtable.cmx :bytecomp:bytelink.cmi
+:bytecomp:emitcode.cmoÄ :parsing:asttypes.cmi :utils:config.cmi ¶
+ :typing:env.cmi :typing:ident.cmi :bytecomp:instruct.cmi ¶
+ :bytecomp:lambda.cmi :bytecomp:meta.cmi :utils:misc.cmi ¶
+ :bytecomp:opcodes.cmo :bytecomp:translmod.cmi :bytecomp:emitcode.cmi
+:bytecomp:emitcode.cmxÄ :parsing:asttypes.cmi :utils:config.cmx ¶
+ :typing:env.cmx :typing:ident.cmx :bytecomp:instruct.cmx ¶
+ :bytecomp:lambda.cmx :bytecomp:meta.cmx :utils:misc.cmx ¶
+ :bytecomp:opcodes.cmx :bytecomp:translmod.cmx :bytecomp:emitcode.cmi
+:bytecomp:instruct.cmoÄ :typing:ident.cmi :bytecomp:lambda.cmi ¶
+ :bytecomp:instruct.cmi
+:bytecomp:instruct.cmxÄ :typing:ident.cmx :bytecomp:lambda.cmx ¶
+ :bytecomp:instruct.cmi
+:bytecomp:lambda.cmoÄ :parsing:asttypes.cmi :typing:ident.cmi :utils:misc.cmi ¶
+ :typing:path.cmi :typing:primitive.cmi :bytecomp:lambda.cmi
+:bytecomp:lambda.cmxÄ :parsing:asttypes.cmi :typing:ident.cmx :utils:misc.cmx ¶
+ :typing:path.cmx :typing:primitive.cmx :bytecomp:lambda.cmi
+:bytecomp:matching.cmoÄ :parsing:asttypes.cmi :typing:ctype.cmi ¶
+ :typing:ident.cmi :bytecomp:lambda.cmi :parsing:location.cmi ¶
+ :utils:misc.cmi :typing:predef.cmi :typing:primitive.cmi ¶
+ :typing:typedtree.cmi :typing:types.cmi :bytecomp:matching.cmi
+:bytecomp:matching.cmxÄ :parsing:asttypes.cmi :typing:ctype.cmx ¶
+ :typing:ident.cmx :bytecomp:lambda.cmx :parsing:location.cmx ¶
+ :utils:misc.cmx :typing:predef.cmx :typing:primitive.cmx ¶
+ :typing:typedtree.cmx :typing:types.cmx :bytecomp:matching.cmi
+:bytecomp:meta.cmoÄ :bytecomp:meta.cmi
+:bytecomp:meta.cmxÄ :bytecomp:meta.cmi
+:bytecomp:printinstr.cmoÄ :typing:ident.cmi :bytecomp:instruct.cmi ¶
+ :bytecomp:lambda.cmi :bytecomp:printlambda.cmi :bytecomp:printinstr.cmi
+:bytecomp:printinstr.cmxÄ :typing:ident.cmx :bytecomp:instruct.cmx ¶
+ :bytecomp:lambda.cmx :bytecomp:printlambda.cmx :bytecomp:printinstr.cmi
+:bytecomp:printlambda.cmoÄ :parsing:asttypes.cmi :typing:ident.cmi ¶
+ :bytecomp:lambda.cmi :typing:primitive.cmi :typing:types.cmi ¶
+ :bytecomp:printlambda.cmi
+:bytecomp:printlambda.cmxÄ :parsing:asttypes.cmi :typing:ident.cmx ¶
+ :bytecomp:lambda.cmx :typing:primitive.cmx :typing:types.cmx ¶
+ :bytecomp:printlambda.cmi
+:bytecomp:runtimedef.cmoÄ :bytecomp:runtimedef.cmi
+:bytecomp:runtimedef.cmxÄ :bytecomp:runtimedef.cmi
+:bytecomp:simplif.cmoÄ :parsing:asttypes.cmi :typing:ident.cmi ¶
+ :bytecomp:lambda.cmi :bytecomp:simplif.cmi
+:bytecomp:simplif.cmxÄ :parsing:asttypes.cmi :typing:ident.cmx ¶
+ :bytecomp:lambda.cmx :bytecomp:simplif.cmi
+:bytecomp:symtable.cmoÄ :parsing:asttypes.cmi :utils:clflags.cmo ¶
+ :utils:config.cmi :bytecomp:emitcode.cmi :typing:ident.cmi ¶
+ :bytecomp:lambda.cmi :bytecomp:meta.cmi :utils:misc.cmi ¶
+ :typing:predef.cmi :bytecomp:runtimedef.cmi :utils:tbl.cmi ¶
+ :bytecomp:symtable.cmi
+:bytecomp:symtable.cmxÄ :parsing:asttypes.cmi :utils:clflags.cmx ¶
+ :utils:config.cmx :bytecomp:emitcode.cmx :typing:ident.cmx ¶
+ :bytecomp:lambda.cmx :bytecomp:meta.cmx :utils:misc.cmx ¶
+ :typing:predef.cmx :bytecomp:runtimedef.cmx :utils:tbl.cmx ¶
+ :bytecomp:symtable.cmi
+:bytecomp:translclass.cmoÄ :parsing:asttypes.cmi :typing:ident.cmi ¶
+ :bytecomp:lambda.cmi :bytecomp:matching.cmi :utils:misc.cmi ¶
+ :bytecomp:translcore.cmi :bytecomp:translobj.cmi :typing:typedtree.cmi ¶
+ :typing:types.cmi :bytecomp:translclass.cmi
+:bytecomp:translclass.cmxÄ :parsing:asttypes.cmi :typing:ident.cmx ¶
+ :bytecomp:lambda.cmx :bytecomp:matching.cmx :utils:misc.cmx ¶
+ :bytecomp:translcore.cmx :bytecomp:translobj.cmx :typing:typedtree.cmx ¶
+ :typing:types.cmx :bytecomp:translclass.cmi
+:bytecomp:translcore.cmoÄ :parsing:asttypes.cmi :utils:config.cmi ¶
+ :typing:ctype.cmi :typing:env.cmi :typing:ident.cmi :bytecomp:lambda.cmi ¶
+ :parsing:location.cmi :bytecomp:matching.cmi :utils:misc.cmi ¶
+ :typing:path.cmi :typing:predef.cmi :typing:primitive.cmi ¶
+ :bytecomp:translobj.cmi :typing:typedtree.cmi :typing:types.cmi ¶
+ :bytecomp:translcore.cmi
+:bytecomp:translcore.cmxÄ :parsing:asttypes.cmi :utils:config.cmx ¶
+ :typing:ctype.cmx :typing:env.cmx :typing:ident.cmx :bytecomp:lambda.cmx ¶
+ :parsing:location.cmx :bytecomp:matching.cmx :utils:misc.cmx ¶
+ :typing:path.cmx :typing:predef.cmx :typing:primitive.cmx ¶
+ :bytecomp:translobj.cmx :typing:typedtree.cmx :typing:types.cmx ¶
+ :bytecomp:translcore.cmi
+:bytecomp:translmod.cmoÄ :parsing:asttypes.cmi :typing:ident.cmi ¶
+ :bytecomp:lambda.cmi :utils:misc.cmi :typing:primitive.cmi ¶
+ :bytecomp:translclass.cmi :bytecomp:translcore.cmi ¶
+ :bytecomp:translobj.cmi :typing:typedtree.cmi :typing:types.cmi ¶
+ :bytecomp:translmod.cmi
+:bytecomp:translmod.cmxÄ :parsing:asttypes.cmi :typing:ident.cmx ¶
+ :bytecomp:lambda.cmx :utils:misc.cmx :typing:primitive.cmx ¶
+ :bytecomp:translclass.cmx :bytecomp:translcore.cmx ¶
+ :bytecomp:translobj.cmx :typing:typedtree.cmx :typing:types.cmx ¶
+ :bytecomp:translmod.cmi
+:bytecomp:translobj.cmoÄ :parsing:asttypes.cmi :typing:env.cmi ¶
+ :typing:ident.cmi :bytecomp:lambda.cmi :parsing:longident.cmi ¶
+ :utils:misc.cmi :bytecomp:translobj.cmi
+:bytecomp:translobj.cmxÄ :parsing:asttypes.cmi :typing:env.cmx ¶
+ :typing:ident.cmx :bytecomp:lambda.cmx :parsing:longident.cmx ¶
+ :utils:misc.cmx :bytecomp:translobj.cmi
+:asmcomp:asmgen.cmiÄ :asmcomp:cmm.cmi :bytecomp:lambda.cmi
+:asmcomp:clambda.cmiÄ :parsing:asttypes.cmi :typing:ident.cmi ¶
+ :bytecomp:lambda.cmi
+:asmcomp:closure.cmiÄ :asmcomp:clambda.cmi :bytecomp:lambda.cmi
+:asmcomp:cmm.cmiÄ :typing:ident.cmi
+:asmcomp:cmmgen.cmiÄ :asmcomp:clambda.cmi :asmcomp:cmm.cmi
+:asmcomp:codegen.cmiÄ :asmcomp:cmm.cmi
+:asmcomp:compilenv.cmiÄ :asmcomp:clambda.cmi :typing:ident.cmi
+:asmcomp:emit.cmiÄ :asmcomp:cmm.cmi :asmcomp:linearize.cmi
+:asmcomp:interf.cmiÄ :asmcomp:mach.cmi
+:asmcomp:linearize.cmiÄ :asmcomp:mach.cmi :asmcomp:reg.cmi
+:asmcomp:liveness.cmiÄ :asmcomp:mach.cmi
+:asmcomp:mach.cmiÄ :asmcomp:cmm.cmi :asmcomp:reg.cmi
+:asmcomp:printcmm.cmiÄ :asmcomp:cmm.cmi
+:asmcomp:printlinear.cmiÄ :asmcomp:linearize.cmi
+:asmcomp:printmach.cmiÄ :asmcomp:mach.cmi :asmcomp:reg.cmi
+:asmcomp:proc.cmiÄ :asmcomp:cmm.cmi :asmcomp:mach.cmi :asmcomp:reg.cmi
+:asmcomp:reg.cmiÄ :asmcomp:cmm.cmi
+:asmcomp:reload.cmiÄ :asmcomp:mach.cmi :asmcomp:reg.cmi
+:asmcomp:scheduling.cmiÄ :asmcomp:linearize.cmi
+:asmcomp:selection.cmiÄ :asmcomp:cmm.cmi :asmcomp:mach.cmi
+:asmcomp:spill.cmiÄ :asmcomp:mach.cmi
+:asmcomp:split.cmiÄ :asmcomp:mach.cmi
+:asmcomp:arch_mips.cmoÄ :utils:misc.cmi
+:asmcomp:arch_mips.cmxÄ :utils:misc.cmx
+:asmcomp:arch_power.cmoÄ :utils:misc.cmi
+:asmcomp:arch_power.cmxÄ :utils:misc.cmx
+:asmcomp:arch_sparc.cmoÄ :utils:misc.cmi
+:asmcomp:arch_sparc.cmxÄ :utils:misc.cmx
+:asmcomp:asmgen.cmoÄ :utils:clflags.cmo :asmcomp:closure.cmi :asmcomp:cmm.cmi ¶
+ :asmcomp:cmmgen.cmi :asmcomp:coloring.cmi :utils:config.cmi ¶
+ :asmcomp:emit.cmi :asmcomp:emitaux.cmi :asmcomp:interf.cmi ¶
+ :asmcomp:linearize.cmi :asmcomp:liveness.cmi :asmcomp:mach.cmi ¶
+ :utils:misc.cmi :asmcomp:printcmm.cmi :asmcomp:printlinear.cmi ¶
+ :asmcomp:printmach.cmi :asmcomp:proc.cmi :asmcomp:reg.cmi ¶
+ :asmcomp:reload.cmi :asmcomp:scheduling.cmi :asmcomp:selection.cmi ¶
+ :asmcomp:spill.cmi :asmcomp:split.cmi :asmcomp:asmgen.cmi
+:asmcomp:asmgen.cmxÄ :utils:clflags.cmx :asmcomp:closure.cmx :asmcomp:cmm.cmx ¶
+ :asmcomp:cmmgen.cmx :asmcomp:coloring.cmx :utils:config.cmx ¶
+ :asmcomp:emit.cmi :asmcomp:emitaux.cmx :asmcomp:interf.cmx ¶
+ :asmcomp:linearize.cmx :asmcomp:liveness.cmx :asmcomp:mach.cmx ¶
+ :utils:misc.cmx :asmcomp:printcmm.cmx :asmcomp:printlinear.cmx ¶
+ :asmcomp:printmach.cmx :asmcomp:proc.cmi :asmcomp:reg.cmx ¶
+ :asmcomp:reload.cmx :asmcomp:scheduling.cmx :asmcomp:selection.cmx ¶
+ :asmcomp:spill.cmx :asmcomp:split.cmx :asmcomp:asmgen.cmi
+:asmcomp:asmlibrarian.cmoÄ :asmcomp:clambda.cmi :utils:clflags.cmo ¶
+ :asmcomp:compilenv.cmi :utils:config.cmi :utils:misc.cmi ¶
+ :asmcomp:proc.cmi :asmcomp:asmlibrarian.cmi
+:asmcomp:asmlibrarian.cmxÄ :asmcomp:clambda.cmx :utils:clflags.cmx ¶
+ :asmcomp:compilenv.cmx :utils:config.cmx :utils:misc.cmx ¶
+ :asmcomp:proc.cmi :asmcomp:asmlibrarian.cmi
+:asmcomp:asmlink.cmoÄ :asmcomp:asmgen.cmi :utils:clflags.cmo ¶
+ :asmcomp:cmmgen.cmi :asmcomp:compilenv.cmi :utils:config.cmi ¶
+ :asmcomp:emit.cmi :asmcomp:emitaux.cmi :parsing:location.cmi ¶
+ :utils:misc.cmi :asmcomp:proc.cmi :bytecomp:runtimedef.cmi ¶
+ :asmcomp:asmlink.cmi
+:asmcomp:asmlink.cmxÄ :asmcomp:asmgen.cmx :utils:clflags.cmx ¶
+ :asmcomp:cmmgen.cmx :asmcomp:compilenv.cmx :utils:config.cmx ¶
+ :asmcomp:emit.cmi :asmcomp:emitaux.cmx :parsing:location.cmx ¶
+ :utils:misc.cmx :asmcomp:proc.cmi :bytecomp:runtimedef.cmx ¶
+ :asmcomp:asmlink.cmi
+:asmcomp:clambda.cmoÄ :parsing:asttypes.cmi :typing:ident.cmi ¶
+ :bytecomp:lambda.cmi :asmcomp:clambda.cmi
+:asmcomp:clambda.cmxÄ :parsing:asttypes.cmi :typing:ident.cmx ¶
+ :bytecomp:lambda.cmx :asmcomp:clambda.cmi
+:asmcomp:closure.cmoÄ :parsing:asttypes.cmi :asmcomp:clambda.cmi ¶
+ :asmcomp:compilenv.cmi :typing:ident.cmi :bytecomp:lambda.cmi ¶
+ :utils:misc.cmi :utils:tbl.cmi :asmcomp:closure.cmi
+:asmcomp:closure.cmxÄ :parsing:asttypes.cmi :asmcomp:clambda.cmx ¶
+ :asmcomp:compilenv.cmx :typing:ident.cmx :bytecomp:lambda.cmx ¶
+ :utils:misc.cmx :utils:tbl.cmx :asmcomp:closure.cmi
+:asmcomp:cmm.cmoÄ :typing:ident.cmi :asmcomp:cmm.cmi
+:asmcomp:cmm.cmxÄ :typing:ident.cmx :asmcomp:cmm.cmi
+:asmcomp:cmmgen.cmoÄ :parsing:asttypes.cmi :asmcomp:clambda.cmi ¶
+ :utils:clflags.cmo :asmcomp:cmm.cmi :asmcomp:compilenv.cmi ¶
+ :typing:ident.cmi :bytecomp:lambda.cmi :utils:misc.cmi ¶
+ :typing:primitive.cmi :asmcomp:proc.cmi :typing:types.cmi ¶
+ :asmcomp:cmmgen.cmi
+:asmcomp:cmmgen.cmxÄ :parsing:asttypes.cmi :asmcomp:clambda.cmx ¶
+ :utils:clflags.cmx :asmcomp:cmm.cmx :asmcomp:compilenv.cmx ¶
+ :typing:ident.cmx :bytecomp:lambda.cmx :utils:misc.cmx ¶
+ :typing:primitive.cmx :asmcomp:proc.cmi :typing:types.cmx ¶
+ :asmcomp:cmmgen.cmi
+:asmcomp:codegen.cmoÄ :asmcomp:cmm.cmi :asmcomp:coloring.cmi ¶
+ :asmcomp:emit.cmi :asmcomp:interf.cmi :asmcomp:linearize.cmi ¶
+ :asmcomp:liveness.cmi :asmcomp:printcmm.cmi :asmcomp:printlinear.cmi ¶
+ :asmcomp:printmach.cmi :asmcomp:reg.cmi :asmcomp:reload.cmi ¶
+ :asmcomp:spill.cmi :asmcomp:split.cmi :asmcomp:codegen.cmi
+:asmcomp:codegen.cmxÄ :asmcomp:cmm.cmx :asmcomp:coloring.cmx ¶
+ :asmcomp:emit.cmi :asmcomp:interf.cmx :asmcomp:linearize.cmx ¶
+ :asmcomp:liveness.cmx :asmcomp:printcmm.cmx :asmcomp:printlinear.cmx ¶
+ :asmcomp:printmach.cmx :asmcomp:reg.cmx :asmcomp:reload.cmx ¶
+ :asmcomp:spill.cmx :asmcomp:split.cmx :asmcomp:codegen.cmi
+:asmcomp:coloring.cmoÄ :asmcomp:proc.cmi :asmcomp:reg.cmi ¶
+ :asmcomp:coloring.cmi
+:asmcomp:coloring.cmxÄ :asmcomp:proc.cmi :asmcomp:reg.cmx ¶
+ :asmcomp:coloring.cmi
+:asmcomp:compilenv.cmoÄ :asmcomp:clambda.cmi :utils:config.cmi ¶
+ :typing:env.cmi :typing:ident.cmi :utils:misc.cmi :asmcomp:compilenv.cmi
+:asmcomp:compilenv.cmxÄ :asmcomp:clambda.cmx :utils:config.cmx ¶
+ :typing:env.cmx :typing:ident.cmx :utils:misc.cmx :asmcomp:compilenv.cmi
+:asmcomp:emitaux.cmoÄ :asmcomp:emitaux.cmi
+:asmcomp:emitaux.cmxÄ :asmcomp:emitaux.cmi
+:asmcomp:interf.cmoÄ :asmcomp:mach.cmi :asmcomp:proc.cmi :asmcomp:reg.cmi ¶
+ :asmcomp:interf.cmi
+:asmcomp:interf.cmxÄ :asmcomp:mach.cmx :asmcomp:proc.cmi :asmcomp:reg.cmx ¶
+ :asmcomp:interf.cmi
+:asmcomp:linearize.cmoÄ :asmcomp:cmm.cmi :asmcomp:mach.cmi :asmcomp:proc.cmi ¶
+ :asmcomp:reg.cmi :asmcomp:linearize.cmi
+:asmcomp:linearize.cmxÄ :asmcomp:cmm.cmx :asmcomp:mach.cmx :asmcomp:proc.cmi ¶
+ :asmcomp:reg.cmx :asmcomp:linearize.cmi
+:asmcomp:liveness.cmoÄ :asmcomp:mach.cmi :utils:misc.cmi ¶
+ :asmcomp:printmach.cmi :asmcomp:proc.cmi :asmcomp:reg.cmi ¶
+ :asmcomp:liveness.cmi
+:asmcomp:liveness.cmxÄ :asmcomp:mach.cmx :utils:misc.cmx ¶
+ :asmcomp:printmach.cmx :asmcomp:proc.cmi :asmcomp:reg.cmx ¶
+ :asmcomp:liveness.cmi
+:asmcomp:mach.cmoÄ :asmcomp:cmm.cmi :asmcomp:reg.cmi :asmcomp:mach.cmi
+:asmcomp:mach.cmxÄ :asmcomp:cmm.cmx :asmcomp:reg.cmx :asmcomp:mach.cmi
+:asmcomp:printcmm.cmoÄ :asmcomp:cmm.cmi :typing:ident.cmi ¶
+ :asmcomp:printcmm.cmi
+:asmcomp:printcmm.cmxÄ :asmcomp:cmm.cmx :typing:ident.cmx ¶
+ :asmcomp:printcmm.cmi
+:asmcomp:printlinear.cmoÄ :asmcomp:linearize.cmi :asmcomp:mach.cmi ¶
+ :asmcomp:printmach.cmi :asmcomp:printlinear.cmi
+:asmcomp:printlinear.cmxÄ :asmcomp:linearize.cmx :asmcomp:mach.cmx ¶
+ :asmcomp:printmach.cmx :asmcomp:printlinear.cmi
+:asmcomp:printmach.cmoÄ :asmcomp:cmm.cmi :asmcomp:mach.cmi ¶
+ :asmcomp:printcmm.cmi :asmcomp:proc.cmi :asmcomp:reg.cmi ¶
+ :asmcomp:printmach.cmi
+:asmcomp:printmach.cmxÄ :asmcomp:cmm.cmx :asmcomp:mach.cmx ¶
+ :asmcomp:printcmm.cmx :asmcomp:proc.cmi :asmcomp:reg.cmx ¶
+ :asmcomp:printmach.cmi
+:asmcomp:proc_alpha.cmoÄ :asmcomp:cmm.cmi :asmcomp:mach.cmi :utils:misc.cmi ¶
+ :asmcomp:reg.cmi
+:asmcomp:proc_alpha.cmxÄ :asmcomp:cmm.cmx :asmcomp:mach.cmx :utils:misc.cmx ¶
+ :asmcomp:reg.cmx
+:asmcomp:proc_hppa.cmoÄ :asmcomp:cmm.cmi :utils:config.cmi :asmcomp:mach.cmi ¶
+ :utils:misc.cmi :asmcomp:reg.cmi
+:asmcomp:proc_hppa.cmxÄ :asmcomp:cmm.cmx :utils:config.cmx :asmcomp:mach.cmx ¶
+ :utils:misc.cmx :asmcomp:reg.cmx
+:asmcomp:proc_i386.cmoÄ :asmcomp:cmm.cmi :asmcomp:mach.cmi :utils:misc.cmi ¶
+ :asmcomp:reg.cmi
+:asmcomp:proc_i386.cmxÄ :asmcomp:cmm.cmx :asmcomp:mach.cmx :utils:misc.cmx ¶
+ :asmcomp:reg.cmx
+:asmcomp:proc_i386nt.cmoÄ :asmcomp:cmm.cmi :asmcomp:mach.cmi :utils:misc.cmi ¶
+ :asmcomp:reg.cmi
+:asmcomp:proc_i386nt.cmxÄ :asmcomp:cmm.cmx :asmcomp:mach.cmx :utils:misc.cmx ¶
+ :asmcomp:reg.cmx
+:asmcomp:proc_mips.cmoÄ :asmcomp:cmm.cmi :asmcomp:mach.cmi :utils:misc.cmi ¶
+ :asmcomp:reg.cmi
+:asmcomp:proc_mips.cmxÄ :asmcomp:cmm.cmx :asmcomp:mach.cmx :utils:misc.cmx ¶
+ :asmcomp:reg.cmx
+:asmcomp:proc_power.cmoÄ :asmcomp:cmm.cmi :utils:config.cmi :asmcomp:mach.cmi ¶
+ :utils:misc.cmi :asmcomp:reg.cmi
+:asmcomp:proc_power.cmxÄ :asmcomp:cmm.cmx :utils:config.cmx :asmcomp:mach.cmx ¶
+ :utils:misc.cmx :asmcomp:reg.cmx
+:asmcomp:proc_sparc.cmoÄ :asmcomp:cmm.cmi :utils:config.cmi :asmcomp:mach.cmi ¶
+ :utils:misc.cmi :asmcomp:reg.cmi
+:asmcomp:proc_sparc.cmxÄ :asmcomp:cmm.cmx :utils:config.cmx :asmcomp:mach.cmx ¶
+ :utils:misc.cmx :asmcomp:reg.cmx
+:asmcomp:reg.cmoÄ :asmcomp:cmm.cmi :asmcomp:reg.cmi
+:asmcomp:reg.cmxÄ :asmcomp:cmm.cmx :asmcomp:reg.cmi
+:asmcomp:reload.cmoÄ :asmcomp:mach.cmi :utils:misc.cmi :asmcomp:proc.cmi ¶
+ :asmcomp:reg.cmi :asmcomp:reload.cmi
+:asmcomp:reload.cmxÄ :asmcomp:mach.cmx :utils:misc.cmx :asmcomp:proc.cmi ¶
+ :asmcomp:reg.cmx :asmcomp:reload.cmi
+:asmcomp:scheduling.cmoÄ :asmcomp:cmm.cmi :asmcomp:linearize.cmi ¶
+ :asmcomp:mach.cmi :utils:misc.cmi :asmcomp:proc.cmi :asmcomp:reg.cmi ¶
+ :asmcomp:scheduling.cmi
+:asmcomp:scheduling.cmxÄ :asmcomp:cmm.cmx :asmcomp:linearize.cmx ¶
+ :asmcomp:mach.cmx :utils:misc.cmx :asmcomp:proc.cmi :asmcomp:reg.cmx ¶
+ :asmcomp:scheduling.cmi
+:asmcomp:selection.cmoÄ :asmcomp:cmm.cmi :typing:ident.cmi :asmcomp:mach.cmi ¶
+ :utils:misc.cmi :asmcomp:proc.cmi :asmcomp:reg.cmi :utils:tbl.cmi ¶
+ :asmcomp:selection.cmi
+:asmcomp:selection.cmxÄ :asmcomp:cmm.cmx :typing:ident.cmx :asmcomp:mach.cmx ¶
+ :utils:misc.cmx :asmcomp:proc.cmi :asmcomp:reg.cmx :utils:tbl.cmx ¶
+ :asmcomp:selection.cmi
+:asmcomp:spill.cmoÄ :asmcomp:mach.cmi :asmcomp:proc.cmi :asmcomp:reg.cmi ¶
+ :asmcomp:spill.cmi
+:asmcomp:spill.cmxÄ :asmcomp:mach.cmx :asmcomp:proc.cmi :asmcomp:reg.cmx ¶
+ :asmcomp:spill.cmi
+:asmcomp:split.cmoÄ :asmcomp:mach.cmi :asmcomp:reg.cmi :asmcomp:split.cmi
+:asmcomp:split.cmxÄ :asmcomp:mach.cmx :asmcomp:reg.cmx :asmcomp:split.cmi
+:driver:compile.cmiÄ :typing:env.cmi
+:driver:optcompile.cmiÄ :typing:env.cmi
+:driver:compile.cmoÄ :bytecomp:bytegen.cmi :utils:clflags.cmo ¶
+ :utils:config.cmi :bytecomp:emitcode.cmi :typing:env.cmi ¶
+ :typing:includemod.cmi :parsing:location.cmi :utils:misc.cmi ¶
+ :parsing:parse.cmi :bytecomp:printinstr.cmi :bytecomp:printlambda.cmi ¶
+ :typing:printtyp.cmi :bytecomp:simplif.cmi :bytecomp:translmod.cmi ¶
+ :typing:typedtree.cmi :typing:typemod.cmi :driver:compile.cmi
+:driver:compile.cmxÄ :bytecomp:bytegen.cmx :utils:clflags.cmx ¶
+ :utils:config.cmx :bytecomp:emitcode.cmx :typing:env.cmx ¶
+ :typing:includemod.cmx :parsing:location.cmx :utils:misc.cmx ¶
+ :parsing:parse.cmx :bytecomp:printinstr.cmx :bytecomp:printlambda.cmx ¶
+ :typing:printtyp.cmx :bytecomp:simplif.cmx :bytecomp:translmod.cmx ¶
+ :typing:typedtree.cmx :typing:typemod.cmx :driver:compile.cmi
+:driver:errors.cmoÄ :bytecomp:bytelibrarian.cmi :bytecomp:bytelink.cmi ¶
+ :typing:env.cmi :typing:includemod.cmi :parsing:lexer.cmi ¶
+ :parsing:location.cmi :parsing:parse.cmi :bytecomp:symtable.cmi ¶
+ :bytecomp:translcore.cmi :typing:typeclass.cmi :typing:typecore.cmi ¶
+ :typing:typedecl.cmi :typing:typemod.cmi :typing:typetexp.cmi ¶
+ :driver:errors.cmi
+:driver:errors.cmxÄ :bytecomp:bytelibrarian.cmx :bytecomp:bytelink.cmx ¶
+ :typing:env.cmx :typing:includemod.cmx :parsing:lexer.cmx ¶
+ :parsing:location.cmx :parsing:parse.cmx :bytecomp:symtable.cmx ¶
+ :bytecomp:translcore.cmx :typing:typeclass.cmx :typing:typecore.cmx ¶
+ :typing:typedecl.cmx :typing:typemod.cmx :typing:typetexp.cmx ¶
+ :driver:errors.cmi
+:driver:main.cmoÄ :bytecomp:bytelibrarian.cmi :bytecomp:bytelink.cmi ¶
+ :utils:clflags.cmo :driver:compile.cmi :utils:config.cmi ¶
+ :driver:errors.cmi
+:driver:main.cmxÄ :bytecomp:bytelibrarian.cmx :bytecomp:bytelink.cmx ¶
+ :utils:clflags.cmx :driver:compile.cmx :utils:config.cmx ¶
+ :driver:errors.cmx
+:driver:optcompile.cmoÄ :asmcomp:asmgen.cmi :utils:clflags.cmo ¶
+ :asmcomp:compilenv.cmi :utils:config.cmi :typing:env.cmi ¶
+ :typing:includemod.cmi :parsing:location.cmi :utils:misc.cmi ¶
+ :parsing:parse.cmi :bytecomp:printlambda.cmi :typing:printtyp.cmi ¶
+ :bytecomp:simplif.cmi :bytecomp:translmod.cmi :typing:typedtree.cmi ¶
+ :typing:typemod.cmi :driver:optcompile.cmi
+:driver:optcompile.cmxÄ :asmcomp:asmgen.cmx :utils:clflags.cmx ¶
+ :asmcomp:compilenv.cmx :utils:config.cmx :typing:env.cmx ¶
+ :typing:includemod.cmx :parsing:location.cmx :utils:misc.cmx ¶
+ :parsing:parse.cmx :bytecomp:printlambda.cmx :typing:printtyp.cmx ¶
+ :bytecomp:simplif.cmx :bytecomp:translmod.cmx :typing:typedtree.cmx ¶
+ :typing:typemod.cmx :driver:optcompile.cmi
+:driver:opterrors.cmoÄ :asmcomp:asmgen.cmi :asmcomp:asmlibrarian.cmi ¶
+ :asmcomp:asmlink.cmi :asmcomp:compilenv.cmi :typing:env.cmi ¶
+ :typing:includemod.cmi :parsing:lexer.cmi :parsing:location.cmi ¶
+ :parsing:parse.cmi :bytecomp:translcore.cmi :typing:typeclass.cmi ¶
+ :typing:typecore.cmi :typing:typedecl.cmi :typing:typemod.cmi ¶
+ :typing:typetexp.cmi :driver:opterrors.cmi
+:driver:opterrors.cmxÄ :asmcomp:asmgen.cmx :asmcomp:asmlibrarian.cmx ¶
+ :asmcomp:asmlink.cmx :asmcomp:compilenv.cmx :typing:env.cmx ¶
+ :typing:includemod.cmx :parsing:lexer.cmx :parsing:location.cmx ¶
+ :parsing:parse.cmx :bytecomp:translcore.cmx :typing:typeclass.cmx ¶
+ :typing:typecore.cmx :typing:typedecl.cmx :typing:typemod.cmx ¶
+ :typing:typetexp.cmx :driver:opterrors.cmi
+:driver:optmain.cmoÄ :asmcomp:asmlibrarian.cmi :asmcomp:asmlink.cmi ¶
+ :utils:clflags.cmo :utils:config.cmi :driver:optcompile.cmi ¶
+ :driver:opterrors.cmi :asmcomp:printmach.cmi
+:driver:optmain.cmxÄ :asmcomp:asmlibrarian.cmx :asmcomp:asmlink.cmx ¶
+ :utils:clflags.cmx :utils:config.cmx :driver:optcompile.cmx ¶
+ :driver:opterrors.cmx :asmcomp:printmach.cmx
+:toplevel:printval.cmiÄ :typing:env.cmi :typing:path.cmi :typing:types.cmi
+:toplevel:topdirs.cmiÄ :parsing:location.cmi :parsing:longident.cmi ¶
+ :parsing:parsetree.cmi
+:toplevel:toploop.cmiÄ :typing:env.cmi :parsing:longident.cmi ¶
+ :parsing:parsetree.cmi
+:toplevel:trace.cmiÄ :typing:env.cmi :parsing:longident.cmi :typing:path.cmi ¶
+ :typing:types.cmi
+:toplevel:expunge.cmoÄ :utils:config.cmi :typing:ident.cmi :utils:misc.cmi ¶
+ :bytecomp:runtimedef.cmi :bytecomp:symtable.cmi
+:toplevel:expunge.cmxÄ :utils:config.cmx :typing:ident.cmx :utils:misc.cmx ¶
+ :bytecomp:runtimedef.cmx :bytecomp:symtable.cmx
+:toplevel:printval.cmoÄ :typing:ctype.cmi :typing:env.cmi :typing:ident.cmi ¶
+ :parsing:longident.cmi :utils:misc.cmi :typing:path.cmi ¶
+ :typing:predef.cmi :typing:printtyp.cmi :typing:types.cmi ¶
+ :toplevel:printval.cmi
+:toplevel:printval.cmxÄ :typing:ctype.cmx :typing:env.cmx :typing:ident.cmx ¶
+ :parsing:longident.cmx :utils:misc.cmx :typing:path.cmx ¶
+ :typing:predef.cmx :typing:printtyp.cmx :typing:types.cmx ¶
+ :toplevel:printval.cmi
+:toplevel:topdirs.cmoÄ :bytecomp:bytelink.cmi :utils:config.cmi ¶
+ :typing:ctype.cmi :bytecomp:emitcode.cmi :typing:env.cmi ¶
+ :driver:errors.cmi :typing:ident.cmi :parsing:location.cmi ¶
+ :parsing:longident.cmi :bytecomp:meta.cmi :utils:misc.cmi ¶
+ :bytecomp:opcodes.cmo :parsing:parse.cmi :typing:path.cmi ¶
+ :typing:predef.cmi :typing:printtyp.cmi :toplevel:printval.cmi ¶
+ :bytecomp:symtable.cmi :toplevel:toploop.cmi :toplevel:trace.cmi ¶
+ :typing:types.cmi :toplevel:topdirs.cmi
+:toplevel:topdirs.cmxÄ :bytecomp:bytelink.cmx :utils:config.cmx ¶
+ :typing:ctype.cmx :bytecomp:emitcode.cmx :typing:env.cmx ¶
+ :driver:errors.cmx :typing:ident.cmx :parsing:location.cmx ¶
+ :parsing:longident.cmx :bytecomp:meta.cmx :utils:misc.cmx ¶
+ :bytecomp:opcodes.cmx :parsing:parse.cmx :typing:path.cmx ¶
+ :typing:predef.cmx :typing:printtyp.cmx :toplevel:printval.cmx ¶
+ :bytecomp:symtable.cmx :toplevel:toploop.cmx :toplevel:trace.cmx ¶
+ :typing:types.cmx :toplevel:topdirs.cmi
+:toplevel:toploop.cmoÄ :bytecomp:bytegen.cmi :utils:clflags.cmo ¶
+ :driver:compile.cmi :utils:config.cmi :bytecomp:emitcode.cmi ¶
+ :typing:env.cmi :driver:errors.cmi :parsing:location.cmi ¶
+ :parsing:longident.cmi :bytecomp:meta.cmi :utils:misc.cmi ¶
+ :parsing:parse.cmi :parsing:parsetree.cmi :typing:primitive.cmi ¶
+ :bytecomp:printinstr.cmi :bytecomp:printlambda.cmi :typing:printtyp.cmi ¶
+ :toplevel:printval.cmi :bytecomp:simplif.cmi :bytecomp:symtable.cmi ¶
+ :bytecomp:translmod.cmi :typing:typedtree.cmi :typing:typemod.cmi ¶
+ :typing:types.cmi :toplevel:toploop.cmi
+:toplevel:toploop.cmxÄ :bytecomp:bytegen.cmx :utils:clflags.cmx ¶
+ :driver:compile.cmx :utils:config.cmx :bytecomp:emitcode.cmx ¶
+ :typing:env.cmx :driver:errors.cmx :parsing:location.cmx ¶
+ :parsing:longident.cmx :bytecomp:meta.cmx :utils:misc.cmx ¶
+ :parsing:parse.cmx :parsing:parsetree.cmi :typing:primitive.cmx ¶
+ :bytecomp:printinstr.cmx :bytecomp:printlambda.cmx :typing:printtyp.cmx ¶
+ :toplevel:printval.cmx :bytecomp:simplif.cmx :bytecomp:symtable.cmx ¶
+ :bytecomp:translmod.cmx :typing:typedtree.cmx :typing:typemod.cmx ¶
+ :typing:types.cmx :toplevel:toploop.cmi
+:toplevel:topmain.cmoÄ :utils:clflags.cmo :toplevel:toploop.cmi
+:toplevel:topmain.cmxÄ :utils:clflags.cmx :toplevel:toploop.cmx
+:toplevel:trace.cmoÄ :typing:ctype.cmi :parsing:longident.cmi :utils:misc.cmi ¶
+ :typing:path.cmi :typing:printtyp.cmi :toplevel:printval.cmi ¶
+ :toplevel:toploop.cmi :typing:types.cmi :toplevel:trace.cmi
+:toplevel:trace.cmxÄ :typing:ctype.cmx :parsing:longident.cmx :utils:misc.cmx ¶
+ :typing:path.cmx :typing:printtyp.cmx :toplevel:printval.cmx ¶
+ :toplevel:toploop.cmx :typing:types.cmx :toplevel:trace.cmi
diff --git a/bytecomp/bytelink.ml b/bytecomp/bytelink.ml
index cce3120e9..5fb3fb8df 100644
--- a/bytecomp/bytelink.ml
+++ b/bytecomp/bytelink.ml
@@ -175,13 +175,17 @@ let link_file outchan = function
(* Create a bytecode executable file *)
+let openflags =
+ match (Sys.get_config ()).Sys.os_type with
+ | "MacOS" -> [Open_wronly; Open_trunc; Open_creat]
+ | _ -> [Open_wronly; Open_trunc; Open_creat; Open_binary]
+;;
+
let link_bytecode objfiles exec_name copy_header =
let objfiles = "stdlib.cma" :: (objfiles @ ["std_exit.cmo"]) in
let tolink =
List.fold_right scan_file objfiles [] in
- let outchan =
- open_out_gen [Open_wronly; Open_trunc; Open_creat; Open_binary] 0o777
- exec_name in
+ let outchan = open_out_gen openflags 0o777 exec_name in
try
(* Copy the header *)
if copy_header then begin
@@ -218,11 +222,20 @@ let link_bytecode objfiles exec_name copy_header =
remove_file exec_name;
raise x
+let os_type = (Sys.get_config ()).Sys.os_type;;
+
(* Build a custom runtime *)
+let rec extract suffix l =
+ match l with
+ | [] -> []
+ | h::t when Filename.check_suffix h suffix -> h :: (extract suffix t)
+ | h::t -> extract suffix t
+;;
+
let build_custom_runtime prim_name exec_name =
- match Config.system with
- "win32" ->
+ match os_type with
+ | "Win32" ->
Sys.command
(Printf.sprintf
"%s /Fe%s -I%s %s %s %s %s\\libcamlrun.lib %s"
@@ -234,10 +247,59 @@ let build_custom_runtime prim_name exec_name =
(String.concat " " (List.rev !Clflags.ccobjs))
Config.standard_library
Config.c_libraries)
+ | "MacOS" ->
+ let c68k = "sc"
+ and libs68k = "\"{libraries}IntEnv.far.o\" " ^
+ "\"{libraries}MacRuntime.o\" " ^
+ "\"{clibraries}StdCLib.far.o\" " ^
+ "\"{libraries}MathLib.far.o\" " ^
+ "\"{libraries}ToolLibs.o\" " ^
+ "\"{libraries}Interface.o\""
+ and link68k = "ilink -compact -state nouse -model far -msg nodup"
+ and cppc = "mrc"
+ and libsppc = "\"{sharedlibraries}MathLib\" " ^
+ "\"{ppclibraries}PPCCRuntime.o\" " ^
+ "\"{ppclibraries}PPCToolLibs.o\" " ^
+ "\"{sharedlibraries}StdCLib\" " ^
+ "\"{ppclibraries}StdCRuntime.o\" " ^
+ "\"{sharedlibraries}InterfaceLib\" "
+ and linkppc = "ppclink -d"
+ and objs68k = extract ".o" (List.rev !Clflags.ccobjs)
+ and objsppc = extract ".x" (List.rev !Clflags.ccobjs)
+ in
+ Sys.command (Printf.sprintf "%s -i \"%s\" %s \"%s\" -o \"%s.o\""
+ c68k
+ Config.standard_library
+ (String.concat " " (List.rev !Clflags.ccopts))
+ prim_name
+ prim_name);
+ Sys.command (Printf.sprintf "%s -i \"%s\" %s \"%s\" -o \"%s.x\""
+ cppc
+ Config.standard_library
+ (String.concat " " (List.rev !Clflags.ccopts))
+ prim_name
+ prim_name);
+ Sys.command ("delete -i \""^exec_name^"\"");
+ Sys.command (Printf.sprintf
+ "%s -t MPST -c 'MPS ' -o \"%s\" \"%s.o\" \"%s\" \"%s\" %s"
+ link68k
+ exec_name
+ prim_name
+ (String.concat "\" \"" objs68k)
+ (Filename.concat Config.standard_library "libcamlrun.o")
+ libs68k);
+ Sys.command (Printf.sprintf
+ "%s -t MPST -c 'MPS ' -o \"%s\" \"%s.x\" \"%s\" \"%s\" %s"
+ linkppc
+ exec_name
+ prim_name
+ (String.concat "\" \"" objsppc)
+ (Filename.concat Config.standard_library "libcamlrun.x")
+ libsppc)
| _ ->
Sys.command
(Printf.sprintf
- "%s -o %s -I%s %s %s -L%s %s -lcamlrun %s"
+ "%s -o %s -I%s %s %s -L%s -lcamlrun %s %s"
Config.bytecomp_c_compiler
exec_name
Config.standard_library
@@ -253,27 +315,48 @@ let link objfiles =
if not !Clflags.custom_runtime then
link_bytecode objfiles !Clflags.exec_name true
else begin
- let bytecode_name = Filename.temp_file "camlcode" "" in
- let prim_name = Filename.temp_file "camlprim" ".c" in
- try
+ match os_type with
+ | "MacOS" ->
+ let bytecode_name = Filename.temp_file "camlcode" "" in
+ let prim_name = Filename.temp_file "camlprim" ".c" in
+ begin try
link_bytecode objfiles bytecode_name false;
Symtable.output_primitives prim_name;
if build_custom_runtime prim_name !Clflags.exec_name <> 0
then raise(Error Custom_runtime);
- let oc =
- open_out_gen [Open_wronly; Open_append; Open_binary] 0
- !Clflags.exec_name in
- let ic = open_in_bin bytecode_name in
- copy_file ic oc;
- close_in ic;
- close_out oc;
- remove_file bytecode_name;
- remove_file prim_name
+ Sys.command ("mergefragment -c -t Caml \""^bytecode_name^"\"");
+ Sys.command (Printf.sprintf
+ "mergefragment \"%s\" \"%s\"" bytecode_name !Clflags.exec_name);
+ Sys.command (Printf.sprintf
+ "delete -i \"%s\" \"%s\" \"%s.o\" \"%s.x\""
+ bytecode_name prim_name prim_name prim_name);
with x ->
remove_file bytecode_name;
remove_file prim_name;
raise x
end
+ | _ ->
+ let bytecode_name = Filename.temp_file "camlcode" "" in
+ let prim_name = Filename.temp_file "camlprim" ".c" in
+ try
+ link_bytecode objfiles bytecode_name false;
+ Symtable.output_primitives prim_name;
+ if build_custom_runtime prim_name !Clflags.exec_name <> 0
+ then raise(Error Custom_runtime);
+ let oc =
+ open_out_gen [Open_wronly; Open_append; Open_binary] 0
+ !Clflags.exec_name in
+ let ic = open_in_bin bytecode_name in
+ copy_file ic oc;
+ close_in ic;
+ close_out oc;
+ remove_file bytecode_name;
+ remove_file prim_name
+ with x ->
+ remove_file bytecode_name;
+ remove_file prim_name;
+ raise x
+ end
(* Error report *)