Closed Alex-Fischman closed 1 year ago
I've left unused lines commented out in the root Cargo.toml
. Someone who added those lines should look at them and determine if we still need them or not.
This is great, thanks so much for taking this on @Alex-Fischman!
As a side note, I did some further investigation into build times, and a significant portion (~50% by my estimate) of the end-to-end build time is spent recompiling the qalpha branch of App::exec
. I believe this is due to the heavy use of generic instantiation in that branch. In the future it would be great to move that code into the qalpha file so that it does not need to be recompiled every time we build the app.
I'm currently working on getting CI to pass by adding documentation, but I haven't used the code that I'm trying to document, so someone should check my work when I'm finished.
Whoops, CI could've passed without getting docs done. There's some issue with tests in proc.rs. I'll look into it tomorrow.
Could you stop adding any documentation in this PR, and turn off #[warn(missing_docs)]
for now? It makes the PR much harder to review.
Could you stop adding any documentation in this PR, and turn off
#[warn(missing_docs)]
for now? It makes the PR much harder to review.
Sure, I'm just going to commit my documentation for MARCO, since I wrote the file. Then I'll comment out the #[warn] and open an issue to add it back in.
This PR splits the project up into multiple crates, which in theory will improve compile times. While this is a large change, most of the changes that I had to make were mechanical, except for the following:
mod
s in alllib.rs
andmod.rs
public. This causes lots of missing documentation warnings. I did this because a) the code does actually need to be documented, and b) I believe that all modules in a crate should be public, and the module should decide what is exposed. While the second point is debatable, I don't think the first point is, so I don't think that this change should be reverted until we find a way to get the clippy lints without it.pub use
inmod/lib.rs
. Since all modules are now public, this just creates an extra path to the same code, so it's unnecessary.pub use
s to thelib.rs
insolver
, so that clients ofsolver
would not have to also depend onsmtlib
.fly
andsmtlib
define common functionality among other crates;bounded
,inference
,solver
, andverify
all implement the functionality that the user cares about; andtemporal-verifier
defines the command line interface. While most files are in the crate that corresponds to the folder that they were in before this commit, a few files (such astiming.rs
andconcurrent.rs
) got moved due to being in the wrong place in the dependency ordering.term
that we weren't quite sure what to do with, as it defines common functionality but also depends onfly
. For now, we've left it as a submodule of thefly
crate.