Luke Swithenbank
b2fd724c46
feat(kv): implement custom inspect for AtomicOperation ( #30077 )
...
## Summary
Adds a custom inspect method to `AtomicOperation` to provide a readable
string representation of the queued operations (checks, mutations,
enqueues). This improves developer experience when debugging atomic
operations by showing the internal state in a human-readable format.
The implementation adds a custom `[Symbol.for("Deno.customInspect")]`
method that formats the operations into a structured string showing:
- Check operations with their keys and versionstamps
- Mutation operations (set, delete, sum) with keys and values
- Enqueue operations with payloads and options
Fixes #21034
2025-08-13 10:09:22 +02:00
Laurence Rowe
e421451a70
fix(tests): use correct path separator on unix for code_cache cleanup.ts ( #30378 )
...
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
This has been causing failures on multiple PRs.
2025-08-12 09:20:52 -07:00
cions
ebfd3c3d7c
fix: android build ( #30360 )
...
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
Fix build error on Android.
Patches from https://github.com/cions/termux-deno
2025-08-12 15:47:18 +02:00
snek
c69a8fa414
fix(unstable): update deno_tunnel for better reconnect errors ( #30381 )
2025-08-12 11:45:37 +02:00
Daniel Osvaldo R
6344dcffad
fix(ext/node): make some os
exported properties read only ( #30374 )
...
These only occurs when importing using `require('os')`, since ES module
imports already make it non-writeable. Changes are based on Node.js
original implementation
[here](591ba692bf/lib/os.js (L333-L356)
).
This allows
[test-os-eol.js](https://github.com/nodejs/node/blob/v24.2.0/test/parallel/test-os-eol.js )
to pass.
2025-08-12 10:21:31 +02:00
Kenta Moriuchi
e2889e01f0
fix: upgrade deno_core to 0.355.0 ( #30352 )
ci / publish canary (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
2025-08-11 11:12:43 +02:00
David Sherret
93d0cff559
chore: improve pr title verification ( #30367 )
ci / publish canary (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
2025-08-10 09:19:18 -04:00
Daniel Osvaldo R
62bb429cbf
fix(ext/node): accept base64url
encoding on StringDecoder ( #30366 )
...
Also remove a duplicated `normalizedEncoding` function. These node
compatibility tests are now passing:
-
[test-string-decoder-end.js](https://github.com/nodejs/node/blob/v24.2.0/test/parallel/test-string-decoder-end.js )
-
[test-string-decoder-fuzz.js](https://github.com/nodejs/node/blob/v24.2.0/test/parallel/test-string-decoder-fuzz.js )
2025-08-10 18:49:14 +05:30
Daniel Osvaldo R
9371d7bcf3
fix(ext/node): handle large buffer correctly ( #30369 )
...
Previously, Deno throws error when creating `Buffer.allocUnsafe` or
`Buffer.allocUnsafeSlow` with size of `2**31` where that's not the case
with Node.js.
The changes allow these tests to pass:
-
[test-buffer-large-size-buffer-alloc-unsafe-slow.js](https://github.com/nodejs/node/blob/v24.2.0/test/pummel/test-buffer-large-size-buffer-alloc-unsafe-slow.js )
-
[test-buffer-large-size-buffer-alloc-unsafe.js](https://github.com/nodejs/node/blob/v24.2.0/test/pummel/test-buffer-large-size-buffer-alloc-unsafe.js )
-
[test-string-decoder-large-buffer.js](https://github.com/nodejs/node/blob/v24.2.0/test/pummel/test-string-decoder-large-buffer.js )
<!--
Before submitting a PR, please read
https://docs.deno.com/runtime/manual/references/contributing
1. Give the PR a descriptive title.
Examples of good title:
- fix(std/http): Fix race condition in server
- docs(console): Update docstrings
- feat(doc): Handle nested reexports
Examples of bad title:
- fix #7123
- update docs
- fix bugs
2. Ensure there is a related issue and it is referenced in the PR text.
3. Ensure there are tests that cover the changes.
4. Ensure `cargo test` passes.
5. Ensure `./tools/format.js` passes without changing files.
6. Ensure `./tools/lint.js` passes.
7. Open as a draft PR if your work is still in progress. The CI won't
run
all steps, but you can add '[ci]' to a commit message to force it to.
8. If you would like to run the benchmarks on the CI, add the 'ci-bench'
label.
-->
2025-08-10 14:02:43 +02:00
林炳权
68297b5f10
chore: Rust 1.89.0 ( #30364 )
...
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
Related PR: https://github.com/denoland/deno/pull/30354
2025-08-09 11:11:48 +00:00
Divy
56d6a74894
fix: upgrade @node/types to 24 ( #30343 )
...
ci / lint debug macos-x86_64 (push) Has been cancelled
ci / lint debug windows-x86_64 (push) Has been cancelled
ci / test debug linux-x86_64 (push) Has been cancelled
ci / test release linux-x86_64 (push) Has been cancelled
ci / test debug macos-x86_64 (push) Has been cancelled
ci / test release macos-x86_64 (push) Has been cancelled
ci / test debug windows-x86_64 (push) Has been cancelled
ci / test release windows-x86_64 (push) Has been cancelled
ci / build libs (push) Has been cancelled
ci / publish canary (push) Has been cancelled
ci / pre-build (push) Has been cancelled
ci / test debug linux-aarch64 (push) Has been cancelled
ci / test release linux-aarch64 (push) Has been cancelled
ci / test debug macos-aarch64 (push) Has been cancelled
ci / test release macos-aarch64 (push) Has been cancelled
ci / bench release linux-x86_64 (push) Has been cancelled
ci / lint debug linux-x86_64 (push) Has been cancelled
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2025-08-07 16:08:47 +00:00
David Sherret
a17c53cfe4
fix: reduce progress bar flickering ( #30349 )
...
Also goes back to showing a single line instead of 3 lines.
2025-08-07 17:13:29 +02:00
Asher Gomez
e282367f67
chore: cleanup unused dependencies ( #30059 )
...
Done using `udeps`. Possibility of false positives so we'll see how CI
goes.
---------
Signed-off-by: Asher Gomez <ashersaupingomez@gmail.com>
2025-08-07 14:48:42 +00:00
Divy
53510f874c
fix(io): do not autoClose stdin readable stream ( #30345 )
...
Fixes https://github.com/denoland/deno/issues/28867
2025-08-07 18:27:56 +05:30
David Sherret
e27d025dc8
chore: remove zlib feature from flate2 dep in npm_cache ( #30348 )
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
2025-08-07 12:17:59 +00:00
David Sherret
180480c06b
perf: reduce heap allocations and memory creating cjs wrapper module ( #30344 )
2025-08-07 13:00:38 +02:00
David Sherret
0f865b474b
fix(publish): remove incorrect relative-package-import
diagnostic when root of workspace is package ( #30333 )
2025-08-07 08:25:57 +00:00
David Sherret
2b50970347
refactor: improve getting WatchFlags/WatchFlagsWithPaths ( #30337 )
2025-08-07 09:58:15 +02:00
David Sherret
baa4acdcea
refactor: move fill_graph into deno_resolver ( #30338 )
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
2025-08-06 15:30:08 +00:00
David Sherret
ff8bdcd987
fix(compile): ensure Deno.build.standalone
is set in workers ( #30335 )
...
Closes https://github.com/denoland/deno/issues/30318
2025-08-06 16:12:57 +02:00
Garret Thompson
038d5a5331
fix(ext/node): avoid panic when crypto.randomInt
has no arguments ( #30314 )
...
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
Closes https://github.com/denoland/deno/issues/30313
2025-08-05 17:09:39 +02:00
Nayeem Rahman
0171066978
fix(lsp): use referrer compiler options for node_modules files ( #30275 )
2025-08-05 15:33:53 +01:00
Heyang Zhou
678d118bdc
feat(ext/kv): allow specifying default path and path prefix ( #30320 )
...
The `Deno.openKv()` API now checks these env vars:
- `DENO_KV_DEFAULT_PATH` - if set, when no database path is specified,
use the provided path.
- `DENO_KV_PATH_PREFIX` - if set, prepend this to the provided database
path - e.g. if `DENO_KV_PATH_PREFIX=https://example.com/db/ `,
`Deno.openKv("default")` will open the database at
`https://example.com/db/default `.
2025-08-05 16:20:08 +02:00
James Bronder
9a1ab9849c
fix(ext/node): use primordials in ext/node/polyfills/internal_binding/buffer.ts
( #30287 )
...
Towards #24236 . Replaces JS builtins with equivalent primordials.
2025-08-05 13:10:45 +00:00
snek
3cba20f254
feat(unstable): add json repl ( #30307 )
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
2025-08-05 10:16:07 +00:00
Divy
5b5141056b
fix(ext/node): use custom allocator for brotli ( #30277 )
...
Fixes https://github.com/denoland/deno/issues/30259
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2025-08-05 09:33:56 +00:00
David Sherret
fc8622032b
fix: make unmet peer dep error message less verbose ( #30312 )
2025-08-05 11:31:31 +02:00
Daniel Osvaldo R
55f74e809b
fix(ext/node): parse fs open options correctly ( #30300 )
...
Fixes #30299
I decided to build the `OpenOptions` on the Rust side, because it's
cheaper to pass integers to the op function and we can enable the fast
op call. Also the tests that I added to the `config.toml` were already
passing before this PR.
2025-08-05 11:12:22 +02:00
Divy
963bc4bd8a
chore: rewrite tls_wrap internals to JS ( #30303 )
2025-08-05 09:02:45 +00:00
David Sherret
01bbe9c66a
fix(check): do not surface code resolution errors in declaration file dependencies ( #30296 )
2025-08-05 08:35:20 +00:00
Bartek Iwańczuk
efb5617d15
fix(ext/node): assign 'ERR_BUFFER_TOO_LARGE' to codes ( #30311 )
...
ci / build libs (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
Closes https://github.com/denoland/deno/issues/30310
2025-08-04 18:19:46 +02:00
Daniel Osvaldo R
45f64df6c1
fix(ext/node): incorrect ERR_INVALID_ARG_VALUE
constructor arguments position ( #30309 )
...
This allows
[parallel/test-fs-internal-assertencoding.js](https://github.com/nodejs/node/blob/v23.9.0/test/parallel/test-fs-internal-assertencoding.js )
to pass.
Towards #29972
2025-08-04 16:05:41 +00:00
David Sherret
94a953e62f
fix: improve handling of linked jsr packages in lockfile ( #30289 )
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
2025-08-04 11:30:48 +02:00
Will (Newby) Atlas
c86e277fc1
feat(ci): migrate to Cirrus medium runners ( #30070 )
...
ci / build libs (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
For #30068
---------
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2025-08-03 11:30:44 +02:00
Nathan Whitaker
1e34986455
perf(napi): misc napi optimizations ( #30291 )
...
ci / build libs (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
before
```
❯ deno run -A perf-turso.js
cpu: Apple M3 Max
runtime: deno 2.4.3+6ae4eda (aarch64-apple-darwin)
benchmark time (avg) (min … max) p75 p99 p999
--------------------------------------------------------------------------------------- -----------------------------
Statement.get() with bind parameters [expanded] 4'544 ns/iter (4'424 ns … 4'801 ns) 4'599 ns 4'801 ns 4'801 ns
Statement.get() with bind parameters [raw] 4'484 ns/iter (4'409 ns … 4'667 ns) 4'527 ns 4'667 ns 4'667 ns
Statement.run() with bind parameters 5'424 ns/iter (4'833 ns … 4'518 µs) 5'292 ns 8'042 ns 15'292 ns
```
after
```
❯ devdeno run -A perf-turso.js
cpu: Apple M3 Max
runtime: deno 2.4.3 (aarch64-apple-darwin)
benchmark time (avg) (min … max) p75 p99 p999
--------------------------------------------------------------------------------------- -----------------------------
Statement.get() with bind parameters [expanded] 1'141 ns/iter (1'057 ns … 3'223 ns) 1'126 ns 2'910 ns 3'223 ns
Statement.get() with bind parameters [raw] 1'015 ns/iter (975 ns … 1'112 ns) 1'017 ns 1'093 ns 1'112 ns
Statement.run() with bind parameters 1'560 ns/iter (1'295 ns … 8'840 ns) 1'433 ns 8'752 ns 8'840 ns
```
Optimizations are:
- don't log napi entry/exit in release builds (this ends up being very
expensive, as it checks whether logging is enabled twice per call into
NAPI)
- use internalized strings to speed up property accesses (matches node's
behavior as well)
- change order we check value types (matches node now)
- don't unnecessarily validate utf8
- don't get handle scopes when an isolate will do
- reuse handle scope within a function
- use the faster APIs that don't require handle scopes for getting
uint32 / int32 values
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2025-08-02 17:07:46 -07:00
Bartek Iwańczuk
dcdd1d6139
fix(ext/node): worker_threads handles basic require
calls ( #30279 )
...
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
This is not a full-fledged and fully correct `require`/CJS support
for `node:worker_threads`, but unlocks certain scenarios that
were not working at all previously.
2025-08-02 11:27:06 +00:00
Leo Kettmeir
43b376cd47
Revert "fix(ext/node): support TLS for unix sockets" ( #30284 )
...
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
Reverts denoland/deno#30169
Causes issues with playwright's installation of browsers
2025-08-02 09:11:23 +00:00
David Sherret
5c947b07b4
chore(node): resolution mode for cjs export analysis should be require ( #30252 )
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
2025-08-01 08:16:36 -04:00
Leo Kettmeir
48259956ce
feat(unstable): allow setting headers on EventSource ( #30278 )
2025-08-01 12:24:22 +02:00
Bartek Iwańczuk
b05e8b20ac
fix(ext/node): support TLS for unix sockets ( #30169 )
...
This commit adds initial support for connecting Unix socket over
TLS in `node:tls.connect()` API
---------
Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2025-08-01 12:00:14 +02:00
Bartek Iwańczuk
56f2055c3f
perf: Use more efficient structuredClone API ( #30258 )
...
ci / build libs (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
This PR builds on top of https://github.com/denoland/deno_core/pull/1167
that provided 16% perf improvement for structured clone algorithm by avoid round-trip
serialization and deserialization.
This was applied to the internal `structuredClone` helper, as well as
for `MessagePort.postMessage` which is what Web worker
and `node:worker_thread` APIs are using.
2025-08-01 09:58:42 +02:00
David Sherret
efb16e70d3
fix(bundle): support importing directories with a package.json from an es module when bundling ( #30273 )
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
2025-07-31 22:33:25 +00:00
Daniel Osvaldo R
6ae4eda86a
fix(ext/node): define fs constants correctly across platforms ( #30113 )
2025-07-31 17:11:01 -04:00
Nathan Whitaker
fc5e39aaf4
chore(ci): mark some tests flaky ( #30268 )
...
From failures in recent CI runs on main
2025-07-31 20:01:13 +00:00
Nathan Whitaker
e58c8ed20a
fix(update): update version reqs even if locked to latest version ( #30249 )
2025-07-31 19:22:01 +00:00
David Sherret
462151f16f
chore: remove wait dependency in scripts ( #30267 )
...
Logging is fine here to reduce the dependency (which is currently
failing to load for some reason)
2025-07-31 18:30:20 +00:00
Daniel Osvaldo R
8680d97b38
fix(ext/node): fs.open
and fs.openSync
compatibility ( #30191 )
...
ci / build libs (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
Notable changes:
- Introduces a separate op between `Deno.open` and `node:fs.open`.
- Removes redundant `existenceCheckRequired` and `Deno.lstatSync` calls,
as the op layer already handles that when `options.create_new` is true
and uses synchronous I/O when `O_SYNC` is passed.
- Allows passing custom flags to the op (e.g. `O_SYNC`).
- Addresses `prefer-primordials` lint rule.
- Allows
[parallel/test-fs-open.js](https://github.com/nodejs/node/blob/v23.9.0/test/parallel/test-fs-open.js )
test to pass. There are also several tests that have passed before that
I added to the config.toml.
2025-07-31 15:10:10 +00:00
David Sherret
afe149e071
fix(bundle): require of sub directory in npm package should consult package.json ( #30253 )
2025-07-31 14:48:51 +00:00
James Bronder
c66fea5606
fix(ext/node): use primordials in ext/node/polyfills/internal_binding/node_file.ts
( #30066 )
2025-07-31 10:28:58 -04:00
Daniel Osvaldo R
af55e069ef
fix(ext/node): fs.rename
and fs.renameSync
compatibility ( #30245 )
2025-07-31 10:24:59 -04:00