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