Repository navigation
v0.9.0
·
669 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
What's Changed
Features
- ✨ feat(bench): add mq-bench runner for pure-mq bench_ functions by @harehare in #2367
- ✨ feat(cli): add --no-clobber/--append for -o output by @harehare in #2306
- feat(cli): add quiet execution mode by @harehare in #2324
- ✨ feat(editors): add recent query history to Execute Query command by @harehare in #2350
- ✨ feat(json): add JSON Pointer (RFC 6901) functions by @harehare in #2386
- ✨ feat(json): add json_diff and json_patch (RFC 6902) by @harehare in #2402
- ✨ feat(json): add json_merge_patch and merge3 by @harehare in #2404
- ✨ feat(lang): add yield/generator support on the Tarn VM by @harehare in #2322
- ✨ feat(md): add h1-h6, highlight, comment, wikilink, embed, escape, hard_break builders by @harehare in #2379
- ✨ feat(mq-lang): add casefold, unicode_normalize, graphemes, grapheme_len builtins by @harehare in #2315
- ✨ feat(mq-lang): add md::reference_index and md::resolve_references by @harehare in #2317
- ✨ feat(mq-lang): add file_info builtin for file metadata by @harehare in #2327
- ✨ feat(mq-lang): add dedent and common_indent builtins by @harehare in #2332
- ✨ feat(mq-lang): support hyphen ranges and || (OR) in semver ranges by @harehare in #2333
- ✨ feat(mq-lang): add walk_files builtin for generic file enumeration by @harehare in #2334
- ✨ feat(mq-lang): add find builtin with predicate, stops at first match by @harehare in #2337
- ✨ feat(mq-lang): add is_blank, normalize_newlines, and safe_filename builtins by @harehare in #2346
- ✨ feat(mq-lang): add section::find/by_title/title_is/containing by @harehare in #2351
- ✨ feat(mq-lang): add markdown_escape builtin for context-aware Markdown escaping by @harehare in #2352
- ✨ feat(mq-lang): add regex_escape builtin for literal-safe regex patterns by @harehare in #2354
- ✨ feat(mq-lang): add callback-based regex_replace by @harehare in #2365
- ✨ feat(mq-lang): extend byte-array support to split, replace, trim, and join by @harehare in #2371
- ✨ feat(mq-lang): add coroutine-based file streaming by @harehare in #2372
- ✨ feat(mq-lang): add forward_fill, backward_fill and constant_fill to csv module by @harehare in #2373
- ✨ feat(mq-lang): stream HTTP responses via open_http/http_lines by @harehare in #2380
- ✨ feat(mq-lang): add forward_fill, backward_fill and constant_fill to table module by @harehare in #2382
- ✨ feat(mq-lang): add query helpers to xml module by @harehare in #2385
- ✨ feat(mq-lang): add semi/anti kinds to join_by by @harehare in #2391
- ✨ feat(mq-lang): add base64d_bytes and base64urld_bytes by @harehare in #2403
- ✨ feat(mq-lang): add redact for masking secrets in structured data by @harehare in #2405
- ✨ feat(mq-lang): enable unicode-case for (?i) inline regex flag by @harehare in #2406
- ✨ feat(mq-lang): add try_parse variants and to_number_or by @harehare in #2409
- ✨ feat(mq-lang): add split_records by @harehare in #2417
- ✨ feat(mq-lang): add leaf_entries by @harehare in #2418
- ✨ feat(mq-lang,mq-markdown): add .line/.end_line selector attributes by @harehare in #2353
- ✨ feat(mq-lang,mq-test): add gen module and @Property annotation for property-based testing by @harehare in #2254
- ✨ feat(mq-playground): run mq scripts in a Web Worker by @harehare in #2347 (reverted below by #2377)
- ✨ feat(mq-run): add --sandbox preset flag for capability shorthand by @harehare in #2328
- ✨ feat(mq-run): hint the --allow-* flag when the sandbox denies a capability by @harehare in #2392
- ✨ feat(mq-test): add --list/--format json and wire up VS Code Test Explorer by @harehare in #2348
- ✨ feat(repl): page long output with /more and /all by @harehare in #2374
- ✨ feat(section): add tree navigation functions by @harehare in #2394 (reverted below by #2396)
- ✨ feat(section): add tree navigation functions by @harehare in #2397 (re-added)
- ✨ feat(semver): add caret/tilde ranges and semver_max_satisfying by @harehare in #2316
Fixes
- 🐛 fix(build): make just test-fuzz work again by @harehare in #2421
- 🐛 fix(cli): validate timeout values by @harehare in #2419
- fix(editors/neovim): auto-start LSP server on demand for Mq commands by @shawnchencun in #2308
- 🐛 fix(modules): make stringify output parse back to the same value by @harehare in #2376
- 🐛 fix(mq-lang): fix pow() truncating float bases and panicking on overflow by @harehare in #2366
- 🐛 fix(mq-lang): resolve module names from shared ids in error diagnostics by @harehare in #2383
- 🐛 fix(mq-lang): keep whitespace around entity references in xml_parse by @harehare in #2388
- 🐛 fix(mq-lang): harden URL allowlists and SSRF checks by @harehare in #2422
- 🐛 fix(mq-lang,mq-dap): fix blank/wrong names in DAP call stack frames by @harehare in #2359
- 🐛 fix(mq-wasm): resolve OPFS root without window so it works in Web Workers by @harehare in #2378
Documentation
- 📝 docs(cookbook): add recipes for xml, xpath, gron, toon, cbor and md modules by @harehare in #2387
- 💄 style(docs): fix Cookbook sidebar fold for mdbook 0.5 by @harehare in #2384
Refactoring
- ♻️ refactor(mq-lang): remove tarn feature flag and tree-walking evaluator by @harehare in #2307
- ♻️ refactor(mq-lang): represent array/dict literals as dedicated AST nodes by @harehare in #2338
- ♻️ refactor(mq-lang): split optimizer into AST and bytecode-peephole layers by @harehare in #2339
- ♻️ refactor(mq-lang): remove AST optimizer by @harehare in #2389
- ♻️ refactor(mq-lang): rename VmClosure to Closure and import crate paths by @harehare in #2390
- ♻️ refactor(mq-lang): keep tarn Continuation pointer-sized by @harehare in #2410
- 💄 style(playground): refine header, panel headers, empty states and resize handle by @harehare in #2375
Performance
- ⚡ perf(lang): optimize parser and VM hot paths by @harehare in #2393
- ⚡ perf(lang): box Locals::Hybrid to shrink Frame by @harehare in #2395
- perf(tarn): specialize local builtin calls by @harehare in #2345
- ⚡ perf(tarn): reduce interpreter overhead in hot paths by @harehare in #2362
- perf(tarn): shrink Frame by packing stack_base and ip into u32 by @harehare in #2416
Test
Dependency Updates
- 📦 build: trim miette backtrace support and dedupe encoding_rs by @harehare in #2407
- build(deps): bump smallvec from 1.15.2 to 1.16.0 in the dependencies group by @dependabot[bot] in #2311
- build(deps): bump taiki-e/install-action from 2.87.2 to 2.87.3 in the dependencies group by @dependabot[bot] in #2312
- build(deps): bump taiki-e/install-action from 2.87.3 to 2.87.4 in the dependencies group by @dependabot[bot] in #2321
- build(deps): bump toml from 1.1.4+spec-1.1.0 to 1.1.5+spec-1.1.0 in the dependencies group by @dependabot[bot] in #2320
- build(deps): bump syn from 3.0.4 to 3.0.5 in the dependencies group by @dependabot[bot] in #2330
- build(deps): bump taiki-e/install-action from 2.87.4 to 2.87.5 in the dependencies group by @dependabot[bot] in #2331
- build(deps): bump the dependencies group with 3 updates by @dependabot[bot] in #2344
- build(deps): bump the dependencies group with 8 updates by @dependabot[bot] in #2343
- build(deps): bump the dependencies group with 5 updates by @dependabot[bot] in #2358
- build(deps): bump taiki-e/install-action from 2.87.9 to 2.87.10 in the dependencies group by @dependabot[bot] in #2364
- build(deps): bump yaml-rust2 from 0.12.0 to 0.13.0 in the dependencies group by @dependabot[bot] in #2369
- build(deps): bump taiki-e/install-action from 2.87.10 to 2.87.11 in the dependencies group by @dependabot[bot] in #2370
- build(deps): bump the dependencies group with 2 updates by @dependabot[bot] in #2401
- build(deps): bump clap_complete from 4.6.10 to 4.6.11 in the dependencies group by @dependabot[bot] in #2414
- build(deps): bump the dependencies group with 3 updates by @dependabot[bot] in #2415
- build(deps): bump the npm_and_yarn group across 0 directory with 1 update by @dependabot[bot] in #2314
- build(deps-dev): bump oxlint from 1.80.0 to 1.81.0 in /editors/vscode in the dependencies group by @dependabot[bot] in #2309
- build(deps-dev): bump js-yaml from 4.3.1 to 4.3.2 in /editors/vscode by @dependabot[bot] in #2313
- build(deps-dev): bump the dependencies group in /editors/vscode with 2 updates by @dependabot[bot] in #2318
- build(deps-dev): bump the dependencies group in /editors/vscode with 2 updates by @dependabot[bot] in #2340
- build(deps-dev): bump the dependencies group in /editors/vscode with 2 updates by @dependabot[bot] in #2355
- build(deps-dev): bump oxlint from 1.82.0 to 1.83.0 in /editors/vscode in the dependencies group by @dependabot[bot] in #2398
- build(deps-dev): bump @types/node from 26.5.1 to 26.6.0 in /editors/vscode in the dependencies group by @dependabot[bot] in #2411
- build(deps-dev): bump the dependencies group in /editors/vscode with 2 updates by @dependabot[bot] in #2413
- build(deps-dev): bump the dependencies group in /packages/mq-playground with 2 updates by @dependabot[bot] in #2310
- build(deps-dev): bump the dependencies group in /packages/mq-playground with 2 updates by @dependabot[bot] in #2319
- build(deps-dev): bump the dependencies group in /packages/mq-playground with 3 updates by @dependabot[bot] in #2326
- build(deps-dev): bump @babel/core from 7.29.7 to 8.0.1 in /packages/mq-playground in the dependencies group by @dependabot[bot] in #2329
- build(deps-dev): bump the dependencies group in /packages/mq-playground with 2 updates by @dependabot[bot] in #2342
- build(deps-dev): bump @babel/core from 7.29.7 to 8.0.1 in /packages/mq-playground in the dependencies group by @dependabot[bot] in #2349
- build(deps): bump the dependencies group in /packages/mq-playground with 5 updates by @dependabot[bot] in #2357
- build(deps-dev): bump the dependencies group in /packages/mq-playground with 2 updates by @dependabot[bot] in #2363
- build(deps-dev): bump @babel/core from 7.29.7 to 8.0.5 in /packages/mq-playground in the dependencies group by @dependabot[bot] in #2368
- build(deps-dev): bump the dependencies group in /packages/mq-playground with 2 updates by @dependabot[bot] in #2400
- build(deps-dev): bump the dependencies group in /packages/mq-web with 3 updates by @dependabot[bot] in #2325
- build(deps-dev): bump the dependencies group in /packages/mq-web with 2 updates by @dependabot[bot] in #2341
- build(deps-dev): bump @types/node from 26.5.0 to 26.5.1 in /packages/mq-web in the dependencies group by @dependabot[bot] in #2356
- build(deps-dev): bump oxlint from 1.82.0 to 1.83.0 in /packages/mq-web in the dependencies group by @dependabot[bot] in #2399
- build(deps-dev): bump the dependencies group in /packages/mq-web with 2 updates by @dependabot[bot] in #2412
New Contributors
- @shawnchencun made their first contribution in #2308
Full Changelog: v0.8.5...v0.9.0