aboutsummaryrefslogtreecommitdiffstats
path: root/flocq/Version.v
diff options
context:
space:
mode:
authorGuillaume Melquiond <guillaume.melquiond@inria.fr>2019-02-13 18:53:17 +0100
committerXavier Leroy <xavierleroy@users.noreply.github.com>2019-03-27 11:38:25 +0100
commit0f919eb26c68d3882e612a1b3a9df45bee6d3624 (patch)
treeb8bcf57e06d761be09b8d2cf2f80741acb1e4949 /flocq/Version.v
parentd5c0b4054c8490bda3b3d191724c58d5d4002e58 (diff)
downloadcompcert-kvx-0f919eb26c68d3882e612a1b3a9df45bee6d3624.tar.gz
compcert-kvx-0f919eb26c68d3882e612a1b3a9df45bee6d3624.zip
Upgrade embedded version of Flocq to 3.1.
Main changes to CompCert outside of Flocq are as follows: - Minimal supported version of Coq is now 8.7, due to Flocq requirements. - Most modifications are due to Z2R being dropped in favor of IZR and to the way Flocq now handles NaNs. - CompCert now correctly handles NaNs for the Risc-V architecture (hopefully).
Diffstat (limited to 'flocq/Version.v')
-rw-r--r--flocq/Version.v32
1 files changed, 32 insertions, 0 deletions
diff --git a/flocq/Version.v b/flocq/Version.v
new file mode 100644
index 00000000..d0e36a57
--- /dev/null
+++ b/flocq/Version.v
@@ -0,0 +1,32 @@
+(**
+This file is part of the Flocq formalization of floating-point
+arithmetic in Coq: http://flocq.gforge.inria.fr/
+
+Copyright (C) 2011-2018 Sylvie Boldo
+#<br />#
+Copyright (C) 2011-2018 Guillaume Melquiond
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 3 of the License, or (at your option) any later version.
+
+This library 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
+COPYING file for more details.
+*)
+
+(** Helper for detecting the version of Flocq *)
+Require Import BinNat.
+Require Import Ascii String.
+
+Definition Flocq_version := Eval vm_compute in
+ let fix parse s major minor :=
+ match s with
+ | String "."%char t => parse t (major * 100 + minor)%N N0
+ | String h t =>
+ parse t major (minor * 10 + N_of_ascii h - N_of_ascii "0"%char)%N
+ | Empty_string => (major * 100 + minor)%N
+ end in
+ parse "3.1.0"%string N0 N0.