Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
why3
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
121
Issues
121
List
Boards
Labels
Service Desk
Milestones
Merge Requests
17
Merge Requests
17
Operations
Operations
Incidents
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Why3
why3
Commits
bae17b76
Commit
bae17b76
authored
Oct 10, 2012
by
MARCHE Claude
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
new option -q for replayer, prints only warnings
allows to show the warnings in the nightly bench
parent
efec0bde
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
37 additions
and
15 deletions
+37
-15
CHANGES
CHANGES
+2
-0
ROADMAP
ROADMAP
+11
-1
doc/manpages.tex
doc/manpages.tex
+1
-0
examples/hoare_logic/blocking_semantics5.mlw
examples/hoare_logic/blocking_semantics5.mlw
+1
-1
examples/hoare_logic/blocking_semantics5/why3session.xml
examples/hoare_logic/blocking_semantics5/why3session.xml
+1
-1
examples/regtests.sh
examples/regtests.sh
+2
-2
src/ide/replay.ml
src/ide/replay.ml
+14
-9
src/session/session_scheduler.ml
src/session/session_scheduler.ml
+4
-1
src/session/session_scheduler.mli
src/session/session_scheduler.mli
+1
-0
No files found.
CHANGES
View file @
bae17b76
* marks an incompatible change
* marks an incompatible change
o new warning: form exists x, P -> Q
o [replayer] new option -q
o [Provers] support for Coq 8.4
o [Provers] support for Coq 8.4
o New scheme for Coq realizations, using type classes
o New scheme for Coq realizations, using type classes
...
...
ROADMAP
View file @
bae17b76
...
@@ -132,14 +132,20 @@ scheduled on Sep 2012
...
@@ -132,14 +132,20 @@ scheduled on Sep 2012
New features:
New features:
o new API for programs
o new API for programs
o type invariants ?
o type invariants
o transformations for induction
o Support for Coq 8.4
o Support for Coq 8.4
o dropped support for Coq 8.2
o dropped support for Coq 8.2
o new scheme for Coq realizations using type classes
o new scheme for Coq realizations using type classes
o Support for PVS 6.0, including realizations
o Support for PVS 6.0, including realizations
o support for iProver and Zenon
o support for iProver and Zenon
o a warning is emitted for unused bound logic variables in
o a warning is emitted for unused bound logic variables in
"forall", "exists" and "let"
"forall", "exists" and "let"
o new warning: formulas of the form "exists x, P -> Q"
o [replayer] new option -q
Bug fixes:
Bug fixes:
...
@@ -190,6 +196,10 @@ Bug fixes:
...
@@ -190,6 +196,10 @@ Bug fixes:
== TODOs ==
== TODOs ==
* faire le menage dans les transformations d'induction : _int _ty
_ty_lex, et DOCUMENTER
* Sortie PVS
* Sortie PVS
** avec mecanisme de realization
** avec mecanisme de realization
...
...
doc/manpages.tex
View file @
bae17b76
...
@@ -528,6 +528,7 @@ option \verb|-force| described below.
...
@@ -528,6 +528,7 @@ option \verb|-force| described below.
\item
The exit code is 0 if no difference was detected, 1 if there
\item
The exit code is 0 if no difference was detected, 1 if there
was. Other exit codes mean some failure in running the replay.
was. Other exit codes mean some failure in running the replay.
\item
Option
\verb
|
-s
|
suppresses the output of the final tree view.
\item
Option
\verb
|
-s
|
suppresses the output of the final tree view.
\item
Option
\verb
|
-q
|
runs quietly (no progress info)
\item
Option
\texttt
{
-I
\textsl
{
<path>
}}
adds
\texttt
{
\textsl
{
<path>
}}
to the loadpath.
\item
Option
\texttt
{
-I
\textsl
{
<path>
}}
adds
\texttt
{
\textsl
{
<path>
}}
to the loadpath.
\item
Option
\verb
|
-force
|
enforces saving the session, if all proof
\item
Option
\verb
|
-force
|
enforces saving the session, if all proof
attempts replayed correctly, even if some goals are not proved.
attempts replayed correctly, even if some goals are not proved.
...
...
examples/hoare_logic/blocking_semantics5.mlw
View file @
bae17b76
...
@@ -711,7 +711,7 @@ function wp (s:stmt) (q:fmla) : fmla =
...
@@ -711,7 +711,7 @@ function wp (s:stmt) (q:fmla) : fmla =
(** {3 main soundness result} *)
(** {3 main soundness result} *)
lemma wp_soundness:
lemma wp_soundness:
forall n
:int, sigma sigma':env, pi pi':stack, s s':stmt,
forall n:int, sigma sigma':env, pi pi':stack, s s':stmt,
sigmat: type_env, pit: type_stack, q:fmla.
sigmat: type_env, pit: type_stack, q:fmla.
compatible_env sigma sigmat pi pit ->
compatible_env sigma sigmat pi pit ->
type_stmt sigmat pit s ->
type_stmt sigmat pit s ->
...
...
examples/hoare_logic/blocking_semantics5/why3session.xml
View file @
bae17b76
...
@@ -2734,7 +2734,7 @@
...
@@ -2734,7 +2734,7 @@
edited=
"blocking_semantics5_WP_wp_soundness_1.v"
edited=
"blocking_semantics5_WP_wp_soundness_1.v"
obsolete=
"false"
obsolete=
"false"
archived=
"false"
>
archived=
"false"
>
<result
status=
"valid"
time=
"0.
83
"
/>
<result
status=
"valid"
time=
"0.
70
"
/>
</proof>
</proof>
</goal>
</goal>
</theory>
</theory>
...
...
examples/regtests.sh
View file @
bae17b76
...
@@ -32,7 +32,7 @@ run_dir () {
...
@@ -32,7 +32,7 @@ run_dir () {
for
f
in
`
ls
$1
/
*
/why3session.xml
`
;
do
for
f
in
`
ls
$1
/
*
/why3session.xml
`
;
do
d
=
`
dirname
$f
`
d
=
`
dirname
$f
`
echo
-n
"Replaying
$d
... "
echo
-n
"Replaying
$d
... "
../bin/why3replayer.opt
$REPLAYOPT
$2
$d
2>
$TMPERR
>
$TMP
../bin/why3replayer.opt
-q
$REPLAYOPT
$2
$d
2>
$TMPERR
>
$TMP
ret
=
$?
ret
=
$?
if
test
"
$ret
"
!=
"0"
;
then
if
test
"
$ret
"
!=
"0"
;
then
echo
-n
"FAILED (ret code=
$ret
):"
echo
-n
"FAILED (ret code=
$ret
):"
...
@@ -46,7 +46,7 @@ run_dir () {
...
@@ -46,7 +46,7 @@ run_dir () {
res
=
1
res
=
1
else
else
echo
-n
"OK"
echo
-n
"OK"
cat
$TMP
cat
$TMP
$TMPERR
success
=
`
expr
$success
+ 1
`
success
=
`
expr
$success
+ 1
`
fi
fi
total
=
`
expr
$total
+ 1
`
total
=
`
expr
$total
+ 1
`
...
...
src/ide/replay.ml
View file @
bae17b76
...
@@ -30,6 +30,7 @@ let opt_stats = ref true
...
@@ -30,6 +30,7 @@ let opt_stats = ref true
let
opt_force
=
ref
false
let
opt_force
=
ref
false
let
opt_obsolete_only
=
ref
false
let
opt_obsolete_only
=
ref
false
let
opt_bench
=
ref
false
let
opt_bench
=
ref
false
let
opt_verbose
=
ref
true
(** {2 Smoke detector} *)
(** {2 Smoke detector} *)
...
@@ -83,6 +84,9 @@ let spec = Arg.align [
...
@@ -83,6 +84,9 @@ let spec = Arg.align [
(
"-s"
,
(
"-s"
,
Arg
.
Clear
opt_stats
,
Arg
.
Clear
opt_stats
,
" do not print statistics"
)
;
" do not print statistics"
)
;
(
"-q"
,
Arg
.
Clear
opt_verbose
,
" run quietly"
)
;
(
"-v"
,
(
"-v"
,
Arg
.
Set
opt_version
,
Arg
.
Set
opt_version
,
" print version information"
)
;
" print version information"
)
;
...
@@ -301,7 +305,7 @@ let same_result r1 r2 =
...
@@ -301,7 +305,7 @@ let same_result r1 r2 =
let
add_to_check_no_smoke
config
found_obs
env_session
sched
=
let
add_to_check_no_smoke
config
found_obs
env_session
sched
=
let
session
=
env_session
.
S
.
session
in
let
session
=
env_session
.
S
.
session
in
let
callback
report
=
let
callback
report
=
eprintf
"@."
;
if
!
opt_verbose
then
eprintf
"@."
;
let
files
,
n
,
m
=
let
files
,
n
,
m
=
S
.
PHstr
.
fold
file_statistics
S
.
PHstr
.
fold
file_statistics
session
.
S
.
session_files
([]
,
0
,
0
)
session
.
S
.
session_files
([]
,
0
,
0
)
...
@@ -329,12 +333,12 @@ session NOT updated)@." n m
...
@@ -329,12 +333,12 @@ session NOT updated)@." n m
else
else
printf
" %d/%d@."
n
m
;
printf
" %d/%d@."
n
m
;
if
!
opt_stats
&&
n
<
m
then
print_statistics
files
;
if
!
opt_stats
&&
n
<
m
then
print_statistics
files
;
eprintf
"Everything replayed OK.@."
;
if
!
opt_verbose
then
eprintf
"Everything replayed OK.@."
;
if
found_obs
&&
(
n
=
m
||
!
opt_force
)
then
if
found_obs
&&
(
n
=
m
||
!
opt_force
)
then
begin
begin
eprintf
"Saving session...@?"
;
if
!
opt_verbose
then
eprintf
"Saving session...@?"
;
S
.
save_session
config
session
;
S
.
save_session
config
session
;
eprintf
" done@."
if
!
opt_verbose
then
eprintf
" done@."
end
;
end
;
exit
0
exit
0
end
end
...
@@ -351,7 +355,7 @@ session NOT updated)@." n m
...
@@ -351,7 +355,7 @@ session NOT updated)@." n m
let
add_to_check_smoke
env_session
sched
=
let
add_to_check_smoke
env_session
sched
=
let
callback
report
=
let
callback
report
=
eprintf
"@."
;
if
!
opt_verbose
then
eprintf
"@."
;
let
report
=
let
report
=
List
.
filter
List
.
filter
(
function
(
function
...
@@ -362,7 +366,7 @@ let add_to_check_smoke env_session sched =
...
@@ -362,7 +366,7 @@ let add_to_check_smoke env_session sched =
|
_
->
false
)
report
|
_
->
false
)
report
in
in
if
report
=
[]
then
begin
if
report
=
[]
then
begin
eprintf
"No smoke detected.@."
;
if
!
opt_verbose
then
eprintf
"No smoke detected.@."
;
exit
0
exit
0
end
end
else
begin
else
begin
...
@@ -417,15 +421,16 @@ let run_as_bench env_session =
...
@@ -417,15 +421,16 @@ let run_as_bench env_session =
let
()
=
let
()
=
try
try
eprintf
"Opening session...@?"
;
if
!
opt_verbose
then
eprintf
"Opening session...@?"
;
O
.
verbose
:=
!
opt_verbose
;
let
env_session
,
found_obs
=
let
env_session
,
found_obs
=
let
session
=
S
.
read_session
project_dir
in
let
session
=
S
.
read_session
project_dir
in
M
.
update_session
~
allow_obsolete
:
true
session
env
config
M
.
update_session
~
allow_obsolete
:
true
session
env
config
in
in
eprintf
" done.@."
;
if
!
opt_verbose
then
eprintf
" done.@."
;
if
!
opt_obsolete_only
&&
not
found_obs
then
if
!
opt_obsolete_only
&&
not
found_obs
then
begin
begin
eprintf
"Session is not obsolete, hence no replayed@."
;
eprintf
"Session is not obsolete, hence no
t
replayed@."
;
printf
"@."
;
printf
"@."
;
exit
0
exit
0
end
;
end
;
...
...
src/session/session_scheduler.ml
View file @
bae17b76
...
@@ -992,6 +992,8 @@ module Base_scheduler (X : sig end) =
...
@@ -992,6 +992,8 @@ module Base_scheduler (X : sig end) =
let
idle_handler
=
ref
None
let
idle_handler
=
ref
None
let
timeout_handler
=
ref
None
let
timeout_handler
=
ref
None
let
verbose
=
ref
true
let
idle
f
=
let
idle
f
=
match
!
idle_handler
with
match
!
idle_handler
with
|
None
->
idle_handler
:=
Some
f
;
|
None
->
idle_handler
:=
Some
f
;
...
@@ -1003,7 +1005,8 @@ module Base_scheduler (X : sig end) =
...
@@ -1003,7 +1005,8 @@ module Base_scheduler (X : sig end) =
|
Some
_
->
failwith
"Replay.timeout: already one handler installed"
|
Some
_
->
failwith
"Replay.timeout: already one handler installed"
let
notify_timer_state
w
s
r
=
let
notify_timer_state
w
s
r
=
Printf
.
eprintf
"Progress: %d/%d/%d
\r
%!"
w
s
r
if
!
verbose
then
Printf
.
eprintf
"Progress: %d/%d/%d
\r
%!"
w
s
r
let
main_loop
()
=
let
main_loop
()
=
let
last
=
ref
(
Unix
.
gettimeofday
()
)
in
let
last
=
ref
(
Unix
.
gettimeofday
()
)
in
...
...
src/session/session_scheduler.mli
View file @
bae17b76
...
@@ -265,6 +265,7 @@ module Base_scheduler (X : sig end) : sig
...
@@ -265,6 +265,7 @@ module Base_scheduler (X : sig end) : sig
val
timeout
:
ms
:
int
->
(
unit
->
bool
)
->
unit
val
timeout
:
ms
:
int
->
(
unit
->
bool
)
->
unit
val
idle
:
(
unit
->
bool
)
->
unit
val
idle
:
(
unit
->
bool
)
->
unit
val
verbose
:
bool
ref
val
notify_timer_state
:
int
->
int
->
int
->
unit
val
notify_timer_state
:
int
->
int
->
int
->
unit
(** These functions have the properties required by OBSERVER *)
(** These functions have the properties required by OBSERVER *)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment