Skip to content

Commit 0595dee

Browse files
authored
Merge branch 'main' into fix-wbtest-duplicate-diag
2 parents 2820133 + 4be23e7 commit 0595dee

45 files changed

Lines changed: 4238 additions & 242 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,12 @@ jobs:
240240
cargo run --bin moon test --source-dir ~/.moon/lib/core --target llvm
241241
cargo run --bin moon test --source-dir ~/.moon/lib/core --target llvm --release
242242
243+
- name: Test core compilation (Rupes Recta builder, Unix)
244+
if: ${{ matrix.os != 'windows-latest' }}
245+
run: |
246+
cargo run --bin moon -- -C ~/.moon/lib/core clean
247+
cargo run --bin moon -- -Z rupes_recta -C ~/.moon/lib/core build --target wasm-gc
248+
243249
stable-test:
244250
needs: [typo-check, license-header-check]
245251
strategy:

Cargo.lock

Lines changed: 30 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
# For inquiries, you can contact us via e-mail at jichuruanjian@idea.edu.cn.
1818

1919
[workspace]
20-
members = ["xtask", "./crates/*"]
20+
members = ["xtask", "./crates/*", "crates/moonbuild-rupes-recta"]
2121
resolver = "2"
2222
default-members = ["./crates/*"]
2323

@@ -29,11 +29,12 @@ edition = "2021"
2929
n2 = { git = "https://github.com/moonbitlang/n2.git", rev = "dbd9c7921f8f2f388b85f375ea7a30575310b35d" }
3030
arcstr = { version = "1.2", features = ["serde"] }
3131
moonbuild = { path = "./crates/moonbuild", version = "*" }
32+
moonbuild-rupes-recta = { path = "./crates/moonbuild-rupes-recta", version = "*" }
3233
mooncake = { path = "./crates/mooncake", version = "*" }
3334
moonutil = { path = "./crates/moonutil", version = "*" }
3435
anyhow = { version = "1.0.86" }
3536
bincode = "1.3.3"
36-
clap = { version = "4.5.4", features = ["derive", "string"] }
37+
clap = { version = "4.5.4", features = ["derive", "string", "env"] }
3738
colored = "2.1.0"
3839
ctrlc = { version = "3.4.4", features = ["termination"] }
3940
dunce = "1.0.4"
@@ -101,6 +102,7 @@ once_cell = "1.20.3"
101102
derive_builder = "0.20.2"
102103
pulldown-cmark = "0.13.0"
103104
shlex = "1.3.0"
105+
relative-path = "2.0.1"
104106
slotmap = "1.0.7"
105107

106108
[profile.release]

crates/moon/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ rust-version.workspace = true
3030
moonbuild.workspace = true
3131
mooncake.workspace = true
3232
moonutil.workspace = true
33+
moonbuild-rupes-recta.workspace = true
3334
n2.workspace = true
3435
semver.workspace = true
3536
clap.workspace = true

crates/moon/src/cli.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,8 +169,12 @@ pub struct BuildFlags {
169169
#[clap(skip)]
170170
pub target_backend: Option<TargetBackend>,
171171

172-
/// Handle the selected targets sequentially
173-
#[clap(long, requires = "target")]
172+
/// [Deprecated] Handle the selected targets sequentially
173+
///
174+
/// This flag is deprecated, because all targets are handled sequentially
175+
/// for now, until multi-target compilation is implemented (if any).
176+
#[clap(long, requires = "target", hide = true)]
177+
#[deprecated]
174178
pub serial: bool,
175179

176180
/// Enable coverage instrumentation

crates/moon/src/cli/bench.rs

Lines changed: 6 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@
1919
use anyhow::Context;
2020
use moonutil::{common::lower_surface_targets, dirs::PackageDirs, mooncakes::sync::AutoSyncFlags};
2121
use std::path::Path;
22-
use std::sync::Arc;
23-
use std::thread;
2422

2523
use super::{BuildFlags, UniversalFlags};
2624

@@ -66,41 +64,14 @@ pub fn run_bench(cli: UniversalFlags, cmd: BenchSubcommand) -> anyhow::Result<i3
6664
let surface_targets = cmd.build_flags.target.clone().unwrap();
6765
let targets = lower_surface_targets(&surface_targets);
6866
let display_backend_hint = if targets.len() > 1 { Some(()) } else { None };
69-
let cli = Arc::new(cli);
70-
let source_dir = Arc::new(source_dir);
71-
let target_dir = Arc::new(target_dir);
72-
let mut handles = Vec::new();
7367

7468
let mut ret_value = 0;
75-
if cmd.build_flags.serial {
76-
for t in targets {
77-
let mut cmd = cmd.clone();
78-
cmd.build_flags.target_backend = Some(t);
79-
let x = run_bench_internal(&cli, &cmd, &source_dir, &target_dir, display_backend_hint)?;
80-
ret_value = ret_value.max(x);
81-
}
82-
} else {
83-
for t in targets {
84-
let cli = Arc::clone(&cli);
85-
let mut cmd = cmd.clone();
86-
cmd.build_flags.target_backend = Some(t);
87-
let source_dir = Arc::clone(&source_dir);
88-
let target_dir = Arc::clone(&target_dir);
89-
90-
let handle = thread::spawn(move || {
91-
run_bench_internal(&cli, &cmd, &source_dir, &target_dir, display_backend_hint)
92-
});
93-
94-
handles.push((t, handle));
95-
}
96-
97-
for (backend, handle) in handles {
98-
let x = handle
99-
.join()
100-
.unwrap()
101-
.context(format!("failed to run bench for target {backend:?}"))?;
102-
ret_value = ret_value.max(x);
103-
}
69+
for t in targets {
70+
let mut cmd = cmd.clone();
71+
cmd.build_flags.target_backend = Some(t);
72+
let x = run_bench_internal(&cli, &cmd, &source_dir, &target_dir, display_backend_hint)
73+
.context(format!("failed to run bench for target {t:?}"))?;
74+
ret_value = ret_value.max(x);
10475
}
10576
Ok(ret_value)
10677
}

0 commit comments

Comments
 (0)