mirror of
https://github.com/danbulant/oxc
synced 2026-05-20 12:48:38 +00:00
## [0.32.0] - 2024-10-19 -c0e9d7ecodegen: [**BREAKING**] `Codegen::into_source_text` consume `Codegen` (#6539) (overlookmotel) -782f0a7codegen: [**BREAKING**] Rename `print_char` method to `print_ascii_byte` (#6512) (overlookmotel) -91c87ddcodegen: [**BREAKING**] Remove `Codegen::enableSourceMap` API (#6452) (Boshen) -7645e5ccodegen: [**BREAKING**] Remove CommentOptions API (#6451) (Boshen) -5200960oxc: [**BREAKING**] Remove passing `Trivias` around (#6446) (Boshen) -2808973ast: [**BREAKING**] Add `Program::comments` (#6445) (Boshen) ### Features -5ee1ef3allocator: Add `Vec::into_boxed_slice` (#6195) (DonIsaac) -d9718adast_tools: Support `#[scope(exit_before)]` (#6350) (DonIsaac) -e5ed6a5codegen: Print negative numbers (#6624) (Boshen) -15c04e5ecmascript: Add feature flag for constant evaluation (Boshen) -d11770decmascript: Add `StringToNumber` (#6576) (Boshen) -e561880ecmascript: Add constant_evaluation and side_effects code (#6550) (Boshen) -3556062ecmascript: Add `ConstantEvaluation` (#6549) (Boshen) -39c2e66ecmascript: Add `ToBigInt` and `StringToBigInt` (#6508) (Boshen) -6f22538ecmascript: Add `ToBoolean`, `ToNumber`, `ToString` (#6502) (Boshen) -15dfc1disolated-declarations: Impl `Default` for options (#6372) (DonIsaac) -071e564minifier: Finish implementing folding object expressions (#6586) (camc314) -590925aminifier: Finish implementing folding array expressions (#6575) (camc314) -ef237cfminifier: Complete implementation of statement fusion (#6566) (camc314) -97c8a36minifier: Implement `collapse-variable-declarations` (#6464) (dalaoshu) -096e590minifier: Implement folding `charAt` string fns (#6436) (camc314) -e5a6f5dminifier: Implement converting template literals to strings (#6486) (camc314) -14d0590minifier: Implement folding of simple function calls (`Boolean`) (#6484) (camc314) -7fbc7b6minifier: Implement folding of simple function calls (`String`) (#6483) (camc314) -a4f57a4minifier: Implement folding `indexOf` and `lastIndexOf` string fns (#6435) (camc314) -3677ef8minifier: Dce ExpressionStatements with no side effect (#6457) (7086cmd) -06ea121minifier: Fold for statement (#6450) (7086cmd) -a9544aeminifier: Partially implement minification for some known string methods (#6424) (camc314) -9dc4ee9minifier: Implement block stmt support for `StatementFusion` (#6422) (camc314) -ebbf77dminifier: Implement calculations for NumberValue (#6419) (7086cmd) -97ac179minifier: Arithmetic operations for infinity. (#6332) (7086cmd) -13b0b0bminifier: Fold literal object constructors on window (#6379) (dalaoshu) -e310e52parser: Generate `Serialize` impls in ast_tools (#6404) (ottomated) -58467a5parser: Better handling of invalid modifiers (#6482) (DonIsaac) -8ea6b72parser: Better errors for reserved words used as identifier names (#6478) (DonIsaac) -b5b0af9regular_expression: Support RegExp Modifiers (#6410) (leaysgur) -a01a5dftransformer: Pass TransformerCtx to async-to-generator plugin (#6633) (Dunqing) -a9260cftransformer: `async-to-generator` plugin. (#5590) (Ethan Goh) -8fe1b0atransformer: Support helper loader (#6162) (Dunqing) -ab51c2atransformer: Support `DefaultImport` in `ModuleImports` (#6434) (Dunqing) -a3dea9ctransformer/async-to-generator: Handle arrow-function correctly (#6640) (Dunqing) -41c8675transformer/object-rest-spread: Using helper loader (#6449) (Dunqing) ### Bug Fixes -ba385fccodegen: Panic occurred when printing the comment of the right parenthesis (#6593) (Dunqing) -02bfbfecodegen: Preserve parenthesis for `ChainExpression` (#6430) (Dunqing) -2ade16ecodegen: Invalid codegen when `in` inside bin expr in or loop (#6431) (camc314) -6896efccodegen: Fix `in` in sequence expr in for loops (#6428) (camc314) -7cc05f1data_structures: Fix compilation failure on older Rust versions (#6526) (overlookmotel) -2ce3e5fidentifier: Add `ZWSP` to `is_irregular_whitespace` (#6662) (Boshen) -2673397isolated_declarations: Fix potential memory leak (#6622) (overlookmotel) -389d261minifier: `~~` operator should only work on numbers (#6598) (Boshen) -16bea12minifier: Use `to_js_string()` instead of `fs64::to_string` (#6597) (Boshen) -a71e8a0minifier: Preserve init variable declarations when removing `for` statements during DCE (#6551) (magic-akari) -721cf0fparser: Should be treated comments where after `(` as leading comments of next token (#6588) (Dunqing) -b1bf12cparser: Do not parse `as` and `satisfies` expression in javascript (#6442) (Boshen) -9f9057bregular_expression: Fixed control Y regular expression (#6524) (Tapan Prakash) -c822b48regular_expression: Fix CharacterClass negative codegen (#6415) (leaysgur) -384d5beregular_expression: Flatten Spans on regex AST nodes (#6396) (ottomated) -834ee2asemantic: `TSConditionalType` scope enter/exit locations (#6351) (DonIsaac) -1d3d256transformer: Correctly trim JSX (#6639) (magic-akari) -c6f2b5ftransformer: `HelperLoader` common transform: do not assume `babelHelpers` is global (#6569) (overlookmotel) -85d93edtransformer: Arrow function transform: correctly resolve `this` in class accessor properties (#6386) (overlookmotel) ### Performance -77f3a1acodegen: Check last char with byte methods (#6509) (overlookmotel) -18b68ffcodegen: Optimize `CodeBuffer::print_ascii_byte` (#6516) (overlookmotel) -4d8bc8cparser: Precompute `is_typescript` (#6443) (Boshen) -7c20056regex: Reduce string allocations in `Display` impls (#6528) (DonIsaac) -f70a413transformer: Object spread transform: do not lookup `Object` binding if not needed (#6570) (overlookmotel) -ac77c87traverse: Optimize `TraverseScoping::generate_uid_name` (#6663) (overlookmotel) ### Documentation -9f555d7allocator: Clarify docs for `Box` (#6625) (overlookmotel) -06e75b0allocator: Enable lint warnings on missing docs, and add missing doc comments (#6613) (DonIsaac) -7e909a7codegen: Fix example for `CodeBuffer::print_ascii_bytes` (#6535) (overlookmotel) -235d357codegen: Improve doc comments for `CodeBuffer` (#6511) (overlookmotel) -c8fa2ebcodegen: Correct and reformat doc comments for `CodeBuffer` (#6504) (overlookmotel) -40d1ee4codegen: Fix and reformat `CodeBuffer` examples (#6499) (overlookmotel) -de22b81data-structures: Enable lint warnings on missing docs, and add missing doc comments (#6612) (DonIsaac) -9e9fa9espan: Enable lint warnings on missing docs (#6617) (overlookmotel) -6a194f9span: Document validity of `ModuleKind::Unambiguous` (#6423) (Boshen) -335b7f2syntax: Enable lint warnings on missing docs, and add a lot of documentation (#6611) (DonIsaac) -f3451d7transformer/async-to-generator: Remove empty lines from doc comment (#6642) (overlookmotel) -448388atransformer/module_imports: Update outdated comments (#6574) (Dunqing) ### Refactor -073b02aast: Type params field before params in TS function declaration types (#6391) (overlookmotel) -458f8f3ast_tools: Consistent comments on `AstBuilder` methods (#6664) (overlookmotel) -51fc63dcodegen: Rename `CodeBuffer::print_bytes_unchecked` method (#6517) (overlookmotel) -05a2ebdcodegen: Reorder dependencies in `Cargo.toml` (#6514) (overlookmotel) -e7f3e28codegen: Rename var in `CodeBuffer` (#6510) (overlookmotel) -1bbd383codegen: Rename `CodeBuffer::print_ascii_bytes` method (#6507) (overlookmotel) -cd9fe9ecodegen: Rename vars in `CodeBuffer` methods (#6506) (overlookmotel) -fc536a5codegen: Inline `CodeBuffer` methods (#6501) (overlookmotel) -7420620codegen: Add `CodeBuffer::as_bytes` method (#6498) (overlookmotel) -8ae174bcodegen: Rename `CodeBuffer::print_byte_unchecked` method (#6496) (overlookmotel) -5843e01codegen: Shorten `CodeBuffer::take_source_text` (#6495) (overlookmotel) -951def6codegen: Clarify safety comments in `CodeBuffer` (#6494) (overlookmotel) -84a51eecodegen: Rename vars in `CodeBuffer` (#6493) (overlookmotel) -05bd616codegen: Add line break (#6492) (overlookmotel) -204bf55codegen: Add `CodeBuffer` to fix soundness hole (#6148) (DonIsaac) -702b574codegen: Only print necessary parentheses in TSAsExpression (#6429) (Dunqing) -aa6ba24ecmascript: Improve string to number conversion (#6577) (magic-akari) -6d041fbecmascript: Remove `NumberValue` (#6519) (Boshen) -856cab5ecmascript: Move ToInt32 from `oxc_syntax` to `oxc_ecmascript` (#6471) (Boshen) -1ba2a24ecmascript: Remove `HasProto` which is not part of the spec (#6470) (Boshen) -a504f96isolated-declarations: Mark return struct as non exhaustive (#6374) (DonIsaac) -f4cdc56minifier: Use constant folding unary expression from `oxc_ecmascript` (#6647) (Boshen) -67ad08aminifier: Unify `ValueType` (#6545) (Boshen) -bbca743minifier: Move string methods to `oxc_ecmascript` (#6472) (Boshen) -702c049minifier: Move compress block to dce (#6468) (7086cmd) -46a38c6minifier: Remove allow `clippy::unused_self` (#6441) (Boshen) -994b60bminifier: Use builtin get_number_value. (#6335) (7086cmd) -435a89coxc: Remove useless `allocator.alloc(program)` calls (#6571) (Boshen) -c45723bparser: Fix typo in var name (#6500) (overlookmotel) -1a90ec4rust: Backport v1.82.0 changes to main branch first (#6690) (Boshen) -3faee66span: Remove unused `ContentHash::content_hash_slice` (#6609) (DonIsaac) -9281234transformer: Shorten imports (#6643) (overlookmotel) -3af0840transformer: `HelperLoader`: add import immediately (#6601) (overlookmotel) -f81aa7ftransformer: `HelperLoader` common transform: comments (#6599) (overlookmotel) -679cc68transformer: `HelperLoader` common transform: construct string directly in arena (#6596) (overlookmotel) -c346ebbtransformer: `HelperLoader` common transform: `Helper` enum (#6595) (overlookmotel) -7a028b3transformer: Remove unnecessary `#![warn]` attr (#6585) (overlookmotel) -8c6afe0transformer: Reorder imports (#6582) (overlookmotel) -779ff46transformer: `HelperLoader` common transform: `Helper` struct (#6568) (overlookmotel) -bc24a24transformer: `HelperLoader` common transform: use hashmap `Entry` API (#6567) (overlookmotel) -9f02fc7transformer: `HelperLoader` common transform: re-order fields (#6565) (overlookmotel) -50ecadetransformer: `HelperLoader` common transform: remove `Rc`s (#6564) (overlookmotel) -1c1e9fctransformer: `HelperLoader` common transform: reorder methods (#6563) (overlookmotel) -c9054c8transformer: Rename `ImportKind` to `Import` (#6561) (overlookmotel) -9542c4etransformer: Add more specific methods to `ModuleImportsStore` (#6560) (overlookmotel) -7e57a1dtransformer: `ImportKind` use `BoundIdentifier` (#6559) (overlookmotel) -602df9dtransformer: Re-order fields of `Common` and `TransformCtx` (#6562) (overlookmotel) -390abcatransformer/async-to-generator: Use `helper_call_expr` (#6634) (Dunqing) -2ff917ftransformer/async-to-generator: Move internal methods below entry points (#6632) (Dunqing) ### Styling -fb916b2regular_expression: Re-order dependencies in `Cargo.toml` (#6672) (overlookmotel) -9d43a11transformer: Re-order dependencies (#6659) (overlookmotel) ### Testing -e7c89a5codegen: Uncomment passed tests that are related to trailing comments (#6589) (Dunqing) -d816b0bcodegen: Add test for `CodeBuffer::print_byte_unchecked` (#6497) (overlookmotel) -c5deb32minifier: Port the rest of tests (#6420) (7086cmd) -e59da61minifier: Add all test cases for `collapse_variable_declarations` (#6421) (dalaoshu) -73d6a4aminifier: Port all replace_known_methods tests. (#6418) (7086cmd) --------- Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
249 lines
8.6 KiB
TOML
249 lines
8.6 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = ["apps/*", "crates/*", "napi/*", "tasks/*", "wasm/*"]
|
|
exclude = ["tasks/lint_rules"]
|
|
|
|
[workspace.package]
|
|
authors = ["Boshen <boshenc@gmail.com>", "Oxc contributors"]
|
|
categories = ["compilers", "development-tools", "web-programming"]
|
|
edition = "2021"
|
|
homepage = "https://oxc.rs"
|
|
keywords = ["JavaScript", "TypeScript", "linter", "minifier", "parser"]
|
|
license = "MIT"
|
|
repository = "https://github.com/oxc-project/oxc"
|
|
rust-version = "1.76" # Support last 6 minor versions.
|
|
description = "A collection of JavaScript tools written in Rust."
|
|
|
|
# <https://doc.rust-lang.org/rustc/lints/listing/allowed-by-default.html>
|
|
[workspace.lints.rust]
|
|
absolute_paths_not_starting_with_crate = "warn"
|
|
non_ascii_idents = "warn"
|
|
unit-bindings = "warn"
|
|
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(coverage)', 'cfg(coverage_nightly)'] }
|
|
|
|
[workspace.lints.clippy]
|
|
all = { level = "warn", priority = -1 }
|
|
empty_docs = { level = "allow", priority = 1 } # From `Tsify`
|
|
# restriction
|
|
dbg_macro = "warn"
|
|
todo = "warn"
|
|
unimplemented = "warn"
|
|
print_stdout = "warn" # Must be opt-in
|
|
print_stderr = "warn" # Must be opt-in
|
|
allow_attributes = "warn"
|
|
# I like the explicitness of this rule as it removes confusion around `clone`.
|
|
# This increases readability, avoids `clone` mindlessly and heap allocating by accident.
|
|
clone_on_ref_ptr = "warn"
|
|
# These two are mutually exclusive, I like `mod.rs` files for better fuzzy searches on module entries.
|
|
self_named_module_files = "warn" # "-Wclippy::mod_module_files"
|
|
empty_drop = "warn"
|
|
empty_structs_with_brackets = "warn"
|
|
exit = "warn"
|
|
filetype_is_file = "warn"
|
|
get_unwrap = "warn"
|
|
impl_trait_in_params = "warn"
|
|
rc_buffer = "warn"
|
|
rc_mutex = "warn"
|
|
rest_pat_in_fully_bound_structs = "warn"
|
|
unnecessary_safety_comment = "warn"
|
|
undocumented_unsafe_blocks = "warn"
|
|
infinite_loop = "warn"
|
|
# I want to write the best Rust code so pedantic is enabled.
|
|
# We should only disable rules globally if they are either false positives, chaotic, or does not make sense.
|
|
pedantic = { level = "warn", priority = -1 }
|
|
# Allowed rules
|
|
# pedantic
|
|
# This rule is too pedantic, I don't want to force this because naming things are hard.
|
|
module_name_repetitions = "allow"
|
|
# All triggers are mostly ignored in our codebase, so this is ignored globally.
|
|
struct_excessive_bools = "allow"
|
|
too_many_lines = "allow"
|
|
# `#[must_use]` is creating too much noise for this codebase, it does not add much value
|
|
# except nagging the programmer to add a `#[must_use]` after clippy has been run.
|
|
# Having `#[must_use]` everywhere also hinders readability.
|
|
must_use_candidate = "allow"
|
|
# used_underscore_binding= "allow"
|
|
doc_markdown = "allow"
|
|
# nursery
|
|
# `const` functions do not make sense for our project because this is not a `const` library.
|
|
# This rule also confuses newcomers and forces them to add `const` blindlessly without any reason.
|
|
missing_const_for_fn = "allow"
|
|
# cargo
|
|
cargo = { level = "warn", priority = -1 }
|
|
multiple_crate_versions = "allow"
|
|
cargo_common_metadata = "allow" # FIXME
|
|
doc_lazy_continuation = "allow" # FIXME
|
|
|
|
[workspace.dependencies]
|
|
# publish = true
|
|
oxc = { version = "0.32.0", path = "crates/oxc" }
|
|
oxc_allocator = { version = "0.32.0", path = "crates/oxc_allocator" }
|
|
oxc_ast = { version = "0.32.0", path = "crates/oxc_ast" }
|
|
oxc_ast_macros = { version = "0.32.0", path = "crates/oxc_ast_macros" }
|
|
oxc_cfg = { version = "0.32.0", path = "crates/oxc_cfg" }
|
|
oxc_codegen = { version = "0.32.0", path = "crates/oxc_codegen" }
|
|
oxc_data_structures = { version = "0.32.0", path = "crates/oxc_data_structures" }
|
|
oxc_diagnostics = { version = "0.32.0", path = "crates/oxc_diagnostics" }
|
|
oxc_ecmascript = { version = "0.32.0", path = "crates/oxc_ecmascript" }
|
|
oxc_estree = { version = "0.32.0", path = "crates/oxc_estree" }
|
|
oxc_index = { version = "0.32.0", path = "crates/oxc_index" }
|
|
oxc_isolated_declarations = { version = "0.32.0", path = "crates/oxc_isolated_declarations" }
|
|
oxc_mangler = { version = "0.32.0", path = "crates/oxc_mangler" }
|
|
oxc_minifier = { version = "0.32.0", path = "crates/oxc_minifier" }
|
|
oxc_module_lexer = { version = "0.32.0", path = "crates/oxc_module_lexer" }
|
|
oxc_parser = { version = "0.32.0", path = "crates/oxc_parser" }
|
|
oxc_regular_expression = { version = "0.32.0", path = "crates/oxc_regular_expression" }
|
|
oxc_semantic = { version = "0.32.0", path = "crates/oxc_semantic" }
|
|
oxc_sourcemap = { version = "0.32.0", path = "crates/oxc_sourcemap" }
|
|
oxc_span = { version = "0.32.0", path = "crates/oxc_span" }
|
|
oxc_syntax = { version = "0.32.0", path = "crates/oxc_syntax" }
|
|
oxc_transform_napi = { version = "0.32.0", path = "napi/transform" }
|
|
oxc_transformer = { version = "0.32.0", path = "crates/oxc_transformer" }
|
|
oxc_traverse = { version = "0.32.0", path = "crates/oxc_traverse" }
|
|
|
|
# publish = false
|
|
oxc_linter = { path = "crates/oxc_linter" }
|
|
oxc_macros = { path = "crates/oxc_macros" }
|
|
oxc_prettier = { path = "crates/oxc_prettier" }
|
|
oxc_tasks_common = { path = "tasks/common" }
|
|
oxc_tasks_transform_checker = { path = "tasks/transform_checker" }
|
|
|
|
# Relaxed version so the user can decide which version to use.
|
|
napi = "3.0.0-alpha"
|
|
napi-build = "2.1.3"
|
|
napi-derive = "3.0.0-alpha"
|
|
|
|
# Relaxed version so the user can decide which version to use.
|
|
proc-macro2 = "1"
|
|
quote = "1"
|
|
syn = { version = "2", default-features = false }
|
|
unicode-id-start = "1"
|
|
|
|
aho-corasick = "1.1.3"
|
|
allocator-api2 = "0.2.18"
|
|
assert-unchecked = "0.1.2"
|
|
base64 = "0.22.1"
|
|
base64-simd = "0.8"
|
|
bitflags = "2.6.0"
|
|
bpaf = "0.9.15"
|
|
bumpalo = "3.16.0"
|
|
cfg-if = "1.0.0"
|
|
compact_str = "0.8.0"
|
|
console = "0.15.8"
|
|
console_error_panic_hook = "0.1.7"
|
|
convert_case = "0.6.0"
|
|
cow-utils = "0.1.3"
|
|
criterion2 = { version = "1.1.1", default-features = false }
|
|
daachorse = { version = "1.0.0" }
|
|
dashmap = "6.1.0"
|
|
encoding_rs = "0.8.34"
|
|
encoding_rs_io = "0.1.7"
|
|
env_logger = { version = "0.11.5", default-features = false }
|
|
flate2 = "1.0.34"
|
|
futures = "0.3.31"
|
|
glob = "0.3.1"
|
|
globset = "0.4.15"
|
|
handlebars = "6.1.0"
|
|
humansize = "2.1.3"
|
|
ignore = "0.4.23"
|
|
indexmap = "2.6.0"
|
|
insta = "1.40.0"
|
|
itertools = "0.13.0"
|
|
itoa = "1.0.11"
|
|
jemallocator = "0.5.4"
|
|
json-strip-comments = "1.0.4"
|
|
language-tags = "0.3.2"
|
|
lazy_static = "1.5.0"
|
|
log = "0.4.22"
|
|
markdown = "1.0.0-alpha.21"
|
|
memchr = "2.7.4"
|
|
memoffset = "0.9.1"
|
|
miette = { version = "7.2.0", features = ["fancy-no-syscall"] }
|
|
mimalloc = "0.1.43"
|
|
mime_guess = "2.0.5"
|
|
nonmax = "0.5.5"
|
|
num-bigint = "0.4.6"
|
|
num-traits = "0.2.19"
|
|
once_cell = "1.20.2"
|
|
owo-colors = "4.1.0"
|
|
oxc-browserslist = "1.0.3"
|
|
oxc_resolver = "1.12.0"
|
|
petgraph = "0.6.5"
|
|
phf = "0.11.2"
|
|
pico-args = "0.5.0"
|
|
prettyplease = "0.2.22"
|
|
project-root = "0.2.2"
|
|
rayon = "1.10.0"
|
|
regex = "1.11.0"
|
|
ropey = "1.6.1"
|
|
rust-lapper = "1.1.0"
|
|
rustc-hash = "2.*"
|
|
ryu-js = "1.0.1"
|
|
saphyr = "0.0.1"
|
|
schemars = "0.8.21"
|
|
scraper = "0.20.0"
|
|
seq-macro = "0.3.5"
|
|
serde = "1.0.210"
|
|
serde-wasm-bindgen = "0.6.5"
|
|
serde_json = "1.0.128"
|
|
sha1 = "0.10.6"
|
|
simdutf8 = { version = "0.1.5", features = ["aarch64_neon"] }
|
|
similar = "2.6.0"
|
|
tempfile = "3.13.0"
|
|
textwrap = "0.16.1"
|
|
tokio = "1.40.0"
|
|
tower-lsp = "0.20.0"
|
|
tracing-subscriber = "0.3.18"
|
|
tsify = "0.4.5"
|
|
unicode-width = "0.2.0"
|
|
ureq = { version = "2.10.1", default-features = false }
|
|
url = "2.5.2"
|
|
walkdir = "2.5.0"
|
|
wasm-bindgen = "0.2.95"
|
|
|
|
[workspace.metadata.cargo-shear]
|
|
ignored = ["napi", "oxc_transform_napi", "prettyplease"]
|
|
|
|
[profile.dev]
|
|
# Disabling debug info speeds up local and CI builds,
|
|
# and we don't rely on it for debugging that much.
|
|
debug = false
|
|
|
|
[profile.dev.package]
|
|
# Compile macros with some optimizations to make consuming crates build faster
|
|
oxc_macros.opt-level = 1
|
|
oxc_ast_macros.opt-level = 1
|
|
# Compile insta and its dependencies in release mode for faster snapshot tests
|
|
# See: https://insta.rs/docs/quickstart/#optional-faster-runs
|
|
insta.opt-level = 3
|
|
similar.opt-level = 3
|
|
|
|
[profile.release.package.oxc_wasm]
|
|
opt-level = 'z'
|
|
|
|
[profile.release]
|
|
# Configurations explicitly listed here for clarity.
|
|
# Using the best options for performance.
|
|
opt-level = 3
|
|
lto = "fat"
|
|
codegen-units = 1
|
|
strip = "symbols" # Set to `false` for debug information
|
|
debug = false # Set to `true` for debug information
|
|
panic = "abort" # Let it crash and force ourselves to write safe Rust
|
|
|
|
# Profile used for release mode, but with debugging information for profiling
|
|
# and debugging. Use `cargo build --profile=release-with-debug` to build with this profile.
|
|
[profile.release-with-debug]
|
|
inherits = "release"
|
|
strip = false # Keep debug information in binary
|
|
debug = true # Include maximum amount of debug information
|
|
|
|
# Profile for `cargo coverage`
|
|
[profile.coverage]
|
|
inherits = "release"
|
|
opt-level = 2 # Compile faster
|
|
codegen-units = 256 # Compile faster
|
|
lto = "thin" # Faster compile time with thin LTO
|
|
debug-assertions = true # Make sure `debug_assert!`s pass
|
|
overflow-checks = true # Catch arithmetic overflow errors
|
|
incremental = true
|