|
|
|
[workspace]
|
|
|
|
resolver = "2"
|
|
|
|
members = [
|
|
|
|
# CORE
|
|
|
|
"core/*",
|
|
|
|
|
|
|
|
# FFI
|
|
|
|
"ffi/*",
|
|
|
|
|
|
|
|
# TESTS
|
|
|
|
"tests/*",
|
|
|
|
|
|
|
|
# OTHERS
|
|
|
|
"examples",
|
|
|
|
"cli",
|
|
|
|
]
|
|
|
|
|
|
|
|
exclude = [
|
|
|
|
"tests/fuzz", # Does weird things on Windows tests
|
|
|
|
"tests/src" # Just a hack to have fuzz inside tests
|
|
|
|
]
|
|
|
|
|
|
|
|
[workspace.package]
|
|
|
|
edition = "2021"
|
|
|
|
version = "0.17.0"
|
|
|
|
rust-version = "1.74.0"
|
|
|
|
authors = ["boa-dev"]
|
|
|
|
repository = "https://github.com/boa-dev/boa"
|
|
|
|
license = "Unlicense OR MIT"
|
|
|
|
description = "Boa is a Javascript lexer, parser and compiler written in Rust. Currently, it has support for some of the language."
|
|
|
|
|
|
|
|
[workspace.dependencies]
|
|
|
|
|
|
|
|
# Repo Crates
|
|
|
|
boa_ast = { version = "~0.17.0", path = "core/ast" }
|
|
|
|
boa_engine = { version = "~0.17.0", path = "core/engine" }
|
|
|
|
boa_gc = { version = "~0.17.0", path = "core/gc" }
|
|
|
|
boa_icu_provider = { version = "~0.17.0", path = "core/icu_provider" }
|
|
|
|
boa_interner = { version = "~0.17.0", path = "core/interner" }
|
|
|
|
boa_macros = { version = "~0.17.0", path = "core/macros" }
|
|
|
|
boa_parser = { version = "~0.17.0", path = "core/parser" }
|
|
|
|
boa_profiler = { version = "~0.17.0", path = "core/profiler" }
|
|
|
|
boa_runtime = { version = "~0.17.0", path = "core/runtime" }
|
|
|
|
boa_temporal = { version = "~0.17.0", path = "core/temporal" }
|
|
|
|
|
|
|
|
# Shared deps
|
|
|
|
arbitrary = "1"
|
|
|
|
bitflags = "2.4.1"
|
|
|
|
chrono = { version = "0.4.31", default-features = false }
|
|
|
|
clap = "4.4.11"
|
|
|
|
colored = "2.0.4"
|
|
|
|
fast-float = "0.2.0"
|
|
|
|
hashbrown = { version = "0.14.3", default-features = false }
|
|
|
|
indexmap = { version = "2.1.0", default-features = false }
|
|
|
|
indoc = "2.0.4"
|
|
|
|
jemallocator = "0.5.4"
|
|
|
|
num-bigint = "0.4.4"
|
|
|
|
num-traits = "0.2.17"
|
|
|
|
once_cell = { version = "1.19.0", default-features = false }
|
|
|
|
phf = { version = "0.11.2", default-features = false }
|
|
|
|
pollster = "0.3.0"
|
|
|
|
regex = "1.10.2"
|
|
|
|
regress = "0.7.1"
|
|
|
|
rustc-hash = { version = "1.1.0", default-features = false }
|
|
|
|
serde_json = "1.0.108"
|
|
|
|
serde = "1.0.193"
|
|
|
|
static_assertions = "1.1.0"
|
|
|
|
textwrap = "0.16.0"
|
|
|
|
thin-vec = "0.2.13"
|
|
|
|
|
|
|
|
# ICU4X
|
|
|
|
|
|
|
|
icu_provider = { version = "~1.4.0", default-features = false }
|
|
|
|
icu_locid = { version = "~1.4.0", default-features = false }
|
|
|
|
icu_locid_transform = { version = "~1.4.0", default-features = false }
|
|
|
|
icu_datetime = { version = "~1.4.0", default-features = false }
|
|
|
|
icu_calendar = { version = "~1.4.0", default-features = false }
|
|
|
|
icu_collator = { version = "~1.4.0", default-features = false }
|
|
|
|
icu_plurals = { version = "~1.4.0", default-features = false }
|
|
|
|
icu_list = { version = "~1.4.0", default-features = false }
|
|
|
|
icu_casemap = { version = "~1.4.0", default-features = false }
|
|
|
|
icu_segmenter = { version = "~1.4.0", default-features = false }
|
|
|
|
icu_datagen = { version = "~1.4.0", default-features = false }
|
|
|
|
icu_provider_adapters = { version = "~1.4.0", default-features = false }
|
|
|
|
icu_provider_blob = { version = "~1.4.0", default-features = false }
|
|
|
|
icu_properties = { version = "~1.4.0", default-features = true }
|
|
|
|
icu_normalizer = { version = "~1.4.0", default-features = true }
|
|
|
|
writeable = "~0.5.4"
|
|
|
|
yoke = "~0.7.3"
|
|
|
|
zerofrom = "~0.1.3"
|
|
|
|
fixed_decimal = "~0.5.5"
|
|
|
|
|
|
|
|
[workspace.metadata.workspaces]
|
|
|
|
allow_branch = "main"
|
|
|
|
|
|
|
|
# The ci profile, designed to reduce size of target directory
|
|
|
|
[profile.ci]
|
|
|
|
inherits = "dev"
|
|
|
|
debug = false
|
|
|
|
incremental = false
|
|
|
|
|
|
|
|
# The release profile, used for `cargo build --release`.
|
|
|
|
[profile.release]
|
|
|
|
# Enables "fat" LTO, for faster release builds
|
|
|
|
lto = "fat"
|
|
|
|
# Makes sure that all code is compiled together, for LTO
|
|
|
|
codegen-units = 1
|
|
|
|
|
|
|
|
[profile.release-dbg]
|
|
|
|
inherits = "release"
|
|
|
|
debug = true
|
|
|
|
|
|
|
|
# The test profile, used for `cargo test`.
|
|
|
|
[profile.test]
|
|
|
|
# Enables thin local LTO and some optimizations.
|
|
|
|
opt-level = 1
|
|
|
|
|
|
|
|
# The benchmark profile, used for `cargo bench`.
|
|
|
|
[profile.bench]
|
|
|
|
# Enables "fat" LTO, for faster benchmark builds
|
|
|
|
lto = "fat"
|
|
|
|
# Makes sure that all code is compiled together, for LTO
|
|
|
|
codegen-units = 1
|
|
|
|
|
|
|
|
[workspace.lints.rust]
|
|
|
|
# rustc lint groups https://doc.rust-lang.org/rustc/lints/groups.html
|
|
|
|
warnings = "warn"
|
|
|
|
future_incompatible = "warn"
|
|
|
|
let_underscore = "warn"
|
|
|
|
nonstandard_style = "warn"
|
|
|
|
rust_2018_compatibility = "warn"
|
|
|
|
rust_2018_idioms = "warn"
|
|
|
|
rust_2021_compatibility = "warn"
|
|
|
|
unused = "warn"
|
|
|
|
|
|
|
|
# rustc allowed-by-default lints https://doc.rust-lang.org/rustc/lints/listing/allowed-by-default.html
|
|
|
|
missing_docs = "warn"
|
|
|
|
macro_use_extern_crate = "warn"
|
|
|
|
meta_variable_misuse = "warn"
|
|
|
|
missing_abi = "warn"
|
|
|
|
missing_copy_implementations = "warn"
|
|
|
|
missing_debug_implementations = "warn"
|
|
|
|
non_ascii_idents = "warn"
|
|
|
|
noop_method_call = "warn"
|
|
|
|
single_use_lifetimes = "warn"
|
|
|
|
trivial_casts = "warn"
|
|
|
|
trivial_numeric_casts = "warn"
|
|
|
|
unreachable_pub = "warn"
|
|
|
|
unsafe_op_in_unsafe_fn = "warn"
|
|
|
|
unused_crate_dependencies = "warn"
|
|
|
|
unused_import_braces = "warn"
|
|
|
|
unused_lifetimes = "warn"
|
|
|
|
unused_qualifications = "warn"
|
|
|
|
unused_tuple_struct_fields = "warn"
|
|
|
|
variant_size_differences = "warn"
|
|
|
|
|
|
|
|
[workspace.lints.rustdoc]
|
|
|
|
# rustdoc lints https://doc.rust-lang.org/rustdoc/lints.html
|
|
|
|
broken_intra_doc_links = "warn"
|
|
|
|
private_intra_doc_links = "warn"
|
|
|
|
missing_crate_level_docs = "warn"
|
|
|
|
private_doc_tests = "warn"
|
|
|
|
invalid_codeblock_attributes = "warn"
|
|
|
|
invalid_rust_codeblocks = "warn"
|
|
|
|
bare_urls = "warn"
|
|
|
|
|
|
|
|
[workspace.lints.clippy]
|
|
|
|
# clippy allowed by default
|
|
|
|
dbg_macro = "warn"
|
|
|
|
|
|
|
|
# clippy categories https://doc.rust-lang.org/clippy/
|
|
|
|
all = "warn"
|
|
|
|
correctness = "warn"
|
|
|
|
suspicious = "warn"
|
|
|
|
style = "warn"
|
|
|
|
complexity = "warn"
|
|
|
|
perf = "warn"
|
|
|
|
pedantic = "warn"
|