summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-09-27fix(upgrade): use tar.exe to extract on Windows (#20711)David Sherret
This is what we do for deno install, so it should be fine here https://github.com/denoland/deno_install/pull/219 Closes https://github.com/denoland/deno/issues/20683
2023-09-27chore: add back dotcom step to release (#20713)David Sherret
Accidentally removed in https://github.com/denoland/deno/commit/69b7166c20b47d320fc85e33dca9414c92ec9c6f
2023-09-27chore(ext/ffi): migrate part of FFI to op2 (#20699)Matt Mastracci
2023-09-27fix(ext/node): fix TypeError in Buffer.from with base64url encoding. (#20705)Chen Su
For the following example, if I set the encoding to `base64url`, it'll throw an unexpected TypeError: ```ts import { Buffer } from "node:buffer"; Buffer.from("IntcImhlbGxvXCI6XCJoZGQvZStpXCJ9Ig", "base64url").toString(); // error: Uncaught TypeError: src.subarray is not a function // const buf = Buffer.from( // ^ // at blitBuffer (ext:deno_node/internal/buffer.mjs:1779:15) // at Uint8Array.base64urlWrite (ext:deno_node/internal/buffer.mjs:691:10) // at Object.write (ext:deno_node/internal/buffer.mjs:2195:11) // at Uint8Array.write (ext:deno_node/internal/buffer.mjs:794:14) // at fromString (ext:deno_node/internal/buffer.mjs:214:22) // at _from (ext:deno_node/internal/buffer.mjs:119:12) // at Function.from (ext:deno_node/internal/buffer.mjs:157:10) // at file:///Users/foodieats/temp/buffer1.ts:3:20 ``` The error caused by `base64urlWrite` function, it should call `forgivingBase64UrlDecode` not `forgivingBase64UrlEncode` Also fixed #20563 .
2023-09-27fix(cli): panic with __runtime_js_sources (#20704)Luca Casonato
Also a drive-by cleanup elsewhere (removing unused enum). Fixes #20702
2023-09-27chore: forward v1.37.1 release commit to main (#20706)denobot
This is the release commit being forwarded back to main for 1.37.1 Co-authored-by: littledivy <littledivy@users.noreply.github.com>
2023-09-27feat(ext/kv): support key expiration in remote backend (#20688)Heyang Zhou
This patch adds support for [key expiration](https://docs.deno.com/kv/manual/key_expiration) in the remote backend.
2023-09-26fix(kv_queues): graceful shutdown (#20627)Igor Zinkovsky
This fixes the `TypeError: Database closed` error during shutdown.
2023-09-27fix(lsp): allow query strings for "deno:/status.md" (#20697)Nayeem Rahman
2023-09-27feat(unstable): add `Deno.jupyter.broadcast` API (#20656)Bartek Iwańczuk
Closes https://github.com/denoland/deno/issues/20591 --------- Co-authored-by: Kyle Kelley <rgbkrk@gmail.com>
2023-09-26chore: update deno_core and cargo update (#20696)Matt Mastracci
``` Updating deno_core v0.217.0 -> v0.218.0 Updating deno_ops v0.93.0 -> v0.94.0 Updating deno_semver v0.5.0 -> v0.5.1 Updating fastrand v2.0.0 -> v2.0.1 Updating serde_v8 v0.126.0 -> v0.127.0 Updating sha2 v0.10.7 -> v0.10.8 Updating time v0.3.28 -> v0.3.29 Updating time-core v0.1.1 -> v0.1.2 Updating time-macros v0.2.14 -> v0.2.15 ```
2023-09-26fix(upgrade): error instead of panic on unzip failure (#20691)David Sherret
For #20683
2023-09-26chore(lsp): bump tower-lsp to 0.20.0 (#20693)Nayeem Rahman
2023-09-26chore: slight cleanup in npm resolvers (#20692)David Sherret
2023-09-26chore: deprecate Deno.metrics() API (#20684)Bartek Iwańczuk
This API is providing hoops to jump through with undergoing migration to `#[op2]` macro. The overhead of supporting this API is non-trivial and besides internal use of it in test sanitizers is very rarely used in the wild.
2023-09-26refactor: rewrite ext/node/crypto to op2 macro (#20675)Bartek Iwańczuk
2023-09-26refactor(ext/http): use scopeguard defer to handle async drop (#20652)Laurence Rowe
Use the [scopeguard](https://docs.rs/scopeguard/) defer macro to run cleanup code for `new_slab_future`. This means it can be a single async function, avoiding the need to create a struct and implement `PinnedDrop` Async cleanup in Rust is awkward because async functions may be cancelled at any await point when their Future is dropped. The scopeguard approach comes from the following articles: * [How to think about `async`/`await` in Rust](http://cliffle.com/blog/async-inversion/) * [Async Cancellation I](https://blog.yoshuawuyts.com/async-cancellation-1/) (Reddit [discussion](https://www.reddit.com/r/rust/comments/qrhg39/blog_post_async_cancellation/))
2023-09-26fix(cli/test): clear connection pool after tests (#20680)Luca Casonato
This helps reduce flakes where a test starts an HTTP server and makes a request using fetch, then shuts down the server, then starting a new test with a new server, but the connection pool still has a "not quite closed yet" connection to the old server, and a new request to the new server gets sent on the closed connection, which obviously errors out.
2023-09-26chore: clean up lint script (#20682)Luca Casonato
Right now, if one of the linters fails, the all other ones continue running in the background. This fixes this by waiting until all linters are done before settling.
2023-09-26feat(lsp): support more vscode built-in settings (#20679)Nayeem Rahman
2023-09-26perf(test): use fast ops for deno test register (#20670)Luca Casonato
Use fast ops for test registration. This speeds up `Deno.test` and `t.step()` significantly (2x over Deno 1.37.0).
2023-09-26test: unflake serve_test/httpServerTcpCancellation (#20672)Luca Casonato
Previously could flake on the op sanitizer because the `await makeTempFile()` promise could leak out of the test. Now we ensure the request is fully handled before returning.
2023-09-26perf(test): use core.currentUserCallSite (#20669)Luca Casonato
Speeds up `Deno.test` calls by a bit.
2023-09-25fix(ext/http): ensure that resources are closed when request is cancelled ↵Matt Mastracci
(#20641) Builds on top of #20622 to fix #10854
2023-09-25docs: fix broken deno manual link (#20667)Mikko
2023-09-24feat(lsp): cache all dependencies quick fix (#20665)Nayeem Rahman
2023-09-24refactor: rewrite more ops to op2 (#20666)Bartek Iwańczuk
2023-09-24fix(lsp): resolve remote import maps (#20651)Nayeem Rahman
2023-09-24refactor(lsp): implement "deno.cacheOnSave" server-side (#20632)Nayeem Rahman
2023-09-24fix(ext/node): Fix invalid length variable reference in blitBuffer (#20648)Aapo Alasuutari
2023-09-24fix(ext/node): simplified array.from + map (#20653)Mikhail
`Array.from` has optional second argument. Calling `map` is not required for this case.
2023-09-24fix(lsp): show related information for tsc diagnostics (#20654)Nayeem Rahman
2023-09-23fix(kv): unflake kv unit tests (#20640)Igor Zinkovsky
fixes #20635
2023-09-23refactor: rewrite ops to op2 macro (#20628)Bartek Iwańczuk
Co-authored-by: Matt Mastracci <matthew@mastracci.com>
2023-09-23chore: bump deno_core (#20650)Matt Mastracci
2023-09-23refactor: rewrite ext/node/http2 to op2 macro (#20629)Bartek Iwańczuk
2023-09-23feat(ext/web): use readableStreamDefaultReaderRead in ↵Matt Mastracci
resourceForReadableStream (#20622) We can go one level down in abstraction and avoid using the public `ReadableStream` APIs. This patch ~5% perf boost on small ReadableStream: ``` Running 10s test @ http://localhost:8080/ 2 threads and 10 connections Thread Stats Avg Stdev Max +/- Stdev Latency 148.32us 108.95us 3.88ms 95.71% Req/Sec 33.24k 2.68k 37.94k 73.76% 668188 requests in 10.10s, 77.74MB read Requests/sec: 66162.91 Transfer/sec: 7.70MB ``` main: ``` Running 10s test @ http://localhost:8080/ 2 threads and 10 connections Thread Stats Avg Stdev Max +/- Stdev Latency 150.23us 67.61us 4.39ms 94.80% Req/Sec 31.81k 1.55k 35.56k 83.17% 639078 requests in 10.10s, 74.36MB read Requests/sec: 63273.72 Transfer/sec: 7.36MB ```
2023-09-23fix(jupyter): await Jupyter.display evaluation (#20646)Bartek Iwańczuk
2023-09-23refactor: rewrite ops using i64/usize to op2 (#20647)Bartek Iwańczuk
2023-09-23fix(node): supported arguments to `randomFillSync` (#20637)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/20634
2023-09-22chore: bump deno_core + cargo update (#20636)Matt Mastracci
``` Updating aes-gcm v0.10.2 -> v0.10.3 Updating aho-corasick v1.1.0 -> v1.1.1 Updating curve25519-dalek v4.1.0 -> v4.1.1 Updating deno_core v0.214.0 -> v0.215.0 Updating deno_ops v0.90.0 -> v0.91.0 Updating deno_unsync v0.2.1 -> v0.3.0 Updating md-5 v0.10.5 -> v0.10.6 Updating rustix v0.38.13 -> v0.38.14 Updating rustls-webpki v0.101.5 -> v0.101.6 Updating serde_v8 v0.123.0 -> v0.124.0 Updating sha1 v0.10.5 -> v0.10.6 Updating smallvec v1.11.0 -> v1.11.1 Updating tokio-util v0.7.8 -> v0.7.9 Updating v8 v0.76.0 -> v0.77.0 Updating winapi-util v0.1.5 -> v0.1.6 ```
2023-09-22build(deps): bump aes-gcm from 0.10.2 to 0.10.3 (#20639)dependabot[bot]
Bumps [aes-gcm](https://github.com/RustCrypto/AEADs) from 0.10.2 to 0.10.3. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/RustCrypto/AEADs/commit/7e82b01cd4901f6a35b5153536f11b87f5e4e622"><code>7e82b01</code></a> aes-gcm v0.10.3 (<a href="https://redirect.github.com/RustCrypto/AEADs/issues/552">#552</a>)</li> <li><a href="https://github.com/RustCrypto/AEADs/commit/b587b27270cc300d39c496a1ab06be80d72ac107"><code>b587b27</code></a> aes-gcm: avoid exposing plaintext on tag verification failure (<a href="https://redirect.github.com/RustCrypto/AEADs/issues/551">#551</a>)</li> <li><a href="https://github.com/RustCrypto/AEADs/commit/2209bcaa9edc65e9a60498e7ece5b50e66f32ebf"><code>2209bca</code></a> build(deps): bump actions/checkout from 3 to 4 (<a href="https://redirect.github.com/RustCrypto/AEADs/issues/548">#548</a>)</li> <li><a href="https://github.com/RustCrypto/AEADs/commit/035ec25362886735a0f44098f85ba0501a9b4038"><code>035ec25</code></a> build(deps): bump ascon from 0.3.1 to 0.4.0 (<a href="https://redirect.github.com/RustCrypto/AEADs/issues/545">#545</a>)</li> <li><a href="https://github.com/RustCrypto/AEADs/commit/e94ba5ab9fb2c7f3a18c92fb9dc8df14ac36f06b"><code>e94ba5a</code></a> xsalsa20poly1305: remove source code (<a href="https://redirect.github.com/RustCrypto/AEADs/issues/543">#543</a>)</li> <li><a href="https://github.com/RustCrypto/AEADs/commit/31240c1285144aeabef3e80eb9a1b4137dc2b43f"><code>31240c1</code></a> Update Cargo.lock</li> <li><a href="https://github.com/RustCrypto/AEADs/commit/40240c4a852df21048830de4eed4782c0fbddaef"><code>40240c4</code></a> Update Cargo.lock</li> <li><a href="https://github.com/RustCrypto/AEADs/commit/be4ea6fd3bcc1c8a5a23974a43e0fc35104d8cba"><code>be4ea6f</code></a> Update Cargo.lock</li> <li><a href="https://github.com/RustCrypto/AEADs/commit/2aef39e90d39c247cc89ccc31628468c9a9f60de"><code>2aef39e</code></a> Update Clippy version (<a href="https://redirect.github.com/RustCrypto/AEADs/issues/534">#534</a>)</li> <li><a href="https://github.com/RustCrypto/AEADs/commit/50710da0cbd47a4614b6d37119877f206c207e95"><code>50710da</code></a> Update Cargo.lock</li> <li>Additional commits viewable in <a href="https://github.com/RustCrypto/AEADs/compare/aes-gcm-v0.10.2...aes-gcm-v0.10.3">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aes-gcm&package-manager=cargo&previous-version=0.10.2&new-version=0.10.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/denoland/deno/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-22feat(kv_queues): increase max queue delay to 30 days (#20626)Igor Zinkovsky
2023-09-22fix(node/package_json): Avoid panic when "exports" field is null (#20588)Alessandro Scandone
Fixes #20558 Implementation: when package.json `exports` field is `null`, treat it as if it was not set
2023-09-21perf(ext/fetch): use new instead of createBranded (#20624)Marcos Casagrande
This PR optimizes `fromInner*` methods of `Request` / `Header` / `Response` used by `Deno.serve` and `fetch` by using `new` instead of `ObjectCreate` from `createBranded`. The "brand" is created by passing `webidl.brand` to the constructor instead. https://github.com/denoland/deno/blob/142449ecab20006c5cfd15462814650596bc034d/ext/webidl/00_webidl.js#L1001-L1005 ### Benchmark ```js const createBranded = Symbol("create branded"); const brand = Symbol("brand"); class B { constructor(init) { if (init === createBranded) { this[brand] = brand; } } } Deno.bench("Object.create(protoype)", () => { Object.create(B.prototype); }); Deno.bench("new Class", () => { new B(createBranded); }); ``` ``` cpu: 13th Gen Intel(R) Core(TM) i9-13900H runtime: deno 1.37.0 (x86_64-unknown-linux-gnu) benchmark time (avg) iter/s (min … max) p75 p99 p995 ----------------------------------------------------------------------------- ----------------------------- Object.create(protoype) 8.74 ns/iter 114,363,610.3 (7.32 ns … 26.02 ns) 8.65 ns 13.39 ns 14.47 ns new Class 3.05 ns/iter 328,271,012.2 (2.78 ns … 9.1 ns) 3.06 ns 3.46 ns 3.5 ns ```
2023-09-21refactor: rewrite some ops to op2 macro (#20603)Bartek Iwańczuk
2023-09-21fix(node): point process.version to Node 18.18.0 LTS (#20597)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/20590
2023-09-21refactor(lsp): store language sections in WorkspaceSettings (#20593)Nayeem Rahman
When sending configuration requests to the client, reads `javascript` and `typescript` sections in addition to `deno`. The LSP's initialization options now accepts `javascript` and `typescript` namespaces.
2023-09-20fix(ext/web): Aggregate small packets for Resource implementation of ↵Matt Mastracci
ReadableStream (#20570) Fixes: #20569 by introducing a custom replacement for the tokio mpsc channel that is byte-size backpressure-aware. Using the testcase in the linked bug, we see all the small writes aggregated into a single packet and HTTP frame. ``` 10:39 $ nc localhost 8000 GET / HTTP/1.1 HTTP/1.1 200 OK content-type: text/plain vary: Accept-Encoding transfer-encoding: chunked date: Tue, 19 Sep 2023 16:39:13 GMT A 0 1 2 3 4 ``` This patch: ``` Running 10s test @ http://localhost:8080/ 2 threads and 10 connections Thread Stats Avg Stdev Max +/- Stdev Latency 157.47us 194.89us 9.53ms 98.97% Req/Sec 31.37k 1.56k 34.73k 85.15% 630407 requests in 10.10s, 73.35MB read Requests/sec: 62428.12 Transfer/sec: 7.26MB ``` main: ``` Running 10s test @ http://localhost:8080/ 2 threads and 10 connections Thread Stats Avg Stdev Max +/- Stdev Latency 343.75us 200.48us 10.41ms 98.25% Req/Sec 14.64k 806.52 16.98k 84.65% 294018 requests in 10.10s, 39.82MB read Requests/sec: 29109.91 Transfer/sec: 3.94MB ``` --------- Co-authored-by: Bert Belder <bertbelder@gmail.com>
2023-09-19refactor: rewrite BC, cache exts to op2 (#20486)Bartek Iwańczuk
Co-authored-by: Matt Mastracci <matthew@mastracci.com>