Traverse_for_exported_symbols
type symbols_to_export = {
symbols : Symbol.Set.t;
export_ids : Export_id.Set.t;
set_of_closure_ids : Set_of_closures_id.Set.t;
set_of_closure_ids_keep_declaration : Set_of_closures_id.Set.t;
relevant_imported_closure_ids : Closure_id.Set.t;
relevant_local_closure_ids : Closure_id.Set.t;
relevant_imported_vars_within_closure : Var_within_closure.Set.t;
relevant_local_vars_within_closure : Var_within_closure.Set.t;
}
val traverse :
sets_of_closures_map:Flambda.set_of_closures Set_of_closures_id.Map.t ->
closure_id_to_set_of_closures_id:Set_of_closures_id.t Closure_id.Map.t ->
function_declarations_map:
Simple_value_approx.function_declarations Set_of_closures_id.Map.t ->
values:Export_info.descr Export_id.Map.t ->
symbol_id:Export_id.t Symbol.Map.t ->
root_symbol:Symbol.t ->
symbols_to_export
Computes the transitive closure in Symbol.t
, Closure_id.t
and Set_of_closures_id.t
and determines which ones of those should be exported (i.e: included in the cmx files). *