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

Garagedoor opens #1369

Merged
merged 24 commits into from
Sep 30, 2022
Merged

Garagedoor opens #1369

merged 24 commits into from
Sep 30, 2022

Conversation

andres-erbsen
Copy link
Contributor

No description provided.

@andres-erbsen andres-erbsen marked this pull request as ready for review September 5, 2022 20:47
@andres-erbsen
Copy link
Contributor Author

I just merged the dependencies; this is ready to merge if it passes.

@andres-erbsen
Copy link
Contributor Author

Error: Cannot find a physical path bound to logical path bedrock2Examples.LAN9250.
Probably the thing to do here is to create another build category that depends on bedrock2 and rupicola examples...

@andres-erbsen andres-erbsen force-pushed the garagedoor-opens branch 2 times, most recently from 7567ddd to 3d9c3dd Compare September 12, 2022 23:53
@andres-erbsen
Copy link
Contributor Author

8.14:

File "/Users/runner/work/fiat-crypto/fiat-crypto/rupicola/bedrock2/bedrock2/src/bedrock2Examples/memmove.v", line 190, characters 12-63:
Error: No such bound variable m (possible names are: k, v1, v2 and m1).

@andres-erbsen
Copy link
Contributor Author

andres-erbsen commented Sep 23, 2022

@JasonGross please consider whether it's worth getting this to build on 8.14 or whether we're likely enough to drop it anyway. My recollection of build discussion:

  • make clean does not remove .vo files from submodules (probably because these .v files are not listed in _CoqProject)
  • .v files not wanted in _CoqProject can be outside src
  • _CoqProject generation (and the rest of the Makefile) should work without .git
  • we want to be able to check locally that .v-files in _CoqProject are in git to avoid CI surprises, and enable this check by default. I think this should be a separate phony target from _CoqProject generation.

I'm willing to implement these if you expect you'd find the result acceptable. wdyt?

@JasonGross
Copy link
Collaborator

I think we're going to drop 8.14, to get adequate Ltac2 support if nothing else, so you should just cherry-pick the first two commits of #1361

I think actually the Makefile already works without .git by falling back to find, though I could be misremembering. I continue to be slightly sad about, e.g., having to pick a different directory to run the bug minimizer in. If we already fall back to find, feel free to stop checking in the generated files. Otherwise I'm happy to add a find fallback.

@@ -1,23 +0,0 @@
((coq-mode . ((eval . (let* ((project-root (locate-dominating-file buffer-file-name "_CoqProject"))
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why delete this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's redundant as Makefile-generated _CoqProject already passes -Q with these directories.

@JasonGross
Copy link
Collaborator

Hmmm, I guess we don't fallback to find. Thoughts on using git when it's available and otherwise find?

@andres-erbsen
Copy link
Contributor Author

make: *** No rule to make target 'rupicola/src/Rupicola/Lib/Tactics.vo', needed by 'src/Assembly/WithBedrock/Proofs.vo'. Stop.
I vaguely remember @samuelgruetter had to do some hacks to get -Q to work on Windows...

@samuelgruetter
Copy link
Contributor

I vaguely remember @samuelgruetter had to do some hacks to get -Q to work on Windows...

I don't remember inventing or using any hacks for Windows myself, but here's one by @JasonGross that might be relevant:

fiat-crypto/Makefile

Lines 438 to 442 in 64aa176

ifneq ($(filter /cygdrive/%,$(CURDIR)),)
CURDIR_SAFE := $(shell cygpath -m "$(CURDIR)")
else
CURDIR_SAFE := $(CURDIR)
endif

@andres-erbsen
Copy link
Contributor Author

Yeah, looks possible that it worked before I just broke it when cleaning up the Makefile...

Comment on lines -143 to -158
FORCE_BEDROCK2?=
ifneq (,$(filter 8.11% 8.12% 8.13%,$(COQ_VERSION)))
ifneq ($(SKIP_BEDROCK2),1)
$(warning Coq version $(COQ_VERSION) is older than the minimum bedrock2 Coq version of 8.14)
ifeq ($(FORCE_BEDROCK2),1)
$(warning Building bedrock2 code anyway because FORCE_BEDROCK2=$(FORCE_BEDROCK2))
else
ifeq ($(SKIP_BEDROCK2),)
SKIP_BEDROCK2=1
else
$(error Cannot build bedrock2! Pass FORCE_BEDROCK2=1 to override this error and build anyway, or pass SKIP_BEDROCK2=1 (instead of SKIP_BEDROCK2=$(SKIP_BEDROCK2)) to skip bedrock2)
endif
endif
endif
endif

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why remove this? It seems useful to be able to easily desync the bedrock2 minimal version from the fiat-crypto minimal version, no?

@@ -580,7 +542,7 @@ endif

Makefile.coq: Makefile _CoqProject
$(SHOW)'COQ_MAKEFILE -f _CoqProject > $@'
$(HIDE)$(COQBIN)coq_makefile -f _CoqProject INSTALLDEFAULTROOT = $(INSTALLDEFAULTROOT) -o Makefile-coq && cat Makefile-coq | sed 's/^printenv:/printenv::/g; s/^printenv:::/printenv::/g; s/^all:/all-old:/g; s/^validate:/validate-vo:/g; s/^.PHONY: validate/.PHONY: validate-vo/g' > $@ && rm -f Makefile-coq
$(HIDE)$(COQBIN)coq_makefile -f _CoqProject INSTALLDEFAULTROOT = $(INSTALLDEFAULTROOT) -o $@
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that this will result in duplicated targets for Makefile.coq. idk how bad this is

@JasonGross
Copy link
Collaborator

make: *** No rule to make target 'rupicola/src/Rupicola/Lib/Tactics.vo', needed by 'src/Assembly/WithBedrock/Proofs.vo'. Stop. I vaguely remember @samuelgruetter had to do some hacks to get -Q to work on Windows...

This is still an issue. I think the problem is that deps is for some reason not building this .vo file.

(What's the reason to update the Makefile logic in the same PR as updating code?)

JasonGross added a commit to JasonGross/fiat-crypto that referenced this pull request Sep 30, 2022
Makefile Show resolved Hide resolved
JasonGross added a commit to JasonGross/fiat-crypto that referenced this pull request Sep 30, 2022
Mostly lifted from mit-plv#1369

Now that we require Coq >= 8.15, we no longer need to do
version-specific nsatz-tactic hacking.
JasonGross added a commit that referenced this pull request Sep 30, 2022
@andres-erbsen andres-erbsen merged commit 7eeb403 into master Sep 30, 2022
@andres-erbsen andres-erbsen deleted the garagedoor-opens branch September 30, 2022 12:01
andres-erbsen pushed a commit that referenced this pull request Sep 30, 2022
Mostly lifted from #1369

Now that we require Coq >= 8.15, we no longer need to do
version-specific nsatz-tactic hacking.
OwenConoly pushed a commit that referenced this pull request Nov 13, 2022
Mostly lifted from #1369

Now that we require Coq >= 8.15, we no longer need to do
version-specific nsatz-tactic hacking.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants