Skip to content

Conversation

@Alizter
Copy link
Collaborator

@Alizter Alizter commented Jan 11, 2026

I broke this job in an earlier PR on purpose. We fix the CI job for it here and change the backend that alectryon was using. It used to use serapi, but that has now been subsumed by rocq-lsp. We update the submodule alectryon to a version that understands it.

@Alizter Alizter force-pushed the push-mypspyvxqnuy branch 2 times, most recently from 83d5a72 to 7c2a105 Compare January 11, 2026 01:38
Signed-off-by: Ali Caglayan <[email protected]>
@jdchristensen
Copy link
Collaborator

Looks like there is still a build issue. BTW, do you know if alectryon is using more than one core when building? It would be great to speed it up if possible.

@Alizter
Copy link
Collaborator Author

Alizter commented Jan 11, 2026

It's just a python script that essentially goes through all the proofs all at once. There is surely a way to do this work concurrently, but I will leave that to a future PR.

We also seem to be failing to reuse the previous build.

The previous one had all sorts of weird opam pins inherited from the
docker image and was generally difficult to work with. I previously
updated the nix flake to be able to run the alectryon script, so we just
use the develoment environment there to run it in CI.

We can still improve the actual build of the alectryon docs further by
introducing concurrency, but at least this should fix the issues with
CI.

Signed-off-by: Ali Caglayan <[email protected]>
@Alizter
Copy link
Collaborator Author

Alizter commented Jan 11, 2026

Alectryon was starting coq-lsp and querying it for every goal one at a time. That is slow. I've instead used coq-lsp's Coq compiler fcc to dump the goals of each .v file. After that I have a script that can pass this to alectryon in a format it will understand. I've written a generator for dune rules for this, so as long as you have coq-lsp installed in your opam switch or if you use the nix flake, you can build dune build alectryon-html/ incrementally.

@jdchristensen
Copy link
Collaborator

Wow, that sounds great! It's much faster than before. Does it also use multiple cores?

@Alizter
Copy link
Collaborator Author

Alizter commented Jan 11, 2026

Wow, that sounds great! It's much faster than before. Does it also use multiple cores?

Yes, since we are generating a bunch of rules, dune is able to run them concurrently.

@Alizter
Copy link
Collaborator Author

Alizter commented Jan 11, 2026

We will need to make sure that the wiki links are correctly working when the elctryon website is deployed. Having a look locally at _build/default/alectryon-html/ things seem to be working ok. We can of course customise a lot more things here.

@jdchristensen
Copy link
Collaborator

Ok, looks good to me!

@Alizter
Copy link
Collaborator Author

Alizter commented Jan 12, 2026

I'll do another pass on this in the evening before merging.

@Alizter
Copy link
Collaborator Author

Alizter commented Jan 12, 2026

I did a self-review. There are some issues:

  1. Fix JSON parser to handle strings properly (use json.loads() or streaming parser)
  2. Add error handling and validation to Python converter
  3. Fix exit code handling
  4. Remove unused directory-targets
  5. Restore problem matcher

I think we should hold off merging for now until I can address this points.

@Alizter
Copy link
Collaborator Author

Alizter commented Jan 12, 2026

Green CI is also misleading, the HTML might be broken in places I haven't checked.

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.

2 participants