From 9f9a770b13b71d42c67cf75c99c9fb5773f76a62 Mon Sep 17 00:00:00 2001 From: Rudi Grinberg Date: Thu, 5 Apr 2018 23:35:22 +0800 Subject: [PATCH 1/2] Disable warning 50 for configurator on 4.02.3 --- src/configurator/flags/jbuild | 6 ++++++ src/configurator/flags/mk.ml | 25 +++++++++++++++++++++++++ src/configurator/jbuild | 2 +- 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 src/configurator/flags/jbuild create mode 100644 src/configurator/flags/mk.ml diff --git a/src/configurator/flags/jbuild b/src/configurator/flags/jbuild new file mode 100644 index 00000000..68be2f39 --- /dev/null +++ b/src/configurator/flags/jbuild @@ -0,0 +1,6 @@ +(jbuild_version 1) + +(executable + ((name mk))) + +(rule (with-stdout-to flags.sexp (run ./mk.exe -ocamlv ${ocaml_version}))) diff --git a/src/configurator/flags/mk.ml b/src/configurator/flags/mk.ml new file mode 100644 index 00000000..4c72c580 --- /dev/null +++ b/src/configurator/flags/mk.ml @@ -0,0 +1,25 @@ +open Printf + +let parse_version s = + Scanf.sscanf s "%d.%d.%d" (fun a b c -> a, b, c) + +let () = + let usage = + sprintf "%s -ocamlv version" (Filename.basename Sys.executable_name) in + let ocaml_version = ref "" in + let anon _ = + raise (Arg.Bad "anonymous arguments aren't accepted") in + Arg.parse + [ "-ocamlv" + , Arg.String (fun s -> ocaml_version := s) + , "Version of ocaml being used" + ] anon usage; + if !ocaml_version = "" then + raise (Arg.Bad "Provide version with -ocamlv") + else + let (x, y, _) = parse_version !ocaml_version in + if x >= 4 && y > 2 then ( + printf "()\n" + ) else ( + printf "(-w -50)\n" + ) diff --git a/src/configurator/jbuild b/src/configurator/jbuild index 03b0c4fd..2b696467 100644 --- a/src/configurator/jbuild +++ b/src/configurator/jbuild @@ -1,7 +1,7 @@ (library ((name configurator) - (flags (:standard -safe-string)) (libraries (stdune ocaml_config)) + (flags (:standard -safe-string (:include flags/flags.sexp))) (preprocess no_preprocessing))) (jbuild_version 1) From f19d5c69eed9115dc484738c62dcade163f0e971 Mon Sep 17 00:00:00 2001 From: Rudi Grinberg Date: Thu, 5 Apr 2018 23:35:45 +0800 Subject: [PATCH 2/2] Add Char compatibility module for 4.02.3 This is needed for configurator --- src/stdune/caml/caml.ml | 1 + src/stdune/char.ml | 9 +++++++++ 2 files changed, 10 insertions(+) create mode 100644 src/stdune/char.ml diff --git a/src/stdune/caml/caml.ml b/src/stdune/caml/caml.ml index a050ef96..82dc6ca9 100644 --- a/src/stdune/caml/caml.ml +++ b/src/stdune/caml/caml.ml @@ -1,5 +1,6 @@ module Filename = Filename module String = String +module Char = Char module Result = Result type ('a, 'error) result = ('a, 'error) Result.t = diff --git a/src/stdune/char.ml b/src/stdune/char.ml new file mode 100644 index 00000000..a6c6b1ee --- /dev/null +++ b/src/stdune/char.ml @@ -0,0 +1,9 @@ +module Char = Caml.Char + +include struct + [@@@warning "-32-3"] + let uppercase_ascii = Char.uppercase + let lowercase_ascii = Char.lowercase +end + +include Char