Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
107 lines (93 loc) · 3.88 KB
/
Copy pathCargo.toml
File metadata and controls
107 lines (93 loc) · 3.88 KB
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
[package]
name = "roundhouse"
version = "2026.9.18"
edition = "2024"
rust-version = "1.89"
authors = ["Sam Ruby <sam@rubyred.us>"]
description = "Rails as a specification; deployment is a build flag"
license = "MIT OR Apache-2.0"
homepage = "https://rubys.github.io/roundhouse/"
repository = "https://github.com/rubys/roundhouse"
publish = false
# Not on crates.io (publish = false), but its binary is released:
# cargo-dist needs the opt-in to see the package.
[package.metadata.dist]
dist = true
# One file on PATH: the multi-call binary. The alias bins and the IR dev
# tools stay cargo-only. dist only takes this per target.
[package.metadata.dist.binaries]
aarch64-apple-darwin = ["roundhouse"]
x86_64-apple-darwin = ["roundhouse"]
x86_64-unknown-linux-musl = ["roundhouse"]
x86_64-pc-windows-msvc = ["roundhouse"]
[dependencies]
serde = { version = "1", features = ["derive", "rc"] }
serde_json = "1"
sha1 = "0.10"
regex = "1"
serde_yaml_ng = "0.10"
indexmap = { version = "2", features = ["serde"] }
ruby-prism = "1.9.0"
ruby-rbs = "0.3"
yaml-rust2 = { version = "0.13.0", default-features = false }
# The 32-bit build fix (Shopify/rubydex#1059) is on main but not yet
# released. The browser compiler needs it for wasm32. Pin the reviewed
# tree even when an installer resolves dependencies without Cargo.lock.
rubydex = { git = "https://github.com/Shopify/rubydex", rev = "d8ff47595223571588ae40cb748f43cef6a9dfaf" }
[target.'cfg(target_os = "macos")'.dependencies]
libc = "0.2"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
# The user guide (docs/guide/*.md) rendered into the Pages site by
# `roundhouse --site`. Host-only like the rest of the site build.
pulldown-cmark = { version = "0.13", default-features = false, features = ["html"] }
# LSP server: rust-analyzer's *synchronous* transport crate (no tokio —
# keeps the analysis engine sync). Host-only; the wasm build excludes it.
lsp-server = "0.7.9"
lsp-types = "0.97"
# The channel crate lsp-server's Connection.sender is built on — a
# direct dep only so the LSP's background analysis worker can name the
# sender type it clones. Keep version-compatible with lsp-server's.
crossbeam-channel = "0.5"
[build-dependencies]
# (none yet)
# Site archive generation (`roundhouse --site`). Excluded from the
# WASM build — archive writing is host-only.
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tar]
version = "0.4"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.flate2]
version = "1"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.zip]
version = "2"
default-features = false
features = ["deflate"]
# Build-time profile tuning. `target/debug/deps` had grown to 73G across
# 2.45M `.rcgu.o` files: macOS defaults dev builds to
# `split-debuginfo = "unpacked"`, which leaves per-codegen-unit object
# files in `deps/` for the debug map, and cargo never collects them. With
# one integration-test binary per `tests/*.rs` file (150+), each carrying
# full debuginfo, that accumulates fast and every fingerprint pass then pays
# lookups in a multi-million-entry directory.
#
# `debug = 1` keeps line tables — backtraces still carry file/line — but
# drops local-variable info, so an lldb session can't inspect locals.
# Raise back to 2 if you need to step through roundhouse itself.
[profile.dev]
debug = 1
# Dependencies are never stepped into; their debuginfo is pure cost.
[profile.dev.package."*"]
debug = false
# Hundreds of integration-test binaries repeatedly run the compiler pipeline.
# Light optimization reduces that work without the build cost of release mode.
# Keep file/line backtraces and the same debug assertions and overflow checks.
[profile.test]
opt-level = 1
debug = "line-tables-only"
debug-assertions = true
overflow-checks = true
[profile.test.package."*"]
debug = false
# The profile that 'dist' will build with
[profile.dist]
inherits = "release"
lto = "thin"