Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VST on Iris #755

Draft
wants to merge 553 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
553 commits
Select commit Hold shift + click to select a range
d3e0cc6
fixed atomic triples with exists in postcondition
mansky1 Mar 13, 2024
34acd13
ported verif_incr_atomic
mansky1 Mar 14, 2024
cea38c6
Floyd performance improvements
mansky1 Mar 17, 2024
1bc1967
Merge branch 'master' into vst_on_iris
mansky1 Mar 18, 2024
2e89f43
fixes after merging master
mansky1 Mar 18, 2024
a5f1640
fixes after merging master
mansky1 Mar 18, 2024
e3451f3
more small fixes
mansky1 Mar 18, 2024
e1de0a2
update ora commit
mansky1 Mar 18, 2024
3db856d
fixing examples
mansky1 Mar 18, 2024
5dc8fd7
Update coq-action.yml
mansky1 Mar 19, 2024
3eb4c5e
another attempt at setting up the CI
mansky1 Mar 19, 2024
66fa504
Update coq-action.yml
mansky1 Mar 19, 2024
bb1a813
Update Makefile to use ora submodule
mansky1 Mar 19, 2024
c6c8c22
make depend for ora
mansky1 Mar 19, 2024
5f3bace
Update Makefile
mansky1 Mar 19, 2024
1f2f49f
Update Makefile
mansky1 Mar 19, 2024
6b9894c
Merge branch 'master' into vst_on_iris
mansky1 Mar 20, 2024
ada371a
bump Iris version and unpin in CI
mansky1 Mar 21, 2024
7893226
fix examples, pin Iris version
mansky1 Mar 21, 2024
3accf99
fixes for Coq 8.18 and 8.19
mansky1 Mar 21, 2024
50cfd7f
more typecheck_expr simplification fixes
mansky1 Mar 21, 2024
7920a36
more simpl fixes
mansky1 Mar 21, 2024
c2c60e3
missed a simpl fix
mansky1 Mar 21, 2024
5866064
simpl fixes in floyd
mansky1 Mar 21, 2024
ff85bfd
Update canon.v
mansky1 Mar 21, 2024
c474323
32-bit fixes
mansky1 Mar 21, 2024
30d2510
bump paco
mansky1 Mar 21, 2024
ed06891
progress on 32-bit examples
mansky1 Mar 22, 2024
726d998
delete crash files
mansky1 Mar 22, 2024
6e2e6d2
switch CI from 8.18 to 8.18.1 to avoid anomaly
mansky1 Mar 22, 2024
bac6592
Revert "switch CI from 8.18 to 8.18.1 to avoid anomaly"
mansky1 Mar 22, 2024
e7dbee9
progress on 32-bit examples
mansky1 Mar 22, 2024
2621990
Merge branch 'vst_on_iris' of https://github.com/PrincetonUniversity/…
mansky1 Mar 22, 2024
19fab10
more progress on 32-bit examples
mansky1 Mar 24, 2024
8bb6538
most simple 32-bit examples work
mansky1 Mar 25, 2024
461972b
basic tests passing?
mansky1 Mar 26, 2024
31a1dee
ported sha proofs
mansky1 Mar 27, 2024
74255e1
re-generate 64-bit examples from 32-bit
mansky1 Mar 28, 2024
a13f1dd
a few small performance tweaks
mansky1 Mar 28, 2024
1d784bf
Merge branch 'vst_on_iris' of https://github.com/PrincetonUniversity/…
mansky1 Mar 28, 2024
b2f9b5c
small example fix
mansky1 Mar 28, 2024
bb673c3
testing performance impact of Set Keyed Unification
mansky1 Mar 30, 2024
19403fa
never mind, it breaks things
mansky1 Mar 30, 2024
0b58f26
removing irrelevant files
mansky1 Mar 30, 2024
2cbe562
more performance improvements
mansky1 Mar 31, 2024
61a65be
fix atomics
mansky1 Mar 31, 2024
eeb1892
proved some pred equivalences as equalities; should help performance
mansky1 Apr 2, 2024
646d982
patches for 64-bit 8.17
mansky1 Apr 3, 2024
f09b269
one more rewrite cleanup
mansky1 Apr 3, 2024
9b9f40f
Merge branch 'vst_on_iris' of https://github.com/PrincetonUniversity/…
mansky1 Apr 3, 2024
a66d8d0
mailbox fixes
mansky1 Apr 3, 2024
945aea5
Iris makes auto slow, so don't use it in normalize
mansky1 Apr 4, 2024
95b513c
Merge branch 'vst_on_iris' of https://github.com/PrincetonUniversity/…
mansky1 Apr 4, 2024
3b9da79
re-generate 64-bit proofs from 32-bit
mansky1 Apr 4, 2024
538d482
a couple of 64-bit fixes
mansky1 Apr 4, 2024
01b9cc5
VSU examples
mansky1 Apr 5, 2024
eb19d0e
Merge branch 'vst_on_iris' of https://github.com/PrincetonUniversity/…
mansky1 Apr 5, 2024
1b67102
add compat to bundled dependencies
mansky1 Apr 5, 2024
9b36e83
remove 8.18 buggy tests from CI
mansky1 Apr 5, 2024
522c14c
use eq in array split lemmas
mansky1 Apr 5, 2024
3b4bb6c
fix a couple of examples that use split lemmas
mansky1 Apr 5, 2024
d132e3b
reflect fixes in 64-bit
mansky1 Apr 5, 2024
398036f
let invariant mask depend on WITH clause
mansky1 Apr 7, 2024
c6a549f
regenerate 64-bit proofs, bump ora
mansky1 Apr 7, 2024
6edf779
mailbox fix
mansky1 Apr 7, 2024
6cc84e2
atomic fixes, bumping ora
mansky1 Apr 8, 2024
bb7cefd
switch general_locks to simpler frac_auth
mansky1 Apr 8, 2024
3770977
more atomic fixes
mansky1 Apr 8, 2024
e96b8d0
extended example fixes
mansky1 Apr 9, 2024
ae4c338
added porting guide
mansky1 Apr 9, 2024
b70a923
more extended examples and compat fixes
mansky1 Apr 9, 2024
40847f8
more progress on make all
mansky1 Apr 9, 2024
e974783
Merge branch 'master' into vst_on_iris
mansky1 Apr 9, 2024
a9b1519
fix after merge
mansky1 Apr 9, 2024
8b5db08
Merge branch 'master' into vst_on_iris
mansky1 Apr 9, 2024
f3fd4ce
fix after merge
mansky1 Apr 9, 2024
b851fd5
fixing new simpl_ret_assert
mansky1 Apr 9, 2024
dfdefb2
more compat and example fixes
mansky1 Apr 9, 2024
7fde05f
make all passes
mansky1 Apr 9, 2024
13fe27e
mailbox fixes
mansky1 Apr 10, 2024
43b2fc8
fixed naming issue with singleton WITH clause
mansky1 Apr 10, 2024
16ac3d2
regenerate 64-bit once more
mansky1 Apr 10, 2024
5176f64
remove renames in mailbox
mansky1 Apr 10, 2024
9d5ce55
one last rename fix
mansky1 Apr 10, 2024
d4216b6
remove outdated .opam files
mansky1 Apr 10, 2024
1276d31
Update verif_incr_gen.v
mansky1 Apr 10, 2024
2062285
fixes for newer Iris version
mansky1 Apr 11, 2024
63232c9
moving to Iris 4.2
mansky1 Apr 12, 2024
12fc7d5
fixing test2
mansky1 Apr 12, 2024
5e7d92b
fixing 64-bit
mansky1 Apr 12, 2024
b8aee02
Merge branch 'vst_on_iris' of https://github.com/PrincetonUniversity/…
mansky1 Apr 12, 2024
69d5196
one more 64-bit fix
mansky1 Apr 12, 2024
12cb5f5
Merge branch 'vst_on_iris' of https://github.com/PrincetonUniversity/…
mansky1 Apr 12, 2024
87cff9d
fix CompCert default, install ORA
mansky1 Apr 15, 2024
5dd6c03
VSCode is the enemy of Makefiles
mansky1 Apr 15, 2024
8a5f41a
more Makefile fixes for ora
mansky1 Apr 15, 2024
525f575
regularize make rules for ora
mansky1 Apr 15, 2024
39c2ea8
compat.v needs to be listed in FLOYD_FILES, otherwise compat.vo does …
andrew-appel Apr 17, 2024
f24d99c
Adjust compatibility mode to support oracle polymorphism; see PORTING…
andrew-appel Apr 18, 2024
1481314
VSTlib 'math' and 'malloc' libraries work in VST 3.0; but not atomics…
andrew-appel Apr 19, 2024
e387ff5
improvements to compatibility mode, and got progs64/VSUpile to work
andrew-appel Apr 19, 2024
8b60d72
Lots of progress on VSTlib math, threads, locks, etc. in VST 3.0
andrew-appel Apr 19, 2024
21d46b5
Got the rest of VSTlib to build in VST 3.0
andrew-appel Apr 22, 2024
a2afd43
fixes for atomics and ghost state; resolves #769, resolves #770
mansky1 Apr 22, 2024
36d993e
Fix bug in forward_loop
andrew-appel May 7, 2024
4cd0f6c
Address issue #773 by removing the problematic line in normalize1
andrew-appel May 7, 2024
ae74377
added share_joins lemmas
mansky1 May 8, 2024
4642481
Added some lemmas about func_ptr (e.g., persistence, split)
andrew-appel May 8, 2024
c4a2d30
Merge with master, mostly by commenting out VSU_DrySafe stuff that ne…
andrew-appel May 8, 2024
137b505
Clean up func_ptr lemmas by using existing lemmas from typeclasses
andrew-appel May 8, 2024
605c90e
Judiciously suppress some warning messages
andrew-appel May 9, 2024
60b68b4
tweak typeclasses for assert and funspec
mansky1 May 11, 2024
0bda31a
Merge branch 'vst_on_iris' of https://github.com/PrincetonUniversity/…
mansky1 May 11, 2024
d44b248
fix implicits in examples
mansky1 May 11, 2024
0acc02a
fix DrySafe proofs
mansky1 May 12, 2024
4e34ca8
Update ora submodule; carefully suppress warnings; fix a couple of br…
andrew-appel May 13, 2024
a02cb90
each closed_lemma takes only the implicit arguments it really needs, …
andrew-appel May 14, 2024
c3df688
Remove coq 8.18 from CI, no need to support that in this branch
andrew-appel May 14, 2024
ab5c00b
a bit more progress on lithium instance
mansky1 May 19, 2024
7bfc4ac
progress on int ops
mansky1 May 21, 2024
05acc45
proved typing rules for int ops
mansky1 May 22, 2024
bb6a413
Update ivst.md
mansky1 Jun 5, 2024
fc0c7d9
Create overview.md
mansky1 Jun 18, 2024
7182462
intial try to port RefinedC's locked.
ducthann Jun 18, 2024
23858fe
WIP in porting RefinedC's locked.
ducthann Jun 18, 2024
ba74476
almost done porting RefinedC's locked.
ducthann Jun 19, 2024
53c27d2
Finished all except the one lemma for locked
ducthann Jun 19, 2024
2926dc4
Finished porting locked from RefinedC
ducthann Jun 20, 2024
2ec7032
Finished all except , since opetion.v has not ported.
ducthann Jun 20, 2024
769a670
Finished all except , since opetion.v has not ported
ducthann Jun 20, 2024
4fe3a52
Finished constrained.v and exist.v expect Optional stuff, since optio…
ducthann Jun 20, 2024
ba3bffe
ported optional, tweaked basic definitions
mansky1 Jun 20, 2024
43b2ffa
Commented read_optionalO_case lemma
ducthann Jun 20, 2024
491aca0
resolved Optional stuff
ducthann Jun 20, 2024
59bfac8
updated singleton
mansky1 Jun 21, 2024
c340f6a
owning a val is not necessarily affine
mansky1 Jun 21, 2024
8ebe9a6
WIP more on constrained.v
ducthann Jun 21, 2024
221345c
finished constrained with add Affine for P
ducthann Jun 21, 2024
ebccd3e
halfway through own
mansky1 Jun 21, 2024
37f7728
initial work for atomic_bool
ducthann Jun 23, 2024
4e6284a
finished first pass on own.v
mansky1 Jun 24, 2024
f7bdc16
first pass on bytes.v
mansky1 Jun 24, 2024
f24022b
first stab at typed_stmt
mansky1 Jun 24, 2024
1b6ef4a
finished fixpoint.v
ducthann Jun 25, 2024
5d5d47e
the farthest can be reached in porting atomic_bool.v
ducthann Jun 25, 2024
06a6843
finished immovable.v
ducthann Jun 27, 2024
8ffd08a
started on function type
mansky1 Jun 28, 2024
e5b7bfc
initial working with wand
ducthann Jul 7, 2024
d2413fd
Merge branch 'vst_on_iris' of https://github.com/PrincetonUniversity/…
ducthann Jul 7, 2024
64b752b
fix bi_wand_iff notation
ducthann Jul 8, 2024
9461e2a
fix bi_wand_iff notation breakage
ducthann Jul 8, 2024
5c786d3
first commit for fixing some breakage
ducthann Jul 8, 2024
8e607ea
attempting a simplified WP in the Iris style
mansky1 Jul 8, 2024
579cd81
more wp
mansky1 Jul 9, 2024
96bf92b
add simpl_classes.v
mansky1 Jul 12, 2024
ca43987
done porting tyfold
ducthann Jul 13, 2024
220f11b
Merge branch 'vst_on_iris' of https://github.com/PrincetonUniversity/…
ducthann Jul 13, 2024
0edad10
finished porting tyfold.v
ducthann Jul 13, 2024
ccedfb5
more progress on wand
ducthann Jul 18, 2024
eb835e5
Create reuse.md
mansky1 Jul 18, 2024
0f718da
Update reuse.md
mansky1 Jul 18, 2024
5eabdd9
finished wand
ducthann Jul 23, 2024
fd46ac2
Merge branch 'vst_on_iris' of https://github.com/PrincetonUniversity/…
ducthann Jul 23, 2024
ff7d43e
more resolved lemmas for function.v
ducthann Jul 24, 2024
b3efbbb
finished a part of inline function
ducthann Jul 24, 2024
6d5b7e6
finished porting globals.v
ducthann Jul 26, 2024
bc1c404
first attempt at stating adequacy
mansky1 Jul 29, 2024
a534ec7
type_assgin mostly works
rinshankaihou Jul 25, 2024
cd08915
wip interpreter.v
rinshankaihou Jul 25, 2024
b57f890
interpreter.v works
Jul 29, 2024
8de9d0a
add typing/automation.v (wip)
Jul 29, 2024
735dcd8
port proof_state.v for automation.v; still need to fix location_info
Jul 29, 2024
01750b7
make programs.v compile
Jul 29, 2024
08605e2
refactor lithium to have similar structure to RefinedC repo
Jul 30, 2024
c94ab1d
Merge pull request #784 from rinshankaihou/rvst
mansky1 Jul 30, 2024
98fb36a
port everything for lithium
Jul 31, 2024
bb8c0a5
Merge pull request #785 from rinshankaihou/rvst
mansky1 Jul 31, 2024
9ac38c9
fix breakage to run HybridMachine
ducthann Aug 3, 2024
3870a70
fix errors to run HybridMachine.v
ducthann Aug 3, 2024
56edae9
fix errors to run HybridMachine.v
ducthann Aug 3, 2024
933ef95
fix some obsolete errors to run HybridMachine.v
ducthann Aug 3, 2024
7aacc96
resolved Admitted
ducthann Aug 6, 2024
d1ace27
Merge branch 'OpenMP' into vst_on_iris
ducthann Aug 6, 2024
3301c41
wrong merging, reverted it
ducthann Aug 6, 2024
5aa275a
Remove .DS_Store
ducthann Aug 8, 2024
4ea8312
fix breakage
ducthann Aug 8, 2024
e677e7d
fix singleton
mansky1 Aug 8, 2024
b9dc0bb
barebone liRStep works
Aug 6, 2024
6220fb0
add typing rule for casting
Aug 6, 2024
7e4c3e7
progress on automating typed_stmt example
Aug 12, 2024
56a53e4
Merge pull request #788 from rinshankaihou/rVST
mansky1 Aug 12, 2024
7657e4d
some progress on small-footprint function rules
mansky1 Aug 12, 2024
2f9da01
maybe-working sketch of adequacy for typed_function
mansky1 Aug 15, 2024
eeaf86a
trying to state typing rule for call
mansky1 Aug 19, 2024
2349cc8
mostly-correct function type and call rule
mansky1 Aug 20, 2024
afe7428
made type_write_simple
Aug 21, 2024
9324795
add type_set example
Aug 21, 2024
0bc541b
Merge pull request #790 from rinshankaihou/rVST
mansky1 Aug 21, 2024
a642284
tweaking type_set
mansky1 Aug 21, 2024
4721408
add lithium support for goals like \box P \vdash <affine> P \star Q
Aug 22, 2024
e176949
updating concurrent soundness infrastructure
mansky1 Aug 26, 2024
e3d3ff2
Merge pull request #791 from rinshankaihou/rVST
mansky1 Aug 29, 2024
2192e7e
outlined function call typing proof
mansky1 Sep 16, 2024
d5b9a82
add support for normalizing embed
Sep 9, 2024
ffdc2f3
merge
rinshankaihou Sep 9, 2024
917bc03
clean up code
rinshankaihou Sep 9, 2024
982ccfd
add typing rule for Evar
rinshankaihou Sep 11, 2024
36ccb74
fix type_write
rinshankaihou Sep 13, 2024
6c788fa
merge
Sep 18, 2024
19d07bb
fix Sassgin example statement
Sep 18, 2024
ec1ef9f
small fix
Sep 18, 2024
1e26b10
tweaking function type
mansky1 Sep 18, 2024
75bb023
Merge pull request #796 from rinshankaihou/rVST
mansky1 Sep 18, 2024
aeb2bbc
merge
mansky1 Sep 18, 2024
d34a049
fixed temps and lvars in typed_function
mansky1 Sep 23, 2024
9a3910f
temps don't need to be initialized
mansky1 Sep 25, 2024
e9d6996
easier-to-prove version of typed_function
mansky1 Sep 25, 2024
24c4669
fix buggy programs.v commit
mansky1 Sep 25, 2024
659e055
remove redundant stackframe_of
mansky1 Sep 25, 2024
d4d7935
adding malloc_token share axioms
mansky1 Oct 1, 2024
8d5e471
fix Sassign example
Sep 18, 2024
4e040bf
add function example
Sep 23, 2024
c9eab9c
stuck on wp_return_some
Sep 23, 2024
81bb0e5
progress on funciton
rinshankaihou Sep 25, 2024
edbcf8f
update example proof
rinshankaihou Sep 25, 2024
cd59e79
fix automation
rinshankaihou Sep 26, 2024
0533fa0
add frontend folder
rinshankaihou Sep 26, 2024
798a0fc
fix automation
rinshankaihou Oct 1, 2024
e622053
add frontend
rinshankaihou Oct 1, 2024
5f9bcaf
add prototype of frontend
rinshankaihou Oct 1, 2024
852c334
add clean command for refinedVST frontend examples in Makefile
rinshankaihou Oct 1, 2024
3c1d6eb
Merge pull request #797 from rinshankaihou/rVST
mansky1 Oct 2, 2024
caf5845
finished jsafe_perm_equiv lemma
ducthann Oct 4, 2024
3ecfd92
progress on core logic
mansky1 Oct 31, 2024
276b25e
actually working definition of guarded?
mansky1 Oct 31, 2024
b276407
core wp works modulo a few side conditions
mansky1 Nov 1, 2024
0992598
finished core wp
mansky1 Nov 1, 2024
6603388
started moving refinedVST to working core wp
mansky1 Nov 5, 2024
6e88ee7
fix type annotations on atomic_spec_post'
mansky1 Nov 19, 2024
61391c0
updated CompCert version
mansky1 Dec 8, 2024
3c10820
ported all 64-bit tests to CompCert 3.15
mansky1 Dec 9, 2024
806ce22
more type annotations for atomic notations
mansky1 Dec 9, 2024
7313518
porting 32-bit examples to CompCert 3.15
mansky1 Dec 9, 2024
8f15b5a
removing ora submodule
mansky1 Jan 15, 2025
6f74a94
removing rc_convertor submodule
mansky1 Jan 15, 2025
6f24708
merge master, make all works on 64bit
mansky1 Jan 16, 2025
f3dc366
Merge branch 'vst_on_iris' of https://github.com/PrincetonUniversity/…
mansky1 Jan 16, 2025
d1f6386
readding ora submodule
mansky1 Jan 16, 2025
ed3f894
make all works for 32-bit
mansky1 Jan 17, 2025
c5deda3
merge lib changes from master
mansky1 Jan 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions .github/workflows/coq-action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ jobs:
opam install -y ${{ matrix.coq_version == 'dev' && 'coq-flocq' || matrix.bit_size == 32 && 'coq-compcert-32.3.13.1' || 'coq-compcert.3.13.1' }}
# Required by test2
opam install -y coq-ext-lib
opam install -y coq-iris.4.2.0
endGroup
# See https://github.com/coq-community/docker-coq-action/tree/v1#permissions
before_script: |
Expand Down Expand Up @@ -112,6 +113,11 @@ jobs:
make_target: test4
- bit_size: 32
make_target: test5
# avoid Coq issue https://github.com/coq/coq/issues/18126
# - coq_version: 8.18
# make_target: test
# - coq_version: 8.18
# make_target: test4

