@ -6,12 +6,12 @@
* )
* )
open ! IStd
open ! IStd
module F = Format
(* * Top-level driver that orchestrates build system integration, frontends, backend, and reporting *)
module CLOpt = CommandLineOption
module CLOpt = CommandLineOption
module L = Logging
module L = Logging
(* * Top-level driver that orchestrates build system integration, frontends, backend, and reporting *)
let run driver_mode =
let run driver_mode =
let open Driver in
let open Driver in
run_prologue driver_mode ;
run_prologue driver_mode ;
@ -223,16 +223,28 @@ let () =
L . result " Global type environment:@ \n @[<v>%a@] " Tenv . pp tenv ) ;
L . result " Global type environment:@ \n @[<v>%a@] " Tenv . pp tenv ) ;
( if Config . procedures then
( if Config . procedures then
let filter = Lazy . force Filtering . procedures_filter in
let filter = Lazy . force Filtering . procedures_filter in
if Config . procedures_summary then
if Config . procedures_summary | | Config . procedures_summary_json then
let f_console_output proc_names =
let pp_summary fmt proc_name =
let pp_summary fmt proc_name =
match Summary . OnDisk . get proc_name with
match Summary . OnDisk . get proc_name with
| None ->
| None ->
F ormat . fprintf fmt " No summary found: %a@ \n " Procname . pp proc_name
F . fprintf fmt " No summary found: %a@ \n " Procname . pp proc_name
| Some summary ->
| Some summary ->
Summary . pp_text fmt summary
Summary . pp_text fmt summary
in
in
Option . iter ( Procedures . select_proc_names_interactive ~ filter ) ~ f : ( fun proc_names ->
L . result " %t " ( fun fmt -> List . iter proc_names ~ f : ( pp_summary fmt ) )
L . result " %a " ( fun fmt () -> List . iter proc_names ~ f : ( pp_summary fmt ) ) () )
in
let json_of_summary proc_name =
Summary . OnDisk . get proc_name | > Option . map ~ f : Summary . yojson_of_t
in
let f_json proc_names =
Yojson . Safe . to_channel stdout ( ` List ( List . filter_map ~ f : json_of_summary proc_names ) ) ;
Out_channel . newline stdout ;
Out_channel . flush stdout
in
Option . iter
( Procedures . select_proc_names_interactive ~ filter )
~ f : ( if Config . procedures_summary_json then f_json else f_console_output )
else
else
L . result " %a "
L . result " %a "
Config . (
Config . (