Nia
f09dc3cf46
fix(wasm): fix alias map size computation
...
This fixes a crash where parsing with certain languages can lead to a crash due to how the alias map was allocated and laid out in wasm memory
2025-09-18 18:34:27 -04:00
Amaan Qureshi
22553b3372
feat: support compiling to wasm32-unknown-unknown
2025-09-17 04:57:49 -04:00
dependabot[bot]
b6f45b0a2e
build(deps): bump the npm group across 1 directory with 4 updates
...
Bumps the npm group with 4 updates in the /lib/binding_web directory: [@types/emscripten](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/emscripten ), [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ), [typescript](https://github.com/microsoft/TypeScript ) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint ).
Updates `@types/emscripten` from 1.41.1 to 1.41.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/emscripten )
Updates `@types/node` from 24.3.1 to 24.5.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `typescript` from 5.8.3 to 5.9.2
- [Release notes](https://github.com/microsoft/TypeScript/releases )
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml )
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.8.3...v5.9.2 )
Updates `typescript-eslint` from 8.43.0 to 8.44.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.44.0/packages/typescript-eslint )
---
updated-dependencies:
- dependency-name: "@types/emscripten"
dependency-version: 1.41.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm
- dependency-name: "@types/node"
dependency-version: 24.5.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: typescript
dependency-version: 5.9.2
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: typescript-eslint
dependency-version: 8.44.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-09-15 19:32:20 -04:00
Will Lillis
ac39aed7c5
fix(lib/wasm): return NULL for 0-sized allocations
...
Co-authored-by: Amaan Qureshi <contact@amaanq.com>
2025-09-13 22:29:47 -04:00
Amaan Qureshi
c4d02a5254
build(lib): regenerate wasm stdlib
...
Co-authored-by: Will Lillis <will.lillis24@gmail.com>
2025-09-13 22:29:47 -04:00
Amaan Qureshi
69c42450c3
fix(lib/wasm): keep track of freed blocks that are not the last allocated pointer
...
This fixes issues where the scanner allocates and frees a lot of data
during a single parse.
Co-authored-by: Will Lillis <will.lillis24@gmail.com>
2025-09-13 22:29:47 -04:00
Will Lillis
0c35511aea
fix(lib): improve wasm scanner serialization error handling
...
Co-authored-by: Amaan Qureshi <contact@amaanq.com>
2025-09-13 22:29:47 -04:00
Amaan Qureshi
580cd9541a
feat(web)!: remove deprecated functions
2025-09-12 02:50:30 -04:00
Amaan Qureshi
d60ef9ad0a
feat(rust)!: remove deprecated functions
2025-09-12 02:50:30 -04:00
Amaan Qureshi
821cf797f2
feat(lib)!: remove deprecated functions
2025-09-12 02:50:30 -04:00
ObserverOfTime
56325d2a3b
chore: copy license to all packages
2025-09-11 03:12:35 -04:00
kilo52
d1160cb820
build(cmake)!: move CMakeLists.txt to the source root
2025-09-11 01:59:37 -04:00
kilo52
5528cfee17
build(cmake): change include directory scope to public
...
When a project adds tree-sitter as a dependency via the CMake
FetchContent machinery, the project fails to build because the
tree-sitter header cannot be found. This is because the include
directory is specified with the private scope instead of public.
2025-09-11 01:59:37 -04:00
Daniel Müller
937dcf5fd1
feat(rust)!: use ops::ControlFlow as parse and query progress return value
...
Instead of returning an undocumented boolean flag, use a
core::ops::ControlFlow object. At the expense of being a bit more
verbose, this is a type that should be self-explanatory in the context
of a callback, as an indication of whether to continue processing or
stop.
2025-09-11 01:59:21 -04:00
dependabot[bot]
57e2f41f42
build(deps): bump vite from 7.1.3 to 7.1.5 in /lib/binding_web
...
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) from 7.1.3 to 7.1.5.
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v7.1.5/packages/vite )
---
updated-dependencies:
- dependency-name: vite
dependency-version: 7.1.5
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-09-10 23:27:36 -04:00
Amaan Qureshi
6451d2f65d
fix(web): correct metadata function
2025-09-09 03:13:35 -04:00
faukah
e4e643086b
refactor: rework nix flake
...
Co-authored-by: Amaan Qureshi <amaanq12@gmail.com>
2025-09-09 03:03:35 -04:00
dependabot[bot]
16502e19dd
build(deps): bump the npm group across 1 directory with 6 updates
...
Bumps the npm group with 6 updates in the /lib/binding_web directory:
| Package | From | To |
| --- | --- | --- |
| [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js ) | `9.34.0` | `9.35.0` |
| [@types/emscripten](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/emscripten ) | `1.40.0` | `1.41.1` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) | `24.3.0` | `24.3.1` |
| [eslint](https://github.com/eslint/eslint ) | `9.34.0` | `9.35.0` |
| [typescript](https://github.com/microsoft/TypeScript ) | `5.8.3` | `5.9.2` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint ) | `8.41.0` | `8.43.0` |
Updates `@eslint/js` from 9.34.0 to 9.35.0
- [Release notes](https://github.com/eslint/eslint/releases )
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md )
- [Commits](https://github.com/eslint/eslint/commits/v9.35.0/packages/js )
Updates `@types/emscripten` from 1.40.0 to 1.41.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/emscripten )
Updates `@types/node` from 24.3.0 to 24.3.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `eslint` from 9.34.0 to 9.35.0
- [Release notes](https://github.com/eslint/eslint/releases )
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md )
- [Commits](https://github.com/eslint/eslint/compare/v9.34.0...v9.35.0 )
Updates `typescript` from 5.8.3 to 5.9.2
- [Release notes](https://github.com/microsoft/TypeScript/releases )
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml )
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.8.3...v5.9.2 )
Updates `typescript-eslint` from 8.41.0 to 8.43.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.43.0/packages/typescript-eslint )
---
updated-dependencies:
- dependency-name: "@eslint/js"
dependency-version: 9.35.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: "@types/emscripten"
dependency-version: 1.41.1
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: "@types/node"
dependency-version: 24.3.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm
- dependency-name: eslint
dependency-version: 9.35.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: typescript
dependency-version: 5.9.2
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: typescript-eslint
dependency-version: 8.43.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-09-09 04:33:49 +02:00
Amaan Qureshi
17854168d9
feat(nix): add cross compilation support
2025-09-04 05:00:14 -04:00
Amaan Qureshi
d287acfcc0
refactor(nix): remove openssl dependency
2025-09-04 05:00:14 -04:00
Amaan Qureshi
cd12e66e67
fix(lib): don't run code snippet as a doctest
2025-09-04 04:22:32 -04:00
Amaan Qureshi
1d0ebd1065
fix(rust): do not interpret readme doc comments as doc tests
2025-09-04 04:22:32 -04:00
Amaan Qureshi
3b0273fc61
build: bump emscripten to 4.0.12
2025-09-04 00:59:01 -04:00
Amaan Qureshi
f0cfaffd5e
build(web): mark @types/emscripten as a dev dep
2025-09-01 23:14:20 -04:00
Amaan Qureshi
94996b26e5
refactor(web): clean up preserving sourcemap logic, don't copy lib files
2025-09-01 23:14:20 -04:00
Amaan Qureshi
da61d7cac5
feat: add nix flake
2025-09-01 22:48:37 -04:00
Boris Verkhovskiy
9b23cd5394
feat: use compileStreaming when loading wasm parsers
2025-09-01 22:08:20 -04:00
ObserverOfTime
b75196bb81
feat(c): rename DecodeFunction to TSDecodeFunction
...
Keep a typedef for backwards compatibility until ABI 16.
2025-09-01 03:17:44 -04:00
ObserverOfTime
07986471b3
feat(xtask): automate edits to emscripten generated d.ts
2025-08-30 18:14:42 -04:00
ObserverOfTime
dba8446d9e
feat(web)!: use bigint for timeouts
2025-08-30 18:14:42 -04:00
ObserverOfTime
8b3e023ef0
chore(web): remove source files from package
...
and generated files from version control
2025-08-30 18:14:42 -04:00
ObserverOfTime
5272b6b908
refactor(web): use nullish coalescing operator
2025-08-30 18:13:39 -04:00
dependabot[bot]
a866eb5dd0
build(deps): bump the npm group across 1 directory with 9 updates
...
Bumps the npm group with 8 updates in the /lib/binding_web directory:
| Package | From | To |
| --- | --- | --- |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) | `22.13.1` | `24.3.0` |
| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8 ) | `3.0.5` | `3.2.4` |
| [dts-buddy](https://github.com/Rich-Harris/dts-buddy ) | `0.5.4` | `0.6.2` |
| [esbuild](https://github.com/evanw/esbuild ) | `0.25.0` | `0.25.9` |
| [source-map](https://github.com/mozilla/source-map ) | `0.7.4` | `0.7.6` |
| [tsx](https://github.com/privatenumber/tsx ) | `4.20.3` | `4.20.5` |
| [typescript](https://github.com/microsoft/TypeScript ) | `5.7.3` | `5.9.2` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint ) | `8.23.0` | `8.41.0` |
Updates `@types/node` from 22.13.1 to 24.3.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `@vitest/coverage-v8` from 3.0.5 to 3.2.4
- [Release notes](https://github.com/vitest-dev/vitest/releases )
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.2.4/packages/coverage-v8 )
Updates `dts-buddy` from 0.5.4 to 0.6.2
- [Release notes](https://github.com/Rich-Harris/dts-buddy/releases )
- [Changelog](https://github.com/sveltejs/dts-buddy/blob/main/CHANGELOG.md )
- [Commits](https://github.com/Rich-Harris/dts-buddy/compare/v0.5.4...v0.6.2 )
Updates `esbuild` from 0.25.0 to 0.25.9
- [Release notes](https://github.com/evanw/esbuild/releases )
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md )
- [Commits](https://github.com/evanw/esbuild/compare/v0.25.0...v0.25.9 )
Updates `source-map` from 0.7.4 to 0.7.6
- [Release notes](https://github.com/mozilla/source-map/releases )
- [Changelog](https://github.com/mozilla/source-map/blob/master/CHANGELOG.md )
- [Commits](https://github.com/mozilla/source-map/compare/v0.7.4...0.7.6 )
Updates `tsx` from 4.20.3 to 4.20.5
- [Release notes](https://github.com/privatenumber/tsx/releases )
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs )
- [Commits](https://github.com/privatenumber/tsx/compare/v4.20.3...v4.20.5 )
Updates `typescript` from 5.7.3 to 5.9.2
- [Release notes](https://github.com/microsoft/TypeScript/releases )
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml )
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.7.3...v5.9.2 )
Updates `typescript-eslint` from 8.23.0 to 8.41.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.41.0/packages/typescript-eslint )
Updates `vitest` from 3.0.5 to 3.2.4
- [Release notes](https://github.com/vitest-dev/vitest/releases )
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.2.4/packages/vitest )
---
updated-dependencies:
- dependency-name: "@types/node"
dependency-version: 24.3.0
dependency-type: direct:development
update-type: version-update:semver-major
dependency-group: npm
- dependency-name: "@vitest/coverage-v8"
dependency-version: 3.2.4
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: dts-buddy
dependency-version: 0.6.2
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: esbuild
dependency-version: 0.25.9
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm
- dependency-name: source-map
dependency-version: 0.7.6
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm
- dependency-name: tsx
dependency-version: 4.20.5
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm
- dependency-name: typescript
dependency-version: 5.9.2
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: typescript-eslint
dependency-version: 8.41.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
- dependency-name: vitest
dependency-version: 3.2.4
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-08-30 18:13:39 -04:00
ObserverOfTime
90bdd63a71
fix(npm): add directory to repository fields
...
and remove non-existent "main" entry point
2025-08-30 17:16:25 -04:00
vemoo
4db3edadf4
fix(web): correct type errors, improve build
2025-08-30 16:51:41 -04:00
ObserverOfTime
489ad07e8b
build(deps): bump wasmtime-c-api to v33.0.2
2025-08-30 16:47:47 +03:00
RedCMD
721b0e8b11
fix(web): update .d.ts files
2025-08-29 21:39:53 -04:00
Amaan Qureshi
8387101a61
fix(lib): allow error nodes to match when they are child nodes
2025-08-28 18:02:47 -04:00
Amaan Qureshi
b7f36a13ba
fix(lib): check if an ERROR node is named before assuming it's the builtin error node
2025-08-28 17:13:57 -04:00
Quentin LE DILAVREC
79177a1cd5
fix(rust): EqCapture accepted cases where number of captured nodes differed by one
...
Problem: When using alternations, the `#eq?` predicate does not always use the same capture name.
Solution: Iterate the left and right captured nodes more independently.
2025-08-27 10:25:29 +02:00
dependabot[bot]
0a7274678a
build(deps): bump the cargo group with 8 updates
...
Bumps the cargo group with 8 updates:
| Package | From | To |
| --- | --- | --- |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.2.33` | `1.2.34` |
| [filetime](https://github.com/alexcrichton/filetime ) | `0.2.25` | `0.2.26` |
| [indexmap](https://github.com/indexmap-rs/indexmap ) | `2.10.0` | `2.11.0` |
| [regex](https://github.com/rust-lang/regex ) | `1.11.1` | `1.11.2` |
| [regex-syntax](https://github.com/rust-lang/regex ) | `0.8.5` | `0.8.6` |
| [serde_json](https://github.com/serde-rs/json ) | `1.0.142` | `1.0.143` |
| [tempfile](https://github.com/Stebalien/tempfile ) | `3.20.0` | `3.21.0` |
| [thiserror](https://github.com/dtolnay/thiserror ) | `2.0.15` | `2.0.16` |
Updates `cc` from 1.2.33 to 1.2.34
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.33...cc-v1.2.34 )
Updates `filetime` from 0.2.25 to 0.2.26
- [Commits](https://github.com/alexcrichton/filetime/commits )
Updates `indexmap` from 2.10.0 to 2.11.0
- [Changelog](https://github.com/indexmap-rs/indexmap/blob/main/RELEASES.md )
- [Commits](https://github.com/indexmap-rs/indexmap/compare/2.10.0...2.11.0 )
Updates `regex` from 1.11.1 to 1.11.2
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/1.11.1...1.11.2 )
Updates `regex-syntax` from 0.8.5 to 0.8.6
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/regex-syntax-0.8.5...regex-syntax-0.8.6 )
Updates `serde_json` from 1.0.142 to 1.0.143
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.142...v1.0.143 )
Updates `tempfile` from 3.20.0 to 3.21.0
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md )
- [Commits](https://github.com/Stebalien/tempfile/commits )
Updates `thiserror` from 2.0.15 to 2.0.16
- [Release notes](https://github.com/dtolnay/thiserror/releases )
- [Commits](https://github.com/dtolnay/thiserror/compare/2.0.15...2.0.16 )
---
updated-dependencies:
- dependency-name: cc
dependency-version: 1.2.34
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: filetime
dependency-version: 0.2.26
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: indexmap
dependency-version: 2.11.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
- dependency-name: regex
dependency-version: 1.11.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: regex-syntax
dependency-version: 0.8.6
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: serde_json
dependency-version: 1.0.143
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
- dependency-name: tempfile
dependency-version: 3.21.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo
- dependency-name: thiserror
dependency-version: 2.0.16
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-08-26 16:11:45 +02:00
WillLillis
0d914c860a
fix(wasm): delete var_i32_type after initializing global stack
...
pointer value
2025-08-25 17:16:02 -04:00
Will Lillis
fee50ad0ce
feat(lib): add lldb pretty-printers for some C lib types
2025-08-22 20:10:03 -04:00
Alexander von Gluck
be888a5fef
fix(c): add Haiku support to endian.h
2025-08-22 14:09:13 +03:00
ObserverOfTime
88e0b4cea4
docs: change WASM/wasm to Wasm
...
That is the official capitalisation.
2025-08-21 09:56:32 +03:00
Carlos Scheidegger
c60264b87f
docs(web): fix deno import example
2025-08-13 22:56:21 +03:00
Will Lillis
5e1daf0c41
fix(rust)!: take u32 for index parameter to Node::{child, named_child}
...
Co-authored-by: Ye Sijun <junnplus@gmail.com>
2025-08-03 12:58:53 -04:00
Will Lillis
7d0b94c008
fix(docs): indicate CJS env var export is different on Windows platforms
2025-08-03 12:58:34 -04:00
Will Lillis
d3c2fed4b3
fix(rust): correct indices for Node::utf16_text
2025-08-02 16:03:55 -04:00
Riley Bruins
6850df969d
fix(query): prevent cycles when analyzing hidden children
...
**Problem:** `query.c` compares the current analysis state with the
previous analysis state to see if they are equal, so that it can return
early if so. This prevents redundant work. However, the comparison
function here differs from the one used for sorted insertion/lookup in
that it does not check any state data other than the child index. This
is problematic because it leads to infinite analysis when hidden nodes
have cycles.
**Solution:** Remove the custom comparison function, and apply the
insertion/lookup comparison function in place of it.
**NOTE:** This commit also changes the comparison function slightly, so
that some comparisons are reordered. Namely, for performance, it returns
early if the lhs depth is less than the rhs depth. Is this acceptable?
Tests still pass and nothing hangs in my testing, but it still seems
sketchy. Returning early if the lhs depth is greater than the rhs depth
does seem to make query analysis hang, weirdly enough... Keeping the
depth checks at the end of the loop also works, but it introduces a
noticeable performance regression (for queries that otherwise wouldn't
have had analysis cycles, of course).
2025-07-30 00:41:01 -04:00