From a66f1783c3974b60392558d9e59eda01aa6407ff Mon Sep 17 00:00:00 2001 From: Ryan Scott Date: Wed, 4 Sep 2024 10:48:22 -0400 Subject: [PATCH] Explicitly pin the mir-json version that SAW requires SAW's MIR backend requires a particular MIR JSON schema, but it is not entirely obvious which version of the JSON schema to use (#2111). This patch is one step towards addressing this concern. It: * Adds `mir-json` as a submodule. At present, nothing in the repo (CI or otherwise) actually _builds_ this submodule. Its presence is purely to communicate which version of `mir-json` must be used to compile Rust code to JSON that SAW can ingest. * Documents this in the `README`. In the future, we will want to actually build and use `mir-json` in the CI (see #1868 for an in-progress attempt at this), but in the meantime, this is a decent first step. Until we actually start building `mir-json` in the CI and using it, we will need to remember to bump the `mir-json` submodule each time that SAW's JSON schema requirement changes. Addresses one part of #2111. --- .gitmodules | 3 +++ README.md | 20 ++++++++++++++++ deps/mir-json | 1 + doc/manual/manual.md | 53 +++++++++++++++++++++++++++++++++++++++--- doc/manual/manual.pdf | Bin 605424 -> 607302 bytes 5 files changed, 74 insertions(+), 3 deletions(-) create mode 160000 deps/mir-json diff --git a/.gitmodules b/.gitmodules index e5c13b8f0e..7b798103ff 100644 --- a/.gitmodules +++ b/.gitmodules @@ -49,3 +49,6 @@ [submodule "deps/lmdb"] path = deps/lmdb url = https://github.com/GaloisInc/lmdb.git +[submodule "deps/mir-json"] + path = deps/mir-json + url = https://github.com/GaloisInc/mir-json.git diff --git a/README.md b/README.md index 18bfd91120..d64bcef920 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,26 @@ will be possible for all language constructs. There are various instructions that are not supported during verification. However, any failure during `llvm_load_module` should be considered a bug. +## Notes on Rust + +SAW has experimental support for analyzing Rust programs. To do so, one must +compile Rust code using [`mir-json`](https://github.com/GaloisInc/mir-json), a +tool which compiles Rust code to a machine-readable, JSON-based format. +Note that: + +* Each version of SAW understands the JSON output of a particular version of + `mir-json`, so make sure that you build the version `mir-json` that is + included in the `mir-json` submodule (located in `deps/mir-json`). +* Moreover, SAW requires slightly modified versions of the Rust standard + libraries that are suited to verification purposes. SAW consults the value + of the `SAW_RUST_LIBRARY_PATH` environment variable to determine where to + look for these modified standard libraries. + +For complete instructions on how to install `mir-json`, the modified Rust +standard libraries, and how to defined the `SAW_RUST_LIBRARY_PATH` environment +variable, follow the instructions +[here](https://github.com/GaloisInc/mir-json#installation-instructions). + ## Notes on Windows If you have trouble loading the SAW REPL on Windows, try invoking it diff --git a/deps/mir-json b/deps/mir-json new file mode 160000 index 0000000000..131980a17b --- /dev/null +++ b/deps/mir-json @@ -0,0 +1 @@ +Subproject commit 131980a17bb27c2c3c616a1e8bfb4253a528c328 diff --git a/doc/manual/manual.md b/doc/manual/manual.md index 7a1cf0baa6..c98e7b517a 100644 --- a/doc/manual/manual.md +++ b/doc/manual/manual.md @@ -1812,7 +1812,54 @@ In order to verify Rust code, SAW analyzes Rust's MIR (mid-level intermediate representation) language. In particular, SAW analyzes a particular form of MIR that the [`mir-json`](https://github.com/GaloisInc/mir-json) tool produces. You will need to intall `mir-json` and run it on Rust code in order to produce MIR -JSON files that SAW can load (see [this section](#loading-mir)). +JSON files that SAW can load (see [this section](#loading-mir)). You will also +need to use `mir-json` to build custom versions of the Rust standard libraries +that are more suited to verification purposes. + +If you are working from a checkout of the `saw-script` repo, you can install +the `mir-json` tool and the custom Rust standard libraries by performing the +following steps: + +1. Clone the [`crucible`](https://github.com/GaloisInc/crucible) and `mir-json` + submodules like so: + + ``` + $ git submodule update deps/crucible deps/mir-json + ``` + +2. Navigate to the `mir-json` submodule: + + ``` + $ cd deps/mir-json + ``` + +3. Follow the instructions laid out in the [`mir-json` installation + instructions](https://github.com/GaloisInc/mir-json#installation-instructions) + in order to install `mir-json`. + +4. Navigate to the + [`crux-mir`](https://github.com/GaloisInc/crucible/tree/master/crux-mir) + subdirectory of the `crucible` submodule: + + ``` + $ cd ../crucible/crux-mir/ + ``` + +5. Run the `translate_libs.sh` script: + + ``` + $ ./translate_libs.sh + ``` + + This will compile the custom versions of the Rust standard libraries using + `mir-json`, placing the results under the `rlibs` subdirectory. + +6. Finally, define a `SAW_RUST_LIBRARY_PATH` environment variable that points + to the newly created `rlibs` subdirectory: + + ``` + $ export SAW_RUST_LIBRARY_PATH=<...>/crucible/crux-mir/rlibs + ``` For `cargo`-based projects, `mir-json` provides a `cargo` subcommand called `cargo saw-build` that builds a JSON file suitable for use with SAW. `cargo @@ -1820,7 +1867,7 @@ saw-build` integrates directly with `cargo`, so you can pass flags to it like any other `cargo` subcommand. For example: ``` -$ export SAW_RUST_LIBRARY_PATH=<...> +# Make sure that SAW_RUST_LIBRARY_PATH is defined, as described above $ cargo saw-build linking 11 mir files into <...>/example-364cf2df365c7055.linked-mir.json @@ -1840,7 +1887,7 @@ Note that: `rustc` accepts. For example: ``` -$ export SAW_RUST_LIBRARY_PATH=<...> +# Make sure that SAW_RUST_LIBRARY_PATH is defined, as described above $ saw-rustc example.rs linking 11 mir files into <...>/example.linked-mir.json diff --git a/doc/manual/manual.pdf b/doc/manual/manual.pdf index 74ffc233af456131596e88ee30eb6493a6ae63cb..3f088d6e6aca51890eb257c091116ad507b3d939 100644 GIT binary patch delta 226546 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