1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-30 16:40:57 -05:00
Commit graph

12807 commits

Author SHA1 Message Date
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
Nathan Whitaker
5e020ebc35
fix(check): support --frozen on deno check (#26479)
Fixes https://github.com/denoland/deno/issues/26391
2024-10-22 21:15:00 +00:00
Bartek Iwańczuk
28b5640657
refactor: add 'docs' suggestion (#26463)
Adds another kind to `FixSuggestionKind` specifically for links
documentation pages.
2024-10-22 22:22:26 +02:00
Nathan Whitaker
8282c38fe0
fix(cli): increase size of blocking task threadpool on windows (#26465)
Fixes #26179.

The original error reported in that issue is fixed on canary, but in
local testing on my windows machine, `next build` would just hang
forever.

After some digging, what happens is that at some point in next build,
readFile promises (from `fs/promises` ) just never resolve, and so next
hangs.

It turns out the issue is saturating tokio's blocking task thread pool.
We previously limited the number of blocking threads to 32, and at some
point those threads are all in use and there's no thread available for
the file reads.

What's taking up all of those threads? The answer turns out to be
`tokio::process`. On windows, child process stdio uses the blocking
threadpool: https://github.com/tokio-rs/tokio/pull/4824. When you poll
the child's stdio on windows, it spawns a blocking task per poll, and
calls `std::io::Read::read` in the blocking context. That call can block
until data is available.
Putting it all together, what happens is that Next.js spawns `2 * the
number of CPU cores` deno child subprocesses to do work. We implement
`child_process` with `tokio::process`. When the child processes' stdio
get polled, blocking tasks get spawned, and those blocking tasks might
block until data is available. So if you have 16 cores (as I do), there
are going to be potentially >32 blocking task threadpool threads taken
just by the child processes. That leaves no room for other tasks to make
progress

---

To fix this, for now, increase the size of the blocking threadpool on
windows. 4 * the number of CPU cores should be enough to leave room for
other tasks to make progress.

Longer term, this can be fixed more properly when we handroll our own
subprocess code (needed for detached processes and additional pipes on
windows).
2024-10-22 12:52:18 -07:00
Ronny Chan
227acbbff5
fix: unpin tokio version (#26457)
Fixes https://github.com/denoland/deno/issues/26455

Signed-off-by: Ronny Chan <ronny.chan@okta.com>
2024-10-22 09:58:31 -07:00
tsukasa-ino
0536f1ef3b
chore(ci): use setup-deno@v2 (#26474) 2024-10-22 20:54:27 +05:30
Pig Fang
49d31fa4a2
fix(fmt): upgrade formatters (#26469)
Fixes #25926 
Fixes #26004
2024-10-22 12:15:59 +02:00
Leo Kettmeir
9696e0b378
fix(ext/console): ignore casing for named colors in css parsing (#26466) 2024-10-22 10:57:58 +02:00
Leo Kettmeir
f26c8bcf31
refactor(runtime/ops): use concrete error types (#26409) 2024-10-22 01:41:08 -07:00
Bartek Iwańczuk
67280f8b55
fix(install): update lockfile when using package.json (#26458)
This commit makes sure that `deno add`, `deno install` and `deno remove`
update the lockfile if only `package.json` file is present.

Fixes https://github.com/denoland/deno/issues/26270
2024-10-22 01:08:45 +02:00
Nayeem Rahman
9e25a4ebbf
fix(lsp): import-map-remap quickfix for type imports (#26454) 2024-10-21 22:16:39 +01:00
David Sherret
49d9c02bfa
fix(npm): support version ranges with && or comma (#26453) 2024-10-21 19:31:16 +00:00
David Sherret
39fb55096e
fix(install): better json editing (#26450)
1. Respects the formatting of the file (ex. keeps four space indents or
tabs).
2. Handles editing of comments.
3. Handles trailing commas.
4. Code is easier to maintain.
2024-10-21 14:17:08 -04:00
Nayeem Rahman
9fe2bf42dc
feat(lsp): interactive inlay hints (#26382) 2024-10-21 17:15:52 +01: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
Satya Rohith
f62bb6ff1b
Merge branch 'main' into support_create_connection 2024-10-20 05:52:02 +05:30
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
Bartek Iwańczuk
85709c70ab
chore: update release doc template (#26406) 2024-10-19 09:12:19 +05:30
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
Bartek Iwańczuk
d1cd1fafa4
Revert "ci: use self-hosted mac arm runner (#26366)" (#26408)
This reverts commit e22d0e91ef.

Reverting because the CI pipeline is actually incorrect.

I intended to only use this self-hosted runner for "release" builds on
`main` branch, but now all PRs are queued waiting for a runner for a "debug"
build.
2024-10-19 00:42:54 +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
Bartek Iwańczuk
e22d0e91ef
ci: use self-hosted mac arm runner (#26366)
Supersedes #26337
2024-10-19 00:14:11 +02: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
Marvin Hagemeister
0e60bb9cf7
fix(info): resolve workspace member mappings (#26350)
This PR fixes the issue where mapped specifiers in a workspace member
would never be found. Only mapped paths from the workspace root would
resolve.

This was caused by always passing the workspace root url to the import
map resolver instead of the workspace member one.

Fixes https://github.com/denoland/deno/issues/26138
Fixes https://github.com/denoland/fresh/issues/2615

---------

Signed-off-by: Marvin Hagemeister <marvinhagemeister50@gmail.com>
Co-authored-by: David Sherret <dsherret@users.noreply.github.com>
2024-10-18 21:45:05 +02:00
Leo Kettmeir
d047cab14b
refactor(ext/websocket): use concrete error type (#26226) 2024-10-18 19:30:46 +00:00
Marvin Hagemeister
4b99cde504
fix(npm): ensure scoped package name is encoded in URLs (#26390)
Fixes https://github.com/denoland/deno/issues/26385
2024-10-18 20:38:57 +02: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
Yoshiya Hinosawa
da8cf18a28
Looks like specs::npm::lifecycle_scripts::node_gyp is still an issue
Revert "enable specs::npm::lifecycle_scripts::node_gyp"

This reverts commit 5b4aa79fb6.
2024-10-18 20:48:59 +09:00
Yoshiya Hinosawa
84e1d84bb6
workaround ipv4 vs ipv6 issues for windows by specifying ip address instead of localhost in problematic situation 2024-10-18 20:48:09 +09:00
Marvin Hagemeister
c77c9b2958
fix(help): missing package specifier (#26380)
Was notified of one more occurance where we were missing an explicit
specifier for a `deno add` call.

See
https://github.com/denoland/deno/issues/26295#issuecomment-2421637401
2024-10-18 13:12:34 +02:00
Satya Rohith
5b4aa79fb6
enable specs::npm::lifecycle_scripts::node_gyp 2024-10-18 16:41:38 +05:30
Satya Rohith
f32d070c12
enable websocket tests 2024-10-18 16:18:15 +05:30
Satya Rohith
0488c79bba
fix: client closing a streaming request doesn't terminate server 2024-10-18 15:50:53 +05:30
Yoshiya Hinosawa
858cf46894
enable [node/http] client closing a streaming request doesn't terminate server 2024-10-18 16:35:36 +09:00
Yoshiya Hinosawa
765c481cb8
Merge branch 'main' into support_create_connection 2024-10-18 16:17:15 +09: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
Bartek Iwańczuk
02e5a7a012
fix(jupyter): fix panics for overslow subtraction (#26371)
I don't have a reliable reproduction for it, but it makes it
painful to use the Jupyter kernel with semi-frequent random panics.

The completions don't always work correctly anyway, so I think
it's better to just not panic here for the time being.

Fixes https://github.com/denoland/deno/issues/26340
2024-10-18 00:44:14 +02:00
Nathan Whitaker
50724d014a
fix(install): don't attempt to cache specifiers that point to directories (#26369)
Fixes https://github.com/denoland/deno/issues/26162
2024-10-17 22:25:22 +00:00
Nathan Whitaker
2435a361c6
chore: fix flaky COPYFILE_EXCL test (#26370)
It was missing an await
2024-10-17 22:19:37 +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
Satya Rohith
5cafa9007f
disable leaking test 2024-10-18 00:10:28 +05:30
Satya Rohith
996eec1276
remove stale code 2024-10-18 00:08:14 +05:30
Lucas Nogueira
40b4b9aaa3
feat(permissions): expose PromptResponse (#26358)
follow-up for #26327
2024-10-17 11:36:34 -07:00