From 83a74e412f6d633a3d4acbee86cac9ff95ace35f Mon Sep 17 00:00:00 2001 From: Gautier Hattenberger Date: Fri, 8 Oct 2021 13:01:28 +0200 Subject: [PATCH] Drop old compat (#2786) * [ocaml] drop of compat for Ocaml < 4.05 this is linked to Ubuntu 16.04 that have reached end of life * [pprzlink] update pprzlink for removed old compat --- sw/ext/pprzlink | 2 +- sw/ground_segment/cockpit/gcs.ml | 8 ++--- sw/ground_segment/cockpit/live.ml | 2 +- sw/ground_segment/cockpit/page_settings.ml | 4 +-- sw/ground_segment/cockpit/sectors.ml | 2 +- sw/ground_segment/tmtc/server_globals.ml | 2 +- sw/lib/ocaml/Makefile | 31 +++-------------- sw/lib/ocaml/autopilot.ml | 4 +-- sw/lib/ocaml/compat.ml | 39 ---------------------- sw/lib/ocaml/compat.mli | 27 --------------- sw/lib/ocaml/extXml.ml | 6 ++-- sw/lib/ocaml/fp_proc.ml | 10 +++--- sw/lib/ocaml/mapFP.ml | 6 ++-- sw/lib/ocaml/module.ml | 2 +- sw/lib/ocaml/papget.ml | 6 ++-- sw/lib/ocaml/xmlEdit.ml | 8 ++--- sw/logalizer/export.ml | 2 +- sw/supervision/pc_aircraft.ml | 2 +- sw/tools/generators/gen_abi.ml | 8 ++--- sw/tools/generators/gen_airframe.ml | 6 ++-- sw/tools/generators/gen_autopilot.ml | 4 +-- sw/tools/generators/gen_flight_plan.ml | 18 +++++----- sw/tools/generators/gen_makefile.ml | 6 ++-- sw/tools/generators/gen_modules.ml | 4 +-- sw/tools/generators/gen_periodic.ml | 16 ++++----- sw/tools/generators/gen_ubx.ml | 2 +- sw/tools/generators/gen_xsens.ml | 2 +- 27 files changed, 70 insertions(+), 159 deletions(-) delete mode 100644 sw/lib/ocaml/compat.ml delete mode 100644 sw/lib/ocaml/compat.mli diff --git a/sw/ext/pprzlink b/sw/ext/pprzlink index c6e88ccbb9..bd13ad8da2 160000 --- a/sw/ext/pprzlink +++ b/sw/ext/pprzlink @@ -1 +1 @@ -Subproject commit c6e88ccbb9d65330299576fd8886300113baa5f0 +Subproject commit bd13ad8da2eaf6a10c9bfdceb80a624c68e76469 diff --git a/sw/ground_segment/cockpit/gcs.ml b/sw/ground_segment/cockpit/gcs.ml index 997dfabe24..33b9820ed4 100644 --- a/sw/ground_segment/cockpit/gcs.ml +++ b/sw/ground_segment/cockpit/gcs.ml @@ -501,7 +501,7 @@ let resize = fun (widget:GObj.widget) orientation size -> let rec pack_widgets = fun orientation xml widgets packing -> let size = try Some (ExtXml.int_attrib xml "size") with _ -> None in - match Compat.lowercase_ascii (Xml.tag xml) with + match String.lowercase_ascii (Xml.tag xml) with "widget" -> let name = ExtXml.attrib xml "name" in let widget = @@ -528,7 +528,7 @@ and pack_list = fun resize orientation xmls widgets packing -> let rec find_widget_children = fun name xml -> let xmls = Xml.children xml in - match Compat.lowercase_ascii (Xml.tag xml) with + match String.lowercase_ascii (Xml.tag xml) with "widget" when ExtXml.attrib xml "name" = name -> xmls | "rows" | "columns" -> let rec loop = function @@ -542,7 +542,7 @@ let rec find_widget_children = fun name xml -> let rec replace_widget_children = fun name children xml -> let xmls = Xml.children xml - and tag = Compat.lowercase_ascii (Xml.tag xml) in + and tag = String.lowercase_ascii (Xml.tag xml) in match tag with "widget" -> Xml.Element("widget", @@ -564,7 +564,7 @@ let rec update_widget_size = fun orientation widgets xml -> if orientation = `HORIZONTAL then rect.Gtk.width else rect.Gtk.height in let xmls = Xml.children xml - and tag = Compat.lowercase_ascii (Xml.tag xml) in + and tag = String.lowercase_ascii (Xml.tag xml) in match tag with "widget" -> let name = ExtXml.attrib xml "name" in diff --git a/sw/ground_segment/cockpit/live.ml b/sw/ground_segment/cockpit/live.ml index 73f02f16ae..912cce8f47 100644 --- a/sw/ground_segment/cockpit/live.ml +++ b/sw/ground_segment/cockpit/live.ml @@ -349,7 +349,7 @@ let mark = fun (geomap:G.widget) ac_id track plugin_frame -> let attributes_pretty_printer = fun attribs -> (* Remove the optional attributesĀ *) let valid = fun a -> - let a = Compat.lowercase_ascii a in + let a = String.lowercase_ascii a in a <> "no" && a <> "strip_icon" && a <> "strip_button" && a <> "pre_call" && a <> "post_call" && a <> "key" && a <> "group" in diff --git a/sw/ground_segment/cockpit/page_settings.ml b/sw/ground_segment/cockpit/page_settings.ml index 4d307da929..c5ed9e3fdc 100644 --- a/sw/ground_segment/cockpit/page_settings.ml +++ b/sw/ground_segment/cockpit/page_settings.ml @@ -250,7 +250,7 @@ let one_setting = fun (i:int) (do_change:int -> float -> unit) ac_id packing dl_ (** Insert the related buttons in the strip and prepare the papgets DnD *) List.iter (fun x -> - match Compat.lowercase_ascii (Xml.tag x) with + match String.lowercase_ascii (Xml.tag x) with "strip_button" -> let label = ExtXml.attrib x "name" and sp_value = ExtXml.float_attrib x "value" @@ -294,7 +294,7 @@ let same_tag_for_all = function | x::xs -> let tag_first = Xml.tag x in List.iter (fun y -> assert(ExtXml.tag_is y tag_first)) xs; - Compat.lowercase_ascii tag_first + String.lowercase_ascii tag_first (** Build the tree of settings *) diff --git a/sw/ground_segment/cockpit/sectors.ml b/sw/ground_segment/cockpit/sectors.ml index 5e2b12a286..a85cb4cdde 100644 --- a/sw/ground_segment/cockpit/sectors.ml +++ b/sw/ground_segment/cockpit/sectors.ml @@ -7,7 +7,7 @@ let (//) = Filename.concat let rec display = fun (geomap:MapCanvas.widget) r -> - match Compat.lowercase_ascii (Xml.tag r) with + match String.lowercase_ascii (Xml.tag r) with "disc" -> let rad = float_of_string (ExtXml.attrib r "radius") and geo = Latlong.of_string (ExtXml.attrib (ExtXml.child r "point") "pos") in diff --git a/sw/ground_segment/tmtc/server_globals.ml b/sw/ground_segment/tmtc/server_globals.ml index 0ff4c11af7..8afdbfba0d 100644 --- a/sw/ground_segment/tmtc/server_globals.ml +++ b/sw/ground_segment/tmtc/server_globals.ml @@ -24,7 +24,7 @@ let string_of_values = fun values -> (** get modes from autopilot xml file *) let modes_from_autopilot = fun ap_xml -> let ap = ExtXml.child ap_xml - ~select:(fun x -> Compat.uppercase_ascii (ExtXml.attrib_or_default x "gcs_mode" "") = "TRUE") + ~select:(fun x -> String.uppercase_ascii (ExtXml.attrib_or_default x "gcs_mode" "") = "TRUE") "state_machine" in let modes = List.filter (fun x -> Xml.tag x = "mode") (Xml.children ap) in diff --git a/sw/lib/ocaml/Makefile b/sw/lib/ocaml/Makefile index ba80ae6eb0..d16ee45ef0 100644 --- a/sw/lib/ocaml/Makefile +++ b/sw/lib/ocaml/Makefile @@ -49,26 +49,12 @@ ifeq ($(LABLGTK2GNOMECANVAS),) LABLGTK2GNOMECANVAS = $(shell ocamlfind query -p-format lablgtk2.gnomecanvas 2>/dev/null) endif -CAMLP4_DEFS ?= -OCAMLC_VER := $(shell ocamlc -version) -OCAMLC_MAJOR := $(shell echo $(OCAMLC_VER) | cut -f1 -d.) -OCAMLC_MINOR := $(shell echo $(OCAMLC_VER) | cut -f2 -d.) -ifeq ($(shell test $(OCAMLC_MAJOR) -ge 4; echo $$?),0) -ifeq ($(shell test $(OCAMLC_MINOR) -ge 4; echo $$?),0) -CAMLP4_DEFS += -DOCAML_V404 -endif -endif -PP_OPTS = -pp "camlp4o pa_macro.cmo $(CAMLP4_DEFS)" - -# which source files to run through caml4p -PP_SRC = compat.ml - INCLUDES= PKGCOMMON=pprzlink,xml-light,netclient,nettls-gnutls,glibivy,lablgtk2 XINCLUDES= XPKGCOMMON=pprzlink,xml-light,glibivy,$(LABLGTK2GNOMECANVAS),lablgtk2.glade -SRC = compat.ml fig.ml debug.ml base64.ml serial.ml ocaml_tools.ml expr_syntax.ml expr_parser.ml expr_lexer.ml extXml.ml env.ml xml2h.ml latlong.ml egm96.ml srtm.ml http.ml gm.ml iGN.ml geometry_2d.ml cserial.o ubx.ml xmlCom.ml os_calls.ml editAirframe.ml defivybus.ml fp_proc.ml quaternion.ml +SRC = fig.ml debug.ml base64.ml serial.ml ocaml_tools.ml expr_syntax.ml expr_parser.ml expr_lexer.ml extXml.ml env.ml xml2h.ml latlong.ml egm96.ml srtm.ml http.ml gm.ml iGN.ml geometry_2d.ml cserial.o ubx.ml xmlCom.ml os_calls.ml editAirframe.ml defivybus.ml fp_proc.ml quaternion.ml SRC += gen_common.ml radio.ml settings.ml module.ml flight_plan.ml autopilot.ml airframe.ml telemetry.ml aircraft.ml CMO = $(SRC:.ml=.cmo) CMX = $(SRC:.ml=.cmx) @@ -139,19 +125,11 @@ ml_gtk_drag.o : ml_gtk_drag.c %.cmo : %.ml @echo OC $< - @if test $(findstring $<,$(PP_SRC)); then \ - $(OCAMLC) $(INCLUDES) $(PP_OPTS) -package $(PKGCOMMON) -c $<; \ - else \ - $(OCAMLC) $(INCLUDES) -package $(PKGCOMMON) -c $<; \ - fi; + $(Q)$(OCAMLC) $(INCLUDES) -package $(PKGCOMMON) -c $< %.cmx : %.ml @echo OOC $< - @if test $(findstring $<,$(PP_SRC)); then \ - $(OCAMLOPT) $(INCLUDES) $(PP_OPTS) -package $(PKGCOMMON) -c $<; \ - else \ - $(OCAMLOPT) $(INCLUDES) -package $(PKGCOMMON) -c $<; \ - fi; + $(Q)$(OCAMLOPT) $(INCLUDES) -package $(PKGCOMMON) -c $< %.cmi : %.mli @echo OC $< @@ -208,8 +186,7 @@ clean : .depend: Makefile $(GEN_DEP) @echo DEPEND $@ - $(Q)$(OCAMLDEP) $(PP_OPTS) $(PP_SRC) > .depend - $(Q)$(OCAMLDEP) $(filter-out $(PP_SRC), $(SRC) $(XSRC)) *.mli >> .depend + $(Q)$(OCAMLDEP) $(SRC) $(XSRC) *.mli >> .depend ifneq ($(MAKECMDGOALS),clean) -include .depend diff --git a/sw/lib/ocaml/autopilot.ml b/sw/lib/ocaml/autopilot.ml index 9b377e3f74..e3e8ef08b5 100644 --- a/sw/lib/ocaml/autopilot.ml +++ b/sw/lib/ocaml/autopilot.ml @@ -55,7 +55,7 @@ let get_sys_ap_settings = fun autopilots -> let dl_settings = List.fold_left (fun sl (_, autopilot) -> (* Filter state machines that need to be displayed *) let sm_filtered = List.filter (fun sm -> - try (Compat.lowercase_ascii (Xml.attrib sm "settings_mode")) = "true" with _ -> false + try (String.lowercase_ascii (Xml.attrib sm "settings_mode")) = "true" with _ -> false ) (Xml.children autopilot.xml) in if List.length sm_filtered = 0 then sl else @@ -65,7 +65,7 @@ let get_sys_ap_settings = fun autopilots -> let name = Xml.attrib sm "name" in (* Iter on modes and store min, max and values *) let (_, min, max, values) = List.fold_left (fun (current, min, max, values) m -> - let print = try Compat.lowercase_ascii (Xml.attrib m "settings") <> "hide" with _ -> true in + let print = try String.lowercase_ascii (Xml.attrib m "settings") <> "hide" with _ -> true in let name = Xml.attrib m "name" in if print then begin let min = match min with diff --git a/sw/lib/ocaml/compat.ml b/sw/lib/ocaml/compat.ml deleted file mode 100644 index c66547752b..0000000000 --- a/sw/lib/ocaml/compat.ml +++ /dev/null @@ -1,39 +0,0 @@ -(* - * Abstract some String/Byte functions for compatibility between OCaml 3.x and 4.x - * - * Copyright (C) 2016 Felix Ruess - * - * This file is part of paparazzi. - * - * paparazzi is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * paparazzi is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with paparazzi; see the file COPYING. If not, write to - * the Free Software Foundation, 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - *) - -IFDEF OCAML_V404 THEN -let lowercase_ascii = String.lowercase_ascii - -let uppercase_ascii = String.uppercase_ascii - -let capitalize_ascii = String.capitalize_ascii - -ELSE -let lowercase_ascii = String.lowercase - -let uppercase_ascii = String.uppercase - -let capitalize_ascii = String.capitalize - -END diff --git a/sw/lib/ocaml/compat.mli b/sw/lib/ocaml/compat.mli deleted file mode 100644 index 2b725f6736..0000000000 --- a/sw/lib/ocaml/compat.mli +++ /dev/null @@ -1,27 +0,0 @@ -(* - * Abstract some String/Byte functions for compatibility between OCaml 3.x and 4.x - * - * Copyright (C) 2016 Felix Ruess - * - * This file is part of paparazzi. - * - * paparazzi is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * paparazzi is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with paparazzi; see the file COPYING. If not, write to - * the Free Software Foundation, 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - *) - -val lowercase_ascii : string -> string -val uppercase_ascii : string -> string -val capitalize_ascii : string -> string diff --git a/sw/lib/ocaml/extXml.ml b/sw/lib/ocaml/extXml.ml index 936473a78f..e4e0bf32ce 100644 --- a/sw/lib/ocaml/extXml.ml +++ b/sw/lib/ocaml/extXml.ml @@ -82,7 +82,7 @@ let attrib_opt_map = fun xml attr f -> let attrib_opt_int = fun xml attr -> attrib_opt_map xml attr int_of_string let attrib_opt_float = fun xml attr -> attrib_opt_map xml attr float_of_string -let tag_is = fun x v -> Compat.lowercase_ascii (Xml.tag x) = Compat.lowercase_ascii v +let tag_is = fun x v -> String.lowercase_ascii (Xml.tag x) = String.lowercase_ascii v let attrib_or_default = fun x a default -> try Xml.attrib x a @@ -153,7 +153,7 @@ let my_to_string_fmt = fun tab_attribs x -> s let to_string_fmt = fun ?(tab_attribs = false) xml -> - let l = Compat.lowercase_ascii in + let l = String.lowercase_ascii in let rec lower = function | Xml.PCData _ as x -> x | Xml.Element (t, ats, cs) -> @@ -164,7 +164,7 @@ let to_string_fmt = fun ?(tab_attribs = false) xml -> let subst_attrib = fun attrib value xml -> - let u = Compat.uppercase_ascii in + let u = String.uppercase_ascii in let uattrib = u attrib in match xml with | Xml.Element (tag, attrs, children) -> diff --git a/sw/lib/ocaml/fp_proc.ml b/sw/lib/ocaml/fp_proc.ml index 40572cea73..ff7f4959fd 100644 --- a/sw/lib/ocaml/fp_proc.ml +++ b/sw/lib/ocaml/fp_proc.ml @@ -72,7 +72,7 @@ let transform_values = fun attribs_not_modified env attribs -> List.map (fun (a, v) -> let v' = - if List.mem (Compat.lowercase_ascii a) attribs_not_modified + if List.mem (String.lowercase_ascii a) attribs_not_modified then v else transform_expression env (parse_expression v) in (a, v')) @@ -83,7 +83,7 @@ let prefix_or_deroute = fun prefix reroutes name attribs -> List.map (fun (a, v) -> let v' = - if Compat.lowercase_ascii a = name then + if String.lowercase_ascii a = name then try List.assoc v reroutes with Not_found -> prefix v else v in @@ -105,7 +105,7 @@ let transform_stage = fun prefix reroutes env xml -> let rec tr = fun xml -> match xml with Xml.Element (tag, attribs, children) -> begin - match Compat.lowercase_ascii tag with + match String.lowercase_ascii tag with "exception" -> transform_exception prefix reroutes env xml | "while" -> @@ -276,7 +276,7 @@ let process_includes = fun dir xml -> let remove_attribs = fun xml names -> - List.filter (fun (x,_) -> not (List.mem (Compat.lowercase_ascii x) names)) (Xml.attribs xml) + List.filter (fun (x,_) -> not (List.mem (String.lowercase_ascii x) names)) (Xml.attribs xml) let xml_assoc_attrib = fun a v xmls -> List.find (fun x -> ExtXml.attrib x a = v) xmls @@ -327,7 +327,7 @@ let replace_from = fun stage waypoints -> let process_stage = fun stage waypoints -> let rec do_it = fun stage -> - match Compat.lowercase_ascii (Xml.tag stage) with + match String.lowercase_ascii (Xml.tag stage) with "go" | "stay" | "circle" -> replace_from (replace_wp stage waypoints) waypoints diff --git a/sw/lib/ocaml/mapFP.ml b/sw/lib/ocaml/mapFP.ml index 305b364b37..76cc02a6aa 100644 --- a/sw/lib/ocaml/mapFP.ml +++ b/sw/lib/ocaml/mapFP.ml @@ -34,7 +34,7 @@ let float_attr = fun xml a -> float_of_string (ExtXml.attrib xml a) let rec assoc_nocase at = function [] -> raise Not_found | (a, v)::avs -> - if Compat.uppercase_ascii at = Compat.uppercase_ascii a then v else assoc_nocase at avs + if String.uppercase_ascii at = String.uppercase_ascii a then v else assoc_nocase at avs (** Returns the WGS84 coordinates of a waypoint, either from its relative x and y coordinates or from its lat and long *) @@ -203,7 +203,7 @@ let display_kml = fun ?group color geomap xml -> try let document = ExtXml.child xml "Document" in let rec loop = fun child -> - let tag = Compat.lowercase_ascii (Xml.tag child) in + let tag = String.lowercase_ascii (Xml.tag child) in match tag with | "linestring" | "linearring" -> let coordinates = ExtXml.child child "coordinates" in @@ -266,7 +266,7 @@ class flight_plan = fun ?format_attribs ?editable ~show_moved geomap color fp_dt let waypoints = ExtXml.child xml "waypoints" in try List.fold_left (fun l x -> - match Compat.lowercase_ascii (Xml.tag x) with + match String.lowercase_ascii (Xml.tag x) with "kml" -> let file = ExtXml.attrib x "file" in display_kml ~group:wpts_group#group color geomap (ExtXml.parse_file (Env.flight_plans_path // file)); diff --git a/sw/lib/ocaml/module.ml b/sw/lib/ocaml/module.ml index 4b221a5db7..9d01cd035b 100644 --- a/sw/lib/ocaml/module.ml +++ b/sw/lib/ocaml/module.ml @@ -151,7 +151,7 @@ type periodic = { let parse_periodic = fun xml -> let get = fun x -> ExtXml.attrib_opt xml x in let getf = fun x -> ExtXml.attrib_opt_float xml x in - let call = snd (List.find (fun (a, _) -> Compat.lowercase_ascii a = "fun") + let call = snd (List.find (fun (a, _) -> String.lowercase_ascii a = "fun") (Xml.attribs xml)) in let call_regexp = Str.regexp "\\([a-zA-Z_][a-zA-Z0-9_]*\\)\\(.*\\)" in let fname = diff --git a/sw/lib/ocaml/papget.ml b/sw/lib/ocaml/papget.ml index 317e7ada08..91c317484e 100644 --- a/sw/lib/ocaml/papget.ml +++ b/sw/lib/ocaml/papget.ml @@ -368,7 +368,7 @@ object (self) let (x, y) = item#xy in let attrs = [ "type", msg_obj#type_; - "display", Compat.lowercase_ascii item#renderer#tag; + "display", String.lowercase_ascii item#renderer#tag; "x", sprintf "%.0f" x; "y", sprintf "%.0f" y ] in Xml.Element ("papget", attrs, scale_prop::val_props@renderer_props) end @@ -387,7 +387,7 @@ object let (x, y) = item#xy in let attrs = [ "type", type_; - "display", Compat.lowercase_ascii item#renderer#tag; + "display", String.lowercase_ascii item#renderer#tag; "x", sprintf "%.0f" x; "y", sprintf "%.0f" y ] in Xml.Element ("papget", attrs, properties@props) end @@ -416,7 +416,7 @@ object (self) let (x, y) = item#xy in let attrs = [ "type", "video_plugin"; - "display", Compat.lowercase_ascii item#renderer#tag; + "display", String.lowercase_ascii item#renderer#tag; "x", sprintf "%.0f" x; "y", sprintf "%.0f" y ] in Xml.Element ("papget", attrs, properties@props) initializer ignore(adj#connect#value_changed (fun () -> self#update_zoom (string_of_float adj#value))) diff --git a/sw/lib/ocaml/xmlEdit.ml b/sw/lib/ocaml/xmlEdit.ml index 52daa437d2..d52bc34fdd 100644 --- a/sw/lib/ocaml/xmlEdit.ml +++ b/sw/lib/ocaml/xmlEdit.ml @@ -352,21 +352,21 @@ let set_attribs = fun ((model, path):node) attribs -> let rec replace_assoc a v = function [] -> [(a, v)] | (a', v')::l -> - if a = Compat.uppercase_ascii a' + if a = String.uppercase_ascii a' then (a, v)::l else (a', v')::replace_assoc a v l let set_attrib = fun node (a, v) -> let atbs = attribs node in - set_attribs node (replace_assoc (Compat.uppercase_ascii a) v atbs) + set_attribs node (replace_assoc (String.uppercase_ascii a) v atbs) let attrib = fun node at -> - let at = Compat.uppercase_ascii at in + let at = String.uppercase_ascii at in let ats = attribs node in let rec loop = function [] -> raise Not_found | (a,v)::avs -> - if Compat.uppercase_ascii a = at then v else loop avs in + if String.uppercase_ascii a = at then v else loop avs in loop ats let tag = fun ((model, path):node) -> diff --git a/sw/logalizer/export.ml b/sw/logalizer/export.ml index d818bff798..2e639aa801 100644 --- a/sw/logalizer/export.ml +++ b/sw/logalizer/export.ml @@ -165,7 +165,7 @@ let export_values = fun ?(sep="tab") ?(export_geo_pos=true) (model:GTree.tree_st let lookup = fun m field -> try - PprzLink.string_of_value (Hashtbl.find last_values (m,Compat.lowercase_ascii field)) + PprzLink.string_of_value (Hashtbl.find last_values (m,String.lowercase_ascii field)) with Not_found -> "" in diff --git a/sw/supervision/pc_aircraft.ml b/sw/supervision/pc_aircraft.ml index b3d7625e53..4c74966ae4 100644 --- a/sw/supervision/pc_aircraft.ml +++ b/sw/supervision/pc_aircraft.ml @@ -83,7 +83,7 @@ let parse_conf_xml = fun vbox -> let strings = ref [] in Hashtbl.iter (fun name _ac -> strings := name :: !strings) Utils.aircrafts; let compare_ignore_case = fun s1 s2 -> - String.compare (Compat.lowercase_ascii s1) (Compat.lowercase_ascii s2) in + String.compare (String.lowercase_ascii s1) (String.lowercase_ascii s2) in let ordered = List.sort compare_ignore_case ("" :: !strings) in Gtk_tools.combo ordered vbox diff --git a/sw/tools/generators/gen_abi.ml b/sw/tools/generators/gen_abi.ml index 127748669f..008dbd6650 100644 --- a/sw/tools/generators/gen_abi.ml +++ b/sw/tools/generators/gen_abi.ml @@ -84,7 +84,7 @@ module Gen_onboard = struct Printf.fprintf h "\n/* Messages IDs */\n"; List.iter (fun msg -> if msg.id > !highest_id then highest_id := msg.id; - Printf.fprintf h "#define ABI_%s_ID %d\n" (Compat.capitalize_ascii msg.name) msg.id + Printf.fprintf h "#define ABI_%s_ID %d\n" (String.capitalize_ascii msg.name) msg.id ) messages; !highest_id @@ -109,14 +109,14 @@ module Gen_onboard = struct let print_callbacks = fun h messages -> Printf.fprintf h "\n/* Callbacks */\n"; List.iter (fun msg -> - Printf.fprintf h "typedef void (*abi_callback%s)" (Compat.capitalize_ascii msg.name); + Printf.fprintf h "typedef void (*abi_callback%s)" (String.capitalize_ascii msg.name); print_args h msg.fields; Printf.fprintf h ";\n"; ) messages (* Print a bind function *) let print_msg_bind = fun h msg -> - let name = Compat.capitalize_ascii msg.name in + let name = String.capitalize_ascii msg.name in Printf.fprintf h "\nstatic inline void AbiBindMsg%s(uint8_t sender_id, abi_event * ev, abi_callback%s cb) {\n" name name; Printf.fprintf h " if (abi_queues[ABI_%s_ID] == ev) return;\n" name; Printf.fprintf h " ev->id = sender_id;\n"; @@ -133,7 +133,7 @@ module Gen_onboard = struct | [(n,_)] -> Printf.fprintf h ", %s);\n" n | (n,_)::l' -> Printf.fprintf h ", %s" n; args h l' in - let name = Compat.capitalize_ascii msg.name in + let name = String.capitalize_ascii msg.name in Printf.fprintf h "\nstatic inline void AbiSendMsg%s" name; print_args h msg.fields; Printf.fprintf h " {\n"; diff --git a/sw/tools/generators/gen_airframe.ml b/sw/tools/generators/gen_airframe.ml index 8cdf344b8d..ff8ed5b5f1 100644 --- a/sw/tools/generators/gen_airframe.ml +++ b/sw/tools/generators/gen_airframe.ml @@ -146,7 +146,7 @@ let parse_element = fun out prefix s -> let print_reverse_servo_table = fun out driver servos -> - let d = match driver with "Default" -> "" | _ -> "_"^(Compat.uppercase_ascii driver) in + let d = match driver with "Default" -> "" | _ -> "_"^(String.uppercase_ascii driver) in fprintf out "static inline int get_servo_min%s(int _idx) {\n" d; fprintf out " switch (_idx) {\n"; List.iter (fun c -> @@ -316,8 +316,8 @@ let rec parse_section = fun out ac_id s -> let servos = Xml.children s in let nb_servos = List.fold_right (fun s m -> max (int_of_string (ExtXml.attrib s "no")) m) servos min_int + 1 in - define_out out (sprintf "SERVOS_%s_NB" (Compat.uppercase_ascii driver)) (string_of_int nb_servos); - fprintf out "#include \"subsystems/actuators/actuators_%s.h\"\n" (Compat.lowercase_ascii driver); + define_out out (sprintf "SERVOS_%s_NB" (String.uppercase_ascii driver)) (string_of_int nb_servos); + fprintf out "#include \"subsystems/actuators/actuators_%s.h\"\n" (String.lowercase_ascii driver); fprintf out "\n"; List.iter (parse_servo out driver) servos; print_reverse_servo_table out driver servos; diff --git a/sw/tools/generators/gen_autopilot.ml b/sw/tools/generators/gen_autopilot.ml index ff6e212c79..a7e3fbfa94 100644 --- a/sw/tools/generators/gen_autopilot.ml +++ b/sw/tools/generators/gen_autopilot.ml @@ -92,7 +92,7 @@ let print_includes = fun includes out_h -> ) (Xml.children includes) let print_mode_name = fun sm_name name -> - String.concat "" [(Compat.uppercase_ascii sm_name); "_MODE_"; (Compat.uppercase_ascii name)] + String.concat "" [(String.uppercase_ascii sm_name); "_MODE_"; (String.uppercase_ascii name)] (** Define modes *) let print_modes = fun modes sm_name out_h -> @@ -339,7 +339,7 @@ let parse_and_gen_modes xml_file ap_name main_freq h_dir sm = try (* Get state machine name *) let name = Xml.attrib sm "name" in - let name_up = Compat.uppercase_ascii name in + let name_up = String.uppercase_ascii name in (* Generate start of header *) begin_out out_h xml_file ("AUTOPILOT_CORE_"^name_up^"_H"); fprintf out_h "/*** %s ***/\n\n" ap_name; diff --git a/sw/tools/generators/gen_flight_plan.ml b/sw/tools/generators/gen_flight_plan.ml index 36ca1ec9a4..71ab419526 100644 --- a/sw/tools/generators/gen_flight_plan.ml +++ b/sw/tools/generators/gen_flight_plan.ml @@ -243,7 +243,7 @@ let pprz_throttle = fun s -> let output_vmode = fun out stage_xml wp last_wp -> let pitch = try Xml.attrib stage_xml "pitch" with _ -> "0.0" in let t = ExtXml.attrib_or_default stage_xml "nav_type" "Nav" in - if Compat.lowercase_ascii (Xml.tag stage_xml) <> "manual" + if String.lowercase_ascii (Xml.tag stage_xml) <> "manual" then begin if pitch = "auto" then begin @@ -348,7 +348,7 @@ let rec index_stage = fun x -> end -let inside_function = fun name -> "Inside" ^ Compat.capitalize_ascii name +let inside_function = fun name -> "Inside" ^ String.capitalize_ascii name (* pre call utility function *) let fp_pre_call = fun out x -> @@ -374,7 +374,7 @@ let stage_until = fun out x -> let rec print_stage = fun out index_of_waypoints x -> let stage out = incr stage; lprintf out "Stage(%d)\n" !stage; right () in begin - match Compat.lowercase_ascii (Xml.tag x) with + match String.lowercase_ascii (Xml.tag x) with | "return" -> stage out; lprintf out "Return(%s);\n" (ExtXml.attrib_or_default x "reset_stage" "0"); @@ -593,9 +593,9 @@ let rec print_stage = fun out index_of_waypoints x -> let statement = ExtXml.attrib x "fun" in (* by default, function is called while returning TRUE *) (* otherwise, function is called once and returned value is ignored *) - let loop = Compat.uppercase_ascii (ExtXml.attrib_or_default x "loop" "TRUE") in + let loop = String.uppercase_ascii (ExtXml.attrib_or_default x "loop" "TRUE") in (* be default, go to next stage immediately *) - let break = Compat.uppercase_ascii (ExtXml.attrib_or_default x "break" "FALSE") in + let break = String.uppercase_ascii (ExtXml.attrib_or_default x "break" "FALSE") in begin match loop with | "TRUE" -> lprintf out "if (! (%s)) {\n" statement; @@ -628,7 +628,7 @@ let rec print_stage = fun out index_of_waypoints x -> stage out; let statement = ExtXml.attrib x "fun" in (* by default, go to next stage immediately *) - let break = Compat.uppercase_ascii (ExtXml.attrib_or_default x "break" "FALSE") in + let break = String.uppercase_ascii (ExtXml.attrib_or_default x "break" "FALSE") in lprintf out "%s;\n" statement; begin match break with | "TRUE" -> lprintf out "NextStageAndBreak();\n"; @@ -812,7 +812,7 @@ let print_inside_polygon_global = fun out pts name -> let print_inside_sector = fun out (s, pts) -> let (ids, _) = List.split pts in - let name = "SECTOR_"^(Compat.uppercase_ascii s) in + let name = "SECTOR_"^(String.uppercase_ascii s) in Xml2h.define_out out (name^"_NB") (string_of_int (List.length pts)); Xml2h.define_out out name ("{ "^(String.concat ", " ids)^" }"); lprintf out "static inline bool %s(float _x, float _y) {\n" (inside_function s); @@ -1090,7 +1090,7 @@ let print_flight_plan_h = fun xml ref0 xml_file out_file -> (* print sectors *) let sectors_element = try ExtXml.child xml "sectors" with Not_found -> Xml.Element ("", [], []) in - let sectors = List.filter (fun x -> Compat.lowercase_ascii (Xml.tag x) = "sector") (Xml.children sectors_element) in + let sectors = List.filter (fun x -> String.lowercase_ascii (Xml.tag x) = "sector") (Xml.children sectors_element) in List.iter (fun x -> match ExtXml.attrib_opt x "type" with Some _ -> failwith "Error: attribute \"type\" on flight plan tag \"sector\" is deprecated and must be removed. All sectors are now dynamics.\n" | _ -> () @@ -1174,7 +1174,7 @@ let generate = fun flight_plan ?(check=false) ?(dump=false) xml_file out_fp -> let waypoints = Xml.children (ExtXml.child xml "waypoints") in let frame = ExtXml.attrib_or_default xml "wp_frame" "UTM" in - let frame = match Compat.uppercase_ascii frame with + let frame = match String.uppercase_ascii frame with | "UTM" -> UTM | "LTP" -> LTP | _ -> failwith ("Error: unkown wp_frame \"" ^ frame ^ "\". Use \"utm\" or \"ltp\"") diff --git a/sw/tools/generators/gen_makefile.ml b/sw/tools/generators/gen_makefile.ml index 24e40a214a..c180e231db 100644 --- a/sw/tools/generators/gen_makefile.ml +++ b/sw/tools/generators/gen_makefile.ml @@ -36,7 +36,7 @@ let (//) = Filename.concat let configure2mk = fun ?(default_configure=false) f c -> (* all makefiles variables are forced to uppercase *) - let name = Compat.uppercase_ascii c.Module.cname + let name = String.uppercase_ascii c.Module.cname and value = get_string_opt c.Module.cvalue and default = get_string_opt c.Module.default and case = get_string_opt c.Module.case in @@ -109,7 +109,7 @@ let file2mk = fun f ?(arch = false) dir_name target file -> let module2mk = fun f target firmware m -> let name = m.Module.name in let dir = match m.Module.dir with Some d -> d | None -> name in - let dir_name = Compat.uppercase_ascii dir ^ "_DIR" in + let dir_name = String.uppercase_ascii dir ^ "_DIR" in (* iter makefile section *) List.iter (fun mk -> if Module.check_mk target firmware mk then begin @@ -131,7 +131,7 @@ let dump_target_conf = fun out target conf -> fprintf out "ifeq ($(TARGET), %s)\n\n" target; let dir_list = singletonize (List.fold_left (fun l (_, m) -> match m.Module.dir with | None -> m.Module.name::l | Some d -> d::l) [] conf.AC.modules) in - List.iter (fun d -> fprintf out "%s_DIR = modules/%s\n" (Compat.uppercase_ascii d) d) dir_list; + List.iter (fun d -> fprintf out "%s_DIR = modules/%s\n" (String.uppercase_ascii d) d) dir_list; List.iter (fun p -> fprintf out "VPATH += %s\n" p; fprintf out "$(TARGET).CFLAGS += -I%s/modules\n" p diff --git a/sw/tools/generators/gen_modules.ml b/sw/tools/generators/gen_modules.ml index b2f0b7387c..2125884835 100644 --- a/sw/tools/generators/gen_modules.ml +++ b/sw/tools/generators/gen_modules.ml @@ -74,7 +74,7 @@ let get_cap_name = fun f -> match name with | [Str.Text t] | [Str.Text t; Str.Delim "("; Str.Delim ")"] - | [Str.Text t; Str.Delim "("; Str.Text _ ; Str.Delim ")"] -> Compat.uppercase_ascii t + | [Str.Text t; Str.Delim "("; Str.Text _ ; Str.Delim ")"] -> String.uppercase_ascii t | _ -> failwith "Gen_modules: not a valid function name" (** Computes the required modulos *) @@ -114,7 +114,7 @@ let print_function_freq = fun out modules -> fprintf out "\n"; List.iter (fun m -> List.iter (fun i -> - let fname = Compat.uppercase_ascii i.Module.fname in + let fname = String.uppercase_ascii i.Module.fname in let p, f = get_period_and_freq i.Module.period_freq in lprintf out "#define %s_PERIOD %s\n" fname p; lprintf out "#define %s_FREQ %s\n" fname f; diff --git a/sw/tools/generators/gen_periodic.ml b/sw/tools/generators/gen_periodic.ml index dda39bc95b..f7fcaf8692 100644 --- a/sw/tools/generators/gen_periodic.ml +++ b/sw/tools/generators/gen_periodic.ml @@ -108,7 +108,7 @@ let print_message_table = fun out_h xml -> let telemetry_types = Hashtbl.create 2 in (* For each process *) List.iter (fun process -> - let telem_type = Compat.uppercase_ascii (ExtXml.attrib_or_default process "type" "pprz") in + let telem_type = String.uppercase_ascii (ExtXml.attrib_or_default process "type" "pprz") in if not (Hashtbl.mem telemetry_types telem_type) then Hashtbl.add telemetry_types telem_type (Hashtbl.create 15); let messages = Hashtbl.find telemetry_types telem_type in (** For each mode of this process *) @@ -147,7 +147,7 @@ let print_process_send = fun out_h xml -> List.iteri (fun p_id process -> let process_name = ExtXml.attrib process "name" in - let telem_type = Compat.uppercase_ascii (ExtXml.attrib_or_default process "type" "pprz") in + let telem_type = String.uppercase_ascii (ExtXml.attrib_or_default process "type" "pprz") in let modes = Xml.children process in fprintf out_h "\n/* Periodic telemetry (type %s): %s process */\n" telem_type process_name; @@ -168,14 +168,14 @@ let print_process_send = fun out_h xml -> ) 0 modes in fprintf out_h "\n/* Functions for %s process */\n" process_name; - fprintf out_h "#ifdef PERIODIC_C_%s\n" (Compat.uppercase_ascii process_name); - fprintf out_h "#ifndef TELEMETRY_MODE_%s\n" (Compat.uppercase_ascii process_name); - fprintf out_h "#define TELEMETRY_MODE_%s 0\n" (Compat.uppercase_ascii process_name); + fprintf out_h "#ifdef PERIODIC_C_%s\n" (String.uppercase_ascii process_name); + fprintf out_h "#ifndef TELEMETRY_MODE_%s\n" (String.uppercase_ascii process_name); + fprintf out_h "#define TELEMETRY_MODE_%s 0\n" (String.uppercase_ascii process_name); fprintf out_h "#endif\n"; - fprintf out_h "uint8_t telemetry_mode_%s = TELEMETRY_MODE_%s;\n" process_name (Compat.uppercase_ascii process_name); - fprintf out_h "#else /* PERIODIC_C_%s not defined (general header) */\n" (Compat.uppercase_ascii process_name); + fprintf out_h "uint8_t telemetry_mode_%s = TELEMETRY_MODE_%s;\n" process_name (String.uppercase_ascii process_name); + fprintf out_h "#else /* PERIODIC_C_%s not defined (general header) */\n" (String.uppercase_ascii process_name); fprintf out_h "extern uint8_t telemetry_mode_%s;\n" process_name; - fprintf out_h "#endif /* PERIODIC_C_%s */\n" (Compat.uppercase_ascii process_name); + fprintf out_h "#endif /* PERIODIC_C_%s */\n" (String.uppercase_ascii process_name); lprintf out_h "static inline void periodic_telemetry_send_%s(struct periodic_telemetry *telemetry, struct transport_tx *trans, struct link_device *dev) {\n" process_name; right (); diff --git a/sw/tools/generators/gen_ubx.ml b/sw/tools/generators/gen_ubx.ml index da684e8664..99bc65fed2 100644 --- a/sw/tools/generators/gen_ubx.ml +++ b/sw/tools/generators/gen_ubx.ml @@ -112,7 +112,7 @@ let parse_message = fun class_name m -> (** Generating send function *) let param_type = fun f -> c_type (format f) in - let param_name = fun f ->Compat.lowercase_ascii (field_name f) in + let param_name = fun f ->String.lowercase_ascii (field_name f) in let param_name_and_type = fun f -> sprintf "%s ubx_%s" (param_type f) (param_name f) in let rec param_names = fun f r -> diff --git a/sw/tools/generators/gen_xsens.ml b/sw/tools/generators/gen_xsens.ml index 81bd38af50..818bda6852 100644 --- a/sw/tools/generators/gen_xsens.ml +++ b/sw/tools/generators/gen_xsens.ml @@ -111,7 +111,7 @@ let parse_message = fun m -> (** Generating send function *) let gen_send_macro = fun _ -> - let param_name = fun f -> Compat.lowercase_ascii (field_name f) in + let param_name = fun f -> String.lowercase_ascii (field_name f) in let rec param_names = fun f r -> if Xml.tag f = "field" then param_name f :: r