## core.sublib
# Compiled by:
#
src/lib/core/viscomp/core.lib# This is the machine-independent "core" part of the compiler
# (but without the parser and typechecker data packages).
# Machine-dependent parts are in backend-<architecture>.lib.
#
# The parser is in parse/parser.lib.
# Typechecker data structures are in typer-stuff/typecheckdata.sublib.
# Basic definitions are in basics/basics.sublib.
#
# The present file is a group which gets referred to by the actual library
# file in src/lib/core/viscomp/core.lib.
SUBLIBRARY_EXPORTS
api Mythryl_Compiler
# To make it possible to dynamically link in the optimizer,
# we have to export the following to the library.
# A.Leung.
api Backend_Lowhalf
api Heapcleaner_Control
api Platform_Register_Info
api Client_Pseudo_Ops_Mythryl
pkg nextcode_ramregions
api Per_Codetemp_Heapcleaner_Info
pkg per_codetemp_heapcleaner_info
pkg type_core_language_declaration
# To be able to separate machine-dependent parts
# of viscomp-lib.lib from machine-independent parts,
# we must also export the the following things:
api Machine_Properties
pkg machine_properties_default
pkg late_constant
api Treecode_Extension_Mythryl
pkg treecode_extension_mythryl
api Code_Segment_Buffer
pkg code_segment_buffer
generic treecode_extension_compiler_mythryl_g
generic client_pseudo_ops_mythryl_g
generic mythryl_compiler_g
generic backend_tophalf_g
generic backend_lowhalf_g
generic spill_table_g
pkg use_virtual_framepointer_in_cccomponent
# Stuff that lived (or should have) in Frontend (aka GenericVC, where vc == "[user-] visible compiler")
pkg global_controls
pkg inlining_mapstack
pkg base_types_and_ops
pkg compiler_mapstack_set
pkg compiler_state
pkg latex_print_compiler_state
pkg unparse_compiler_state
pkg stampmapstack
pkg collect_all_modtrees_in_symbolmapstack
pkg pickler_junk
pkg unpickler_junk
pkg rehash_module
pkg compiler_unparse_table
pkg print_hooks
pkg mythryl_compiler_version
pkg core_symbol
pkg anormcode_form
api Symbol_And_Picklehash_Pickling
pkg symbol_and_picklehash_pickling
api Symbol_And_Picklehash_Unpickling
pkg symbol_and_picklehash_unpickling
api Type_Declaration_Types
pkg type_declaration_types
pkg typerstore
pkg module_level_declarations
pkg stamp
pkg symbolmapstack_entry
pkg type_junk
pkg type_package_language
pkg variables_and_constructors
pkg module_junk
pkg inlining_data
pkg more_type_types
pkg unparse_type
pkg prettyprint_type
pkg varhome
pkg unify_typoids
# Corresponding apis:
api Global_Controls
api Inlining_Mapstack
api Compiler_Mapstack_Set
api Base_Types_And_Ops
api Compiler_State
api Unparse_Compiler_State
api Latex_Print_Compiler_State
api Stampmapstack
api Pickler_Junk
api Unpickler_Junk
api Anormcode_Form
api Typerstore
api Module_Level_Declarations
api Stamp
api Symbolmapstack_Entry
api Type_Junk
api Type_Package_Language
api Variables_And_Constructors
api Module_Junk
api More_Type_Types
api Unparse_Type
api Prettyprint_Type
api Varhome
api Unify_Typoids
api Prettyprint_Highcode_Types
pkg prettyprint_highcode_types
# Export of packages required to use highcode directly:
pkg translate_deep_syntax_to_lambdacode
pkg highcode_uniq_types
pkg highcode_type
pkg highcode_form
pkg highcode_basetypes
pkg prettyprint_anormcode
pkg improve_anormcode_quickly
pkg specialize_anormcode_to_least_general_type
pkg highcode_baseops
pkg highcode_codetemp
pkg type_anormcode
pkg debruijn_index
api Prettyprint_Symbolmapstack
pkg prettyprint_symbolmapstack
api Latex_Print_Symbolmapstack
pkg latex_print_symbolmapstack
SUBLIBRARY_COMPONENTS
toplevel/compiler-state/compiler-mapstack-set.api
toplevel/compiler-state/compiler-mapstack-set.pkg
toplevel/compiler-state/inlining-mapstack.api
toplevel/compiler-state/inlining-mapstack.pkg
toplevel/interact/compiler-state.api
toplevel/interact/compiler-state.pkg
toplevel/interact/read-eval-print-loop.api
toplevel/interact/read-eval-print-loop-g.pkg
toplevel/interact/read-eval-print-loops.api
toplevel/interact/read-eval-print-loops-g.pkg
toplevel/compiler/mythryl-compiler.api
toplevel/compiler/mythryl-compiler-g.pkg
toplevel/main/control-apis.api
toplevel/main/global-controls.api
toplevel/main/match-compiler-controls.pkg
toplevel/main/compiler-controls.pkg
toplevel/main/global-controls.pkg
toplevel/main/compiler-configuration.api
toplevel/main/backend.api
toplevel/main/translate-raw-syntax-to-execode.api
toplevel/main/translate-raw-syntax-to-execode-g.pkg
toplevel/main/print-hooks.pkg
toplevel/main/compiler-unparse-table.pkg
# Semantic analysis (typechecker) specialized for Mythryl:
#
front/semantic/basics/inlining-junk.api
front/semantic/basics/inlining-junk.pkg
front/semantic/typecheck/type-package-language.pkg
front/semantic/typecheck/translate-raw-syntax-to-deep-syntax.pkg
front/semantic/modules/generics-expansion-junk-parameter.pkg
front/semantic/modules/generics-expansion-junk.pkg
front/semantic/modules/api-match.pkg
front/semantic/modules/expand-generic.pkg
front/semantic/modules/package-property-lists.pkg
front/semantic/pickle/symbol-and-picklehash-pickling.api
front/semantic/pickle/symbol-and-picklehash-pickling.pkg
front/semantic/pickle/pickler-junk.api
front/semantic/pickle/pickler-junk.pkg
front/semantic/pickle/symbol-and-picklehash-unpickling.api
front/semantic/pickle/symbol-and-picklehash-unpickling.pkg
front/semantic/pickle/unpickler-junk.api
front/semantic/pickle/unpickler-junk.pkg
front/semantic/pickle/rehash-module.pkg
front/semantic/symbolmapstack/base-types-and-ops.pkg
front/semantic/types/typevar-info.pkg
front/semantic/types/type-core-language-declaration.pkg
front/semantic/types/cproto.pkg
# 2007-12-06 CrT: Moved here from typecheckdata.sublib because
# it needs access to both prettyprint-values in typecheck.lib
# and also symbolmapstack.pkg in typecheckdata.sublib
# -- and core.lib is their lowest common ancestor, plus the location
# of its caller, translate-raw-syntax-to-execode-g.pkg. Ick.
front/typer-stuff/symbolmapstack/prettyprint-symbolmapstack.api
front/typer-stuff/symbolmapstack/prettyprint-symbolmapstack.pkg
front/typer-stuff/symbolmapstack/unparse-compiler-state.api
front/typer-stuff/symbolmapstack/unparse-compiler-state.pkg
front/typer-stuff/symbolmapstack/latex-print-symbolmapstack.api
front/typer-stuff/symbolmapstack/latex-print-symbolmapstack.pkg
front/typer-stuff/symbolmapstack/latex-print-compiler-state.api
front/typer-stuff/symbolmapstack/latex-print-compiler-state.pkg
# The machine-independent optimizer (back end upper half):
back/top/closures/allocprof.pkg
back/top/closures/dummy-nextcode-inlining-g.pkg
back/top/closures/freemap-unused.pkg
back/top/closures/unnest-nextcode-fns.pkg
back/top/closures/make-nextcode-closures-g.pkg
back/top/closures/make-per-function-free-variable-maps.pkg
back/top/closures/static-closure-size-profiling-g.pkg
back/top/closures/unrebind.pkg
back/top/nextcode/translate-anormcode-to-nextcode-g.pkg
back/top/nextcode/nextcode-form.api
back/top/nextcode/nextcode-form.pkg
back/top/nextcode/nextcode-preimprover-transform-g.pkg
back/top/nextcode/prettyprint-nextcode.pkg
back/top/nextcode/improve-anormcode-switch-fn.pkg
back/top/improve-nextcode/clean-nextcode-g.pkg
back/top/improve-nextcode/run-optional-nextcode-improvers-g.pkg
back/top/improve-nextcode/inline-nextcode-buckpass-calls.pkg
back/top/improve-nextcode/split-nextcode-fns-into-known-vs-escaping-versions-g.pkg
back/top/improve-nextcode/do-nextcode-inlining-g.pkg
back/top/improve-nextcode/do-nextcode-inlining-new-unused-g.pkg
back/top/improve-nextcode/convert-monoarg-to-multiarg-nextcode-g.pkg
back/top/improve-nextcode/uncurry-nextcode-functions-g.pkg
back/top/improve-nextcode/replace-unlimited-precision-int-ops-in-nextcode.pkg
back/top/anormcode/type-anormcode.pkg
back/top/anormcode/anormcode-form.api
back/top/anormcode/anormcode-form.pkg
back/top/anormcode/anormcode-junk.pkg
back/top/anormcode/prettyprint-anormcode.api
back/top/anormcode/prettyprint-anormcode.pkg
back/top/anormcode/anormcode-namedtypevar-vs-debruijntypevar-forms.pkg
back/top/highcode/highcode-basetypes.api
back/top/highcode/highcode-basetypes.pkg
back/top/highcode/highcode-type.api
back/top/highcode/highcode-type.pkg
back/top/highcode/highcode-dictionary.pkg
back/top/highcode/highcode-form.api
back/top/highcode/highcode-form.pkg
back/top/highcode/highcode-uniq-types.api
back/top/highcode/highcode-uniq-types.pkg
back/top/highcode/prettyprint-highcode-types.pkg
back/top/highcode/highcode-baseops.api
back/top/highcode/highcode-baseops.pkg
back/top/main/backend-tophalf-g.pkg
back/top/main/anormcode-sequencer-controls.pkg
back/top/main/make-nextcode-literals-bytecode-vector.pkg
back/top/improve/improve-mutually-recursive-anormcode-functions.pkg
back/top/improve/def-use-analysis-of-anormcode.pkg
back/top/improve/improve-anormcode.pkg
back/top/improve/optutils.pkg
back/top/improve/improve-anormcode-quickly.pkg
back/top/improve/recover-anormcode-type-info.pkg
back/top/improve/specialize-anormcode-to-least-general-type.pkg
back/top/improve/loopify-anormcode.pkg
back/top/improve/do-crossmodule-anormcode-inlining.pkg
back/top/improve/convert-free-variables-to-parameters-in-anormcode.pkg
back/top/improve/eliminate-array-bounds-checks-in-anormcode.pkg
back/top/lambdacode/check-lambdacode-expression.pkg
back/top/lambdacode/translate-lambdacode-to-anormcode.pkg
back/top/lambdacode/convert-monoarg-to-multiarg-anormcode.api
back/top/lambdacode/convert-monoarg-to-multiarg-anormcode.pkg
back/top/lambdacode/lambdacode-form.api
back/top/lambdacode/lambdacode-form.pkg
# back/top/lambdacode/lambdacode-type.pkg
back/top/lambdacode/prettyprint-lambdacode-expression.pkg
back/top/lambdacode/generalized-sethi-ullman-reordering.pkg
back/top/forms/make-anormcode-coercion-fn.pkg
back/top/forms/make-anormcode-equality-fn.pkg
back/top/forms/drop-types-from-anormcode.pkg
back/top/forms/anormcode-runtime-type.pkg
back/top/forms/drop-types-from-anormcode-junk.pkg
back/top/forms/insert-anormcode-boxing-and-coercion-code.pkg
back/top/translate/translate-deep-syntax-pattern-to-lambdacode.pkg
back/top/translate/translate-deep-syntax-pattern-to-lambdacode-junk.pkg
back/top/translate/polyequal.pkg
back/top/translate/template-expansion.pkg
back/top/translate/translate-deep-syntax-to-lambdacode.pkg
back/top/translate/translate-deep-syntax-types-to-lambdacode.pkg
back/top/lsplit/lambdasplit-inlining.pkg
# The code generator (lowhalf specialized for Lib7):
#
back/low/main/nextcode/convert-nextcode-fun-args-to-treecode.api
back/low/main/nextcode/convert-nextcode-fun-args-to-treecode-g.pkg
back/low/main/nextcode/check-heapcleaner-calls.api
back/low/main/nextcode/check-heapcleaner-calls-g.pkg
back/low/main/nextcode/find-nextcode-cccomponents.pkg
back/low/main/nextcode/nextcode-aliasing-g.pkg
back/low/main/nextcode/nextcode-ccalls-g.pkg
back/low/main/nextcode/guess-nextcode-branch-probabilities.pkg
back/low/main/nextcode/nextcode-ramregions.api
back/low/main/nextcode/nextcode-ramregions.pkg
back/low/main/nextcode/platform-register-info.api
back/low/main/nextcode/nextcode-function-stack.api
back/low/main/nextcode/nextcode-function-stack-g.pkg
back/low/main/nextcode/emit-treecode-heapcleaner-calls.api
back/low/main/nextcode/emit-treecode-heapcleaner-calls-g.pkg
back/low/main/nextcode/pick-nextcode-fns-for-heaplimit-checks.pkg
back/low/main/nextcode/memory-aliasing-g.pkg
back/low/main/nextcode/memory-disambiguation-unused-g.pkg
back/low/main/nextcode/client-pseudo-ops-mythryl.api
back/low/main/nextcode/late-constant.pkg
back/low/main/nextcode/per-codetemp-heapcleaner-info.api
back/low/main/nextcode/per-codetemp-heapcleaner-info.pkg
back/low/main/nextcode/treecode-extension-mythryl.api
back/low/main/nextcode/treecode-extension-mythryl.pkg
back/low/main/nextcode/treecode-extension-compiler-mythryl-g.pkg
back/low/main/nextcode/client-pseudo-ops-mythryl-g.pkg
back/low/main/nextcode/spill-nextcode-registers-g.pkg
back/low/main/main/use-virtual-framepointer-in-cccomponent.pkg # temporary hack; see comment in file XXX BUGGO FIXME
back/low/main/main/backend-lowhalf-core.api
back/low/main/main/backend-lowhalf.api
back/low/main/main/backend-lowhalf-g.pkg
back/low/main/main/machine-properties.api
back/low/main/main/machine-properties-default.pkg
back/low/main/main/translate-nextcode-to-treecode-g.pkg
back/low/main/main/heap-tags.api
back/low/main/main/heap-tags.pkg
back/low/main/main/spill-table-g.pkg
# Miscellaneous utilities:
#
$ROOT/
src/lib/compiler/src/fconst/slow-portable-floating-point-constants-g.pkg $ROOT/
src/lib/compiler/src/fconst/ieee-float-constants.pkg $ROOT/
src/lib/compiler/src/print/unparse-interactive-deep-syntax-declaration.pkg $ROOT/
src/lib/compiler/src/print/unparse-chunk.pkg $ROOT/
src/lib/compiler/src/print/prettyprint-table.pkg $ROOT/
src/lib/compiler/src/stuff/compute-minimum-feedback-vertex-set-of-digraph.pkg $ROOT/
src/lib/compiler/src/stuff/literal-to-num.pkg # Uses CoreInteger functionality *)
# Libraries that are part of the visible compiler framework:
#
$ROOT/
src/lib/core/viscomp/basics.lib $ROOT/
src/lib/core/viscomp/parser.lib $ROOT/
src/lib/core/viscomp/typecheckdata.lib $ROOT/
src/lib/core/viscomp/typecheck.lib $ROOT/
src/lib/core/viscomp/debugprof.lib $ROOT/
src/lib/core/viscomp/execute.lib # Lowhalf libraries:
#
back/low/lib/lib.lib # Provides sorted_list
back/low/lib/control.lib
back/low/lib/lowhalf.lib
back/low/lib/visual.lib
# Other libaries:
$ROOT/
src/lib/graph/graphs.lib $ROOT/
src/lib/std/standard.lib $ROOT/
src/lib/global-controls/global-controls.lib $ROOT/
src/lib/compiler/src/library/pickle.lib $ROOT/src/lib/core/init/init.cmi : cm # To gain access at CoreInteger
# $ROOT/
src/lib/core/internal/lib7-version.lib $ROOT/
src/lib/core/internal/mythryl-compiler-version.pkg # Above is broken, this is a work-around. See comments in
$ROOT/
src/lib/prettyprint/big/prettyprinter.lib## Copyright YALE FLINT PROJECT 1997
## and
## (C) 2001 Lucent Technologies, Bell labs
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.