1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//! Regenerates the committed compiler-island AOT artifact
//! (`src/compiler_island.typld`) — interp-closure removal Stage 3. Run through
//! `scripts/regen-compiler-island.sh` (which supplies the LLVM environment)
//! whenever `compiler.rs`'s `SOURCE` changes; the
//! `island_artifacts_are_fresh` test fails until this is re-run.
//!
//! Also re-run it after changing an `llvm-*` builder
//! (`eval_llvm_builtin_method`), which changes the emitted IR without
//! changing `SOURCE`. The freshness *hash* covers `SOURCE` only and will not
//! notice; `the_committed_island_matches_a_fresh_build` compares the built
//! bytes and will. See `compile::bootstrap`'s module doc comment.
//!
//! Paths are resolved from `CARGO_MANIFEST_DIR` (this crate's own root),
//! never hardcoded — see the project's policy on machine-specific absolute
//! paths.
use Path;