## compiler-configuration.api
# Compiled by:
#
src/lib/compiler/core.sublib# We configure the compiler two ways:
# (1) Interactive use, compiling to memory;
# (2) Batch use, compiling to disk.
#
# We use Compiler_Configuration values
# to specify the difference -- see
# mythryl-compiler-g.pkg.
### Modern man has the skill:
### he can do what he will.
### But, alas, being man,
### he will do what he can.
###
### -- Piet Hein
### "In all spheres of human intellectual and practical
### activity, from carpentry to golf, from sculpture to
### space travel, the true craftsman is the one who
### thoroughly understands his tools. And this applies
### to programmers too. A programmer who fully understands
### his language can tackle more complex tasks, and complete
### them quicker and more satisfactorily than if he did not."
###
### -- C. A. R. Hoare, 1973
stipulate
package tmp = highcode_codetemp; # highcode_codetemp is from
src/lib/compiler/back/top/highcode/highcode-codetemp.pkg package ph = picklehash; # picklehash is from
src/lib/compiler/front/basics/map/picklehash.pkg package sta = stamp; # stamp is from
src/lib/compiler/front/typer-stuff/basics/stamp.pkg package syx = symbolmapstack; # symbolmapstack is from
src/lib/compiler/front/typer-stuff/symbolmapstack/symbolmapstack.pkgherein
# This api is implemented in:
#
#
src/lib/compiler/toplevel/compiler/mythryl-compiler-g.pkg #
api Compiler_Configuration {
#
Pickle;
Hash;
Picklehash = ph::Picklehash;
Compiledfile_Version;
pickle_unpickle: { context: syx::Symbolmapstack,
symbolmapstack: syx::Symbolmapstack,
compiledfile_version: Compiledfile_Version
}
->
{ picklehash: Hash,
pickle: Pickle,
exported_highcode_variables: List( tmp::Codetemp ),
export_picklehash: Null_Or( Picklehash ),
new_symbolmapstack: syx::Symbolmapstack
};
make_fresh_stamp_maker: Void -> sta::Fresh_Stamp_Maker;
};
end;
## COPYRIGHT (c) 1996 Bell Laboratories
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.