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

Backporting 2.5.0 #758

Merged
merged 11 commits into from
Jul 28, 2023
Merged

Backporting 2.5.0 #758

merged 11 commits into from
Jul 28, 2023

Conversation

@Halbaroth Halbaroth added this to the 2.5.0 milestone Jul 26, 2023
@Halbaroth Halbaroth changed the base branch from next to v2.5.x July 26, 2023 15:15
Halbaroth and others added 9 commits July 28, 2023 15:24
* Update the opam file for Dolmen 0.9

* Update the documentation

* remove the pin for Dolmen
…CamlPro#764)

Since --produce-models is intended to be used with `(get-model)` in the
SMT-LIB format, it only makes sense to use a frontend that actually
supports `(get-model)` when the option is provided.

(Reported by @Halbaroth)
* Keep the default width of the rtd-theme

* Improve conf.py

* Clarify input file formats

* Fix spelling

* Review changes

* Doublon

* Revert removing _static directory
* Update the frontend documentation

* Removing the `fully` adjective

* Review changes
* Update model documentation

* Review changes

* Review changes bis

* Review changes ter

* Clarify the dolmen option
)

The dolmen frontend is adding declarations to the end of the command
queue instead of to the front, causing the final command list to be all
shuffled. This is the cause of at least some of the regressions with the
dolmen frontend, since the solver now processes things in a different
order.

This patch ensures that the definitions are added with the correct
ordering, so that the command queue should be the same with both
frontends, barring additional bugs. This was tested with `-d commands`
on a few benchmarks locally, where it produced the exact same output
with both frontends.

The patch also refactors slightly the [handle_smtt] method in the
solving loop: as part of the debugging for this, I realized that we can
never end up with `Hyp` constructors with local/global hypotheses names
there, because one difference between the Dolmen and legacy frontend is
that the legacy frontend extracts the hypotheses from the goal during
typechecking (so prior to cnf-conversion) while the Dolmen frontend
extracts the hypotheses from the goal during cnf-conversion (i.e. when
we encounter a `Solve`).
@Halbaroth Halbaroth marked this pull request as ready for review July 28, 2023 13:28
@Halbaroth Halbaroth requested a review from bclement-ocp July 28, 2023 13:28
Copy link
Collaborator

@bclement-ocp bclement-ocp left a comment

Choose a reason for hiding this comment

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

I have only taken a cursory look but I think all of these were nominated for 2.5.0 yes.

Please make sure to use "Create a merge commit", not "Squash and merge" when merging.

@Halbaroth Halbaroth merged commit 5cb1179 into OCamlPro:v2.5.x Jul 28, 2023
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