Skip to content

Commit 8428de3

Browse files
committed
Refactor handling defaults for global settings (empty string -> None); fix prev run specification for ppx_minidebug
1 parent 9a3bdff commit 8428de3

File tree

1 file changed

+11
-12
lines changed

1 file changed

+11
-12
lines changed

arrayjit/lib/utils.ml

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ let settings =
6464
}
6565

6666
let accessed_global_args = Hash_set.create (module String)
67+
let str_nonempty ~f s = if String.is_empty s then None else Some (f s)
68+
let pair a b = (a, b)
6769

6870
let read_cmdline_or_env_var n =
6971
let with_debug =
@@ -86,10 +88,7 @@ let read_cmdline_or_env_var n =
8688
| None -> (
8789
match
8890
List.find_map env_variants ~f:(fun env_n ->
89-
Option.(
90-
join
91-
@@ map (Stdlib.Sys.getenv_opt env_n) ~f:(fun v ->
92-
if String.is_empty v then None else Some (env_n, v))))
91+
Option.(join @@ map (Stdlib.Sys.getenv_opt env_n) ~f:(str_nonempty ~f:(pair env_n))))
9392
with
9493
| None | Some (_, "") -> None
9594
| Some (p, arg) ->
@@ -145,7 +144,7 @@ let config_file_args =
145144
String.drop_prefix key 6 |> String.strip ~drop:(equal_char '_')
146145
else key
147146
in
148-
if String.is_empty v then None else Some (key, v)
147+
str_nonempty ~f:(pair key) v
149148
| l ->
150149
failwith @@ "OCANNL: invalid syntax in the config file " ^ fname
151150
^ ", should have a single '=' on each non-empty line, found: " ^ String.concat l)
@@ -214,9 +213,10 @@ let diagn_log_file fname =
214213
filename_concat log_files_dir fname
215214

216215
let get_debug name =
217-
let snapshot_every_sec = get_global_arg ~default:"" ~arg_name:"snapshot_every_sec" in
218216
let snapshot_every_sec =
219-
if String.is_empty snapshot_every_sec then None else Float.of_string_opt snapshot_every_sec
217+
Option.join
218+
@@ str_nonempty ~f:Float.of_string_opt
219+
@@ get_global_arg ~default:"" ~arg_name:"snapshot_every_sec"
220220
in
221221
let time_tagged =
222222
match String.lowercase @@ get_global_arg ~default:"elapsed" ~arg_name:"time_tagged" with
@@ -278,8 +278,8 @@ let get_debug name =
278278
in
279279
let filename = Option.map file_stem ~f:(fun stem -> diagn_log_file @@ stem) in
280280
let prev_run_file =
281-
let prefix = get_global_arg ~default:"" ~arg_name:"prev_run_prefix" in
282-
Option.map file_stem ~f:(fun stem -> diagn_log_file @@ prefix ^ stem ^ ".raw")
281+
let prefix = str_nonempty ~f:Fn.id @@ get_global_arg ~default:"" ~arg_name:"prev_run_prefix" in
282+
Option.map2 prefix file_stem ~f:(fun prefix stem -> diagn_log_file @@ prefix ^ stem ^ ".raw")
283283
in
284284
let log_level =
285285
let s = String.strip @@ get_global_arg ~default:"1" ~arg_name:"log_level" in
@@ -321,12 +321,11 @@ let get_debug name =
321321
in
322322
let highlight_re =
323323
let arg = get_global_arg ~default:"" ~arg_name:"debug_highlight_pcre" in
324-
if String.is_empty arg then [] else [ Re.Pcre.re arg ]
324+
Option.to_list @@ str_nonempty ~f:Re.Pcre.re arg
325325
in
326326
let highlight_terms = Re.(alt (highlight_re @ List.map debug_highlights ~f:str)) in
327327
let diff_ignore_pattern =
328-
let arg = get_global_arg ~default:"" ~arg_name:"diff_ignore_pattern_pcre" in
329-
if String.is_empty arg then None else Some (Re.Pcre.re arg)
328+
str_nonempty ~f:Re.Pcre.re @@ get_global_arg ~default:"" ~arg_name:"diff_ignore_pattern_pcre"
330329
in
331330
if flushing then
332331
Minidebug_runtime.debug_flushing ?filename ~time_tagged ~elapsed_times ~print_entry_ids

0 commit comments

Comments
 (0)