PreviousUpNext

14.5.31  Pickler_Junk

The compiler Pickler_Junk api defines access to functionality for “pickling” compiled files. By “pickling” we mean serializing the in-memory datastructure as a bytestream and then writing it into a .compiled diskfile. These diskfiles serve the same logical function as traditional unix .o object-code files, although they use an unrelated file format, one more suited to the needs of the Mythryl platform.

The Pickler_Junk api is implemented by the pickler_junk package.

The Pickler_Junk api source code is in src/lib/compiler/front/semantic/pickle/pickler-junk.api.

See also: Unpickler_Junk.

The above information is manually maintained and may contain errors.

api {   Pickling_Context
        = FREEZEFILE_PICKLING
        List(((Null_Or(((Int , symbol::Symbol)) ) , stampmapstack::Stampmapstack)) )
        |
        INITIAL_PICKLING
        stampmapstack::Stampmapstack
        |
        REPICKLING
        picklehash::Picklehash;
    Map;
    empty_map : Map;
        make_symbolmapstack_funtree :
            (highcode_codetemp::Codetemp -> Void)
            ->
            Pickling_Context -> ?.pickler::To_Funtree((Map, symbolmapstack::Symbolmapstack));
        make_inlining_mapstack_funtree :
        ?.pickler::To_Funtree((Map, inlining_mapstack::Picklehash_To_Anormcode_Mapstack));
        pickle_symbolmapstack :
            Pickling_Context
            ->
            symbolmapstack::Symbolmapstack
            ->  {exported_highcode_variables:List(highcode_codetemp::Codetemp ),
                pickle:vector_of_one_byte_unts::Vector, picklehash:picklehash::Picklehash};
        pickle_highcode_program :
            Null_Or(anormcode_form::Function )
            ->
            {pickle:vector_of_one_byte_unts::Vector, picklehash:picklehash::Picklehash};
    hash_pickle : vector_of_one_byte_unts::Vector -> picklehash::Picklehash;
        dont_pickle :
            {count:Int, symbolmapstack:symbolmapstack::Symbolmapstack}
            ->  {exported_highcode_variables:List(highcode_codetemp::Codetemp ),
                new_symbolmapstack:symbolmapstack::Symbolmapstack, picklehash:picklehash::Picklehash};};


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext