PreviousUpNext

15.3.293  src/lib/compiler/toplevel/main/compiler-configuration.api

## 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.pkg
herein

    # 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.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext