Skip to content

Commit 883154f

Browse files
committed
Merge branch 'topic/fsf_merge_269/20251022' into 'fsf'
Synchronize with GNAT Issue: eng/spark/spark2014#269 See merge request eng/spark/why3!99
2 parents 868636f + 6f0a133 commit 883154f

File tree

638 files changed

+3616
-10691
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

638 files changed

+3616
-10691
lines changed

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@ src/config.sh.in binary
1717
/.dockerignore export-ignore
1818
/.gitlab-ci.yml export-ignore
1919
/.mailmap export-ignore
20+
/.ocp-indent export-ignore
2021
/check.sh export-ignore
2122

2223
/bench/encoding/ export-ignore
24+
/bench/copy_oracles.sh export-ignore
2325
/examples_in_progress/ export-ignore
2426
/misc/ export-ignore
2527
/opam/ export-ignore

.gitlab-ci.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,9 +138,7 @@ trywhy3-extra:
138138
image: "debian:bullseye-slim"
139139
script:
140140
- misc/ci-trywhy3.sh
141-
only:
142-
variables:
143-
- $NEW_TRYWHY3_EXTRA
141+
when: manual
144142
artifacts:
145143
paths:
146144
- trywhy3

CHANGES.md

Lines changed: 36 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,32 @@
11
:x: marks a potential source of incompatibility
22

3+
Version 1.8.2, September 16, 2025
4+
---------------------------
5+
6+
Compilation
7+
* compatibility with OCaml 5.4 (MR !1228)
8+
9+
Provers
10+
* fix soundness bug with floats in Alt-Ergo 2.6.x (issue #905)
11+
12+
Sessions
13+
* fix issue with file identifiers in sessions (MR !1231)
14+
15+
Extraction
16+
* restore compatibility of OCaml extraction with js_of_ocaml
17+
18+
Version 1.8.1, June 4, 2025
19+
---------------------------
20+
21+
Core
22+
* fix cloning of injective records
23+
24+
Miscellaneous
25+
* fix compilation error with GCC 15
26+
27+
Plugins
28+
* resurrect the BDD-infer loop invariant generation plug-in
29+
330
Version 1.8.0, December 11, 2024
431
--------------------------------
532

@@ -15,8 +42,9 @@ Standard library
1542

1643
Core
1744
* records and range types now have some predefined symbol `foo'eq`
18-
and some axiom `foo'inj` to express injectivity. See manual
19-
Section "The WhyML Language Reference/Record Types".
45+
and some axiom `foo'inj` to express injectivity; see Section
46+
"The WhyML Language Reference/Record Types" of the manual
47+
(contribution by Loïc Correnson)
2048

2149
Transformations
2250
* new transformation `extensionality` to help with equality proofs
@@ -44,15 +72,18 @@ Tools
4472
* `why3 pp`: dropped option `--kind` :x:
4573

4674
Extraction
47-
* added support for Java, see Manual, Section "Executing WhyML Programs"
75+
* added support for Java; see Section "Executing WhyML Programs" of the manual
76+
(contribution by Gérald Point)
4877
* improved extraction to C: floating-point numbers, global variables
4978

5079
API
51-
* changed how resource limits are specified :x
52-
* renamed type `effect` to `effekt` for compatibility with OCaml 5.3 :x
80+
* changed how resource limits are specified :x:
81+
* renamed type `effect` to `effekt` for compatibility with OCaml 5.3 :x:
5382

5483
Miscellaneous
5584
* dependency on OCaml library `num` was replaced by `zarith`
85+
* added support for native Windows compilation through Opam 2.2
86+
(contribution by Basile Deslosges)
5687

5788
Version 1.7.2, April 18, 2024
5889
-----------------------------

Makefile.in

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
####################################################################
22
# #
33
# The Why3 Verification Platform / The Why3 Development Team #
4-
# Copyright 2010-2024 -- Inria - CNRS - Paris-Saclay University #
4+
# Copyright 2010-2025 -- Inria - CNRS - Paris-Saclay University #
55
# #
66
# This software is distributed under the terms of the GNU Lesser #
77
# General Public License version 2.1, with the special exception #
88
# on linking described in file LICENSE. #
9-
# #
109
####################################################################
1110

1211
.DELETE_ON_ERROR:
@@ -420,7 +419,7 @@ clean::
420419
ifeq (@enable_ppx@,yes)
421420
src/util/ppx_debug_optim$(EXE): src/util/debug_optim.ml
422421
$(SHOW) 'Linking $@'
423-
$(HIDE) $(OCAMLFIND) opt -package compiler-libs.common -linkpkg src/util/debug_optim.ml -o $@
422+
$(HIDE) $(OCAMLFIND) opt -package ppxlib -linkpkg src/util/debug_optim.ml -o $@
424423

425424
ifeq (@OCAML_OS_TYPE@,Win32)
426425
# Relative calls to executable on Windows cannot use / as path separator

bench/check-ce-bench

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,10 +314,12 @@ for file in $files; do
314314
;;
315315
"float_div")
316316
skipae=yes
317+
altergosteps=1000
318+
altergostepsrac=$altergosteps
317319
;;
318320
"floats")
319321
skipae=yes
320-
altergosteps=1000
322+
altergosteps=100
321323
altergostepsrac=$altergosteps
322324
cvc5stepsrac=10000
323325
z3steps=100000

bench/check-ce/oracles/float_div_Alt-Ergo,2.6.2_SP.oracle

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Warning: Error while checking function definition type match_mode: Function arity mismatch when interpreting
22
(Function ()
33
(Ssimple (Isymbol A1))
4-
(Var (Qannotident (Isymbol (Sprover @a31)) (Ssimple (Isymbol A1)))))
4+
(Var (Qannotident (Isymbol (Sprover @a33)) (Ssimple (Isymbol A1)))))
55
with lsymbol match_mode
66
Warning: Error while interpreting tqtisFinite: No variable in bound_vars matching qualified identifier (Qident (Isymbol t1))
77

@@ -14,11 +14,11 @@ Warning: Error while interpreting tqtisFinite: No variable in bound_vars matchin
1414
- Abstract RAC: NORMAL
1515
File "bench/check-ce/float_div.mlw", line 24, characters 11-25:
1616
Sub-goal Assertion of goal f'vc.
17-
Prover result is: Unknown (unknown) (245 steps).
17+
Prover result is: Unknown (unknown) (255 steps).
1818
The following counterexample model could not be verified
1919
(both RAC terminated because Precondition of `f` cannot be evaluated):
2020
File ieee_float.mlw:
21-
Line 934:
21+
Line 950:
2222
zeroF : = <UNDEFINED>
2323
File float_div.mlw:
2424
Line 19:
@@ -28,8 +28,8 @@ File float_div.mlw:
2828
Warning: Error while checking function definition type match_mode: Function arity mismatch when interpreting
2929
(Function ()
3030
(Ssimple (Isymbol A1))
31-
(Var (Qannotident (Isymbol (Sprover @a31)) (Ssimple (Isymbol A1)))))
32-
with lsymbol match_mode
31+
(Var (Qannotident (Isymbol (Sprover @a33)) (Ssimple (Isymbol A1)))))
32+
with lsymbol match_mode1
3333
Warning: Error while interpreting tqtisFinite: No variable in bound_vars matching qualified identifier (Qident (Isymbol t1))
3434

