Cryptol Projects
Past due by 8 months
50% complete
A "Cryptol Project" specifies a collection of Cryptol modules, together with various configuration settings on how to load and process them.
A Cryptol project will have various commands that can be performed on a collection of modules. At first, a Project will have one command that validates all properties of its modules.
A Cryptol project will support th…
A "Cryptol Project" specifies a collection of Cryptol modules, together with various configuration settings on how to load and process them.
A Cryptol project will have various commands that can be performed on a collection of modules. At first, a Project will have one command that validates all properties of its modules.
A Cryptol project will support the following workflow:
- Create a new Cryptol project, say
my_project.toml
(See #1640) - Run
cryptol
withmy_project.toml
and flag indicating that we want to validate all properties in the project.
2.1 On the first run, this should load all properties in the modules of the project and validate them.
2.2 Each property should be either validated with the explicit settings that are provided in it (#1635), or with some default strategy. (#1637)
2.3 As a result, we should produce a machine readable report specifying the status of each property (e.g., success/fail) (#1638) - Run the same command again, without any changes, we should notice that none of the files have changed, and we don't need to revalidate the property, so we should produce the same report, but much quicker (PR #1526)
- Modify some files
- Re-run the above command. Only properties that depend on the modified files should be reavaluated. (#1641, #1637)