PreviousUpNext

15.3.8  src/app/makelib/depend/make-dependency-graph.api

## make-dependency-graph.api

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



# Build the dependency graph for one group/library.

# XXX BUGGO FIXME  We usually use 'make' in such
# situations.  If there isn't a clear, consistent
# difference between 'build' and 'make', we
# probably should rename:


stipulate
    package sy  =  symbol;                                      # symbol                                is from   src/lib/compiler/front/basics/map/symbol.pkg
    package lg  =  inter_library_dependency_graph;              # inter_library_dependency_graph        is from   src/app/makelib/depend/inter-library-dependency-graph.pkg
    package sg  =  intra_library_dependency_graph;              # intra_library_dependency_graph        is from   src/app/makelib/depend/intra-library-dependency-graph.pkg
    package sm  =  symbol_map;                                  # symbol_map                            is from   src/app/makelib/stuff/symbol-map.pkg
    package sys =  symbol_set;                                  # symbol_set                            is from   src/app/makelib/stuff/symbol-set.pkg
    package tlt =  thawedlib_tome;                              # thawedlib_tome                        is from   src/app/makelib/compilable/thawedlib-tome.pkg
    package ms  =  makelib_state;                               # makelib_state                         is from   src/app/makelib/main/makelib-state.pkg
#    package tst =  tome_symbolmapstack;                                # tome_symbolmapstack                   is from   src/app/makelib/depend/tome-symbolmapstack.pkg
    package mds =  module_dependencies_summary;                 # module_dependencies_summary           is from   src/app/makelib/compilable/module-dependencies-summary.pkg
herein

    api Make_Dependency_Graph {
        #
        make_dependency_graph
            :
            ( { imports:              sm::Map( lg::Fat_Tome ),
                masked_tomes:         List(   (tlt::Thawedlib_Tome, sys::Set) ),                        # (tome, exported_symbols_set) pairs.
                localdefs:            sm::Map( tlt::Thawedlib_Tome ),
                sublibraries:         X,
                sources:              Y
              },
              sys::Set,                                         # filter 
              ms::Makelib_State,
              sg::Masked_Tome
            )                                                   # Pervasive dictionary.
            ->
            { exports:              sm::Map( lg::Fat_Tome ),    # Exports.
              imported_symbols:     sys::Set                    # Imported symbols.
            };
    };
end;


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext