summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-10-24refactor(ext/node): use concrete error types (#26419)Leo Kettmeir
2024-10-24Revert "fix(runtime): send ws ping frames from inspector server (#263… ↵Bartek Iwańczuk
(#26513)
2024-10-24fix(config): schemas for lint rule and tag autocompletion (#26515)Nayeem Rahman
2024-10-24fix(node/util): support array formats in `styleText` (#26507)Marvin Hagemeister
We missed adding support for an array of formats being passed to `util.styleText`. Fixes https://github.com/denoland/deno/issues/26496
2024-10-24feat: support node-api in denort (#26389)snek
exposes node-api symbols in denort so that `deno compile` can run native addons.
2024-10-24fix(ext/node): cancel pending ipc writes on channel close (#26504)Nathan Whitaker
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-23fix(ext/node): only set our end of child process pipe to nonblocking mode ↵Nathan Whitaker
(#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-24fix(ext/ffi): return u64/i64 as bigints from nonblocking ffi calls (#26486)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/25194
2024-10-23fix(install): cache all exports of JSR packages listed in `deno.json` (#26501)Nathan Whitaker
Fixes #26498. This was a sort of intentional decision originally, as I wanted to avoid caching extra files that may not be needed. It seems like that behavior is unintuitive, so I propose we cache all of the exports of listed jsr packages when you run a bare `deno install`.
2024-10-23fix(install): cache type only module deps in `deno install` (#26497)Nathan Whitaker
Fixes https://github.com/denoland/deno/issues/26180.
2024-10-23fix(node:tls): set TLSSocket.alpnProtocol for client connections (#26476)Satya Rohith
Towards https://github.com/denoland/deno/issues/26127
2024-10-23fix: share inotify fd across watchers (#26200)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/26104 Fixes https://github.com/denoland/deno/issues/26071 Fixes https://github.com/denoland/deno/issues/17757
2024-10-23fix(ext/node): map `ERROR_INVALID_NAME` to `ENOENT` on windows (#26475)Yoshiya Hinosawa
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: https://github.com/libuv/libuv/blob/d4ab6fbba4669935a6bc23645372dfe4ac29ab39/src/win/error.c#L138 closes #24899 closes #26411 closes #23635 closes #21165 closes #19067
2024-10-22fix(check): support `--frozen` on deno check (#26479)Nathan Whitaker
Fixes https://github.com/denoland/deno/issues/26391
2024-10-22refactor: add 'docs' suggestion (#26463)Bartek Iwańczuk
Adds another kind to `FixSuggestionKind` specifically for links documentation pages.
2024-10-22fix(cli): increase size of blocking task threadpool on windows (#26465)Nathan Whitaker
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-22fix: unpin tokio version (#26457)Ronny Chan
Fixes https://github.com/denoland/deno/issues/26455 Signed-off-by: Ronny Chan <ronny.chan@okta.com>
2024-10-22chore(ci): use setup-deno@v2 (#26474)tsukasa-ino
2024-10-22fix(fmt): upgrade formatters (#26469)Pig Fang
Fixes #25926 Fixes #26004
2024-10-22fix(ext/console): ignore casing for named colors in css parsing (#26466)Leo Kettmeir
2024-10-22refactor(runtime/ops): use concrete error types (#26409)Leo Kettmeir
2024-10-22fix(install): update lockfile when using package.json (#26458)Bartek Iwańczuk
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-21fix(lsp): import-map-remap quickfix for type imports (#26454)Nayeem Rahman
2024-10-21fix(npm): support version ranges with && or comma (#26453)David Sherret
2024-10-21fix(install): better json editing (#26450)David Sherret
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-21feat(lsp): interactive inlay hints (#26382)Nayeem Rahman
2024-10-21fix(ext/node): use primordials in `ext/node/polyfills/https.ts` (#26323)jiang1997
Towards https://github.com/denoland/deno/issues/24236
2024-10-19chore: update nix crate (#26422)Leo Kettmeir
Dedupes nix dependency, since `rustyline` depends on a newer version that what we currently use
2024-10-19chore: update release doc template (#26406)Bartek Iwańczuk
2024-10-19perf: avoid multiple calls to runMicrotask (#26378)Divy Srivastava
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-18refactor(ext/webgpu): use concrete error type (#26198)Leo Kettmeir
2024-10-19refactor(ext/fetch): use concrete error types (#26220)Leo Kettmeir
2024-10-19Revert "ci: use self-hosted mac arm runner (#26366)" (#26408)Bartek Iwańczuk
This reverts commit e22d0e91ef7ce17dca299a44d1ccd292abde34f2. 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-18refactor(ext/http): use concrete error types (#26377)Leo Kettmeir
2024-10-18refactor(ext/crypto): use concrete error types (#26167)Leo Kettmeir
2024-10-19ci: use self-hosted mac arm runner (#26366)Bartek Iwańczuk
Supersedes #26337
2024-10-18fix(ext/node): stub HTTPParser internal binding (#26401)Nathan Whitaker
Fixes https://github.com/denoland/deno/issues/26394.
2024-10-18fix(info): resolve workspace member mappings (#26350)Marvin Hagemeister
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-18refactor(ext/websocket): use concrete error type (#26226)Leo Kettmeir
2024-10-18fix(npm): ensure scoped package name is encoded in URLs (#26390)Marvin Hagemeister
Fixes https://github.com/denoland/deno/issues/26385
2024-10-18fix(ext/node): properly map reparse point error in readlink (#26375)Nathan Whitaker
2024-10-18refactor(ext/fs): use concrete error types (#26317)Leo Kettmeir
2024-10-18fix(help): missing package specifier (#26380)Marvin Hagemeister
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-18chore: forward v2.0.2 release commit to main (#26376)denobot
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-17fix(ext/node): add null check for kStreamBaseField (#26368)Bartek Iwańczuk
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-18fix(jupyter): fix panics for overslow subtraction (#26371)Bartek Iwańczuk
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-17fix(install): don't attempt to cache specifiers that point to directories ↵Nathan Whitaker
(#26369) Fixes https://github.com/denoland/deno/issues/26162
2024-10-17chore: fix flaky COPYFILE_EXCL test (#26370)Nathan Whitaker
It was missing an await
2024-10-17refactor(ext/napi): use concrete error types (#26186)Leo Kettmeir
2024-10-17fix(node/fs): copyFile with `COPYFILE_EXCL` should not throw if the ↵Nathan Whitaker
destination doesn't exist (#26360) Fixes #26313. We were checking for the NotFound error, but still calling the callback with the error / throwing.