summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-08-06perf(lsp): remove fallback config scopes for workspace folders (#24868)Nayeem Rahman
2024-08-05feat: Add Deno.ServeDefaultExport type (#24879)Bartek Iwańczuk
Closes https://github.com/denoland/deno/issues/23725
2024-08-05fix(node): Fix node IPC serialization for objects with undefined values (#24894)Nathan Whitaker
We were serializing `{ a: undefined }` to `{ a: null }` instead of `{}`
2024-08-05feat: upgrade deno_core (#24886)snek
Fixes: https://github.com/denoland/deno/issues/24869 Includes changes for `node:vm` rewrite.
2024-08-05fix(urlpattern): correct typings for added APIs (#24881)Leo Kettmeir
2024-08-05feat(urlpattern): add ignoreCase option & hasRegExpGroups property, and fix ↵Leo Kettmeir
spec discrepancies (#24741) Fixes #20906 Fixes #24266 Closes #21073 --------- Signed-off-by: Leo Kettmeir <crowlkats@toaxl.com> Co-authored-by: Luca Casonato <lucacasonato@yahoo.com>
2024-08-05fix(unstable): panic when running deno install with DENO_FUTURE=1 (#24866)David Sherret
Not bothering to add a test for this because we're going to change this to be the default in a couple weeks.
2024-08-02Revert "feat: async context" (#24856)snek
Reverts denoland/deno#24402 deno_web can't depend on code in runtime
2024-08-02feat: async context (#24402)snek
We are switching to ContinuationPreservedEmbedderData. This allows adding async context tracking to the various async operations that deno provides. Fixes: https://github.com/denoland/deno/issues/7010 Fixes: https://github.com/denoland/deno/issues/22886 Fixes: https://github.com/denoland/deno/issues/24368
2024-08-02fix(ext/node): node:zlib coerces quality 10 to 9.5 (#24850)Bartek Iwańczuk
Fixes https://github.com/denoland/deno/issues/24572
2024-08-02Revert "perf(ext/node): improve `Buffer` from string performance" (#24851)Luca Casonato
2024-08-02docs: category should be 'Subprocess', not 'Sub Process' (#24852)Ryan Dahl
2024-08-02feat(unstable/fmt): move yaml formatting behind unstable flag (#24848)David Sherret
This moves YAML formatting behind an unstable flag for Deno 1.46. This will make it opt-in to start and then we can remove the flag to make it on by default in version of Deno after that. This can be specified by doing `deno fmt --unstable-yaml` or by specifying the following in a deno.json file: ```json { "unstable": ["fmt-yaml"] } ```
2024-08-02fix(cli): shorten examples in help text (#24374)i-api
2024-08-02feat(test): rename --allow-none to --permit-no-files (#24809)Luca Casonato
2024-08-02feat(fmt): support YAML (#24717)Pig Fang
2024-08-02docs: fix typos (#24820)Andreas Deininger
This PR fixes various typos I spotted in the project.
2024-08-02fix(fmt): handle using stmt in for of stmt (#24834)David Sherret
Closes #24406
2024-08-02chore: mark upgrade_invalid_canary_version as flaky (#24833)David Sherret
2024-08-02BREAKING(temporal/unstable): Remove obsoleted Temporal APIs (#24836)Kenta Moriuchi
2024-08-02perf(ext/http): Reduce size of `ResponseBytesInner` (#24840)Nathan Whitaker
I noticed [`set_response_body`](https://github.com/nathanwhit/deno/blob/ce42f82b5a985e5f1482dff97a7268019a8e79ea/ext/http/service.rs#L439-L443) was unexpectedly hot in profiles, with most of the time being spent in `memmove`. It turns out that `ResponseBytesInner` was _massive_ (5624 bytes), so every time we moved a `ResponseBytesInner` (for instance in `set_response_body`) we were doing a >5kb memmove, which adds up pretty quickly. This PR boxes the two larger variants (the compression streams), shrinking `ResponseBytesInner` to a reasonable 48 bytes. --- Benchmarked with a simple hello world server: ```ts // hello-server.ts Deno.serve((_req) => { return new Response("Hello world"); }); // run with `deno run -A hello-server.ts` // in separate terminal `wrk -d 10s http://127.0.0.1:8000` ``` Main: ``` Running 10s test @ http://127.0.0.1:8000/ 2 threads and 10 connections Thread Stats Avg Stdev Max +/- Stdev Latency 53.39us 9.53us 0.98ms 92.78% Req/Sec 86.57k 3.56k 91.58k 91.09% 1739319 requests in 10.10s, 248.81MB read Requests/sec: 172220.92 Transfer/sec: 24.64MB ``` This PR: ``` Running 10s test @ http://127.0.0.1:8000/ 2 threads and 10 connections Thread Stats Avg Stdev Max +/- Stdev Latency 45.44us 8.49us 0.91ms 90.04% Req/Sec 100.65k 2.26k 102.65k 96.53% 2022296 requests in 10.10s, 289.29MB read Requests/sec: 200226.20 Transfer/sec: 28.64MB ``` So a nice ~15% bump. (With response body compression, the gain is ~10% for gzip and neutral for brotli)
2024-08-01fix: regressions around Error.prepareStackTrace (#24839)Bartek Iwańczuk
Includes: - https://github.com/denoland/deno_core/pull/858 - https://github.com/denoland/deno_core/pull/856 Fixes https://github.com/denoland/deno/issues/24782 Fixes https://github.com/denoland/deno/issues/24825
2024-08-01fix(ext/webgpu): assign missing `constants` property of shader about ↵Hajime-san
`GPUDevice.createRenderPipeline[Async]` (#24803) fixes https://github.com/denoland/deno/issues/24287
2024-08-01fix(ext/console): render properties of Intl.Locale (#24827)Leo Kettmeir
Fixes #21271 --------- Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
2024-08-01fix(ext/http): correctly consume response body in `Deno.serve` (#24811)Luca Casonato
Prior to this commit, you could return a `Response` created from a string or Uint8Array multiple times. Now you can't do that anymore.
2024-08-01chore: upgrade flaky_test, fastwebsockets, base64, base32, notify (#24746)Ryan Dahl
2024-08-01fix: Don't panic if failed to add system certificate (#24823)Bartek Iwańczuk
This commit fixes the panic from https://github.com/denoland/deno/issues/24137. I'm not sure if we want to hard error or maybe instead skip with a warning and continue execution.
2024-08-01fix(compile): adhoc codesign mach-o by default (#24824)Divy Srivastava
2024-08-01fix(ext/crypto): respect offsets when writing into ab views in ↵Luca Casonato
randomFillSync (#24816)
2024-08-01feat: codesign for deno compile binaries (#24604)Divy Srivastava
Uses [sui](https://github.com/littledivy/sui) to inject metadata as a custom section in the denort binary. Metadata is stored as a Mach-O segment on macOS and PE `RT_RCDATA` resource on Windows. Fixes #11154 Fixes https://github.com/denoland/deno/issues/17753 ```cpp deno compile app.tsx # on macOS codesign --sign - ./app # on Windows signtool sign /fd SHA256 .\app.exe ``` --------- Signed-off-by: Divy Srivastava <dj.srivastava23@gmail.com>
2024-07-31feat: upgrade V8 to 12.8 (#24693)snek
- upgrade to v8 12.8 - optimizes DataView bigint methods - fixes global interceptors - includes CPED methods for ALS - fix global resolution - makes global resolution consistent using host_defined_options. originally a separate patch but due to the global interceptor bug it needs to be included in this pr for all tests to pass.
2024-08-01fix(ext/fetch): use correct ALPN to socks5 proxies (#24817)Sean McArthur
Closes #24632 Closes #24719
2024-07-31perf: update deno_ast to 0.41 (#24819)David Sherret
Some perf gains in swc (I measured formatting and it was slightly faster). Includes: * https://github.com/denoland/deno_graph/pull/508 * https://github.com/denoland/eszip/pull/193
2024-07-31chore: forward v1.45.5 release commit to main (#24818)denobot
2024-07-31perf(ext/fetch): speed up `resp.clone()` (#24812)Luca Casonato
2024-07-31fix(ext/node): handle node child_process with --v8-options flag (#24804)Luca Casonato
Makes `v8flags` package from NPM work.
2024-07-31fix(ext/webgpu): don't crash while constructing GPUOutOfMemoryError (#24807)Luca Casonato
2024-07-31fix(node/fs/promises): watch should be async iterable (#24805)Marvin Hagemeister
The way `fs.watch` works is different in `node:fs/promises` than `node:fs`. It has a different function signature and it returns an async iterable instead, see https://nodejs.org/api/fs.html#fspromiseswatchfilename-options Fixes https://github.com/denoland/deno/issues/24661
2024-07-31fix(node/timers/promises): add scheduler APIs (#24802)Marvin Hagemeister
This PR adds the experimental `scheduler` APIs in Node's `timers/promises` module. See https://nodejs.org/api/timers.html#timerspromisesschedulerwaitdelay-options Fixes https://github.com/denoland/deno/issues/24800
2024-07-30fix(node): Rework node:child_process IPC (#24763)Nathan Whitaker
Fixes https://github.com/denoland/deno/issues/24756. Fixes https://github.com/denoland/deno/issues/24796. This also gets vitest working when using [`--pool=forks`](https://vitest.dev/guide/improving-performance#pool) (which is the default as of vitest 2.0). Ref https://github.com/denoland/deno/issues/23882. --- This PR resolves a handful of issues with child_process IPC. In particular: - We didn't support sending typed array views over IPC - Opening an IPC channel resulted in the event loop never exiting - Sending a `null` over IPC would terminate the channel - There was some UB in the read implementation (transmuting an `&[u8]` to `&mut [u8]`) - The `send` method wasn't returning anything, so there was no way to signal backpressure (this also resulted in the benchmark `child_process_ipc.mjs` being misleading, as it tried to respect backpressure. That gave node much worse results at larger message sizes, and gave us much worse results at smaller message sizes). - We weren't setting up the `channel` property on the `process` global (or on the `ChildProcess` object), and also didn't have a way to ref/unref the channel - Calling `kill` multiple times (or disconnecting the channel, then calling kill) would throw an error - Node couldn't spawn a deno subprocess and communicate with it over IPC
2024-07-30feat(lsp): registry completions for import-mapped specifiers (#24792)Nayeem Rahman
2024-07-30fix(compile/windows): handle cjs re-export of relative path with parent ↵David Sherret
component (#24795) Closes https://github.com/denoland/deno/issues/24785
2024-07-30fix(node): support wildcards in package.json imports (#24794)David Sherret
2024-07-30perf(ext/node): improve `Buffer` from string performance (#24567)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/24323 - Use a Buffer pool for `fromString` - Implement fast call base64 writes - Direct from string `create` method for each encoding op ``` $ deno bench -A bench.mjs # 1.45.1+fee4d3a cpu: Apple M1 Pro runtime: deno 1.45.1+fee4d3a (aarch64-apple-darwin) benchmark time (avg) (min … max) p75 p99 p999 ----------------------------------------------------------- ----------------------------- Buffer.from base64 550 ns/iter (490 ns … 1'265 ns) 572 ns 606 ns 1'265 ns Buffer#write base64 285 ns/iter (259 ns … 371 ns) 307 ns 347 ns 360 ns $ ~/gh/deno/target/release/deno bench -A bench.mjs # this PR cpu: Apple M1 Pro runtime: deno dev (aarch64-apple-darwin) benchmark time (avg) (min … max) p75 p99 p999 ----------------------------------------------------------- ----------------------------- Buffer.from base64 151 ns/iter (145 ns … 770 ns) 148 ns 184 ns 648 ns Buffer#write base64 62.58 ns/iter (60.79 ns … 157 ns) 61.65 ns 75.79 ns 141 ns $ node bench.mjs # v22.4.0 cpu: Apple M1 Pro runtime: node v22.4.0 (arm64-darwin) benchmark time (avg) (min … max) p75 p99 p999 ----------------------------------------------------------- ----------------------------- Buffer.from base64 163 ns/iter (96.92 ns … 375 ns) 99.45 ns 127 ns 220 ns Buffer#write base64 75.48 ns/iter (74.97 ns … 134 ns) 75.17 ns 81.83 ns 96.84 ns ```
2024-07-30refactor(ext/node): create separate ops for node:http module (#24788)Bartek Iwańczuk
This commit duplicates ops from "ext/fetch" to "ext/node" to kick off a bigger rewrite of "node:http". Most of duplication is temporary and will be removed as these ops evolve.
2024-07-29fix(cli): Unhide publish subcommand help string (#24787)Ryan B.
Fixes #24753 The help text for `deno publish` was marked hidden while in preview. This is no longer a preview feature.
2024-07-29chore: mark upgrade invalid lockfile as flaky (#24760)David Sherret
Closes #24759
2024-07-29chore: upgrade to rust 1.80 (#24778)Satya Rohith
2024-07-29fix(ext/node): prevent panic in http2.connect with uppercase header names ↵Satya Rohith
(#24780) Closes https://github.com/denoland/deno/issues/24678
2024-07-28fix(types): fix streams types (#24770)Kenta Moriuchi