2020-03-06 01:45:48 +03:00
[ workspace ]
members = [
2023-03-07 06:47:57 +03:00
"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" ,
2023-09-09 13:55:55 +03:00
"crates/repl_ui" ,
2023-03-07 06:47:57 +03:00
"crates/repl_wasm" ,
"crates/repl_expect" ,
"crates/roc_std" ,
"crates/test_utils" ,
"crates/valgrind" ,
"crates/tracing" ,
2023-03-10 20:32:21 +03:00
"crates/utils/*" ,
2023-03-07 06:47:57 +03:00
"crates/docs" ,
"crates/docs_cli" ,
"crates/linker" ,
"crates/wasi-libc-sys" ,
"crates/wasm_module" ,
"crates/wasm_interp" ,
2022-08-20 23:14:59 +03:00
"crates/lang_srv" ,
2020-03-06 01:45:48 +03:00
]
2023-03-07 06:47:57 +03:00
2021-11-08 05:00:49 +03:00
exclude = [
2023-03-07 06:47:57 +03:00
"ci/benchmarks/bench-runner" ,
2023-09-19 17:14:27 +03:00
"ci/repl_basic_test" ,
2023-03-07 06:47:57 +03:00
# Examples sometimes have Rust hosts in their platforms. The compiler should ignore those.
"crates/cli_testing_examples" ,
"examples" ,
2021-11-08 05:00:49 +03:00
]
2021-06-06 07:17:42 +03:00
# 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"
2020-03-31 02:31:42 +03:00
2023-03-07 03:36:18 +03:00
[ workspace . package ]
authors = [ "The Roc Contributors" ]
edition = "2021"
license = "UPL-1.0"
repository = "https://github.com/roc-lang/roc"
version = "0.0.1"
2022-11-13 17:00:48 +03:00
[ 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.
2023-09-21 23:12:48 +03:00
# 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" ] }
2022-11-13 17:00:48 +03:00
2023-03-10 17:31:46 +03:00
arrayvec = "0.7.2" # update roc_std/Cargo.toml on change
2023-03-21 21:07:47 +03:00
backtrace = "0.3.67"
2023-03-07 06:47:57 +03:00
base64-url = "1.4.13"
2022-11-13 17:16:52 +03:00
bincode = "1.3.3"
2023-03-07 06:47:57 +03:00
bitflags = "1.3.2"
2022-11-13 17:16:52 +03:00
bitvec = "1.0.1"
2023-03-07 23:39:43 +03:00
blake3 = "1.3.3"
2023-03-07 06:47:57 +03:00
brotli = "3.3.4" # used for decompressing tarballs over HTTPS, if the server supports brotli
2023-03-07 23:39:43 +03:00
bumpalo = { version = "3.12.0" , features = [ "collections" ] }
bytemuck = { version = "1.13.1" , features = [ "derive" ] }
2023-03-07 01:10:23 +03:00
capstone = { version = "0.11.0" , default-features = false }
2023-03-07 06:47:57 +03:00
cgmath = "0.18.0"
2023-07-16 23:01:00 +03:00
chrono = "0.4.26"
2023-05-17 17:34:06 +03:00
clap = { version = "4.2.7" , default-features = false , features = [ "std" , "color" , "suggestions" , "help" , "usage" , "error-context" ] }
2023-03-07 06:47:57 +03:00
colored = "2.0.0"
console_error_panic_hook = "0.1.7"
2023-03-07 23:39:43 +03:00
const_format = { version = "0.2.30" , features = [ "const_generics" ] }
copypasta = "0.8.2"
2023-04-26 17:29:02 +03:00
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" }
2022-11-13 17:16:52 +03:00
crossbeam = "0.8.2"
2023-03-07 23:39:43 +03:00
dircpy = "0.3.14"
2022-11-13 17:16:52 +03:00
distance = "0.4.0"
encode_unicode = "1.0.0"
2023-03-07 18:34:20 +03:00
errno = "0.3.0"
2023-03-07 23:39:43 +03:00
flate2 = "1.0.25"
2022-11-13 17:16:52 +03:00
fnv = "1.0.7"
2023-03-07 23:39:43 +03:00
fs_extra = "1.3.0"
futures = "0.3.26"
glyph_brush = "0.7.7"
2023-12-30 18:16:22 +03:00
hashbrown = { version = "0.14.3" }
2023-03-07 23:39:43 +03:00
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"
2023-12-30 18:16:22 +03:00
indexmap = "2.1.0"
2023-03-07 23:39:43 +03:00
indoc = "1.0.9"
insta = "1.28.0"
js-sys = "0.3.61"
2022-11-13 17:16:52 +03:00
lazy_static = "1.4.0"
2023-03-10 17:31:46 +03:00
libc = "0.2.139" # update roc_std/Cargo.toml on change
2023-03-07 23:53:45 +03:00
libfuzzer-sys = "0.4"
2023-03-07 23:39:43 +03:00
libloading = "0.7.4"
2023-03-31 20:47:13 +03:00
libtest-mimic = "0.6.0"
2023-03-07 23:39:43 +03:00
log = "0.4.17"
2022-11-13 17:16:52 +03:00
mach_object = "0.1"
maplit = "1.0.2"
2023-03-07 23:39:43 +03:00
memmap2 = "0.5.10"
mimalloc = { version = "0.1.34" , default-features = false }
nonempty = "0.8.1"
2023-12-30 18:16:22 +03:00
object = { version = "0.32.2" , features = [ "read" , "write" ] }
2023-03-07 23:39:43 +03:00
packed_struct = "0.10.1"
2023-03-07 23:53:45 +03:00
page_size = "0.5.0"
2023-03-07 06:47:57 +03:00
palette = "0.6.1"
2022-11-13 17:16:52 +03:00
parking_lot = "0.12"
peg = "0.8.1"
2023-03-07 23:53:45 +03:00
perfcnt = "0.8.0"
2023-03-07 23:39:43 +03:00
pest = "2.5.6"
pest_derive = "2.5.6"
2023-03-10 17:31:46 +03:00
pretty_assertions = "1.3.0" # update roc_std/Cargo.toml on change
2023-10-15 21:09:05 +03:00
proc-macro2 = "1.0.63"
2023-03-07 23:39:43 +03:00
proptest = "1.1.0"
2023-03-07 06:47:57 +03:00
pulldown-cmark = { version = "0.9.2" , default-features = false }
2023-03-10 17:31:46 +03:00
quickcheck = "1.0.3" # update roc_std/Cargo.toml on change
quickcheck_macros = "1.0.0" # update roc_std/Cargo.toml on change
2023-03-07 23:39:43 +03:00
quote = "1.0.23"
rand = "0.8.5"
regex = "1.7.1"
remove_dir_all = "0.8.1"
2023-12-30 18:16:22 +03:00
reqwest = { version = "0.11.23" , default-features = false , features = [ "blocking" , "rustls-tls" ] } # default-features=false removes libopenssl as a dependency on Linux, which might not be available!
2023-03-07 23:53:45 +03:00
rlimit = "0.9.1"
2023-03-07 06:47:57 +03:00
rustyline = { git = "https://github.com/roc-lang/rustyline" , rev = "e74333c" }
rustyline-derive = { git = "https://github.com/roc-lang/rustyline" , rev = "e74333c" }
2023-07-16 20:52:04 +03:00
schemars = "0.8.12"
2023-03-10 17:31:46 +03:00
serde = { version = "1.0.153" , features = [ "derive" ] } # update roc_std/Cargo.toml on change
2023-03-07 23:53:45 +03:00
serde-xml-rs = "0.6.0"
2023-03-10 17:31:46 +03:00
serde_json = "1.0.94" # update roc_std/Cargo.toml on change
2023-03-07 06:47:57 +03:00
serial_test = "1.0.0"
2023-03-07 23:39:43 +03:00
signal-hook = "0.3.15"
2023-03-31 02:13:52 +03:00
smallvec = { version = "1.10.0" , features = [ "const_generics" , "const_new" ] }
2023-03-07 23:39:43 +03:00
snafu = { version = "0.7.4" , features = [ "backtraces" ] }
2023-03-10 17:31:46 +03:00
static_assertions = "1.1.0" # update roc_std/Cargo.toml on change
2022-11-13 17:16:52 +03:00
strip-ansi-escapes = "0.1.1"
strum = { version = "0.24.1" , features = [ "derive" ] }
2023-03-07 23:39:43 +03:00
strum_macros = "0.24.3"
syn = { version = "1.0.109" , features = [ "full" , "extra-traits" ] }
2023-03-07 06:47:57 +03:00
tar = "0.4.38"
2023-03-07 23:39:43 +03:00
target-lexicon = "0.12.6"
2023-03-07 19:11:23 +03:00
tempfile = "=3.2.0"
2023-03-07 06:29:09 +03:00
threadpool = "1.8.1"
2023-03-07 23:39:43 +03:00
tracing = { version = "0.1.37" , features = [ "release_max_level_off" ] }
2023-03-07 06:29:09 +03:00
tracing-appender = "0.2.2"
2023-03-07 06:47:57 +03:00
tracing-subscriber = { version = "0.3.16" , features = [ "env-filter" ] }
2023-03-07 23:39:43 +03:00
unicode-segmentation = "1.10.1"
uuid = { version = "1.3.0" , features = [ "v4" ] }
2022-11-13 17:16:52 +03:00
walkdir = "2.3.2"
2023-03-07 23:39:43 +03:00
wasm-bindgen = "0.2.84"
wasm-bindgen-futures = "0.4.34"
2023-03-07 06:47:57 +03:00
wgpu = "0.12.0"
wgpu_glyph = "0.16.0"
winapi = { version = "0.3.9" , features = [ "memoryapi" ] }
2023-03-07 23:39:43 +03:00
winit = "0.26.1"
2022-11-13 17:16:52 +03:00
wyhash = "0.5.0"
2020-04-02 04:16:14 +03:00
# Optimizations based on https://deterministic.space/high-performance-rust.html
[ profile . release ]
codegen-units = 1
2021-03-06 08:13:46 +03:00
# debug = true # enable when profiling
2023-10-17 21:00:58 +03:00
[ profile . dev ]
debug = "line-tables-only"
2021-02-20 22:06:46 +03:00
[ profile . bench ]
codegen-units = 1
2023-03-07 06:47:57 +03:00
lto = "thin"
2023-01-10 01:28:00 +03:00
[ profile . release-with-debug ]
2023-03-07 06:47:57 +03:00
inherits = "release"
2023-10-17 21:00:58 +03:00
debug = true
2023-03-10 23:00:17 +03:00
[ profile . release-with-lto ]
inherits = "release"
2023-10-17 21:00:58 +03:00
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