David Sherret
a8846eb70f
fix: remove permission check in op_require_node_module_paths ( #26645 )
2024-10-30 20:43:22 +00:00
Nathan Whitaker
a346071dd2
fix(ext/node): return this
from http.Server.ref/unref()
( #26647 )
...
Fixes https://github.com/denoland/deno/issues/26642
2024-10-30 20:13:32 +00:00
denobot
a1473d82c5
chore: forward v2.0.4 release commit to main ( #26636 )
...
This is the release commit being forwarded back to main for 2.0.4
Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
2024-10-30 13:46:31 +01:00
Yoshiya Hinosawa
a69224ea5b
Revert "fix(ext/node): fix dns.lookup result ordering ( #26264 )" ( #26621 )
...
This reverts commit d59599fc18
.
Closes #26588
2024-10-29 18:41:16 +01:00
Volker Schlecht
51978a7654
fix(ext/napi): export dynamic symbols list for {Free,Open}BSD ( #26605 )
...
The two BSD ports are reusing the Linux code here.
2024-10-29 19:41:49 +05:30
Volker Schlecht
efb5e912e5
fix(ext/node): compatibility with {Free,Open}BSD ( #26604 )
...
Ports for both BSDs contain patches to the same effect.
See
https://github.com/freebsd/freebsd-ports/blob/main/www/deno/files/patch-ext_node_ops_fs.rs
and
8644910cae/lang/deno/patches/patch-ext_node_ops_fs_rs
2024-10-29 19:40:32 +05:30
Bartek Iwańczuk
46e5ed1a64
Revert "fix(ext/node): use primordials in ext/node/polyfills/https.ts
( #26323 )" ( #26613 )
...
…s` (#26323 )"
This reverts commit afb33b3c25
.
Reverting because it caused a regression -
https://github.com/denoland/deno/issues/26612 .
Closes https://github.com/denoland/deno/issues/26612 .
2024-10-29 00:41:02 +00:00
snek
4e38fbd0a3
fix: report exceptions from nextTick ( #26579 )
...
Fixes: https://github.com/denoland/deno/issues/24713
Fixes: https://github.com/denoland/deno/issues/25855
2024-10-28 18:16:43 +01:00
familyboat
c314b2d857
fix(ext/node): add path to fs.stat
and fs.statSync
error ( #26037 )
2024-10-27 08:34:35 +05:30
Mayank Kumar
793b155cd3
fix(ext/node): use primordials in ext\node\polyfills\internal\crypto\_randomInt.ts ( #26534 )
...
Towards #24236
2024-10-26 19:42:14 +02:00
Bartek Iwańczuk
730331622e
chore: forward v2.0.3 commit to main ( #26535 )
...
Forwarding v2.0.3 commit to `main`
Co-authored-by: denobot <33910674+denobot@users.noreply.github.com>
Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
2024-10-25 09:57:40 -04:00
Bartek Iwańczuk
cead8af104
build: use 'fs' feature of 'nix' crate in ext/fs ( #26533 )
...
Hot-fix to unblock `v2.0.3` release
2024-10-25 12:53:34 +02:00
Nicola Bovolato
8dd6177c62
fix(ext/node): refactor http.ServerResponse into function class ( #26210 )
...
While testing, I found out that light-my-request relies on
`ServerResponse.connection`, which is deprecated, so I added that and
`socket`, the non deprecated property.
It also relies on an undocumented `_header` property, apparently for
[raw header
processing](https://github.com/fastify/light-my-request/blob/v6.1.0/lib/response.js#L180-L186 ).
I added it as an empty string, feel free to provide other approaches.
Fixes #19901
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-10-25 00:02:26 +02:00
Leo Kettmeir
c71e020668
refactor(ext/node): use concrete error types ( #26419 )
2024-10-24 10:45:17 -07:00
Marvin Hagemeister
ef53ce3ac4
fix(node/util): support array formats in styleText
( #26507 )
...
We missed adding support for an array of formats being passed to
`util.styleText`.
Fixes https://github.com/denoland/deno/issues/26496
2024-10-24 11:46:51 +02:00
snek
79a3ad2b95
feat: support node-api in denort ( #26389 )
...
exposes node-api symbols in denort so that `deno compile` can run native
addons.
2024-10-24 09:13:54 +02:00
Nathan Whitaker
27df42f659
fix(ext/node): cancel pending ipc writes on channel close ( #26504 )
...
Fixes the issue described in
https://github.com/denoland/deno/issues/23882#issuecomment-2423316362 .
The parent was starting to send a message right before the process would
exit, and the channel closed in the middle of the write. Unlike with
reads, we weren't cancelling the pending writes, which resulted in a
`Broken pipe` error surfacing to the user.
2024-10-24 04:50:35 +00:00
Nathan Whitaker
7c57105cc4
fix(ext/node): only set our end of child process pipe to nonblocking mode ( #26495 )
...
Fixes playwright on linux, as reported in
https://github.com/denoland/deno/issues/16899#issuecomment-2378268454 .
The issue was that we were opening the socket in nonblocking mode, which
meant that subprocesses trying to use it would get a `EWOULDBLOCK` error
(unexpectedly). The fix here is to only set nonblocking mode on our end
(which we need to use asynchronously)
2024-10-23 21:13:30 -07:00
Divy Srivastava
fa49fd404b
fix(ext/ffi): return u64/i64 as bigints from nonblocking ffi calls ( #26486 )
...
Fixes https://github.com/denoland/deno/issues/25194
2024-10-24 09:41:38 +05:30
Satya Rohith
92ed4d38db
fix(node:tls): set TLSSocket.alpnProtocol for client connections ( #26476 )
...
Towards https://github.com/denoland/deno/issues/26127
2024-10-23 07:47:43 +00:00
Yoshiya Hinosawa
285635daa6
fix(ext/node): map ERROR_INVALID_NAME
to ENOENT
on windows ( #26475 )
...
In libuv on windows, `ERROR_INVALID_NAME` is mapped to `ENOENT`, but it
is mapped to `EINVAL` in our compat implementation, which causes the
issue #24899 .
ref:
d4ab6fbba4/src/win/error.c (L138)
closes #24899
closes #26411
closes #23635
closes #21165
closes #19067
2024-10-23 11:28:04 +09:00
Leo Kettmeir
9696e0b378
fix(ext/console): ignore casing for named colors in css parsing ( #26466 )
2024-10-22 10:57:58 +02:00
jiang1997
afb33b3c25
fix(ext/node): use primordials in ext/node/polyfills/https.ts
( #26323 )
...
Towards https://github.com/denoland/deno/issues/24236
2024-10-21 09:50:53 +02:00
Leo Kettmeir
473e3069de
chore: update nix crate ( #26422 )
...
Dedupes nix dependency, since `rustyline` depends on a newer version
that what we currently use
2024-10-19 21:59:39 +00:00
Divy Srivastava
0710af034f
perf: avoid multiple calls to runMicrotask ( #26378 )
...
Improves HTTP throughput by 8-9k rps on Linux:
this patch
```
Requests/sec: 145001.69
Transfer/sec: 20.74MB
```
main
```
Requests/sec: 137866.61
Transfer/sec: 19.72MB
```
The improvements comes from the reduced number of calls to
`op_run_microtask` per request. Returning `true` from a macrotask
callback already calls `op_run_microtask` so the extra call was
redundant.
Here's `--strace-ops` output for a single request:
main
```
[ 4.667] op_http_wait : CompletedAsync Async
[ 4.667] op_run_microtasks : Dispatched Slow
[ 4.668] op_http_try_wait : Dispatched Slow
[ 4.668] op_http_try_wait : Completed Slow
[ 4.668] op_http_wait : Dispatched Async
[ 4.668] op_http_set_response_header : Dispatched Slow
[ 4.668] op_http_set_response_header : Completed Slow
[ 4.669] op_http_set_response_body_text : Dispatched Slow
[ 4.669] op_http_set_response_body_text : Completed Slow
[ 4.669] op_run_microtasks : Completed Slow
[ 4.669] op_has_tick_scheduled : Dispatched Slow
[ 4.669] op_has_tick_scheduled : Completed Slow
[ 4.669] op_run_microtasks : Dispatched Slow
[ 4.669] op_run_microtasks : Completed Slow
[ 4.669] op_run_microtasks : Dispatched Slow
[ 4.669] op_run_microtasks : Completed Slow
```
this pr
```
[ 3.726] op_http_wait : CompletedAsync Async
[ 3.727] op_run_microtasks : Dispatched Slow
[ 3.727] op_http_try_wait : Dispatched Slow
[ 3.727] op_http_try_wait : Completed Slow
[ 3.727] op_http_wait : Dispatched Async
[ 3.727] op_http_set_response_header : Dispatched Slow
[ 3.728] op_http_set_response_header : Completed Slow
[ 3.728] op_http_set_response_body_text : Dispatched Slow
[ 3.728] op_http_set_response_body_text : Completed Slow
[ 3.728] op_run_microtasks : Completed Slow
[ 3.728] op_run_microtasks : Dispatched Slow
[ 3.728] op_run_microtasks : Completed Slow
```
2024-10-19 08:42:59 +05:30
Leo Kettmeir
615e6b7cc2
refactor(ext/webgpu): use concrete error type ( #26198 )
2024-10-18 18:53:04 -07:00
Leo Kettmeir
6c4ef11f04
refactor(ext/fetch): use concrete error types ( #26220 )
2024-10-19 01:20:58 +00:00
Leo Kettmeir
2c3900370a
refactor(ext/http): use concrete error types ( #26377 )
2024-10-18 15:57:12 -07:00
Leo Kettmeir
8ca8174c81
refactor(ext/crypto): use concrete error types ( #26167 )
2024-10-18 15:23:20 -07:00
Nathan Whitaker
d48434e91f
fix(ext/node): stub HTTPParser internal binding ( #26401 )
...
Fixes https://github.com/denoland/deno/issues/26394 .
2024-10-18 21:39:32 +00:00
Leo Kettmeir
d047cab14b
refactor(ext/websocket): use concrete error type ( #26226 )
2024-10-18 19:30:46 +00:00
Nathan Whitaker
1bccf45ecb
fix(ext/node): properly map reparse point error in readlink ( #26375 )
2024-10-18 10:11:06 -07:00
Leo Kettmeir
85a99eb405
refactor(ext/fs): use concrete error types ( #26317 )
2024-10-18 06:38:17 -07:00
denobot
3ae10a01e0
chore: forward v2.0.2 release commit to main ( #26376 )
...
This is the release commit being forwarded back to main for 2.0.2
Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-10-18 03:12:49 +02:00
Bartek Iwańczuk
8f3eb9d0e7
fix(ext/node): add null check for kStreamBaseField ( #26368 )
...
It's not guaranteed that `kStreamBaseField` is not undefined, so
added a check for it.
Closes https://github.com/denoland/deno/issues/26363
2024-10-17 22:57:05 +00:00
Leo Kettmeir
8cfd9968fa
refactor(ext/napi): use concrete error types ( #26186 )
2024-10-17 19:51:33 +00:00
Nathan Whitaker
9fde5cb5e0
fix(node/fs): copyFile with COPYFILE_EXCL
should not throw if the destination doesn't exist ( #26360 )
...
Fixes #26313 .
We were checking for the NotFound error, but still calling the callback
with the error / throwing.
2024-10-17 19:51:15 +00:00
Leo Kettmeir
eca83fc9b4
refactor(ext/web): use concrete error types ( #26185 )
2024-10-17 19:05:38 +00:00
Leo Kettmeir
7c790da826
refactor(ext/kv): use concrete error type ( #26239 )
2024-10-17 17:59:02 +00:00
Leo Kettmeir
ed13efc4ac
refactor(ext/net): use concrete error type ( #26227 )
2024-10-17 09:43:04 -07:00
Nathan Whitaker
a61ba3c699
fix(net): don't try to set nodelay on upgrade streams ( #26342 )
...
Fixes https://github.com/denoland/deno/issues/26341 .
We try to call `op_set_nodelay` on an `UpgradeStream`, which doesn't
support that operation.
2024-10-17 03:56:57 +00:00
Nathan Whitaker
167f674c7c
fix: don't warn on ignored signals on windows ( #26332 )
...
Closes #26183 .
The warnings are super noisy and not actionable for the user
2024-10-16 19:58:11 -07:00
Nathan Whitaker
458d6278d2
fix(node/http): normalize header names in ServerResponse
( #26339 )
...
Fixes https://github.com/denoland/deno/issues/26115 .
We weren't normalizing the headers to lower case, so code that attempted
to delete the `Content-Length` header (but used a different case) wasn't
actually removing the header.
2024-10-17 00:42:15 +00:00
denobot
3385d1252e
chore: forward v2.0.1 release commit to main ( #26338 )
...
This is the release commit being forwarded back to main for 2.0.1
Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-10-16 23:48:42 +00:00
Nathan Whitaker
f7dba52133
fix(child_process): map node --no-warnings
flag to --quiet
( #26288 )
...
Closes https://github.com/denoland/deno/issues/25899
2024-10-16 18:25:25 +00:00
Yoshiya Hinosawa
d59599fc18
fix(ext/node): fix dns.lookup result ordering ( #26264 )
...
partially unblocks #25470
This PR aligns the resolution of `localhost` hostname to Node.js
behavior.
In Node.js `dns.lookup("localhost", (_, addr) => console.log(addr))`
prints ipv6 address `::1`, but it prints ipv4 address `127.0.0.1` in
Deno. That difference causes some errors in the work of enabling
`createConnection` option in `http.request` (#25470 ). This PR fixes the
issue by aligning `dns.lookup` behavior to Node.js.
This PR also changes the following behaviors (resolving TODOs):
- `http.createServer` now listens on ipv6 address `[::]` by default on
linux/mac
- `net.createServer` now listens on ipv6 address `[::]` by default on
linux/mac
These changes are also alignments to Node.js behaviors.
2024-10-16 20:58:44 +09:00
Divy Srivastava
21fa953f32
fix(ext/node): timingSafeEqual account for AB byteOffset ( #26292 )
...
Fixes https://github.com/denoland/deno/issues/26276
2024-10-16 14:27:28 +05:30
David Sherret
661882f10d
perf(http): make heap allocation for path conditional ( #26289 )
...
Code:
```js
Deno.serve({ port: 8085 }, request => {
return new Response(request.url);
});
```
Before:
```
% wrk -d60s http://localhost:8085/path/testing\?testing=5
Running 1m test @ http://localhost:8085/path/testing?testing=5
2 threads and 10 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 56.01us 18.34us 3.28ms 93.84%
Req/Sec 81.80k 3.13k 88.26k 90.77%
9783713 requests in 1.00m, 1.67GB read
Requests/sec: 162789.89
Transfer/sec: 28.41MB
```
After:
```
% wrk -d60s http://localhost:8085/path/testing\?testing=5
Running 1m test @ http://localhost:8085/path/testing?testing=5
2 threads and 10 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 55.44us 15.20us 2.42ms 90.41%
Req/Sec 82.71k 2.92k 88.10k 89.93%
9892916 requests in 1.00m, 1.69GB read
Requests/sec: 164607.06
Transfer/sec: 28.73MB
```
2024-10-16 00:43:20 -04:00
Leo Kettmeir
82d13fd45b
refactor(ext/io): use concrete error types ( #26187 )
2024-10-15 15:36:11 -07:00
Leo Kettmeir
3065dadea3
fix(ext/console): apply coloring for console.table ( #26280 )
...
Fixes #26159
2024-10-15 21:36:45 +00:00