mirror of
https://github.com/roc-lang/roc.git
synced 2024-11-05 01:58:58 +03:00
200 lines
6.8 KiB
TOML
200 lines
6.8 KiB
TOML
[workspace]
|
|
members = [
|
|
"crates/compiler/*",
|
|
"crates/vendor/*",
|
|
"crates/glue",
|
|
"crates/cli",
|
|
"crates/cli_utils",
|
|
"crates/highlight",
|
|
"crates/error_macros",
|
|
"crates/reporting",
|
|
"crates/packaging",
|
|
"crates/repl_cli",
|
|
"crates/repl_eval",
|
|
"crates/repl_test",
|
|
"crates/repl_ui",
|
|
"crates/repl_wasm",
|
|
"crates/repl_expect",
|
|
"crates/roc_std",
|
|
"crates/test_utils",
|
|
"crates/valgrind",
|
|
"crates/tracing",
|
|
"crates/utils/*",
|
|
"crates/docs",
|
|
"crates/docs_cli",
|
|
"crates/linker",
|
|
"crates/wasi-libc-sys",
|
|
"crates/wasm_module",
|
|
"crates/wasm_interp",
|
|
"crates/lang_srv",
|
|
]
|
|
|
|
exclude = [
|
|
"ci/benchmarks/bench-runner",
|
|
"ci/repl_basic_test",
|
|
# Examples sometimes have Rust hosts in their platforms. The compiler should ignore those.
|
|
"crates/cli_testing_examples",
|
|
"examples",
|
|
]
|
|
# Needed to be able to run `cargo run -p roc_cli --no-default-features` -
|
|
# see www/build.sh for more.
|
|
#
|
|
# Without the `-p` flag, cargo ignores `--no-default-features` when you have a
|
|
# workspace, and without `resolver = "2"` here, you can't use `-p` like this.
|
|
resolver = "2"
|
|
|
|
[workspace.package]
|
|
authors = ["The Roc Contributors"]
|
|
edition = "2021"
|
|
license = "UPL-1.0"
|
|
repository = "https://github.com/roc-lang/roc"
|
|
version = "0.0.1"
|
|
|
|
[workspace.dependencies]
|
|
# NOTE: roc-lang/inkwell is a fork of TheDan64/inkwell which does not change anything.
|
|
#
|
|
# The reason for this fork is that the way Inkwell is designed, you have to use
|
|
# a particular branch (e.g. "llvm8-0") in Cargo.toml. That would be fine, except that
|
|
# breaking changes get pushed directly to that branch, which breaks our build
|
|
# without warning.
|
|
#
|
|
# We tried referencing a specific rev on TheDan64/inkwell directly (instead of branch),
|
|
# but although that worked locally, it did not work on GitHub Actions. (After a few
|
|
# hours of investigation, gave up trying to figure out why.) So this is the workaround:
|
|
# having an immutable tag on the roc-lang/inkwell fork which points to
|
|
# a particular "release" of Inkwell.
|
|
#
|
|
# When we want to update Inkwell, we can sync up roc-lang/inkwell to the latest
|
|
# commit of TheDan64/inkwell, push a new tag which points to the latest commit,
|
|
# change the tag value in this Cargo.toml to point to that tag, and `cargo update`.
|
|
# This way, GitHub Actions works and nobody's builds get broken.
|
|
# TODO: Switch this back to roc-lang/inkwell once it is updated
|
|
inkwell = { git = "https://github.com/roc-lang/inkwell", branch = "inkwell-llvm-16", features = ["llvm16-0"] }
|
|
|
|
arrayvec = "0.7.2" # update roc_std/Cargo.toml on change
|
|
backtrace = "0.3.67"
|
|
base64-url = "1.4.13"
|
|
bincode = "1.3.3"
|
|
bitflags = "1.3.2"
|
|
bitvec = "1.0.1"
|
|
blake3 = "1.3.3"
|
|
brotli = "3.3.4" # used for decompressing tarballs over HTTPS, if the server supports brotli
|
|
bumpalo = { version = "3.12.0", features = ["collections"] }
|
|
bytemuck = { version = "1.13.1", features = ["derive"] }
|
|
capstone = { version = "0.11.0", default-features = false }
|
|
cgmath = "0.18.0"
|
|
chrono = "0.4.26"
|
|
clap = { version = "4.2.7", default-features = false, features = ["std", "color", "suggestions", "help", "usage", "error-context"] }
|
|
colored = "2.0.0"
|
|
console_error_panic_hook = "0.1.7"
|
|
const_format = { version = "0.2.30", features = ["const_generics"] }
|
|
copypasta = "0.8.2"
|
|
criterion = { git = "https://github.com/Anton-4/criterion.rs", features = ["html_reports"], rev = "30ea0c5" }
|
|
criterion-perf-events = { git = "https://github.com/Anton-4/criterion-perf-events", rev = "0f38c3e" }
|
|
crossbeam = "0.8.2"
|
|
dircpy = "0.3.14"
|
|
distance = "0.4.0"
|
|
encode_unicode = "1.0.0"
|
|
errno = "0.3.0"
|
|
flate2 = "1.0.25"
|
|
fnv = "1.0.7"
|
|
fs_extra = "1.3.0"
|
|
futures = "0.3.26"
|
|
glyph_brush = "0.7.7"
|
|
hashbrown = { version = "0.13.2", features = ["bumpalo"] }
|
|
iced-x86 = { version = "1.18.0", default-features = false, features = ["std", "decoder", "op_code_info", "instr_info"] }
|
|
im = "15.1.0"
|
|
im-rc = "15.1.0"
|
|
indexmap = "1.9.2"
|
|
indoc = "1.0.9"
|
|
insta = "1.28.0"
|
|
js-sys = "0.3.61"
|
|
lazy_static = "1.4.0"
|
|
libc = "0.2.139" # update roc_std/Cargo.toml on change
|
|
libfuzzer-sys = "0.4"
|
|
libloading = "0.7.4"
|
|
libtest-mimic = "0.6.0"
|
|
log = "0.4.17"
|
|
mach_object = "0.1"
|
|
maplit = "1.0.2"
|
|
memmap2 = "0.5.10"
|
|
mimalloc = { version = "0.1.34", default-features = false }
|
|
nonempty = "0.8.1"
|
|
object = { version = "0.30.3", features = ["read", "write"] }
|
|
packed_struct = "0.10.1"
|
|
page_size = "0.5.0"
|
|
palette = "0.6.1"
|
|
parking_lot = "0.12"
|
|
peg = "0.8.1"
|
|
perfcnt = "0.8.0"
|
|
pest = "2.5.6"
|
|
pest_derive = "2.5.6"
|
|
pretty_assertions = "1.3.0" # update roc_std/Cargo.toml on change
|
|
proc-macro2 = "1.0.63"
|
|
proptest = "1.1.0"
|
|
pulldown-cmark = { version = "0.9.2", default-features = false }
|
|
quickcheck = "1.0.3" # update roc_std/Cargo.toml on change
|
|
quickcheck_macros = "1.0.0" # update roc_std/Cargo.toml on change
|
|
quote = "1.0.23"
|
|
rand = "0.8.5"
|
|
regex = "1.7.1"
|
|
remove_dir_all = "0.8.1"
|
|
reqwest = { version = "0.11.20", default-features = false, features = ["blocking", "rustls-tls"] } # default-features=false removes libopenssl as a dependency on Linux, which might not be available!
|
|
rlimit = "0.9.1"
|
|
rustyline = { git = "https://github.com/roc-lang/rustyline", rev = "e74333c" }
|
|
rustyline-derive = { git = "https://github.com/roc-lang/rustyline", rev = "e74333c" }
|
|
schemars = "0.8.12"
|
|
serde = { version = "1.0.153", features = ["derive"] } # update roc_std/Cargo.toml on change
|
|
serde-xml-rs = "0.6.0"
|
|
serde_json = "1.0.94" # update roc_std/Cargo.toml on change
|
|
serial_test = "1.0.0"
|
|
signal-hook = "0.3.15"
|
|
smallvec = { version = "1.10.0", features = ["const_generics", "const_new"] }
|
|
snafu = { version = "0.7.4", features = ["backtraces"] }
|
|
static_assertions = "1.1.0" # update roc_std/Cargo.toml on change
|
|
strip-ansi-escapes = "0.1.1"
|
|
strum = { version = "0.24.1", features = ["derive"] }
|
|
strum_macros = "0.24.3"
|
|
syn = { version = "1.0.109", features = ["full", "extra-traits"] }
|
|
tar = "0.4.38"
|
|
target-lexicon = "0.12.6"
|
|
tempfile = "=3.2.0"
|
|
threadpool = "1.8.1"
|
|
tracing = { version = "0.1.37", features = ["release_max_level_off"] }
|
|
tracing-appender = "0.2.2"
|
|
tracing-subscriber = { version = "0.3.16", features = ["env-filter"] }
|
|
unicode-segmentation = "1.10.1"
|
|
uuid = { version = "1.3.0", features = ["v4"] }
|
|
walkdir = "2.3.2"
|
|
wasm-bindgen = "0.2.84"
|
|
wasm-bindgen-futures = "0.4.34"
|
|
wgpu = "0.12.0"
|
|
wgpu_glyph = "0.16.0"
|
|
winapi = { version = "0.3.9", features = ["memoryapi"] }
|
|
winit = "0.26.1"
|
|
wyhash = "0.5.0"
|
|
|
|
# Optimizations based on https://deterministic.space/high-performance-rust.html
|
|
[profile.release]
|
|
codegen-units = 1
|
|
# debug = true # enable when profiling
|
|
|
|
[profile.dev]
|
|
debug = "line-tables-only"
|
|
|
|
[profile.bench]
|
|
codegen-units = 1
|
|
lto = "thin"
|
|
|
|
[profile.release-with-debug]
|
|
inherits = "release"
|
|
debug = true
|
|
|
|
[profile.release-with-lto]
|
|
inherits = "release"
|
|
lto = "thin" # TODO: We could consider full here since this is only used for packaged release on github.
|
|
|
|
[profile.debug-full]
|
|
inherits = "dev"
|
|
debug = true
|