From 5a9c1e8c23db2a3e12db1340ddad7e3406914fa2 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Mon, 12 Jun 2023 11:29:06 +0200 Subject: [PATCH] prefer OCaml 4.13 new String functions over Extlib's --- src/kernel_internals/parsing/logic_preprocess.mll | 9 +++++---- src/kernel_internals/typing/cabs2cil.ml | 4 ++-- src/kernel_services/ast_queries/ast_info.ml | 12 ++++++------ src/libraries/utils/filepath.ml | 9 +++++---- src/plugins/gui/pretty_source.ml | 4 ++-- src/plugins/metrics/metrics_cilast.ml | 2 +- src/plugins/variadic/classify.ml | 4 ++-- src/plugins/wp/ProofStrategy.ml | 2 +- tests/libc/check_compliance.ml | 8 ++++---- 9 files changed, 28 insertions(+), 26 deletions(-) diff --git a/src/kernel_internals/parsing/logic_preprocess.mll b/src/kernel_internals/parsing/logic_preprocess.mll index cd002187e43..02ed925af56 100644 --- a/src/kernel_internals/parsing/logic_preprocess.mll +++ b/src/kernel_internals/parsing/logic_preprocess.mll @@ -122,14 +122,15 @@ let content = Buffer.create 80 in let rec ignore_content () = let s = input_line file in - if not (Extlib.string_prefix annot_beg s) then ignore_content () + if not (String.starts_with ~prefix:annot_beg s) then ignore_content () in let rec get_annot first = let s = input_line file in - if Extlib.string_prefix annot_end s then false, Buffer.contents content - else if Extlib.string_prefix annot_end_nl s then + if String.starts_with ~prefix:annot_end s then + false, Buffer.contents content + else if String.starts_with ~prefix:annot_end_nl s then true, Buffer.contents content - else if Extlib.string_prefix annot_end_comment s then begin + else if String.starts_with ~prefix:annot_end_comment s then begin Buffer.add_char content '\n'; false, Buffer.contents content end else begin diff --git a/src/kernel_internals/typing/cabs2cil.ml b/src/kernel_internals/typing/cabs2cil.ml index a2393c647bb..5b5ee4a03c0 100644 --- a/src/kernel_internals/typing/cabs2cil.ml +++ b/src/kernel_internals/typing/cabs2cil.ml @@ -333,7 +333,7 @@ let get_current_stdheader () = let rec aux = function | [] -> "" | [ s ] -> s - | s :: l when Extlib.string_prefix ~strict:true "__fc_" s -> aux l + | s :: l when String.starts_with ~prefix:"__fc_" s -> aux l | s :: _ -> s in aux !current_stdheader @@ -9103,7 +9103,7 @@ and createLocal ghost ((_, sto, _, _) as specs) let full_name = (* Mangled symbols (that is, starting with '_Z') are unique by construction. No need to add current function name as prefix. *) - if Extlib.string_prefix ~strict:true "_Z" n + if String.starts_with ~prefix:"_Z" n && n <> "_Z" then n else !currentFunctionFDEC.svar.vname ^ "_" ^ n in diff --git a/src/kernel_services/ast_queries/ast_info.ml b/src/kernel_services/ast_queries/ast_info.ml index e6976f6deb8..2c9418a9254 100644 --- a/src/kernel_services/ast_queries/ast_info.ml +++ b/src/kernel_services/ast_queries/ast_info.ml @@ -450,22 +450,22 @@ let pointed_type ty = (* ************************************************************************** *) let can_be_cea_function name = - Extlib.string_prefix "Frama_" name + String.starts_with ~prefix:"Frama_" name let is_cea_function name = - Extlib.string_prefix "Frama_C_show_each" name + String.starts_with ~prefix:"Frama_C_show_each" name let is_cea_domain_function name = - Extlib.string_prefix "Frama_C_domain_show_each" name + String.starts_with ~prefix:"Frama_C_domain_show_each" name let is_cea_dump_function name = - Extlib.string_prefix "Frama_C_dump_each" name + String.starts_with ~prefix:"Frama_C_dump_each" name let is_cea_dump_file_function name = - Extlib.string_prefix "Frama_C_dump_each_file" name + String.starts_with ~prefix:"Frama_C_dump_each_file" name let is_cea_builtin name = - Extlib.string_prefix "Frama_C_builtin" name + String.starts_with ~prefix:"Frama_C_builtin" name let is_frama_c_builtin n = can_be_cea_function n && diff --git a/src/libraries/utils/filepath.ml b/src/libraries/utils/filepath.ml index 6292a93db46..b2ea6e9bf6e 100644 --- a/src/libraries/utils/filepath.ml +++ b/src/libraries/utils/filepath.ml @@ -226,7 +226,7 @@ let add_path path = | Some symb -> symb ^ Buffer.contents buf let rec skip_dot file_name = - if Extlib.string_prefix "./" file_name then + if String.starts_with ~prefix:"./" file_name then skip_dot (String.sub file_name 2 (String.length file_name - 2)) else file_name @@ -237,7 +237,8 @@ let pretty file_name = let path = insert cwd file_name in let file_name = path.path_name in let cwd_name = cwd.path_name in - if Extlib.string_prefix ~strict:true cwd_name file_name then + if String.starts_with ~prefix:cwd_name file_name && cwd_name <> file_name + then let n = 1 + String.length cwd_name in String.sub file_name n (String.length file_name - n) else @@ -255,7 +256,7 @@ let relativize ?base_name file_name = in if base_name = file_name then "." else let base_name = base_name ^ Filename.dir_sep in - if Extlib.string_prefix base_name file_name then + if String.starts_with ~prefix:base_name file_name then let n = String.length base_name in let file_name = String.sub file_name n (String.length file_name - n) in if file_name = "" then "." else file_name @@ -268,7 +269,7 @@ let is_relative ?base_name file_name = | Some b -> (insert cwd b).path_name in base_name = file_name - || Extlib.string_prefix (base_name ^ Filename.dir_sep) file_name + || String.starts_with ~prefix:(base_name ^ Filename.dir_sep) file_name (* -------------------------------------------------------------------------- *) (* --- Normalized Typed Module --- *) diff --git a/src/plugins/gui/pretty_source.ml b/src/plugins/gui/pretty_source.ml index b2d1ddff1c5..60293a2379d 100644 --- a/src/plugins/gui/pretty_source.ml +++ b/src/plugins/gui/pretty_source.ml @@ -260,14 +260,14 @@ let buffer_formatter state source = let emit_open_tag s = let s = Extlib.format_string_of_stag s in (* Ignore tags that are not ours *) - if Extlib.string_prefix "guitag:" s then + if String.starts_with ~prefix:"guitag:" s then Stack.push (source#end_iter#offset, Tag.find s) starts ; "" in let emit_close_tag s = let s = Extlib.format_string_of_stag s in (try - if Extlib.string_prefix "guitag:" s then + if String.starts_with ~prefix:"guitag:" s then let (p,sid) = Stack.pop starts in Locs.add state (p, source#end_iter#offset) sid with Stack.Empty -> (* This should probably be a hard error *) diff --git a/src/plugins/metrics/metrics_cilast.ml b/src/plugins/metrics/metrics_cilast.ml index 1fdd721413c..85d0d947a81 100644 --- a/src/plugins/metrics/metrics_cilast.ml +++ b/src/plugins/metrics/metrics_cilast.ml @@ -512,7 +512,7 @@ let pretty_used_files used_files = let used_included_c_files = Datatype.Filepath.Set.filter (fun f -> - Extlib.string_suffix ~strict:true ".c" + String.ends_with ~suffix:".c" (f : Filepath.Normalized.t :> string)) used_included_files in diff --git a/src/plugins/variadic/classify.ml b/src/plugins/variadic/classify.ml index 053d1b52b0e..32d4c8c2c36 100644 --- a/src/plugins/variadic/classify.ml +++ b/src/plugins/variadic/classify.ml @@ -113,7 +113,7 @@ let mk_format_fun vi f_kind f_buffer ~format_pos = let is_frama_c_builtin name = Ast_info.is_frama_c_builtin name || Cil_builtins.Builtin_functions.mem name || - Extlib.string_prefix "__FRAMAC_" name (* Mthread prefixes *) + String.starts_with ~prefix:"__FRAMAC_" name (* Mthread prefixes *) let va_builtins = [ "__builtin_va_start"; @@ -162,7 +162,7 @@ let classify_std env vi = match vi.vname with (* stropts.h *) | "ioctl" -> mk_overload env ["__va_ioctl_void" ; "__va_ioctl_int" ; "__va_ioctl_ptr"] - | n when Extlib.string_prefix "__sync_" n -> Misc + | n when String.starts_with ~prefix:"__sync_" n -> Misc | n when is_va_builtin n -> Misc | n when is_frama_c_builtin n -> Builtin (* Anything else *) diff --git a/src/plugins/wp/ProofStrategy.ml b/src/plugins/wp/ProofStrategy.ml index 4440b768d7b..89f52477deb 100644 --- a/src/plugins/wp/ProofStrategy.ml +++ b/src/plugins/wp/ProofStrategy.ml @@ -546,7 +546,7 @@ let configure tactic sigma (a,v) = let subgoal (children : (string loc * string loc) list) (default : string loc option) (goal,node) = let hint = List.find_map (fun (g,s) -> - if Extlib.string_prefix g.value goal then Some s else None + if String.starts_with ~prefix:g.value goal then Some s else None ) children in begin match hint, default with diff --git a/tests/libc/check_compliance.ml b/tests/libc/check_compliance.ml index 63485ebba93..7a13be06edf 100644 --- a/tests/libc/check_compliance.ml +++ b/tests/libc/check_compliance.ml @@ -19,7 +19,7 @@ class stdlib_visitor = object Cil.SkipChildren | attrparams -> let when_header = function - | AStr s when Extlib.string_suffix ".h" s -> Some s + | AStr s when String.ends_with ~suffix:".h" s -> Some s | _ -> None in let headers = List.filter_map when_header attrparams @@ -81,9 +81,9 @@ struct end let ident_to_be_ignored id headers = - Extlib.string_prefix "__" id || - Extlib.string_prefix "Frama_C" id || - List.filter (fun h -> not (Extlib.string_prefix "__fc" h)) headers = [] + String.starts_with ~prefix:"__" id || + String.starts_with ~prefix:"Frama_C" id || + List.filter (fun h -> not (String.starts_with ~prefix:"__fc" h)) headers = [] let check_ident c11 posix glibc nonstandard c11_headers id headers = if ident_to_be_ignored id headers then (* nothing to check *) () -- GitLab