3535
<check_ce:categorization>Categorizations of models:
@@ -43,7 +43,7 @@ t'real x = (1.0 /' 4.0) as an argument)
4343
t'real x = (1.0 /' 4.0) as an argument)
4444
File "bench/check-ce/float_div.mlw", line 40, characters 11-25:
4545
Sub-goal Assertion of goal f'vc.
46-
Prover result is: Unknown (unknown) (245 steps).
46+
Prover result is: Unknown (unknown) (255 steps).
4747
The following counterexample model could not be verified
4848
(both RAC fatal rac error: cannot evaluate builtin mul because cannot interpret term epsilon x:t.
4949
t'real x = (1.0 /' 4.0) as an argument):
@@ -90,23 +90,29 @@ File ieee_float.mlw:
9090
t
9191
->
9292
t = (fun _arg_06 _arg_16 -> {t'real => Apply(infix /, 1.0 4.0)})
93-
Line 194:
93+
Line 161:
94+
plus_infinity : t = {t'real => Apply(infix /, 1.0 4.0)}
95+
Line 164:
96+
minus_infinity : t = {t'real => Apply(infix /, 1.0 4.0)}
97+
Line 167:
98+
not_a_number : t = {t'real => Apply(infix /, 1.0 4.0)}
99+
Line 210:
94100
of_int :
95101
mode
96102
->
97103
int
98104
->
99105
t = (fun _arg_05 _arg_15 -> {t'real => Apply(infix /, 1.0 4.0)})
100-
Line 280:
106+
Line 296:
101107
from_real :
102108
mode
103109
->
104110
real
105111
->
106112
t = (fun _arg_04 _arg_14 -> {t'real => Apply(infix /, 1.0 4.0)})
107-
Line 678:
113+
Line 694:
108114
is_int : t -> bool = [|_ => true|]
109-
Line 934:
115+
Line 950:
110116
zeroF : t = {t'real => Apply(infix /, 1.0 4.0)}
111117
File float_div.mlw:
112118
Line 35:

bench/check-ce/oracles/float_div_Alt-Ergo,2.6.2_WP.oracle

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Warning: Error while checking function definition type match_mode: Function arity mismatch when interpreting
22
(Function ()
33
(Ssimple (Isymbol A1))
4-
(Var (Qannotident (Isymbol (Sprover @a31)) (Ssimple (Isymbol A1)))))
4+
(Var (Qannotident (Isymbol (Sprover @a33)) (Ssimple (Isymbol A1)))))
55
with lsymbol match_mode
66
Warning: Error while interpreting tqtisFinite: No variable in bound_vars matching qualified identifier (Qident (Isymbol t1))
77

@@ -14,11 +14,11 @@ Warning: Error while interpreting tqtisFinite: No variable in bound_vars matchin
1414
- Abstract RAC: NORMAL
1515
File "bench/check-ce/float_div.mlw", line 24, characters 11-25:
1616
Sub-goal Assertion of goal f'vc.
17-
Prover result is: Unknown (unknown) (245 steps).
17+
Prover result is: Unknown (unknown) (255 steps).
1818
The following counterexample model could not be verified
1919
(both RAC terminated because Precondition of `f` cannot be evaluated):
2020
File ieee_float.mlw:
21-
Line 934:
21+
Line 950:
2222
zeroF : = <UNDEFINED>
2323
File float_div.mlw:
2424
Line 19:
@@ -28,8 +28,8 @@ File float_div.mlw:
2828
Warning: Error while checking function definition type match_mode: Function arity mismatch when interpreting
2929
(Function ()
3030
(Ssimple (Isymbol A1))
31-
(Var (Qannotident (Isymbol (Sprover @a31)) (Ssimple (Isymbol A1)))))
32-
with lsymbol match_mode
31+
(Var (Qannotident (Isymbol (Sprover @a33)) (Ssimple (Isymbol A1)))))
32+
with lsymbol match_mode1
3333
Warning: Error while interpreting tqtisFinite: No variable in bound_vars matching qualified identifier (Qident (Isymbol t1))
3434

3535
<check_ce:categorization>Categorizations of models:
@@ -43,7 +43,7 @@ t'real x = (1.0 /' 4.0) as an argument)
4343
t'real x = (1.0 /' 4.0) as an argument)
4444
File "bench/check-ce/float_div.mlw", line 40, characters 11-25:
4545
Sub-goal Assertion of goal f'vc.
46-
Prover result is: Unknown (unknown) (245 steps).
46+
Prover result is: Unknown (unknown) (255 steps).
4747
The following counterexample model could not be verified
4848
(both RAC fatal rac error: cannot evaluate builtin mul because cannot interpret term epsilon x:t.
4949
t'real x = (1.0 /' 4.0) as an argument):
@@ -90,23 +90,29 @@ File ieee_float.mlw:
9090
t
9191
->
9292
t = (fun _arg_06 _arg_16 -> {t'real => Apply(infix /, 1.0 4.0)})
93-
Line 194:
93+
Line 161:
94+
plus_infinity : t = {t'real => Apply(infix /, 1.0 4.0)}
95+
Line 164:
96+
minus_infinity : t = {t'real => Apply(infix /, 1.0 4.0)}
97+
Line 167:
98+
not_a_number : t = {t'real => Apply(infix /, 1.0 4.0)}
99+
Line 210:
94100
of_int :
95101
mode
96102
->
97103
int
98104
->
99105
t = (fun _arg_05 _arg_15 -> {t'real => Apply(infix /, 1.0 4.0)})
100-
Line 280:
106+
Line 296:
101107
from_real :
102108
mode
103109
->
104110
real
105111
->
106112
t = (fun _arg_04 _arg_14 -> {t'real => Apply(infix /, 1.0 4.0)})
107-
Line 678:
113+
Line 694:
108114
is_int : t -> bool = [|_ => true|]
109-
Line 934:
115+
Line 950:
110116
zeroF : t = {t'real => Apply(infix /, 1.0 4.0)}
111117
File float_div.mlw:
112118
Line 35:

0 commit comments

Comments
 (0)