Description
While #27 is no longer on the table, in order to make #70 happen, and to make #26 easy, PL/Rust needs builds that are slightly more finely staged and offer more user input, so the user can easily recover things like the Cargo.toml and Cargo.lock that PL/Rust is going to use. In addition, we would like to run the build under various debug or other settings of their choice. Currently, we hardcode all build settings to run once the crate is provisioned:
plrust/src/user_crate/state_provisioned.rs
Lines 49 to 61 in 37c2c49
For correctness purposes, it is important that after crate generation and before the build that PL/Rust guarantees that "nothing happens" from the perspective of actually running the build. However, this is also probably the perfect time for events which examine the crate without actually fully building and running it.
We want to be careful about exposing control over the build options that are input, as compiler options are implicitly "unsafe". Thus, unlimited access to the compiler's command flags may allow instructing the compiler to run the build under parameters that can hypothetically violate any safety properties we have embedded in the PL/Rust design.
- Add staging for pre-build events: Catch
#[no_mangle]
#128 - Support "no-op" validation: Diet of WORMs #143
- Question: Must this apply to build artifacts as well?
- Improve UI for manually recovering build deets from inside the PL/Rust builder
- Add UI for running user-provided introspection during provisioning
- Add more UI for controlling the build itself
- Consider UI for incremental introspection during crate building (for builds that may involve complex build.rs steps)