steps:
- name: 'Download archive'
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ compcert/test/
version.v
coqide
*.cache
*.timing
*~
*#
.#*
Expand All @@ -84,6 +85,7 @@ doc/html/
/_CoqProject
.loadpath-export
_CoqProject-export
progs/VSUpile/_CoqProject
wand_demo/vfa/*.ml
wand_demo/vfa/*.mli
wand/vfa/*.ml
Expand All @@ -103,3 +105,5 @@ lib/proof/SC_atomics_extern.v
zlist/.Makefile.coq.d
zlist/Makefile.coq
zlist/Makefile.coq.conf

_build/
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,6 @@
[submodule "fcf"]
path = fcf
url = https://github.com/adampetcher/fcf.git
[submodule "ora"]
path = ora
url = https://github.com/mansky1/ora
103 changes: 55 additions & 48 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,10 @@ endif
# CLIGHTGEN=$(my_local_bin_path)/clightgen

# # User settable variables #
COMPCERT ?= platform
COMPCERT ?= bundled
ZLIST ?= bundled
ARCH ?=
BITSIZE ?=
BITSIZE ?= 64

# # Internal variables #
# Set to true if the bundled CompCert is used
Expand Down Expand Up @@ -268,9 +268,9 @@ endif
# ########## Flags ##########

ifeq ($(ZLIST),platform)
VSTDIRS= msl sepcomp veric floyd $(PROGSDIR) concurrency ccc26x86 atomics
VSTDIRS= shared msl sepcomp veric floyd $(PROGSDIR) concurrency ccc26x86 atomics
else
VSTDIRS= msl sepcomp veric zlist floyd $(PROGSDIR) concurrency ccc26x86 atomics
VSTDIRS= shared msl sepcomp veric zlist floyd $(PROGSDIR) concurrency ccc26x86 atomics
endif
OTHERDIRS= wand_demo sha hmacfcf tweetnacl20140427 hmacdrbg aes mailbox boringssl_fips_20180730
DIRS = $(VSTDIRS) $(OTHERDIRS)
Expand All @@ -281,7 +281,7 @@ COMPCERTDIRS=lib common $(ARCHDIRS) cfrontend export $(BACKEND)

ifeq ($(COMPCERT_EXPLICIT_PATH),true)
COMPCERT_R_FLAGS= $(foreach d, $(COMPCERTDIRS), -R $(COMPCERT_INST_DIR)/$(d) compcert.$(d)) $(FLOCQ)
EXTFLAGS= $(foreach d, $(COMPCERTDIRS), -Q $(COMPCERT_INST_DIR)/$(d) compcert.$(d)) $(FLOCQ)
EXTFLAGS= $(foreach d, $(COMPCERTDIRS), -Q $(COMPCERT_INST_DIR)/$(d) compcert.$(d)) $(FLOCQ) -Q ora/theories iris_ora
else
COMPCERT_R_FLAGS=
EXTFLAGS=
Expand Down Expand Up @@ -325,6 +325,17 @@ ifdef MATHCOMP
EXTFLAGS:=$(EXTFLAGS) -R $(MATHCOMP) mathcomp
endif

# ##### ORA Flags #####

ifneq ($(wildcard ora/theories),)
EXTFLAGS:=$(EXTFLAGS) -Q ora/theories iris_ora
endif

# ##### refinedVST Flags #####
EXTFLAGS:=$(EXTFLAGS) -Q refinedVST/lithium VST.lithium -Q refinedVST/typing VST.typing

EXTFLAGS:=$(EXTFLAGS) $(REFINEDVSTFLAGS)

# ##### Flag summary #####

COQFLAGS=$(foreach d, $(VSTDIRS), $(if $(wildcard $(d)), -Q $(d) VST.$(d))) $(foreach d, $(OTHERDIRS), $(if $(wildcard $(d)), -Q $(d) $(d))) $(EXTFLAGS) $(SHIM) # -Q ../stdpp/theories stdpp -Q ../iris/iris iris -Q ../InteractionTrees/theories ITree -Q ../paco/src Paco -Q ../coq-ext-lib/theories ExtLib -Q ../fcf/src/fcf FCF
Expand Down Expand Up @@ -388,25 +399,21 @@ $(info =================================)
# ########## File Lists ##########

MSL_FILES = \
Axioms.v Extensionality.v base.v eq_dec.v sig_isomorphism.v \
ageable.v sepalg.v psepalg.v age_sepalg.v \
sepalg_generators.v functors.v sepalg_functors.v combiner_sa.v \
cross_split.v join_hom_lemmas.v cjoins.v \
Axioms.v Extensionality.v base.v eq_dec.v \
sepalg.v sepalg_generators.v psepalg.v \
boolean_alg.v tree_shares.v shares.v pshares.v \
knot.v knot_prop.v \
knot_lemmas.v knot_unique.v \
knot_hered.v \
knot_full.v knot_full_variant.v knot_shims.v knot_full_sa.v \
corable.v corable_direct.v \
predicates_hered.v predicates_sl.v subtypes.v subtypes_sl.v \
contractive.v predicates_rec.v \
msl_direct.v msl_standard.v msl_classical.v \
predicates_sa.v \
normalize.v \
env.v corec.v Coqlib2.v sepalg_list.v op_classes.v \
simple_CCC.v seplog.v alg_seplog.v alg_seplog_direct.v log_normalize.v \
ghost.v ghost_seplog.v \
iter_sepcon.v ramification_lemmas.v wand_frame.v wandQ_frame.v #age_to.v
Coqlib2.v sepalg_list.v

ORA_FILES = \
theories/algebra/ora.v theories/algebra/excl.v theories/algebra/osum.v \
theories/algebra/agree.v theories/algebra/gmap.v theories/algebra/functions.v \
theories/algebra/dfrac.v theories/algebra/ext_order.v theories/algebra/view.v \
theories/algebra/auth.v theories/algebra/excl_auth.v theories/algebra/frac_auth.v \
theories/algebra/gmap_view.v theories/logic/oupred.v theories/logic/algebra.v \
theories/logic/iprop.v theories/logic/derived.v theories/logic/own.v \
theories/logic/proofmode.v theories/logic/logic.v theories/logic/wsat.v \
theories/logic/later_credits.v theories/logic/fancy_updates.v theories/logic/invariants.v \
theories/logic/cancelable_invariants.v theories/logic/weakestpre.v theories/logic/ghost_map.v

SEPCOMP_FILES = \
Address.v \
Expand Down Expand Up @@ -501,18 +508,18 @@ LINKING_FILES= \
finfun.v

VERIC_FILES= \
base.v Clight_base.v val_lemmas.v Memory.v shares.v splice.v compspecs.v rmaps.v rmaps_lemmas.v compcert_rmaps.v Cop2.v juicy_base.v type_induction.v composite_compute.v align_mem.v change_compspecs.v \
base.v Clight_base.v val_lemmas.v Memory.v shares.v compspecs.v juicy_base.v type_induction.v composite_compute.v align_mem.v change_compspecs.v \
tycontext.v lift.v expr.v expr2.v environ_lemmas.v \
binop_lemmas.v binop_lemmas2.v binop_lemmas3.v binop_lemmas4.v binop_lemmas5.v binop_lemmas6.v \
expr_lemmas.v expr_lemmas2.v expr_lemmas3.v expr_lemmas4.v \
extend_tc.v \
Clight_lemmas.v Clight_core.v \
slice.v res_predicates.v own.v seplog.v Clight_seplog.v mapsto_memory_block.v Clight_mapsto_memory_block.v assert_lemmas.v Clight_assert_lemmas.v \
juicy_mem.v juicy_mem_lemmas.v local.v juicy_mem_ops.v juicy_safety.v juicy_extspec.v \
slice.v res_predicates.v seplog.v Clight_seplog.v mapsto_memory_block.v Clight_mapsto_memory_block.v assert_lemmas.v Clight_assert_lemmas.v \
juicy_mem.v juicy_mem_lemmas.v local.v juicy_extspec.v \
semax.v semax_lemmas.v semax_conseq.v semax_call.v semax_straight.v semax_loop.v semax_switch.v \
initial_world.v Clight_initial_world.v initialize.v semax_prog.v semax_ext.v SeparationLogic.v SeparationLogicSoundness.v \
NullExtension.v SequentialClight.v SequentialClight2.v tcb.v superprecise.v jstep.v address_conflict.v valid_pointer.v coqlib4.v \
semax_ext_oracle.v mem_lessdef.v Clight_mem_lessdef.v age_to_resource_at.v aging_lemmas.v Clight_aging_lemmas.v ghost_PCM.v mpred.v ghosts.v invariants.v
NullExtension.v SequentialClight.v tcb.v jstep.v address_conflict.v valid_pointer.v coqlib4.v \
mem_lessdef.v Clight_mem_lessdef.v mpred.v

ZLIST_FILES= \
sublist.v Zlength_solver.v list_solver.v
Expand All @@ -526,7 +533,7 @@ FLOYD_FILES= \
client_lemmas.v canon.v canonicalize.v closed_lemmas.v jmeq_lemmas.v \
compare_lemmas.v sc_set_load_store.v \
loadstore_mapsto.v loadstore_field_at.v field_compat.v nested_loadstore.v \
call_lemmas.v extcall_lemmas.v forward_lemmas.v funspec_old.v forward.v \
call_lemmas.v extcall_lemmas.v forward_lemmas.v forward.v \
entailer.v globals_lemmas.v \
local2ptree_denote.v local2ptree_eval.v local2ptree_typecheck.v \
fieldlist.v mapsto_memory_block.v\
Expand All @@ -536,7 +543,9 @@ FLOYD_FILES= \
freezer.v deadvars.v Clightnotations.v unfold_data_at.v hints.v reassoc_seq.v \
SeparationLogicAsLogicSoundness.v SeparationLogicAsLogic.v SeparationLogicFacts.v \
subsume_funspec.v linking.v data_at_lemmas.v Funspec_old_Notation.v assoclists.v VSU.v quickprogram.v PTops.v Component.v QPcomposite.v \
data_at_list_solver.v step.v fastforward.v finish.v
data_at_list_solver.v step.v fastforward.v finish.v \
compat.v
# VSU_DrySafe.v \ # does not yet work in VST 3.x
#real_forward.v


Expand Down Expand Up @@ -664,6 +673,7 @@ C_FILES = $(SINGLE_C_FILES) $(LINKED_C_FILES)
FILES = \
veric/version.v \
$(MSL_FILES:%=msl/%) \
$(ORA_FILES:%=ora/%) \
$(SEPCOMP_FILES:%=sepcomp/%) \
$(VERIC_FILES:%=veric/%) \
$(FLOYD_FILES:%=floyd/%) \
Expand Down Expand Up @@ -713,11 +723,6 @@ INSTALL_FILES_SRC=$(shell COMPCERT=$(COMPCERT) COMPCERT_INST_DIR=$(COMPCERT_INST
INSTALL_FILES_VO=$(patsubst %.v,%.vo,$(INSTALL_FILES_SRC))
INSTALL_FILES=$(sort $(INSTALL_FILES_SRC) $(INSTALL_FILES_VO))

IRIS_INSTALL_FILES_BASE=$(shell COMPCERT=$(COMPCERT) COMPCERT_INST_DIR=$(COMPCERT_INST_DIR) ZLIST=$(ZLIST) BITSIZE=$(BITSIZE) ARCH=$(ARCH) IGNORECOQVERSION=$(IGNORECOQVERSION) IGNORECOMPCERTVERSION=$(IGNORECOMPCERTVERSION) MAKE=$(MAKE) util/calc_install_files atomics)
IRIS_INSTALL_FILES_SRC=$(filter-out $(INSTALL_FILES_SRC),$(IRIS_INSTALL_FILES_BASE))
IRIS_INSTALL_FILES_VO=$(patsubst %.v,%.vo,$(IRIS_INSTALL_FILES_SRC))
IRIS_INSTALL_FILES=$(sort $(IRIS_INSTALL_FILES_SRC) $(IRIS_INSTALL_FILES_VO))

# ########## Rules ##########

%_stripped.v: %.v
Expand Down Expand Up @@ -758,7 +763,7 @@ endif
# ########## Targets ##########

default_target: vst $(PROGSDIR)
vst: _CoqProject msl veric floyd simpleconc
vst: _CoqProject msl veric ora floyd simpleconc

ifeq ($(BITSIZE),64)
test: vst progs64
Expand All @@ -784,8 +789,9 @@ files: _CoqProject $(FILES:.v=.vo)
#
# Add conclib_coqlib, conclib_sublist, and conclib_veric to the targets
#
simpleconc: concurrency/conclib.vo concurrency/ghosts.vo atomics/verif_lock.vo
simpleconc: concurrency/conclib.vo atomics/verif_lock.vo
msl: _CoqProject $(MSL_FILES:%.v=msl/%.vo)
ora: _CoqProject $(ORA_FILES:%.v=ora/%.vo)
sepcomp: _CoqProject $(CC_TARGET) $(SEPCOMP_FILES:%.v=sepcomp/%.vo)
concurrency: _CoqProject $(CC_TARGET) $(SEPCOMP_FILES:%.v=sepcomp/%.vo) $(CONCUR_FILES:%.v=concurrency/%.vo)
linking: _CoqProject $(LINKING_FILES:%.v=linking/%.vo)
Expand Down Expand Up @@ -830,19 +836,12 @@ VST.config:
# Note: doc files are installed into the coq destination folder.
# This is not ideal but otherwise it gets tricky to handle variants
install: VST.config
install -d "$(INSTALLDIR)"
install -d "$(INSTALLDIR)"
for d in $(sort $(dir $(INSTALL_FILES) $(EXTRA_INSTALL_FILES))); do install -d "$(INSTALLDIR)/$$d"; done
for f in $(INSTALL_FILES); do install -m 0644 $$f "$(INSTALLDIR)/$$(dirname $$f)"; done
for f in $(EXTRA_INSTALL_FILES); do install -m 0644 $$f "$(INSTALLDIR)/$$(dirname $$f)"; done

build-iris: _CoqProject
$(COQC) $(COQFLAGS) $(PROGSDIR)/incr.v
for f in $(IRIS_INSTALL_FILES_SRC); do if [ "$${f##*.}" = "v" ]; then echo COQC $$f; $(COQC) $(COQFLAGS) $$f; fi; done

install-iris: VST.config
install -d "$(INSTALLDIR)"
for d in $(sort $(dir $(IRIS_INSTALL_FILES))); do install -d "$(INSTALLDIR)/$$d"; done
for f in $(IRIS_INSTALL_FILES); do install -m 0644 $$f "$(INSTALLDIR)/$$(dirname $$f)"; done
cd ora; $(MAKE) install

dochtml:
mkdir -p doc/html
Expand Down Expand Up @@ -910,11 +909,11 @@ floyd/floyd.coq: floyd/proofauto.vo
@echo 'coqdep ... >.depend'
ifeq ($(COMPCERT_NEW),true)
# DEPENDENCIES VARIANT COMPCERT_NEW
$(COQDEP) $(DEPFLAGS) 2>&1 >.depend `find $(filter $(wildcard *), $(DIRS) concurrency/common concurrency/compiler concurrency/juicy concurrency/util paco concurrency/sc_drf) -name "*.v"` | grep -v 'Warning:.*found in the loadpath' || true
$(COQDEP) $(DEPFLAGS) 2>&1 >.depend `find $(filter $(wildcard *), $(DIRS) refinedVST concurrency/common concurrency/compiler concurrency/juicy concurrency/util paco concurrency/sc_drf) -name "*.v"` | grep -v 'Warning:.*found in the loadpath' || true
@echo "" >>.depend
else
# DEPENDENCIES DEFAULT
$(COQDEP) $(DEPFLAGS) 2>&1 >.depend `find $(filter $(wildcard *), $(DIRS)) -name "*.v"` | grep -v 'Warning:.*found in the loadpath' || true
$(COQDEP) $(DEPFLAGS) 2>&1 >.depend `find $(filter $(wildcard *), $(DIRS) refinedVST) -name "*.v"` | grep -v 'Warning:.*found in the loadpath' || true
endif
ifeq ($(COMPCERT_BUILD_FROM_SRC),true)
# DEPENDENCIES TO BUILD COMPCERT FROM SOURCE
Expand All @@ -927,6 +926,9 @@ ifneq ($(wildcard InteractionTrees/theories),)
# $(COQDEP) -Q coq-ext-lib/theories ExtLib -Q paco/src Paco -Q InteractionTrees/theories ITree InteractionTrees/theories >>.depend
$(COQDEP) -Q paco/src Paco -Q InteractionTrees/theories ITree InteractionTrees/theories >>.depend
endif
ifneq ($(wildcard ora/theories),)
$(COQDEP) -Q ora/theories iris_ora ora/theories >>.depend
endif
ifneq ($(wildcard fcf/src/FCF),)
$(COQDEP) -Q fcf/src/FCF FCF fcf/src/FCF/*.v >>.depend
endif
Expand All @@ -940,6 +942,7 @@ clean:
rm -f progs/VSUpile/{*,*/*}.{vo,vos,vok,glob}
rm -f progs64/VSUpile/{*,*/*}.{vo,vos,vok,glob}
rm -f progs/memmgr/*.{vo,vos,vok,glob}
rm -f ora/theories/*/*.{vo,vos,vok,glob}
rm -f coq-ext-lib/theories/*.{vo,vos,vok,glob} InteractionTrees/theories/{*,*/*}.{vo,vos,vok,glob}
rm -f paco/src/*.{vo,vos,vok,glob}
rm -f fcf/src/FCF/*.{vo,vos,vok,glob}
Expand All @@ -951,6 +954,10 @@ clean-concur:
clean-linking:
rm -f $(LINKING_FILES:%.v=linking/%.vo) $(LINKING_FILES:%.v=linking/%.glob)

clean-refinedVST-frontend:
rm -fr refinedVST/typing/frontend_stuff/_build
rm -fr refinedVST/typing/frontend_stuff/examples/proofs

count:
wc $(FILES)

Expand Down
7 changes: 3 additions & 4 deletions Makefile.bundled
Original file line number Diff line number Diff line change
Expand Up @@ -122,13 +122,13 @@ else
endif
COMPCERTDIRS=lib common $(ARCHDIRS) cfrontend export
COMPCERT_FLAGS= $(foreach d, $(COMPCERTDIRS), -Q $(COMPCERT_INST_DIR)/$(d) compcert.$(d))
VST_DIRS= msl sepcomp veric zlist floyd
VST_DIRS= msl shared sepcomp veric zlist floyd
else
COMPCERTFLAGS=
VST_DIRS=
endif

VSTFLAGS= $(COMPCERT_FLAGS) $(foreach d, $(VST_DIRS), -Q $(VST_LOC)/$(d) VST.$(d)) -R . pile
VSTFLAGS= $(COMPCERT_FLAGS) -Q $(VST_LOC)/ora/theories iris_ora $(foreach d, $(VST_DIRS), -Q $(VST_LOC)/$(d) VST.$(d)) -R . pile

ifdef CLIGHTGEN
VERSION1= $(lastword $(shell $(CLIGHTGEN) --version))
Expand All @@ -143,5 +143,4 @@ all: # need this so that _CoqProject does not become the default target
_CoqProject: Makefile
@echo $(VSTFLAGS) > _CoqProject

FLOYD= $(VST_LOC)/floyd/proofauto.vo $(VST_LOC)/floyd/VSU.vo

FLOYD= $(VST_LOC)/floyd/proofauto.vo $(VST_LOC)/floyd/compat.vo $(VST_LOC)/floyd/VSU.vo
Loading
Loading