PreviousUpNext

15.3.10  src/app/makelib/freezefile/freezefile.api

## freezefile.api -- Rreading, writing and managing freezefiles.

# Compiled by:
#     src/app/makelib/makelib.sublib




# MOTIVATION
#
#     The "freezefile" is Mythryl's equivalent to a unix
#     code archive file like /lib/libc.a or /lib/libc.so.
#     One freezefile contains many .compiled files, each
#     representing the result of compiling one source file
#     (i.e., .api or .pkg file).
#



stipulate
    package ad  =  anchor_dictionary;                   # anchor_dictionary                     is from   src/app/makelib/paths/anchor-dictionary.pkg
    package lg  =  inter_library_dependency_graph;      # inter_library_dependency_graph        is from   src/app/makelib/depend/inter-library-dependency-graph.pkg
    package ms  =  makelib_state;                       # makelib_state                         is from   src/app/makelib/main/makelib-state.pkg
    package mvi =  makelib_version_intlist;             # makelib_version_intlist               is from   src/app/makelib/stuff/makelib-version-intlist.pkg
    package sg  =  intra_library_dependency_graph;      # intra_library_dependency_graph        is from   src/app/makelib/depend/intra-library-dependency-graph.pkg
herein

    # This api is implemented in:
    #
    #     src/app/makelib/freezefile/freezefile-g.pkg
    #
    api Freezefile {

        Library_Fetcher
            =
            ( ms::Makelib_State,
              ad::File,
              Null_Or( mvi::Makelib_Version_Intlist )
        ,      ad::Renamings    # MUSTDIE
            )
            ->
            Null_Or( lg::Inter_Library_Dependency_Graph );


        on_disk_library_picklehash_matches_in_memory_library_image
            :
            ms::Makelib_State
            ->
            ( ad::File,
              List( sg::Tome_Tin ),
              List( lg::Library_Thunk )
            )
            ->
            Bool;


        load_freezefile
            :
            { get_library:  Library_Fetcher,
              saw_errors:   Ref( Bool )
            }
            ->
            Library_Fetcher;


        save_freezefile
            :
            ms::Makelib_State
            ->
            { library:    lg::Inter_Library_Dependency_Graph,
              saw_errors: Ref( Bool )
         ,     renamings:  ad::Renamings        # MUSTDIE
            }
            ->
            Null_Or( lg::Inter_Library_Dependency_Graph );
    };
end;                    # stipulate











Comments and suggestions to: bugs@mythryl.org

PreviousUpNext