mirror of
https://github.com/oxc-project/oxc.git
synced 2026-09-14 19:36:11 +08:00
codex/parser-grouped-expression-allocation
29 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
baf022d74d |
refactor(ast)!: remove old AstBuilder methods (#24563)
Closes the migration tracked in #23043. The new builder API (methods on the AST types themselves) has been in place for a while, all Oxc crates are migrated, and every crate which uses `AstBuilder` already enables `disable_old_builder` in its tests. The module docs said "after a few weeks, we will remove `AstBuilder`'s own methods entirely" — this does that. ## What's removed - `crates/oxc_ast/src/generated/ast_builder.rs` and `builder/methods.rs` — `AstBuilder`'s own node and primitive constructors. - `AstBuilderGenerator`, which produced the former. - The `disable_old_builder` Cargo feature, plus the dev-dependency hacks it required across 33 manifests. Eight crates depended on `oxc_ast` *purely* to turn the feature on; those deps and their `cargo-shear` ignore entries are gone too. ## One thing worth reviewing `AstBuilderGenerator` owned the `#[builder(default)]` / `#[builder(skip)]` attr registration that `BuilderMethodsGenerator` only *reads* — its doc comment said as much. Deleting it naively would have silently dropped `skip`/`default` handling for the 12 AST types using those attrs, so `attrs()` and `parse_attr()` move to `BuilderMethodsGenerator`. The evidence this was faithful: after regenerating, `builder_methods.rs` and every other generated file are **byte-identical**. The only generated change in the diff is the deletion. ## Breaking changes - `AstBuilder`'s own methods are gone. Use the AST type methods: `Statement::new_expression_statement(span, expr, &builder)` instead of `builder.statement_expression(span, expr)`. - `AstBuilder` is no longer `Copy`/`Clone`, and its `allocator` field is private — use the `allocator` method from `GetAllocator`. - `AstBuilder` and `NONE` are no longer re-exported from the crate root; import them from `oxc_ast::builder`. (The `disable_old_builder` feature already gated these off, so nothing in-tree used the root path.) - The `disable_old_builder` feature no longer exists — remove it from any manifest that sets it. A migration note covering all of the above is in `crates/oxc_ast/src/builder/mod.rs`. --- Implemented with AI assistance (Claude Code); design, review, and verification driven by the author per the repo AI-usage policy. |
||
|
|
75ce81de95 |
chore(deps): update rust crate syn to v3 (#24684)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [syn](https://redirect.github.com/dtolnay/syn) | workspace.dependencies | major | `2` → `3` | --- ### Release Notes <details> <summary>dtolnay/syn (syn)</summary> ### [`v3.0.0`](https://redirect.github.com/dtolnay/syn/releases/tag/3.0.0) [Compare Source](https://redirect.github.com/dtolnay/syn/compare/2.0.119...3.0.0) This release contains adjustments to the syntax tree to account for ongoing Rust language development from the 3 years since syn 2.0.0 and to anticipate some in-flight Rust language RFCs. These include: default values in fields, pinned type sugar, raw lifetimes, generator blocks and functions, unnamed enum variants, attributes in tuple types and tuple patterns, named arguments in parenthesized generic argument lists, lightweight clones, const traits, const function pointers, mutability restricted fields, supertrait auto implementation, final associated functions, trait implementability restrictions, const blocks in path arguments, item-level const blocks, return type notation, never patterns, function delegation, mutable by-reference bindings, in-place initialization, field projections, explicitly dyn-compatible traits, view types, file-level frontmatter, generic const arguments, guard patterns, lazy type aliases, explicitly safe foreign items, super let, unsafe fields, pattern types, heterogeneous try-blocks, function contracts, async function trait bounds, static closure coroutine syntax, unsafe binder types, move expressions, for-await loops, and postfix keywords. <br> <p align="center"><a href="https://docs.rs/syn/3/syn">[API documentation for 3.0]</a></p> ### Breaking changes #### Modifiers To reserve more room for language evolution, there are 10 new non-exhaustive structs in the syntax tree having the following commonality: - Name ending in `Modifiers`. {`BlockModifiers`, `ClosureModifiers`, `ConstModifiers`, `FieldModifiers`, `FnModifiers`, `ImplModifiers`, `LocalModifiers`, `TraitBoundModifiers`, `TraitModifiers`, `TypeModifiers`} - Each implements `Default`. The default value is guaranteed to comprise no tokens. - Non-exhaustive. Can only be instantiated by Syn's parser or by creating and then mutating `▁▁Modifiers::default()`. - Does not implement `Parse`. When parsing, they are parsed by the enclosing syntax tree node. - Does not implement `ToTokens`. In some cases the syntax that these nodes might hold in the future is not necessarily contiguous tokens. - Provides `.require_empty() -> Result<()>` which returns a meaningfully spanned error if the modifiers are different from the empty default. This enables a caller to reject syntax it does not recognize without knowing what that syntax may be. #### Types - `Type::BareFn` has been renamed to `Type::FnPtr` to mirror the compiler's terminology. Together with this, `BareVariadic` is renamed to `FnPtrVariadic`. - The mutually exclusive `const_token` and `mutability` fields of `Type::Ptr` have been unified into an enum of type `PointerMutability`, which was already previously used by `Expr::RawAddr`. - Every `Type` variant now holds attributes, which can represent the attributes of element types inside a tuple type, or attributes for a function return type. - `BareFnArg` is renamed to `NamedArg` and is used in `ParenthesizedGenericArguments`, in addition to the existing use in `Type::FnPtr`. #### Expressions - In `Expr::Closure`, the fields `or1_token` and `or2_token` have been renamed to `inputs_begin` and `inputs_end` to indicate the beginning and ending `|` token of the closure inputs. #### Statements - Attributes are now preserved on all expression kinds in statement position. Previously, parsing would silently lose attributes on some expression statements without a dedicated Expr variant, such as tail-call expressions. #### Patterns - The `guard` field of `Arm` is replaced by a new `Pat::Guard` variant held in the arm's `pat`. #### Items - The `unsafety` field of `Signature`, which represented the presence or absence of `unsafe`, is replaced by a 3-way `Safety` enum which may be safe, unsafe, or default. `ForeignItem::Static` also gets a `Safety`. - Some of the fields of `Receiver` have been split to a non-exhaustive `ReceiverKind` enum to create room for proposed new kinds of method receivers, such as pinned. - Type aliases now hold a `WhereClausePlacement` to distinguish between early placement (which is the default for item-level type aliases and is *deprecated* in associated type aliases) and late placement (which is the default for associated type aliases and is *unstable* in item-level type aliases). Parsing and printing a syntax tree will now preserve the where-clause placement rather than rewriting it to the default placement for the item kind. #### Generics - `WherePredicate::Lifetime` and `WherePredicate::Type` have a new field holding the attributes on the where-predicates. - `GenericParam::Type` and `GenericParam::Const` now match the rest of the syntax tree in holding their optional default using a single Option of tuple, rather than a pair of Option. #### Literals - The `Parse` implementation of `Lifetime` no longer permits keyword lifetimes, matching a change in Rust 1.81 to deny such lifetimes pre-expansion. `Lifetime::parse_any` may be used to parse lifetimes permissive of keywords. - `LitInt` and `LitFloat` no longer implement `From<proc_macro2::Literal>`. Use `Lit::new(literal)` and then match `Lit::Int` or `Lit::Float`. - The `StrStyle` enum was unused and has been deleted. #### More - `File` contains a new `Option<Frontmatter>`, but does not yet parse frontmatter in `syn::parse_file` until that language feature progresses closer to stabilization. - Some enums no longer provide `From` impls. Construct the variant by name instead, such as `Expr::Array(e)` in place of `e.into()`. - The `pop` method of `Punctuated<T, P>` now returns `Option<T>` discarding the trailing punctuation if any, rather than `Option<Pair<T, P>>`. A new method `pop_pair` provides the old behavior. - Syntax tree traversal (`visit`, `visit_mut`, `fold`) no longer provides a method for processing `Span`. This was already incompletely supported and never walked most of the spans in a syntax tree. - The `Speculative` and `AnyDelimiter` traits have been sealed and cannot be implemented for types outside of Syn's `ParseStream`. </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - "before 10am on monday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNjUuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI2NS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Cameron Clark <cameron.clark@hey.com> |
||
|
|
da927afaa5 |
chore(deps): update rust crates (#24681)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [anyhow](https://redirect.github.com/dtolnay/anyhow) | workspace.dependencies | patch | `1.0.103` → `1.0.104` | | [bitflags](https://redirect.github.com/bitflags/bitflags) | workspace.dependencies | patch | `2.13.0` → `2.13.1` | | [compact_str](https://redirect.github.com/ParkMyCar/compact_str) | workspace.dependencies | minor | `0.9.1` → `0.10.0` | | [futures](https://rust-lang.github.io/futures-rs) ([source](https://redirect.github.com/rust-lang/futures-rs)) | workspace.dependencies | patch | `0.3.32` → `0.3.33` | | [ignore](https://redirect.github.com/BurntSushi/ripgrep/tree/master/crates/ignore) ([source](https://redirect.github.com/BurntSushi/ripgrep/tree/HEAD/crates/ignore)) | workspace.dependencies | patch | `0.4.28` → `0.4.30` | | [prettyplease](https://redirect.github.com/dtolnay/prettyplease) | workspace.dependencies | minor | `0.2.37` → `0.3.0` | | [proc-macro2](https://redirect.github.com/dtolnay/proc-macro2) | workspace.dependencies | patch | `1.0.106` → `1.0.107` | | [quote](https://redirect.github.com/dtolnay/quote) | workspace.dependencies | patch | `1.0.46` → `1.0.47` | | [self_cell](https://redirect.github.com/Voultapher/self_cell) | workspace.dependencies | minor | `1.2.2` → `1.3.0` | | [serde](https://serde.rs) ([source](https://redirect.github.com/serde-rs/serde)) | workspace.dependencies | patch | `1.0.228` → `1.0.229` | | [syn](https://redirect.github.com/dtolnay/syn) | workspace.dependencies | patch | `2.0.118` → `2.0.119` | | [tokio](https://tokio.rs) ([source](https://redirect.github.com/tokio-rs/tokio)) | workspace.dependencies | minor | `1.52.3` → `1.53.0` | | [toml](https://redirect.github.com/toml-rs/toml) | workspace.dependencies | patch | `1.1.2+spec-1.1.0` → `1.1.3` | --- ### Release Notes <details> <summary>dtolnay/anyhow (anyhow)</summary> ### [`v1.0.104`](https://redirect.github.com/dtolnay/anyhow/releases/tag/1.0.104) [Compare Source](https://redirect.github.com/dtolnay/anyhow/compare/1.0.103...1.0.104) - Update `syn` dev-dependency to version 3 </details> <details> <summary>bitflags/bitflags (bitflags)</summary> ### [`v2.13.1`](https://redirect.github.com/bitflags/bitflags/blob/HEAD/CHANGELOG.md#2131) [Compare Source](https://redirect.github.com/bitflags/bitflags/compare/2.13.0...2.13.1) #### What's Changed - Lower the LLVM IR output of the generated output by [@​bolshoytoster](https://redirect.github.com/bolshoytoster) in [#​492](https://redirect.github.com/bitflags/bitflags/pull/492) #### New Contributors - [@​bolshoytoster](https://redirect.github.com/bolshoytoster) made their first contribution in [#​492](https://redirect.github.com/bitflags/bitflags/pull/492) **Full Changelog**: <https://github.com/bitflags/bitflags/compare/2.13.0...2.13.1> </details> <details> <summary>ParkMyCar/compact_str (compact_str)</summary> ### [`v0.10.0`](https://redirect.github.com/ParkMyCar/compact_str/blob/HEAD/CHANGELOG.md#0100) [Compare Source](https://redirect.github.com/ParkMyCar/compact_str/compare/v0.9.1...v0.10.0) ##### July 12, 2026 #### Changes - Minimum supported Rust version (MSRV) was bumped to `v1.71`. - The `Error` trait impls once again require the `std` feature. This reverts the (unreleased) no-std `core::error::Error` support from [#​443](https://redirect.github.com/ParkMyCar/compact_str/pull/443), which required Rust `v1.81`, it can return once the MSRV reaches `v1.81`. - Added support for the [`garde`](https://crates.io/crates/garde) validation crate under an optional feature, implementing its string rule traits for `CompactString`. - Implemented in [`feat: add garde validation support`](https://redirect.github.com/ParkMyCar/compact_str/pull/471). - Added support for the [`schemars`](https://crates.io/crates/schemars) crate under an optional feature, implementing `JsonSchema` for `CompactString`. Every method delegates to `String`'s impl, so the generated schema is identical to a `String`'s. - Implemented in [`feat: support schemars`](https://redirect.github.com/ParkMyCar/compact_str/pull/454). - Added support for the [`valuable`](https://crates.io/crates/valuable) crate under an optional feature, implementing the `Valuable` trait for `CompactString` so it presents as a `Value::String`. - Implemented in [`Add impl Valuable`](https://redirect.github.com/ParkMyCar/compact_str/pull/451). - Added a `pyo3` feature which implements [`FromPyObject`](https://docs.rs/pyo3/0.29/pyo3/conversion/trait.FromPyObject.html) and [`IntoPyObject`](https://docs.rs/pyo3/0.29/pyo3/conversion/trait.IntoPyObject.html) for `CompactString`, so it can be used seamlessly with [`pyo3`](https://crates.io/crates/pyo3) v0.29. - Implemented in [`feat: add pyo3 feature`](https://redirect.github.com/ParkMyCar/compact_str/pull/446). - Added support for the [`defmt`](https://crates.io/crates/defmt) crate under an optional feature, implementing `defmt::Format` for `CompactString`. - Implemented in [`feat: Add support for defmt`](https://redirect.github.com/ParkMyCar/compact_str/pull/438). - Added a `bevy-reflect` feature which implements [`bevy_reflect`](https://crates.io/crates/bevy_reflect)'s reflection traits for `CompactString` (as an opaque type). - Implemented in [`feat: Add bevy-reflect feature`](https://redirect.github.com/ParkMyCar/compact_str/pull/439). - Added a `utoipa` feature which implements [`utoipa`](https://crates.io/crates/utoipa)'s `PartialSchema` and `ToSchema` traits for `CompactString`. - Implemented in [`fix sqlx type impl, add utoipa feature`](https://redirect.github.com/ParkMyCar/compact_str/pull/442) and [`feat: fixup the utoipa feature`](https://redirect.github.com/ParkMyCar/compact_str/pull/445). - Removed `#[must_use]` from the `Drain` iterator. - Implemented in [`fix: remove #[must_use] from Drain`](https://redirect.github.com/ParkMyCar/compact_str/pull/486). - Added [Kani](https://redirect.github.com/model-checking/kani) proof harnesses to formally verify the crate's unsafe code. - Implemented in [`feat: add kani proof harnesses to verify unsafe code`](https://redirect.github.com/ParkMyCar/compact_str/pull/480). - Bump the [`sqlx`](https://crates.io/crates/sqlx) dependency to `v0.9`. Enabling the `sqlx` feature now requires Rust `v1.94`. - Implemented in [`deps: bump sqlx to 0.9`](https://redirect.github.com/ParkMyCar/compact_str/pull/474). - Bump the [`bevy_reflect`](https://crates.io/crates/bevy_reflect) dependency to `v0.19`. - Implemented in [`deps: update optional deps to latest`](https://redirect.github.com/ParkMyCar/compact_str/pull/490). - Bump the [`markup`](https://crates.io/crates/markup) dependency to `v0.16`. - Implemented in [`deps: update optional deps to latest`](https://redirect.github.com/ParkMyCar/compact_str/pull/490). #### Bug Fixes - Fixed possible undefined behavior when reallocating a heap-allocated `CompactString`. - Implemented in [`fix: possible undefined behavior with realloc in a HeapString`](https://redirect.github.com/ParkMyCar/compact_str/pull/459). - Fixed `CompactString::retain` to avoid briefly creating references to invalid UTF-8. - Implemented in [`Avoid invalid UTF-8 references in retain`](https://redirect.github.com/ParkMyCar/compact_str/pull/469). - Fixed `CompactString::as_mut_bytes` exposing uninitialized spare capacity through a `&mut [u8]`; heap spare capacity is now zero-initialized before it's returned. - Implemented in [`fix: avoid exposing uninitialized spare capacity`](https://redirect.github.com/ParkMyCar/compact_str/pull/468). #### Performance - Reuse an owned `String`'s existing allocation in `CompactString::new`. - Implemented in [`perf: reuse owned String in CompactString::new`](https://redirect.github.com/ParkMyCar/compact_str/pull/460). - Specialize `ToCompactString` for `str`. - Implemented in [`perf: specialize ToCompactString for str`](https://redirect.github.com/ParkMyCar/compact_str/pull/461). - Pass heap fields by value when dropping a `CompactString` instead of `&mut Repr`. - Implemented in [`perf: Drop passes heap fields by-value instead of &mut Repr`](https://redirect.github.com/ParkMyCar/compact_str/pull/462). - Skip the `Result` on the hot inline construction path with `Repr::new_panic`. - Implemented in [`perf: add Repr::new_panic to skip Result on the hot inline path`](https://redirect.github.com/ParkMyCar/compact_str/pull/463). - Assert internal `Repr` invariants so the compiler can fold dead error-handling branches on construction. - Implemented in [`perf: assert Repr invariants to fold dead Err arms on construction`](https://redirect.github.com/ParkMyCar/compact_str/pull/467). - Speed up append, integer formatting, and inline creation. - Implemented in [`perf: speed up append, integer formatting, and inline creation`](https://redirect.github.com/ParkMyCar/compact_str/pull/479). - Bulk-copy valid runs in `from_utf8_lossy` instead of copying byte-by-byte. - Implemented in [`perf: bulk-copy valid runs in from_utf8_lossy`](https://redirect.github.com/ParkMyCar/compact_str/pull/484). - Specialize memory copies for small/medium strings to avoid calling `memcpy`. Keep heap construction out-of-line, and move the OOM panic off the hot construction path to keep generated assembly lean. - Implemented in [`perf: several small improvements`](https://redirect.github.com/ParkMyCar/compact_str/pull/488). - Replaced the `ryu` dependency with [`zmij`](https://crates.io/crates/zmij) for float formatting. - Implemented in [`deps: replace ryu with zmij for float formatting`](https://redirect.github.com/ParkMyCar/compact_str/pull/485). </details> <details> <summary>rust-lang/futures-rs (futures)</summary> ### [`v0.3.33`](https://redirect.github.com/rust-lang/futures-rs/blob/HEAD/CHANGELOG.md#0333---2026-07-18) [Compare Source](https://redirect.github.com/rust-lang/futures-rs/compare/0.3.32...0.3.33) - Fix `ReadLine`'s soundness issue regarding to exception safety. ([#​3020](https://redirect.github.com/rust-lang/futures-rs/issues/3020)) - Fix unsound `Send` impl for `IterPinRef` and `Iter`. ([#​3003](https://redirect.github.com/rust-lang/futures-rs/issues/3003)) - Fix stacked borrows violation in `compat01as03` implementation. ([#​3012](https://redirect.github.com/rust-lang/futures-rs/issues/3012)) - Fix memory leak in `FuturesUnordered::IntoIter`. ([#​3005](https://redirect.github.com/rust-lang/futures-rs/issues/3005)) - Add `portable-atomic-alloc` feature and use it in `FuturesUnordered`. ([#​3007](https://redirect.github.com/rust-lang/futures-rs/issues/3007)) - Re-export `alloc::task::Wake`. ([#​3010](https://redirect.github.com/rust-lang/futures-rs/issues/3010)) - Update `spin` to 0.12. ([#​3014](https://redirect.github.com/rust-lang/futures-rs/issues/3014)) </details> <details> <summary>BurntSushi/ripgrep (ignore)</summary> ### [`v0.4.30`](https://redirect.github.com/BurntSushi/ripgrep/compare/ignore-0.4.29...ignore-0.4.30) [Compare Source](https://redirect.github.com/BurntSushi/ripgrep/compare/ignore-0.4.29...ignore-0.4.30) ### [`v0.4.29`](https://redirect.github.com/BurntSushi/ripgrep/compare/ignore-0.4.28...ignore-0.4.29) [Compare Source](https://redirect.github.com/BurntSushi/ripgrep/compare/ignore-0.4.28...ignore-0.4.29) </details> <details> <summary>dtolnay/prettyplease (prettyplease)</summary> ### [`v0.3.0`](https://redirect.github.com/dtolnay/prettyplease/releases/tag/0.3.0) [Compare Source](https://redirect.github.com/dtolnay/prettyplease/compare/0.2.37...0.3.0) - Update to syn 3 (release notes: <https://github.com/dtolnay/syn/releases/tag/3.0.0>) </details> <details> <summary>dtolnay/proc-macro2 (proc-macro2)</summary> ### [`v1.0.107`](https://redirect.github.com/dtolnay/proc-macro2/releases/tag/1.0.107) [Compare Source](https://redirect.github.com/dtolnay/proc-macro2/compare/1.0.106...1.0.107) - Documentation improvements </details> <details> <summary>dtolnay/quote (quote)</summary> ### [`v1.0.47`](https://redirect.github.com/dtolnay/quote/releases/tag/1.0.47) [Compare Source](https://redirect.github.com/dtolnay/quote/compare/1.0.46...1.0.47) - Documentation improvements </details> <details> <summary>Voultapher/self_cell (self_cell)</summary> ### [`v1.3.0`](https://redirect.github.com/Voultapher/self_cell/releases/tag/v1.3.0): Version 1.3.0 [Compare Source](https://redirect.github.com/Voultapher/self_cell/compare/v1.2.2...v1.3.0) - Async `self_cell` construction is now `Send`, this makes using it with tokio easier. This comes at no additional performance cost. See [#​74](https://redirect.github.com/Voultapher/self_cell/issues/74) for more details. - Fixed some typos in the docs. </details> <details> <summary>serde-rs/serde (serde)</summary> ### [`v1.0.229`](https://redirect.github.com/serde-rs/serde/releases/tag/v1.0.229) [Compare Source](https://redirect.github.com/serde-rs/serde/compare/v1.0.228...v1.0.229) - Update to syn 3 </details> <details> <summary>dtolnay/syn (syn)</summary> ### [`v2.0.119`](https://redirect.github.com/dtolnay/syn/releases/tag/2.0.119) [Compare Source](https://redirect.github.com/dtolnay/syn/compare/2.0.118...2.0.119) - Preserve attributes on tail-call expressions in statement position ([#​1994](https://redirect.github.com/dtolnay/syn/issues/1994)) - Parse field-representing types builtin in type position ([#​1996](https://redirect.github.com/dtolnay/syn/issues/1996)) </details> <details> <summary>tokio-rs/tokio (tokio)</summary> ### [`v1.53.0`](https://redirect.github.com/tokio-rs/tokio/releases/tag/tokio-1.53.0): Tokio v1.53.0 [Compare Source](https://redirect.github.com/tokio-rs/tokio/compare/tokio-1.52.4...tokio-1.53.0) ### 1.53.0 (July 17th, 2026) ##### Added - fs: implement `From<OwnedFd>` and `From<OwnedHandle>` for `File` ([#​8266]) - metrics: add task schedule latency metric ([#​7986]) - net: add `SocketAddr` methods to Unix sockets ([#​8144]) ##### Changed - io: add `#[inline]` to IO trait impls for in-memory types ([#​8242]) - net: implement UCred::pid on FreeBSD ([#​8086]) - net: support Nuttx target os ([#​8259]) - signal: refactor global variables on Windows ([#​8231]) - sync: `mpsc::{Receiver,UnboundedReceiver}` now drops waker on drop, even if there are still senders ([#​8095]) - taskdump: support taskdumps on s390x ([#​8192]) - time: add `#[track_caller]` to `timeout_at()` ([#​8077]) - time: consolidate mutex locks on spurious poll ([#​8124]) - time: defer waker clone on spurious poll ([#​8107]) - time: move lazy-registration state into `Sleep` ([#​8132]) - tracing: remove unnecessary span clone ([#​8126]) ##### Fixed - io: do not treat zero-length reads as EOF in `Chain` ([#​8251]) - net: use getpeereid for QNX peer credentials ([#​8270]) - runtime: avoid illegal state in `FastRand` ([#​8078]) - sync: wake mpsc receiver when a queued `reserve[_many]` returns permits ([#​8260]) - taskdump: skip double wake on `Trace::capture`/`Trace::trace_with` ([#​8043]) - time: avoid stack overflow in runtime constructor ([#​8093]) - time (alt timer): ensure timers stay in the same runtime after `.reset()` ([#​8169]) ##### IO uring (unstable) - fs: use io-uring for `fs::try_exists` ([#​8080]) - fs: use io-uring for renaming files ([#​7800]) - rt: flush io-uring CQE in case of CQE overflow ([#​8277]) ##### Documented - docs: clarify cancel safety wording ([#​8181]) - fs: clarify `create_dir_all` succeeds if path exists ([#​8149]) - io: add warning about stdout reordering with multiple handles ([#​8276]) - net: document pipe `try_read*`/`try_write*` readiness behavior ([#​8032]) - runtime: document interaction with fork() ([#​8202]) - sync: clarify broadcast lagging semantics ([#​8239]) - sync: document memory ordering guarantees for Semaphore ([#​8119]) - task: explain why `yield_now` defers its waker ([#​8254]) - time: add panic docs to `timeout_at()` ([#​8077]) - time: fix reversed poll order in timeout doc ([#​8214]) [#​7800]: https://redirect.github.com/tokio-rs/tokio/pull/7800 [#​7986]: https://redirect.github.com/tokio-rs/tokio/pull/7986 [#​8032]: https://redirect.github.com/tokio-rs/tokio/pull/8032 [#​8043]: https://redirect.github.com/tokio-rs/tokio/pull/8043 [#​8077]: https://redirect.github.com/tokio-rs/tokio/pull/8077 [#​8078]: https://redirect.github.com/tokio-rs/tokio/pull/8078 [#​8080]: https://redirect.github.com/tokio-rs/tokio/pull/8080 [#​8086]: https://redirect.github.com/tokio-rs/tokio/pull/8086 [#​8093]: https://redirect.github.com/tokio-rs/tokio/pull/8093 [#​8095]: https://redirect.github.com/tokio-rs/tokio/pull/8095 [#​8107]: https://redirect.github.com/tokio-rs/tokio/pull/8107 [#​8119]: https://redirect.github.com/tokio-rs/tokio/pull/8119 [#​8124]: https://redirect.github.com/tokio-rs/tokio/pull/8124 [#​8126]: https://redirect.github.com/tokio-rs/tokio/pull/8126 [#​8132]: https://redirect.github.com/tokio-rs/tokio/pull/8132 [#​8144]: https://redirect.github.com/tokio-rs/tokio/pull/8144 [#​8149]: https://redirect.github.com/tokio-rs/tokio/pull/8149 [#​8169]: https://redirect.github.com/tokio-rs/tokio/pull/8169 [#​8181]: https://redirect.github.com/tokio-rs/tokio/pull/8181 [#​8192]: https://redirect.github.com/tokio-rs/tokio/pull/8192 [#​8193]: https://redirect.github.com/tokio-rs/tokio/pull/8193 [#​8202]: https://redirect.github.com/tokio-rs/tokio/pull/8202 [#​8214]: https://redirect.github.com/tokio-rs/tokio/pull/8214 [#​8231]: https://redirect.github.com/tokio-rs/tokio/pull/8231 [#​8239]: https://redirect.github.com/tokio-rs/tokio/pull/8239 [#​8242]: https://redirect.github.com/tokio-rs/tokio/pull/8242 [#​8251]: https://redirect.github.com/tokio-rs/tokio/pull/8251 [#​8254]: https://redirect.github.com/tokio-rs/tokio/pull/8254 [#​8259]: https://redirect.github.com/tokio-rs/tokio/pull/8259 [#​8260]: https://redirect.github.com/tokio-rs/tokio/pull/8260 [#​8266]: https://redirect.github.com/tokio-rs/tokio/pull/8266 [#​8270]: https://redirect.github.com/tokio-rs/tokio/pull/8270 [#​8276]: https://redirect.github.com/tokio-rs/tokio/pull/8276 [#​8277]: https://redirect.github.com/tokio-rs/tokio/pull/8277 ### [`v1.52.4`](https://redirect.github.com/tokio-rs/tokio/releases/tag/tokio-1.52.4): Tokio v1.52.4 [Compare Source](https://redirect.github.com/tokio-rs/tokio/compare/tokio-1.52.3...tokio-1.52.4) ### 1.52.4 (July 16th, 2026) ##### Fixed - runtime: don't skip the driver when `before_park` schedules work ([#​8222]) ##### Fixed (unstable) - taskdump: remove crate disambiguators from output ([#​8264]) [#​8264]: https://redirect.github.com/tokio-rs/tokio/pull/8264 [#​8222]: https://redirect.github.com/tokio-rs/tokio/pull/8222 </details> <details> <summary>toml-rs/toml (toml)</summary> ### [`v1.1.3`](https://redirect.github.com/toml-rs/toml/compare/toml-v1.1.2...toml-v1.1.3) [Compare Source](https://redirect.github.com/toml-rs/toml/compare/toml-v1.1.2...toml-v1.1.3) </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - "before 10am on monday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNjUuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI2NS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Cameron Clark <cameron.clark@hey.com> |
||
|
|
f2091b3846 |
feat(ast): unify old and new AstBuilders (#23875)
Part of #23043. Recent PRs have introduced a new `AstBuilder` type, and migrated all Oxc's crates over to it. To allow downstream consumers to incrementally migrate from old `AstBuilder` to new one, unify the two implementations into a single `AstBuilder` type. Remove the `builder_new` Cargo feature and instead add a new feature `disable_old_builder`. When enabled, this feature removes all the methods from `AstBuilder`, and makes `AstBuilder` non-`Copy`. Consumers should migrate, and then enable this feature to ensure later changes don't use the methods which are slated for removal. Enable the `disable_old_builder` feature in all Oxc crates which use `AstBuilder` _in tests_. This ensures we don't go back to using the deprecated methods, while not forcing the feature on consumers (e.g. Rolldown) who use e.g. `oxc_transformer` but also use `AstBuilder` directly. |
||
|
|
8519de2b5f |
refactor(ast_tools): switch to new AstBuilder (#23837)
Part of #23043. Migrate `oxc_ast_tools` codegen over to new `AstBuilder`. |
||
|
|
382958afa8 |
feat(span)!: remove re-exports of string types from oxc_span crate (#21246)
For historical reasons, `oxc_span` crate was re-exporting string types which now live in `oxc_str` crate. Remove these re-exports, and import these types directly from `oxc_str`. Main motivation is just that it makes sense, but it should also have a minor positive effect on compile times - `oxc_span` and `oxc_str` crates can now be compiled in parallel. |
||
|
|
b782a4b50d |
refactor(ast_tools): simplify StructsAndEnums iterator (#20941)
Refactor. Simplify and shorten the code for `StructsAndEnums` iterator in `ast_tools`. |
||
|
|
82a136f775 |
perf(ast_tools): parse files in parallel (#20578)
#20577 made `ast_tools` search for and parse all files in all crates that depend on `oxc_ast_macros`. The one downside of this change is that it makes running `ast_tools` slower. Speed it up again, by parsing files in parallel, using `rayon`. There is one annoyance. Due to feature unification, `syn` crate gets compiled with `proc-macro` feature enabled, which makes `syn`s ASTs not `Send`. We don't use the AST in ways which can produce data races (and we can't, because `ast_tools` isn't a proc macro), so it is safe in practice to send ASTs across threads here. So we have to hack it to make it compile (see comment in `tasks/ast_tools/src/parse/mod.rs`). |
||
|
|
c9512a9469 |
refactor(linter/plugins): add environments definitions (#17292)
Generate a file defining the vars that each environment (`env`) provides. This isn't used for anything yet, but it will be in next PR #17293. Vars for each environment are stored in this form: ```js { readonly: ["var1", "var2", "var3"], writable: ["var4", "var5"], } ``` instead of the more obvious: ```js { var1: false, var2: false, var3: false, var4: true, var5: true, } ``` ...because it's shorter code when there's lots of vars (which there usually are), and iterating through arrays I assume is faster than iterating through properties of objects (which are essentially hash maps when they're large). |
||
|
|
e031056b2f |
feat(codegen): add sourcemap feature flag (#17305)
Oxlint uses `oxc_codegen` for fixes, but do not require sourcemap. |
||
|
|
6cf7173c29 |
chore(deps): update dependency oxfmt to ^0.20.0 (#17263)
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Adoption](https://docs.renovatebot.com/merge-confidence/) | [Passing](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---|---|---| | [oxfmt](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt)) | [`^0.19.0` -> `^0.20.0`](https://renovatebot.com/diffs/npm/oxfmt/0.19.0/0.20.0) |  |  |  |  | --- ### Release Notes <details> <summary>oxc-project/oxc (oxfmt)</summary> ### [`v0.20.0`](https://redirect.github.com/oxc-project/oxc/blob/HEAD/npm/oxfmt/CHANGELOG.md#0200---2025-12-22) [Compare Source](https://redirect.github.com/oxc-project/oxc/compare/oxfmt_v0.19.0...oxfmt_v0.20.0) ##### 🚀 Features - [`97a02d1`](https://redirect.github.com/oxc-project/oxc/commit/97a02d1) oxfmt: Add `insertFinalNewline` option ([#​17251](https://redirect.github.com/oxc-project/oxc/issues/17251)) (leaysgur) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41OS4wIiwidXBkYXRlZEluVmVyIjoiNDIuNTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> |
||
|
|
fc439ed43d |
ci(ast_tools): run "AST Changes" CI task when dependency crates change (#15603)
#15565 made `oxc_ast_tools` depend on local workspace versions of various crates. Add those crates to the watch list for "AST Changes" CI task, so if changes are made in them, `ast_tools` codegen will run to ensure generated code has been updated to reflect those changes. In particular, this will prevent generated code getting out of sync when changes to minifier affect the generated code. |
||
|
|
6d4efdd1cc |
fix(ast_tools): oxc_ast_tools depend on local oxc_* crates (#15565)
Fix #15564. `oxc_ast_tools` depends on Oxc crates from crates.io, not the local workspace. When AST changes break local crates, the codegen can't compile either - a Catch-22 situation, since running codegen is the only way to fix compilation. This isn't ideal as it complicates dependency management. Alter `oxc_ast_tools` so it depends on crates from local workspace, and work around the Catch-22 problem by introducing a `generate-js` Cargo feature which disables these dependencies, so the codegen can still compile if they're broken. ## Changes - **Add `generate-js` Cargo feature** (enabled by default) - Makes all `oxc_*` dependencies optional, activated only when feature enabled. - Only JS generators (`RawTransferGenerator`, `TypescriptGenerator`, `ESTreeVisitGenerator`, `RawTransferLazyGenerator`) require these dependencies. - **Conditional compilation** - Gate JS generator modules and `Output::Javascript` variant behind `#[cfg(feature = "generate-js")]` - **Fallback in `just ast`** ```sh cargo run -p oxc_ast_tools || ( cargo run -p oxc_ast_tools --no-default-features && cargo run -p oxc_ast_tools ) ``` First attempts to run full codegen. On failure, regenerates Rust code only, without dependencies (so that `oxc_*` crates will now compile), then retries full generation. |
||
|
|
635e74ccac |
chore(deps): update rust crates (#15592)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [oxc-browserslist](https://redirect.github.com/oxc-project/oxc-browserslist) | workspace.dependencies | patch | `2.1.2` -> `2.1.3` | | [oxc_allocator](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc)) | dependencies | minor | `0.96.0` -> `0.97.0` | | [oxc_ast](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc)) | dependencies | minor | `0.96.0` -> `0.97.0` | | [oxc_ast_visit](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc)) | dependencies | minor | `0.96.0` -> `0.97.0` | | [oxc_codegen](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc)) | dependencies | minor | `0.96.0` -> `0.97.0` | | [oxc_minifier](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc)) | dependencies | minor | `0.96.0` -> `0.97.0` | | [oxc_parser](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc)) | dependencies | minor | `0.96.0` -> `0.97.0` | | [oxc_span](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc)) | dependencies | minor | `0.96.0` -> `0.97.0` | | [oxc_syntax](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc)) | dependencies | minor | `0.96.0` -> `0.97.0` | | [syn](https://redirect.github.com/dtolnay/syn) | workspace.dependencies | patch | `2.0.109` -> `2.0.110` | --- ### Release Notes <details> <summary>oxc-project/oxc-browserslist (oxc-browserslist)</summary> ### [`v2.1.3`](https://redirect.github.com/oxc-project/oxc-browserslist/blob/HEAD/CHANGELOG.md#213---2025-11-10) [Compare Source](https://redirect.github.com/oxc-project/oxc-browserslist/compare/oxc-browserslist-v2.1.2...oxc-browserslist-v2.1.3) ##### Other - *(deps)* update rust crates ([#​379](https://redirect.github.com/oxc-project/oxc-browserslist/pull/379)) - Update browserslist ([#​377](https://redirect.github.com/oxc-project/oxc-browserslist/pull/377)) - Update browserslist ([#​376](https://redirect.github.com/oxc-project/oxc-browserslist/pull/376)) - Update browserslist ([#​375](https://redirect.github.com/oxc-project/oxc-browserslist/pull/375)) - Update browserslist ([#​374](https://redirect.github.com/oxc-project/oxc-browserslist/pull/374)) - Update browserslist ([#​372](https://redirect.github.com/oxc-project/oxc-browserslist/pull/372)) - *(deps)* lock file maintenance rust crates ([#​371](https://redirect.github.com/oxc-project/oxc-browserslist/pull/371)) - Update browserslist ([#​367](https://redirect.github.com/oxc-project/oxc-browserslist/pull/367)) - Update browserslist ([#​365](https://redirect.github.com/oxc-project/oxc-browserslist/pull/365)) - Update browserslist ([#​363](https://redirect.github.com/oxc-project/oxc-browserslist/pull/363)) - *(deps)* lock file maintenance rust crates ([#​361](https://redirect.github.com/oxc-project/oxc-browserslist/pull/361)) - Update browserslist ([#​356](https://redirect.github.com/oxc-project/oxc-browserslist/pull/356)) - Update browserslist ([#​355](https://redirect.github.com/oxc-project/oxc-browserslist/pull/355)) - *(deps)* lock file maintenance rust crates ([#​354](https://redirect.github.com/oxc-project/oxc-browserslist/pull/354)) - Update browserslist ([#​348](https://redirect.github.com/oxc-project/oxc-browserslist/pull/348)) - Update browserslist ([#​347](https://redirect.github.com/oxc-project/oxc-browserslist/pull/347)) - *(deps)* lock file maintenance rust crates ([#​345](https://redirect.github.com/oxc-project/oxc-browserslist/pull/345)) - Update browserslist ([#​338](https://redirect.github.com/oxc-project/oxc-browserslist/pull/338)) - *(deps)* lock file maintenance ([#​333](https://redirect.github.com/oxc-project/oxc-browserslist/pull/333)) - Remove unnecessary string allocations in query functions ([#​329](https://redirect.github.com/oxc-project/oxc-browserslist/pull/329)) - Update browserslist ([#​328](https://redirect.github.com/oxc-project/oxc-browserslist/pull/328)) - Update browserslist ([#​321](https://redirect.github.com/oxc-project/oxc-browserslist/pull/321)) - Update browserslist ([#​316](https://redirect.github.com/oxc-project/oxc-browserslist/pull/316)) </details> <details> <summary>dtolnay/syn (syn)</summary> ### [`v2.0.110`](https://redirect.github.com/dtolnay/syn/releases/tag/2.0.110) [Compare Source](https://redirect.github.com/dtolnay/syn/compare/2.0.109...2.0.110) - Tweaks to improve build speed ([#​1939](https://redirect.github.com/dtolnay/syn/issues/1939), thanks [@​dishmaker](https://redirect.github.com/dishmaker)) - Make `syn::ext::IdentExt::unraw` available without "parsing" feature ([#​1940](https://redirect.github.com/dtolnay/syn/issues/1940)) - Support parsing `syn::Meta` followed by `=>` ([#​1944](https://redirect.github.com/dtolnay/syn/issues/1944)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNzMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE3My4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
6a2aaa2772 | chore(deps): lock file maintenance rust crates (#15235) | ||
|
|
d185aeb73a |
chore(deps): lock file maintenance rust crates (#14787)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | | | lockFileMaintenance | All locks refreshed | | [oxc_allocator](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc)) | dependencies | minor | `0.94.0` -> `0.95.0` | | [oxc_ast](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc)) | dependencies | minor | `0.94.0` -> `0.95.0` | | [oxc_ast_visit](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc)) | dependencies | minor | `0.94.0` -> `0.95.0` | | [oxc_codegen](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc)) | dependencies | minor | `0.94.0` -> `0.95.0` | | [oxc_minifier](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc)) | dependencies | minor | `0.94.0` -> `0.95.0` | | [oxc_parser](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc)) | dependencies | minor | `0.94.0` -> `0.95.0` | | [oxc_span](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc)) | dependencies | minor | `0.94.0` -> `0.95.0` | | [oxc_syntax](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc)) | dependencies | minor | `0.94.0` -> `0.95.0` | | [bitflags](https://redirect.github.com/bitflags/bitflags) | workspace.dependencies | minor | `2.9.4` -> `2.10.0` | | [ignore](https://redirect.github.com/BurntSushi/ripgrep/tree/master/crates/ignore) ([source](https://redirect.github.com/BurntSushi/ripgrep/tree/HEAD/crates/ignore)) | workspace.dependencies | patch | `0.4.23` -> `0.4.24` | | [indexmap](https://redirect.github.com/indexmap-rs/indexmap) | workspace.dependencies | minor | `2.11.4` -> `2.12.0` | | [mimalloc-safe](https://redirect.github.com/napi-rs/mimalloc-safe) | workspace.dependencies | patch | `0.1.54` -> `0.1.55` | | [syn](https://redirect.github.com/dtolnay/syn) | workspace.dependencies | patch | `2.0.106` -> `2.0.107` | | [tokio](https://tokio.rs) ([source](https://redirect.github.com/tokio-rs/tokio)) | workspace.dependencies | minor | `1.47.1` -> `1.48.0` | 🔧 This Pull Request updates lock files to use the latest dependency versions. --- ### Release Notes <details> <summary>bitflags/bitflags (bitflags)</summary> ### [`v2.10.0`](https://redirect.github.com/bitflags/bitflags/blob/HEAD/CHANGELOG.md#2100) [Compare Source](https://redirect.github.com/bitflags/bitflags/compare/2.9.4...2.10.0) #### What's Changed - Implement iterator for all named flags by [@​ssrlive](https://redirect.github.com/ssrlive) in [#​465](https://redirect.github.com/bitflags/bitflags/pull/465) - Depend on serde\_core instead of serde by [@​KodrAus](https://redirect.github.com/KodrAus) in [#​467](https://redirect.github.com/bitflags/bitflags/pull/467) #### New Contributors - [@​ssrlive](https://redirect.github.com/ssrlive) made their first contribution in [#​465](https://redirect.github.com/bitflags/bitflags/pull/465) **Full Changelog**: <https://github.com/bitflags/bitflags/compare/2.9.4...2.10.0> </details> <details> <summary>BurntSushi/ripgrep (ignore)</summary> ### [`v0.4.24`](https://redirect.github.com/BurntSushi/ripgrep/compare/ignore-0.4.23...ignore-0.4.24) [Compare Source](https://redirect.github.com/BurntSushi/ripgrep/compare/ignore-0.4.23...ignore-0.4.24) </details> <details> <summary>indexmap-rs/indexmap (indexmap)</summary> ### [`v2.12.0`](https://redirect.github.com/indexmap-rs/indexmap/blob/HEAD/RELEASES.md#2120-2025-10-17) [Compare Source](https://redirect.github.com/indexmap-rs/indexmap/compare/2.11.4...2.12.0) - **MSRV**: Rust 1.82.0 or later is now required. - Updated the `hashbrown` dependency to 0.16 alone. - Error types now implement `core::error::Error`. - Added `pop_if` methods to `IndexMap` and `IndexSet`, similar to the method for `Vec` added in Rust 1.86. </details> <details> <summary>napi-rs/mimalloc-safe (mimalloc-safe)</summary> ### [`v0.1.55`](https://redirect.github.com/napi-rs/mimalloc-safe/blob/HEAD/CHANGELOG.md#0155---2025-10-16) [Compare Source](https://redirect.github.com/napi-rs/mimalloc-safe/compare/mimalloc-safe-v0.1.54...mimalloc-safe-v0.1.55) ##### Features - Add mimalloc v3 feature ([#​40](https://redirect.github.com/napi-rs/mimalloc-safe/pull/40)) ##### Chore - Upgrade NAPI-RS to 3.0 stable ([#​26](https://redirect.github.com/napi-rs/mimalloc-safe/pull/26)) - *(deps)* Update dependency [@​napi-rs/cli](https://redirect.github.com/napi-rs/cli) to v3.0.4 ([#​28](https://redirect.github.com/napi-rs/mimalloc-safe/pull/28)) - *(deps)* Update dependency [@​napi-rs/cli](https://redirect.github.com/napi-rs/cli) to v3.1.3 ([#​29](https://redirect.github.com/napi-rs/mimalloc-safe/pull/29)) - *(deps)* Update dependency [@​napi-rs/cli](https://redirect.github.com/napi-rs/cli) to v3.1.4 ([#​31](https://redirect.github.com/napi-rs/mimalloc-safe/pull/31)) - *(deps)* Update actions/checkout action to v5 ([#​30](https://redirect.github.com/napi-rs/mimalloc-safe/pull/30)) - *(deps)* Update actions/setup-node action to v5 ([#​34](https://redirect.github.com/napi-rs/mimalloc-safe/pull/34)) - *(deps)* Update yarn to v4.9.4 ([#​33](https://redirect.github.com/napi-rs/mimalloc-safe/pull/33)) - *(deps)* Update dependency [@​napi-rs/cli](https://redirect.github.com/napi-rs/cli) to v3.1.5 ([#​32](https://redirect.github.com/napi-rs/mimalloc-safe/pull/32)) - *(deps)* Update dependency [@​napi-rs/cli](https://redirect.github.com/napi-rs/cli) to v3.2.0 ([#​35](https://redirect.github.com/napi-rs/mimalloc-safe/pull/35)) - *(deps)* Update yarn to v4.10.3 ([#​36](https://redirect.github.com/napi-rs/mimalloc-safe/pull/36)) - *(deps)* Update dependency [@​napi-rs/cli](https://redirect.github.com/napi-rs/cli) to v3.3.0 ([#​37](https://redirect.github.com/napi-rs/mimalloc-safe/pull/37)) - *(deps)* Update actions/setup-node action to v6 ([#​39](https://redirect.github.com/napi-rs/mimalloc-safe/pull/39)) - *(deps)* Update dependency [@​napi-rs/cli](https://redirect.github.com/napi-rs/cli) to v3.3.1 ([#​38](https://redirect.github.com/napi-rs/mimalloc-safe/pull/38)) </details> <details> <summary>dtolnay/syn (syn)</summary> ### [`v2.0.107`](https://redirect.github.com/dtolnay/syn/releases/tag/2.0.107) [Compare Source](https://redirect.github.com/dtolnay/syn/compare/2.0.106...2.0.107) - Improve panic message when constructing a LitInt, LitFloat, or Lit from invalid syntax ([#​1917](https://redirect.github.com/dtolnay/syn/issues/1917)) - Improve panic message on Punctuated index out of bounds ([#​1922](https://redirect.github.com/dtolnay/syn/issues/1922)) </details> <details> <summary>tokio-rs/tokio (tokio)</summary> ### [`v1.48.0`](https://redirect.github.com/tokio-rs/tokio/releases/tag/tokio-1.48.0): Tokio v1.48.0 [Compare Source](https://redirect.github.com/tokio-rs/tokio/compare/tokio-1.47.2...tokio-1.48.0) ### 1.48.0 (October 14th, 2025) The MSRV is increased to 1.71. ##### Added - fs: add `File::max_buf_size` ([#​7594]) - io: export `Chain` of `AsyncReadExt::chain` ([#​7599]) - net: add `SocketAddr::as_abstract_name` ([#​7491]) - net: add `TcpStream::quickack` and `TcpStream::set_quickack` ([#​7490]) - net: implement `AsRef<Self>` for `TcpStream` and `UnixStream` ([#​7573]) - task: add `LocalKey::try_get` ([#​7666]) - task: implement `Ord` for `task::Id` ([#​7530]) ##### Changed - deps: bump windows-sys to version 0.61 ([#​7645]) - fs: preserve `max_buf_size` when cloning a `File` ([#​7593]) - macros: suppress `clippy::unwrap_in_result` in `#[tokio::main]` ([#​7651]) - net: remove `PollEvented` noise from Debug formats ([#​7675]) - process: upgrade `Command::spawn_with` to use `FnOnce` ([#​7511]) - sync: remove inner mutex in `SetOnce` ([#​7554]) - sync: use `UnsafeCell::get_mut` in `Mutex::get_mut` and `RwLock::get_mut` ([#​7569]) - time: reduce the generated code size of `Timeout<T>::poll` ([#​7535]) ##### Fixed - macros: fix hygiene issue in `join!` and `try_join!` ([#​7638]) - net: fix copy/paste errors in udp peek methods ([#​7604]) - process: fix error when runtime is shut down on nightly-2025-10-12 ([#​7672]) - runtime: use release ordering in `wake_by_ref()` even if already woken ([#​7622]) - sync: close the `broadcast::Sender` in `broadcast::Sender::new()` ([#​7629]) - sync: fix implementation of unused `RwLock::try_*` methods ([#​7587]) ##### Unstable - tokio: use cargo features instead of `--cfg` flags for `taskdump` and `io_uring` ([#​7655], [#​7621]) - fs: support `io_uring` in `fs::write` ([#​7567]) - fs: support `io_uring` with `File::open()` ([#​7617]) - fs: support `io_uring` with `OpenOptions` ([#​7321]) - macros: add `local` runtime flavor ([#​7375], [#​7597]) ##### Documented - io: clarify the zero capacity case of `AsyncRead::poll_read` ([#​7580]) - io: fix typos in the docs of `AsyncFd` readiness guards ([#​7583]) - net: clarify socket gets closed on drop ([#​7526]) - net: clarify the behavior of `UCred::pid()` on Cygwin ([#​7611]) - net: clarify the supported platform of `set_reuseport()` and `reuseport()` ([#​7628]) - net: qualify that `SO_REUSEADDR` is only set on Unix ([#​7533]) - runtime: add guide for choosing between runtime types ([#​7635]) - runtime: clarify the behavior of `Handle::block_on` ([#​7665]) - runtime: clarify the edge case of `Builder::global_queue_interval()` ([#​7605]) - sync: clarify bounded channel panic behavior ([#​7641]) - sync: clarify the behavior of `tokio::sync::watch::Receiver` ([#​7584]) - sync: document cancel safety on `SetOnce::wait` ([#​7506]) - sync: fix the docs of `parking_lot` feature flag ([#​7663]) - sync: improve the docs of `UnboundedSender::send` ([#​7661]) - sync: improve the docs of `sync::watch` ([#​7601]) - sync: reword allocation failure paragraph in broadcast docs ([#​7595]) - task: clarify the behavior of several `spawn_local` methods ([#​7669]) - task: clarify the task ID reuse guarantees ([#​7577]) - task: improve the example of `poll_proceed` ([#​7586]) [#​7321]: https://redirect.github.com/tokio-rs/tokio/pull/7321 [#​7375]: https://redirect.github.com/tokio-rs/tokio/pull/7375 [#​7490]: https://redirect.github.com/tokio-rs/tokio/pull/7490 [#​7491]: https://redirect.github.com/tokio-rs/tokio/pull/7491 [#​7494]: https://redirect.github.com/tokio-rs/tokio/pull/7494 [#​7506]: https://redirect.github.com/tokio-rs/tokio/pull/7506 [#​7511]: https://redirect.github.com/tokio-rs/tokio/pull/7511 [#​7526]: https://redirect.github.com/tokio-rs/tokio/pull/7526 [#​7530]: https://redirect.github.com/tokio-rs/tokio/pull/7530 [#​7533]: https://redirect.github.com/tokio-rs/tokio/pull/7533 [#​7535]: https://redirect.github.com/tokio-rs/tokio/pull/7535 [#​7554]: https://redirect.github.com/tokio-rs/tokio/pull/7554 [#​7567]: https://redirect.github.com/tokio-rs/tokio/pull/7567 [#​7569]: https://redirect.github.com/tokio-rs/tokio/pull/7569 [#​7573]: https://redirect.github.com/tokio-rs/tokio/pull/7573 [#​7577]: https://redirect.github.com/tokio-rs/tokio/pull/7577 [#​7580]: https://redirect.github.com/tokio-rs/tokio/pull/7580 [#​7583]: https://redirect.github.com/tokio-rs/tokio/pull/7583 [#​7584]: https://redirect.github.com/tokio-rs/tokio/pull/7584 [#​7586]: https://redirect.github.com/tokio-rs/tokio/pull/7586 [#​7587]: https://redirect.github.com/tokio-rs/tokio/pull/7587 [#​7593]: https://redirect.github.com/tokio-rs/tokio/pull/7593 [#​7594]: https://redirect.github.com/tokio-rs/tokio/pull/7594 [#​7595]: https://redirect.github.com/tokio-rs/tokio/pull/7595 [#​7597]: https://redirect.github.com/tokio-rs/tokio/pull/7597 [#​7599]: https://redirect.github.com/tokio-rs/tokio/pull/7599 [#​7601]: https://redirect.github.com/tokio-rs/tokio/pull/7601 [#​7604]: https://redirect.github.com/tokio-rs/tokio/pull/7604 [#​7605]: https://redirect.github.com/tokio-rs/tokio/pull/7605 [#​7611]: https://redirect.github.com/tokio-rs/tokio/pull/7611 [#​7617]: https://redirect.github.com/tokio-rs/tokio/pull/7617 [#​7621]: https://redirect.github.com/tokio-rs/tokio/pull/7621 [#​7622]: https://redirect.github.com/tokio-rs/tokio/pull/7622 [#​7628]: https://redirect.github.com/tokio-rs/tokio/pull/7628 [#​7629]: https://redirect.github.com/tokio-rs/tokio/pull/7629 [#​7635]: https://redirect.github.com/tokio-rs/tokio/pull/7635 [#​7638]: https://redirect.github.com/tokio-rs/tokio/pull/7638 [#​7641]: https://redirect.github.com/tokio-rs/tokio/pull/7641 [#​7645]: https://redirect.github.com/tokio-rs/tokio/pull/7645 [#​7651]: https://redirect.github.com/tokio-rs/tokio/pull/7651 [#​7655]: https://redirect.github.com/tokio-rs/tokio/pull/7655 [#​7661]: https://redirect.github.com/tokio-rs/tokio/pull/7661 [#​7663]: https://redirect.github.com/tokio-rs/tokio/pull/7663 [#​7665]: https://redirect.github.com/tokio-rs/tokio/pull/7665 [#​7666]: https://redirect.github.com/tokio-rs/tokio/pull/7666 [#​7669]: https://redirect.github.com/tokio-rs/tokio/pull/7669 [#​7672]: https://redirect.github.com/tokio-rs/tokio/pull/7672 [#​7675]: https://redirect.github.com/tokio-rs/tokio/pull/7675 ### [`v1.47.2`](https://redirect.github.com/tokio-rs/tokio/compare/tokio-1.47.1...tokio-1.47.2) [Compare Source](https://redirect.github.com/tokio-rs/tokio/compare/tokio-1.47.1...tokio-1.47.2) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 9am on monday" in timezone Asia/Shanghai, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE0My4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
928e6c4846 |
chore(deps): lock file maintenance rust crates (#14537)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | | | lockFileMaintenance | All locks refreshed | | [oxc_allocator](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc)) | dependencies | minor | `0.93.0` -> `0.94.0` | | [oxc_ast](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc)) | dependencies | minor | `0.93.0` -> `0.94.0` | | [oxc_ast_visit](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc)) | dependencies | minor | `0.93.0` -> `0.94.0` | | [oxc_codegen](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc)) | dependencies | minor | `0.93.0` -> `0.94.0` | | [oxc_minifier](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc)) | dependencies | minor | `0.93.0` -> `0.94.0` | | [oxc_parser](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc)) | dependencies | minor | `0.93.0` -> `0.94.0` | | [oxc_span](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc)) | dependencies | minor | `0.93.0` -> `0.94.0` | | [oxc_syntax](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc)) | dependencies | minor | `0.93.0` -> `0.94.0` | | [unicode-width](https://redirect.github.com/unicode-rs/unicode-width) | dependencies | patch | `0.2.1` -> `0.2.2` | | [flate2](https://redirect.github.com/rust-lang/flate2-rs) | workspace.dependencies | patch | `1.1.2` -> `1.1.4` | | [memchr](https://redirect.github.com/BurntSushi/memchr) | workspace.dependencies | patch | `2.7.5` -> `2.7.6` | | [miette](https://redirect.github.com/oxc-project/oxc-miette) | workspace.dependencies | patch | `2.5.0` -> `2.5.1` | | [oxc-browserslist](https://redirect.github.com/oxc-project/oxc-browserslist) | workspace.dependencies | patch | `2.1.1` -> `2.1.2` | | [oxc_resolver](https://redirect.github.com/oxc-project/oxc-resolver) | workspace.dependencies | minor | `11.8.3` -> `11.9.0` | | [oxc_sourcemap](https://redirect.github.com/oxc-project/oxc-sourcemap) | workspace.dependencies | minor | `4.1.2` -> `4.2.1` | | [petgraph](https://redirect.github.com/petgraph/petgraph) | workspace.dependencies | patch | `0.8.2` -> `0.8.3` | | [quote](https://redirect.github.com/dtolnay/quote) | workspace.dependencies | patch | `1.0.40` -> `1.0.41` | | [serde](https://serde.rs) ([source](https://redirect.github.com/serde-rs/serde)) | workspace.dependencies | patch | `1.0.226` -> `1.0.228` | | [tempfile](https://stebalien.com/projects/tempfile-rs/) ([source](https://redirect.github.com/Stebalien/tempfile)) | workspace.dependencies | minor | `3.22.0` -> `3.23.0` | 🔧 This Pull Request updates lock files to use the latest dependency versions. --- ### Release Notes <details> <summary>unicode-rs/unicode-width (unicode-width)</summary> ### [`v0.2.2`](https://redirect.github.com/unicode-rs/unicode-width/compare/v0.2.1...v0.2.2) [Compare Source](https://redirect.github.com/unicode-rs/unicode-width/compare/v0.2.1...v0.2.2) </details> <details> <summary>rust-lang/flate2-rs (flate2)</summary> ### [`v1.1.4`](https://redirect.github.com/rust-lang/flate2-rs/releases/tag/1.1.4): - it's 1.1.3 with fixed documentation [Compare Source](https://redirect.github.com/rust-lang/flate2-rs/compare/1.1.3...1.1.4) See here for the changelog of v1.1.3: <https://github.com/rust-lang/flate2-rs/releases/tag/1.1.3> . **Full Changelog**: <https://github.com/rust-lang/flate2-rs/compare/1.1.3...1.1.4> ### [`v1.1.3`](https://redirect.github.com/rust-lang/flate2-rs/releases/tag/1.1.3) [Compare Source](https://redirect.github.com/rust-lang/flate2-rs/compare/1.1.2...1.1.3) #### What's Changed - use `zlibVersion()` instead of a `const` for the version by [@​folkertdev](https://redirect.github.com/folkertdev) in [#​491](https://redirect.github.com/rust-lang/flate2-rs/pull/491) - Switch from adler2 to simd-adler32 crate when using miniz\_oxide backend by [@​Shnatsel](https://redirect.github.com/Shnatsel) in [#​492](https://redirect.github.com/rust-lang/flate2-rs/pull/492) - Correct documentation typo by [@​fintelia](https://redirect.github.com/fintelia) in [#​495](https://redirect.github.com/rust-lang/flate2-rs/pull/495) - Use partial flushes with miniz\_oxide backend by [@​fintelia](https://redirect.github.com/fintelia) in [#​496](https://redirect.github.com/rust-lang/flate2-rs/pull/496) - Undo introducing straight up incorrect documentation by [@​Shnatsel](https://redirect.github.com/Shnatsel) in [#​497](https://redirect.github.com/rust-lang/flate2-rs/pull/497) - Update cloudflare-zlib-sys crate by [@​jongiddy](https://redirect.github.com/jongiddy) in [#​503](https://redirect.github.com/rust-lang/flate2-rs/pull/503) - Add `(de)compress_uninit` that accepts `&[MaybeUninit<u8>]` by [@​NobodyXu](https://redirect.github.com/NobodyXu) in [#​502](https://redirect.github.com/rust-lang/flate2-rs/pull/502) - bump the patch level for a new release by [@​Byron](https://redirect.github.com/Byron) in [#​504](https://redirect.github.com/rust-lang/flate2-rs/pull/504) #### New Contributors - [@​fintelia](https://redirect.github.com/fintelia) made their first contribution in [#​495](https://redirect.github.com/rust-lang/flate2-rs/pull/495) **Full Changelog**: <https://github.com/rust-lang/flate2-rs/compare/1.1.2...1.1.3> </details> <details> <summary>BurntSushi/memchr (memchr)</summary> ### [`v2.7.6`](https://redirect.github.com/BurntSushi/memchr/compare/2.7.5...2.7.6) [Compare Source](https://redirect.github.com/BurntSushi/memchr/compare/2.7.5...2.7.6) </details> <details> <summary>oxc-project/oxc-miette (miette)</summary> ### [`v2.5.1`](https://redirect.github.com/oxc-project/oxc-miette/blob/HEAD/CHANGELOG.md#251---2025-09-28) [Compare Source](https://redirect.github.com/oxc-project/oxc-miette/compare/oxc-miette-v2.5.0...oxc-miette-v2.5.1) ##### Chore - *(deps)* Update github-actions ([#​88](https://redirect.github.com/oxc-project/oxc-miette/pull/88)) - *(deps)* Update dependency rust to v1.90.0 ([#​87](https://redirect.github.com/oxc-project/oxc-miette/pull/87)) - *(deps)* Update taiki-e/install-action action to v2.62.0 ([#​90](https://redirect.github.com/oxc-project/oxc-miette/pull/90)) - *(deps)* Lock file maintenance rust crates ([#​91](https://redirect.github.com/oxc-project/oxc-miette/pull/91)) - *(deps)* Update github-actions ([#​92](https://redirect.github.com/oxc-project/oxc-miette/pull/92)) </details> <details> <summary>oxc-project/oxc-browserslist (oxc-browserslist)</summary> ### [`v2.1.2`](https://redirect.github.com/oxc-project/oxc-browserslist/blob/HEAD/CHANGELOG.md#212---2025-09-26) [Compare Source](https://redirect.github.com/oxc-project/oxc-browserslist/compare/oxc-browserslist-v2.1.1...oxc-browserslist-v2.1.2) ##### Other - Update browserslist ([#​315](https://redirect.github.com/oxc-project/oxc-browserslist/pull/315)) - update current create binary size </details> <details> <summary>oxc-project/oxc-resolver (oxc_resolver)</summary> ### [`v11.9.0`](https://redirect.github.com/oxc-project/oxc-resolver/blob/HEAD/CHANGELOG.md#1190---2025-10-01) [Compare Source](https://redirect.github.com/oxc-project/oxc-resolver/compare/v11.8.4...v11.9.0) ##### <!-- 0 -->🚀 Features - only resolve file:// protocol on windows ([#​737](https://redirect.github.com/oxc-project/oxc-resolver/pull/737)) (by [@​Boshen](https://redirect.github.com/Boshen)) - [#​737](https://redirect.github.com/oxc-project/oxc-resolver/issues/737) ##### <!-- 6 -->🧪 Testing - improve test coverage for edge cases ([#​740](https://redirect.github.com/oxc-project/oxc-resolver/pull/740)) (by [@​Boshen](https://redirect.github.com/Boshen)) - [#​740](https://redirect.github.com/oxc-project/oxc-resolver/issues/740) - improve coverage for check\_restrictions ([#​739](https://redirect.github.com/oxc-project/oxc-resolver/pull/739)) (by [@​Boshen](https://redirect.github.com/Boshen)) - [#​739](https://redirect.github.com/oxc-project/oxc-resolver/issues/739) ##### Contributors - [@​Boshen](https://redirect.github.com/Boshen) ### [`v11.8.4`](https://redirect.github.com/oxc-project/oxc-resolver/blob/HEAD/CHANGELOG.md#1184---2025-09-28) [Compare Source](https://redirect.github.com/oxc-project/oxc-resolver/compare/v11.8.3...v11.8.4) ##### <!-- 1 -->🐛 Bug Fixes - ensure canonicalized paths remain accessible via strong references ([#​733](https://redirect.github.com/oxc-project/oxc-resolver/pull/733)) (by [@​Boshen](https://redirect.github.com/Boshen)) - [#​733](https://redirect.github.com/oxc-project/oxc-resolver/issues/733) ##### <!-- 4 -->⚡ Performance - mark error path functions as #\[cold] for better optimization ([#​729](https://redirect.github.com/oxc-project/oxc-resolver/pull/729)) (by [@​Boshen](https://redirect.github.com/Boshen)) - [#​729](https://redirect.github.com/oxc-project/oxc-resolver/issues/729) ##### Contributors - [@​Boshen](https://redirect.github.com/Boshen) </details> <details> <summary>oxc-project/oxc-sourcemap (oxc_sourcemap)</summary> ### [`v4.2.1`](https://redirect.github.com/oxc-project/oxc-sourcemap/blob/HEAD/CHANGELOG.md#421---2025-09-27) [Compare Source](https://redirect.github.com/oxc-project/oxc-sourcemap/compare/v4.2.0...v4.2.1) ##### Other - reduce memory usage by replacing Vec<Token> with Box<\[Token]> - replace !0 with INVALID\_ID constant for better readability ([#​175](https://redirect.github.com/oxc-project/oxc-sourcemap/pull/175)) - remove outdated comment for `TokenChunk` ### [`v4.2.0`](https://redirect.github.com/oxc-project/oxc-sourcemap/blob/HEAD/CHANGELOG.md#420---2025-09-26) [Compare Source](https://redirect.github.com/oxc-project/oxc-sourcemap/compare/v4.1.6...v4.2.0) ##### Added - reduce peak memory usage with `.shrink_to_fit()` ([#​172](https://redirect.github.com/oxc-project/oxc-sourcemap/pull/172)) ### [`v4.1.6`](https://redirect.github.com/oxc-project/oxc-sourcemap/blob/HEAD/CHANGELOG.md#416---2025-09-25) [Compare Source](https://redirect.github.com/oxc-project/oxc-sourcemap/compare/v4.1.5...v4.1.6) ##### Fixed - take `;` into account when estimating mappings length ([#​167](https://redirect.github.com/oxc-project/oxc-sourcemap/pull/167)) ##### Other - tweak `x_google_ignore_list` comment and add assertion ([#​168](https://redirect.github.com/oxc-project/oxc-sourcemap/pull/168)) ### [`v4.1.5`](https://redirect.github.com/oxc-project/oxc-sourcemap/blob/HEAD/CHANGELOG.md#415---2025-09-24) [Compare Source](https://redirect.github.com/oxc-project/oxc-sourcemap/compare/v4.1.4...v4.1.5) ##### Fixed - x\_google\_ignoreList encode format ([#​165](https://redirect.github.com/oxc-project/oxc-sourcemap/pull/165)) ### [`v4.1.4`](https://redirect.github.com/oxc-project/oxc-sourcemap/blob/HEAD/CHANGELOG.md#414---2025-09-24) [Compare Source](https://redirect.github.com/oxc-project/oxc-sourcemap/compare/v4.1.3...v4.1.4) ##### Other - reduce string allocation in sourcemap encoding ([#​163](https://redirect.github.com/oxc-project/oxc-sourcemap/pull/163)) ### [`v4.1.3`](https://redirect.github.com/oxc-project/oxc-sourcemap/blob/HEAD/CHANGELOG.md#413---2025-09-23) [Compare Source](https://redirect.github.com/oxc-project/oxc-sourcemap/compare/v4.1.2...v4.1.3) ##### Other - use simd optimized json string escape impl ([#​158](https://redirect.github.com/oxc-project/oxc-sourcemap/pull/158)) - enable fat lto in bench profile ([#​161](https://redirect.github.com/oxc-project/oxc-sourcemap/pull/161)) </details> <details> <summary>petgraph/petgraph (petgraph)</summary> ### [`v0.8.3`](https://redirect.github.com/petgraph/petgraph/blob/HEAD/CHANGELOG.md#083---2025-09-30) [Compare Source](https://redirect.github.com/petgraph/petgraph/compare/petgraph@v0.8.2...petgraph@v0.8.3) ##### Bug Fixes - Infinite `subgraph_isomorphisms_iter` for empty isomorphisms ([#​780](https://redirect.github.com/petgraph/petgraph/pull/780)) - Algos don't work on `UndirectedAdaptor` ([#​870](https://redirect.github.com/petgraph/petgraph/pull/870)) ([#​871](https://redirect.github.com/petgraph/petgraph/pull/871)) - use a queue for SPFA ([#​893](https://redirect.github.com/petgraph/petgraph/pull/893)) - `StableGraph::reverse` breaks free lists ([#​890](https://redirect.github.com/petgraph/petgraph/pull/890)) ##### Documentation - Fix examples link in README and unify typesetting of one word ([#​823](https://redirect.github.com/petgraph/petgraph/pull/823)) - Add link to multigraph definition to isomorphism algos ([#​824](https://redirect.github.com/petgraph/petgraph/pull/824)) - Fix auxiliary space (and time) complexity of bron-kerbosch ([#​825](https://redirect.github.com/petgraph/petgraph/pull/825)) - Fix Typo in Operator Module Documentation ([#​831](https://redirect.github.com/petgraph/petgraph/pull/831)) - Sync the crate feature flags in the README and docs ([#​832](https://redirect.github.com/petgraph/petgraph/pull/832)) - Remove all \[Generic] tags from algo docstrings ([#​835](https://redirect.github.com/petgraph/petgraph/pull/835)) - Fix typos in comments ([#​836](https://redirect.github.com/petgraph/petgraph/pull/836)) - Revamp CONTRIBUTING.md ([#​833](https://redirect.github.com/petgraph/petgraph/pull/833)) - Update `GraphMap` link in README ([#​857](https://redirect.github.com/petgraph/petgraph/pull/857)) - Add doc comment for `Dot::with_attr_getters` ([#​850](https://redirect.github.com/petgraph/petgraph/pull/850)) - Specify iteration order for neighbors and edges and their variants ([#​790](https://redirect.github.com/petgraph/petgraph/pull/790)) - Collection of Doc fixes ([#​856](https://redirect.github.com/petgraph/petgraph/pull/856)) ##### New Features - Add `into_nodes_edges_iters` to `StableGraph` ([#​841](https://redirect.github.com/petgraph/petgraph/pull/841)) - Add methods to reserve & shrink `StableGraph` capacity ([#​846](https://redirect.github.com/petgraph/petgraph/pull/846)) - Add Dinic's Maximum Flow Algorithm ([#​739](https://redirect.github.com/petgraph/petgraph/pull/739)) - make Csr::from\_sorted\_edges generic over edge type and properly increase edge\_count in Csr::from\_sorted\_edges ([#​861](https://redirect.github.com/petgraph/petgraph/pull/861)) - Add `map_owned` and `filter_map_owned` for `Graph` and `StableGraph` ([#​863](https://redirect.github.com/petgraph/petgraph/pull/863)) - Add dijkstra::with\_dynamic\_goal ([#​855](https://redirect.github.com/petgraph/petgraph/pull/855)) - Fix self-loop bug in all\_simple\_paths and enable multiple targets ([#​865](https://redirect.github.com/petgraph/petgraph/pull/865)) - mark petgraph::dot::Dot::graph\_fmt as public ([#​866](https://redirect.github.com/petgraph/petgraph/pull/866)) - Add bidirectional Dijkstra algorithm ([#​782](https://redirect.github.com/petgraph/petgraph/pull/782)) ##### Performance - Make A\* tie break on lower h-values ([#​882](https://redirect.github.com/petgraph/petgraph/pull/882)) ##### Refactor - add examples for scc algorithms and reorganize into dedicated module ([#​830](https://redirect.github.com/petgraph/petgraph/pull/830)) - Remove unnecessary trait bounds from impls/methods ([#​828](https://redirect.github.com/petgraph/petgraph/pull/828)) - replace uses of 'crate::util::zip' with 'core::iter::zip' ([#​849](https://redirect.github.com/petgraph/petgraph/pull/849)) - Fix clippy (and other) lints ([#​851](https://redirect.github.com/petgraph/petgraph/pull/851)) - Cleanup repo ([#​854](https://redirect.github.com/petgraph/petgraph/pull/854)) - replace crate::util::enumerate with Iterator::enumerate ([#​881](https://redirect.github.com/petgraph/petgraph/pull/881)) ##### Testing - Add dependency list for 'quickcheck' feature ([#​822](https://redirect.github.com/petgraph/petgraph/pull/822)) - Fix feature cfg capitalization in doctest ([#​852](https://redirect.github.com/petgraph/petgraph/pull/852)) </details> <details> <summary>dtolnay/quote (quote)</summary> ### [`v1.0.41`](https://redirect.github.com/dtolnay/quote/releases/tag/1.0.41) [Compare Source](https://redirect.github.com/dtolnay/quote/compare/1.0.40...1.0.41) - Improve compile error when repetition contains no interpolated value that is an iterator ([#​302](https://redirect.github.com/dtolnay/quote/issues/302)) </details> <details> <summary>serde-rs/serde (serde)</summary> ### [`v1.0.228`](https://redirect.github.com/serde-rs/serde/releases/tag/v1.0.228) [Compare Source](https://redirect.github.com/serde-rs/serde/compare/v1.0.227...v1.0.228) - Allow building documentation with `RUSTDOCFLAGS='--cfg=docsrs'` set for the whole dependency graph ([#​2995](https://redirect.github.com/serde-rs/serde/issues/2995)) ### [`v1.0.227`](https://redirect.github.com/serde-rs/serde/releases/tag/v1.0.227) [Compare Source](https://redirect.github.com/serde-rs/serde/compare/v1.0.226...v1.0.227) - Documentation improvements ([#​2991](https://redirect.github.com/serde-rs/serde/issues/2991)) </details> <details> <summary>Stebalien/tempfile (tempfile)</summary> ### [`v3.23.0`](https://redirect.github.com/Stebalien/tempfile/blob/HEAD/CHANGELOG.md#3230) [Compare Source](https://redirect.github.com/Stebalien/tempfile/compare/v3.22.0...v3.23.0) - Remove need for the "nightly" feature to compile with "wasip2". </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 9am on monday" in timezone Asia/Shanghai, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE0My4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
||
|
|
a98757a1df |
refactor(napi/parser): minify syntax in raw transfer deserializers (#14308)
Pure refactor. Minify syntax of raw transfer deserializers. Purpose is not to compress the size of the files per se, but to remove dead code. This is first step towards adding support for `range` and `parent` to raw transfer. `tasks/ast_tools` gains dependencies on `oxc_minify` etc. These have to be dependencies on copies of the published crates from crates.io, NOT local copies (not `workspace = true`). This is because if changes are made to the AST, the local versions of many crates may not compile until after the codegen has run to update code to account for those changes - catch 22. Depending on published versions of the crates avoids this circularity. |
||
|
|
3656908d0e |
feat(rust): oxc-index-vec v4.0 (#14254)
Closes https://github.com/oxc-project/backlog/issues/109 Also did a bunch of macro stuff to reduce the boilerplates. |
||
|
|
4ee94a3308 |
feat(napi/parser): export visitor keys (#13927)
Add visitor keys export to `oxc-parser` NPM package. This is useful in itself, but also the first step towards an ESTree walker. Visitor keys are based on `@typescript-eslint/visitor-keys`. It'd be ideal to generate visitor keys direct from Oxc's own types, but that's proving difficult due to all the custom serializers we use to translate to ESTree. So using the shortcut of borrowing from TS-ESLint for now. Oxc's AST is slightly different from TS-ESTree (notably Oxc's AST adds `ParenthesizedExpression`). But apart from those few differences, TS-ESLint's AST and Oxc's are identical, and I made a PR to TS-ESLint earlier this year (https://github.com/typescript-eslint/typescript-eslint/pull/11279) to ensure visitor key order is correct, and matches Oxc. To avoid adding a runtime dependency on `@typescript-eslint/visitor-keys`, extract the data from TS-ESLint in `oxc_ast_tools`, amend for Oxc/TS-ESTree differences, and re-output it as a simple object literal. This approach will be faster at runtime, as the object's shape is consistent, and also avoids a dependency. |
||
|
|
a4f5a3a019 |
feat(ast_tools): add Schema::structs_and_enums method (#13949)
Add a `structs_and_enums` method to `Schema` which returns an iterator over all struct and enum definitions, skipping primitives, boxes, vecs, etc. This will be useful in many places in `oxc_ast_tools`. |
||
|
|
2b0a69fb6b |
perf(ast): re-order struct fields to reduce padding (#11056)
All our AST structs are `#[repr(C)]`, which gives us guaranteed stable memory layouts. This is essential for raw transfer, and helpful for other purposes too. However, the downside is that we lose out on the automatic field-reordering that default `#[repr(Rust)]` provides, where structs are packed to minimize padding bytes. This PR implements a similar field-reordering scheme, to get the same effect. * `oxc_ast_tools` determines optimal field order for compact memory layout. * `oxc_ast_tools` generates a file (`structs.rs`) which details the desired field order for each type. * `#[ast]` proc macro follows the instructions in `structs.rs` and re-orders the fields. This reduces the size of various AST types by 8 bytes. No type now has more than 7 padding bytes (previously e.g. `Function` had 15 bytes of padding). Possible future improvements: 1. Get Rust Analyser to display original field order. 2. Remove `syn` dependency from `oxc_ast_macros` crate, to improve compile times. It should be possible to do all the AST manipulation using just `proc_macro` crate, by generating more code in `oxc_ast_tools`, so the macro's logic can be simpler. Note: This PR doesn't add `syn` dependency, it was already there. But it makes it easier to remove it. |
||
|
|
6432707052 |
refactor(rust): use lazy-regex (#10004)
|
||
|
|
6185619984 |
refactor(ast_tools): improve correctness and performance of idents (#8895)
Refactor. Codegen produces lots of identifiers in the generated code. Ensure they're always prepended with `r#` if they're reserved words. Speed up checking if a name is a reserved word by using a perfect hash set, rather than iterating through an array. |
||
|
|
a5bdf322f3 |
refactor(ast_tools): re-vamp oxc_ast_tools (#8844)
Large refactor of `oxc_ast_tools`. This barely alters the generated code which `oxc_ast_tools` produces, but it overhauls its internals significantly. Notable changes: * Code and types are much simplified. * Fully documented. * `Schema` is the single source of truth for information about the AST. Generators don't have to deal with the complicated `syn` types. * `Vec`s, `Option`s, `Box`es, and primitive types have their own entries in the schema. * Co-locate logic for custom attributes (e.g. `#[visit]`) with the generators which use those attributes. * Helpers for parsing attributes, and other common actions. * Fix logic for calculating type layouts, correctly calculating niches. * Generation runs in parallel with `rayon`. Overall intent is to make maintaining/modifying the existing generators, and adding new ones, much easier. The complex logic of parsing types etc is abstracted away into the "framework" of `oxc_ast_tools`, leaving the generators themselves simpler to write and easier to reason about. |
||
|
|
83d1f69f75 |
refactor(ast_tools): replace str::replace with CowUtils::cow_replace (#6954)
Obey our clippy-enforced policy to prefer `CowUtils::cow_replace`. |
||
|
|
02d5637dbc |
perf(ast-tools): use FxHashMap over std::collections::HashMap (#5997)
|
||
|
|
63a830e08c |
chore(dprint): format toml files (#5599)
Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com> |
||
|
|
8e8fcd0584 |
refactor(ast_tools): rename oxc_ast_codegen to oxc_ast_tools. (#4846)
This PR renames the `oxc_ast_codegen` crate to `oxc_ast_tools`, It improves the readability and organization of the codebase by giving the crate a name that better reflects its purpose and contents. It also improves the error message in CI. |