@@ -336,10 +336,17 @@ let run
336336 in
337337 let output_partial_runtime ~standalone ~source_map ((_ , fmt ) as output_file ) =
338338 assert (not standalone);
339- let uinfo =
340- Unit_info. of_primitives
341- (Linker. list_all ~from: runtime_files_from_cmdline () |> StringSet. elements)
339+ let primitives, aliases =
340+ let all = Linker. list_all_with_aliases ~from: runtime_files_from_cmdline () in
341+ StringMap. fold
342+ (fun n a (primitives , aliases ) ->
343+ let primitives = StringSet. add n primitives in
344+ let aliases = List. map (StringSet. elements a) ~f: (fun a -> a, n) @ aliases in
345+ primitives, aliases)
346+ all
347+ (StringSet. empty, [] )
342348 in
349+ let uinfo = Unit_info. of_primitives ~aliases (StringSet. elements primitives) in
343350 Pretty_print. string fmt " \n " ;
344351 Pretty_print. string fmt (Unit_info. to_string uinfo);
345352 let code =
@@ -358,10 +365,20 @@ let run
358365 in
359366 (match bytecode with
360367 | `None ->
361- let prims = Linker. list_all () |> StringSet. elements in
362- assert (List. length prims > 0 );
368+ let primitives, aliases =
369+ let all = Linker. list_all_with_aliases () in
370+ StringMap. fold
371+ (fun n a (primitives , aliases ) ->
372+ let primitives = StringSet. add n primitives in
373+ let aliases = List. map (StringSet. elements a) ~f: (fun a -> a, n) @ aliases in
374+ primitives, aliases)
375+ all
376+ (StringSet. empty, [] )
377+ in
378+ let primitives = StringSet. elements primitives in
379+ assert (List. length primitives > 0 );
363380 let code, uinfo = Parse_bytecode. predefined_exceptions () in
364- let uinfo = { uinfo with primitives = uinfo.primitives @ prims } in
381+ let uinfo = Unit_info. union uinfo ( Unit_info. of_primitives ~aliases primitives) in
365382 let code : Parse_bytecode.one =
366383 { code
367384 ; cmis = StringSet. empty
0 commit comments