@@ -191,7 +191,7 @@ let linking_command ~build_dir ~backend ~var_bindings link_deps item target =
191191 (link_deps item)
192192 @ [
193193 target -. - " cmx" ;
194- Filename . remove_extension target ^ " +main.cmx" ;
194+ File . remove_extension target ^ " +main.cmx" ;
195195 " -o" ;
196196 target -. - " exe" ;
197197 ]
@@ -205,7 +205,7 @@ let linking_command ~build_dir ~backend ~var_bindings link_deps item target =
205205 (build_dir / dirname f / " c" / basename f) ^ " .o" )
206206 (link_deps item)
207207 @ [" -lgmp" ]
208- @ [target -. - " o" ; Filename . remove_extension target ^ " +main.o" ]
208+ @ [target -. - " o" ; File . remove_extension target ^ " +main.o" ]
209209 @ get_var var_bindings Var. c_flags
210210 @ get_var var_bindings Var. c_include
211211 @ [" -o" ; target -. - " exe" ]
@@ -242,7 +242,7 @@ let linking_command ~build_dir ~backend ~var_bindings link_deps item target =
242242 (* 'javac' generates one file per inner class. Sadly, we do generate a lot
243243 of those. We need to pack those in the jar as well. *)
244244 let fetch_inner_classes class_file =
245- let basename = Filename. ( basename class_file |> chop_extension ) in
245+ let basename = File. (remove_extension ( basename class_file) ) in
246246 let dirname = Filename. dirname class_file in
247247 let dir_classes =
248248 Hashtbl. find_opt h dirname
@@ -346,7 +346,7 @@ let string_of_backend = function
346346
347347let make_target ~build_dir ~backend item =
348348 let open File in
349- let f = Scan. target_file_name item ^ Filename . extension item.Scan. file_name in
349+ let f = Scan. target_file_name item -. - File . extension item.Scan. file_name in
350350 let dir = dirname f in
351351 let base = basename f in
352352 let base =
@@ -489,8 +489,8 @@ let build_clerk_target
489489 (fun acc ((item , tg , backend ), _ ) ->
490490 let targets =
491491 let f =
492- Scan. target_file_name item
493- ^ Filename. extension item.Scan. file_name
492+ File. (
493+ Scan. target_file_name item -. - extension item.Scan. file_name)
494494 in
495495 let tf =
496496 File. (build_dir / dirname f / backend_subdir backend / basename f)
@@ -724,7 +724,7 @@ let build_direct_targets
724724 let t = make_target ~build_dir ~backend item in
725725 match backend with
726726 | `Java | `Python | `Custom _ -> t
727- | _ -> Filename. remove_extension t ^ " +main" ^ Filename . extension t)
727+ | _ -> File. (( remove_extension t ^ " +main" ) -. - File . extension t) )
728728 exec_targets
729729 in
730730 let final_ninja_targets =
@@ -880,7 +880,7 @@ let run_artifact config ~backend ~var_bindings ?scope src =
880880 | `Python ->
881881 let build_dir = config.Cli. options.global.build_dir in
882882 let cmd =
883- let base = Filename. ( basename (remove_extension src) ) in
883+ let base = Filename. basename (File. remove_extension src) in
884884 get_var var_bindings Var. python @ [" -m" ; base ^ " ." ^ base]
885885 in
886886 let pythonpath =
@@ -895,7 +895,7 @@ let run_artifact config ~backend ~var_bindings ?scope src =
895895 (String. concat " " cmd);
896896 run_command ~setenv: [" PYTHONPATH" , pythonpath] cmd
897897 | `Java ->
898- let target_main = Filename. basename src |> Filename. chop_extension in
898+ let target_main = File. remove_extension ( Filename. basename src) in
899899 let cmd =
900900 get_var var_bindings Var. java @ [" -cp" ; src -. - " jar" ; target_main]
901901 in
@@ -923,7 +923,7 @@ let build_test_deps ~config ~backend files_or_folders nin_ppf items var_bindings
923923 Option. map Mark. remove item.Scan. module_def
924924 = Some (File. basename file)
925925 || item.Scan. file_name = file
926- || Filename . remove_extension item.Scan. file_name = file
926+ || File . remove_extension item.Scan. file_name = file
927927 in
928928 let items = List. filter filter items in
929929 if items = [] then
@@ -955,10 +955,7 @@ let build_test_deps ~config ~backend files_or_folders nin_ppf items var_bindings
955955 @@ String.Set. add
956956 (match backend with
957957 | `Java | `Python -> t
958- | _ ->
959- Filename. remove_extension t
960- ^ " +main"
961- ^ Filename. extension t)
958+ | _ -> File. (remove_extension t ^ (" +main" -. - extension t)))
962959 acc
963960 in
964961 List. fold_left
@@ -1463,34 +1460,30 @@ let main_cmd =
14631460 ]
14641461
14651462let main () =
1463+ let [@ inline] exit_with_error excode emit =
1464+ let bt = Printexc. get_raw_backtrace () in
1465+ emit () ;
1466+ if Global. options.debug then Printexc. print_raw_backtrace stderr bt;
1467+ exit excode
1468+ in
14661469 Sys. catch_break true ;
14671470 try exit (Cmdliner.Cmd. eval' ~catch: false main_cmd) with
14681471 | Catala_utils.Cli. Exit_with n -> exit n
14691472 | Message. CompilerError content ->
1470- let bt = Printexc. get_raw_backtrace () in
1471- Message.Content. emit content Error ;
1472- if Catala_utils.Global. options.debug then
1473- Printexc. print_raw_backtrace stderr bt;
1474- exit Cmd.Exit. some_error
1473+ exit_with_error Cmd.Exit. some_error
1474+ @@ fun () -> Message.Content. emit content Error
14751475 | Message. CompilerErrors contents ->
1476- Message.Content. emit_n contents Error ;
1477- exit Cmd.Exit. some_error
1476+ exit_with_error Cmd.Exit. some_error
1477+ @@ fun () -> Message.Content. emit_n contents Error
14781478 | Sys. Break ->
1479- let bt = Printexc. get_raw_backtrace () in
14801479 Format. fprintf (Message. err_ppf () ) " @.- Interrupted -@." ;
1481- if Printexc. backtrace_status () then Printexc. print_raw_backtrace stderr bt;
1482- exit 130
1480+ exit_with_error 130 (fun () -> () )
14831481 | Sys_error msg ->
1484- let bt = Printexc. get_raw_backtrace () in
1485- Message.Content. emit
1486- (Message.Content. of_string (" System error: " ^ msg))
1487- Error ;
1488- if Printexc. backtrace_status () then Printexc. print_raw_backtrace stderr bt;
1489- exit Cmd.Exit. internal_error
1482+ exit_with_error Cmd.Exit. internal_error
1483+ @@ fun () ->
1484+ Message.Content. (emit (of_string (" System error: " ^ msg)) Error )
14901485 | e ->
1491- let bt = Printexc. get_raw_backtrace () in
1492- Message.Content. emit
1493- (Message.Content. of_string (" Unexpected error: " ^ Printexc. to_string e))
1494- Error ;
1495- if Printexc. backtrace_status () then Printexc. print_raw_backtrace stderr bt;
1496- exit Cmd.Exit. internal_error
1486+ exit_with_error Cmd.Exit. internal_error
1487+ @@ fun () ->
1488+ Message.Content. (
1489+ emit (of_string (" Unexpected error: " ^ Printexc. to_string e)) Error )
0 commit comments