Divy Srivastava
1ba88a7892
perf(ext/node): improve Buffer
from string performance ( #24567 )
...
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-30 18:09:55 +05:30
Bartek Iwańczuk
c6ecf70a09
refactor(ext/node): create separate ops for node:http module ( #24788 )
...
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-30 14:34:52 +02:00
Ryan B.
191de7d72b
fix(cli): Unhide publish subcommand help string ( #24787 )
...
Fixes #24753
The help text for `deno publish` was marked hidden while in preview.
This is no longer a preview feature.
2024-07-29 18:36:53 -04:00
David Sherret
38a363dc7c
chore: mark upgrade invalid lockfile as flaky ( #24760 )
...
Closes #24759
2024-07-29 16:18:25 -04:00
Satya Rohith
8c2f1f5a55
chore: upgrade to rust 1.80 ( #24778 )
2024-07-29 12:58:04 -04:00
Satya Rohith
8bab761bcc
fix(ext/node): prevent panic in http2.connect with uppercase header names ( #24780 )
...
Closes https://github.com/denoland/deno/issues/24678
2024-07-29 13:33:55 +02:00
Kenta Moriuchi
ad5cec27d3
fix(types): fix streams types ( #24770 )
2024-07-28 23:21:00 -04:00
Yazan AbdAl-Rahman
41f8988dc7
fix(http): Adjust hostname display for Windows when using 0.0.0.0 ( #24698 )
...
Fixes #24687
---------
Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
2024-07-28 23:04:05 +02:00
David Sherret
50fa4d7ef5
fix: actually add missing node:readline/promises
module ( #24772 )
...
Closes #24768
2024-07-28 15:41:10 -04:00
Yoshiya Hinosawa
99e811f5eb
test(ext/node): reduce http_test flakiness ( #24742 )
2024-07-27 22:47:47 +09:00
David Sherret
086fa28348
fix(npmrc): skip loading .npmrc in home dir on permission error ( #24758 )
2024-07-27 09:04:28 -04:00
David Sherret
9956737941
refactor(lint): move reporters to separate module ( #24757 )
2024-07-27 09:01:42 -04:00
Kyle Kelley
63f8218a7d
fix: adapt to new jupyter runtime API and include session IDs ( #24762 )
...
Closes #24737 , #24437 .
2024-07-27 10:39:08 +02:00
David Sherret
06b6352292
fix(unstable/compile): handle byonm import in sub dir ( #24755 )
...
Regression in 1.45.0 caused by storing relative paths instead of
absolute paths in the binary.
Closes #24654
2024-07-26 15:53:53 -04:00
denobot
ed2bf8ce31
chore: forward v1.45.4 release commit to main ( #24754 )
...
Co-authored-by: David Sherret <dsherret@gmail.com>
2024-07-26 14:26:13 -04:00
David Sherret
bee16c54ab
fix(publish): workspace included license file had incorrect path ( #24747 )
...
Also fixes the issue where we say a package was successfully published
before it wasn't.
Bug in https://github.com/denoland/deno/pull/24714
2024-07-26 15:35:29 +00:00
Bartek Iwańczuk
7776636c2e
fix: support npm:bindings
and npm:callsites
packages ( #24727 )
...
Adds support for `npm:bindings` and `npm:callsites` packages because of
changes in
https://github.com/denoland/deno_core/pull/838 .
This `deno_core` bump causes us to stop prepending `file://` scheme for
locations
in stack traces that are for local files.
Fixes https://github.com/denoland/deno/issues/24462 , fixes
https://github.com/denoland/deno/issues/22671 , fixes
https://github.com/denoland/deno/issues/15717 , fixes
https://github.com/denoland/deno/issues/19130 , fixes
https://github.com/WiseLibs/better-sqlite3/issues/1205 , fixes
https://github.com/WiseLibs/better-sqlite3/issues/1034 , fixes
https://github.com/denoland/deno/issues/20936
---------
Co-authored-by: Nathan Whitaker <17734409+nathanwhit@users.noreply.github.com>
2024-07-26 09:08:15 +02:00
MrEconomical
f4952f75a8
fix(ext/node): read correct CPU usage stats on Linux ( #24732 )
...
Fixes #24731
<img width="554" alt="deno_fixed"
src="https://github.com/user-attachments/assets/691f2f89-d979-4ca5-be9a-cf51446cd9b2 ">
The total CPU usage row is ignored and info from `cpu0` and `cpu1` is
correctly read.
---------
Signed-off-by: MrEconomical <47700125+MrEconomical@users.noreply.github.com>
2024-07-26 09:09:01 +05:30
David Sherret
7907265590
fix(node): cjs pkg dynamically importing esm-only pkg fails ( #24730 )
2024-07-25 21:40:10 -04:00
Asher Gomez
ef38aa9d9c
chore: fix bench task ( #24718 )
...
<!--
Before submitting a PR, please read
https://docs.deno.com/runtime/manual/references/contributing
1. Give the PR a descriptive title.
Examples of good title:
- fix(std/http): Fix race condition in server
- docs(console): Update docstrings
- feat(doc): Handle nested reexports
Examples of bad title:
- fix #7123
- update docs
- fix bugs
2. Ensure there is a related issue and it is referenced in the PR text.
3. Ensure there are tests that cover the changes.
4. Ensure `cargo test` passes.
5. Ensure `./tools/format.js` passes without changing files.
6. Ensure `./tools/lint.js` passes.
7. Open as a draft PR if your work is still in progress. The CI won't
run
all steps, but you can add '[ci]' to a commit message to force it to.
8. If you would like to run the benchmarks on the CI, add the 'ci-bench'
label.
-->
2024-07-25 23:53:52 +00:00
David Sherret
3bf147fe28
refactor: decouple node resolution from deno_core ( #24724 )
2024-07-25 19:08:14 -04:00
Marvin Hagemeister
0cf7f268a7
fix(node/worker_threads): support port.once()
( #24725 )
...
Support `MessagePort.once` in Node mode and enable relevant
`worker_threads` test. Noticed that another Node test was passing as
well, so I enabled that too.
2024-07-25 23:06:19 +02:00
David Sherret
763f05e74d
fix(unstable): move sloppy-import warnings to lint rule ( #24710 )
...
Adds a new `no-sloppy-imports` lint rule and cleans up the lint code.
Closes #22844
Closes https://github.com/denoland/deno_lint/issues/1293
2024-07-25 09:07:59 -04:00
Asher Gomez
ef78d317f0
chore: fix WPT epoch ( #24716 )
...
This was missed in the previous `std` updates.
2024-07-25 09:20:44 +02:00
Asher Gomez
5f44148e83
chore: update to std@2024.07.19
( #24715 )
2024-07-25 15:30:28 +10:00
David Sherret
84b7504d0f
fix(workspaces/publish): include the license file from the workspace root if not in pkg ( #24714 )
2024-07-25 01:43:30 +00:00
Bartek Iwańczuk
5f5f662a68
fix: upgrade deno_core to 0.298.0 ( #24709 )
...
Fixes percent-encoded filenames in stack traces:
- https://github.com/denoland/deno_core/pull/759
Closes #18983
2024-07-25 03:36:34 +02:00
Asher Gomez
f248050cb4
chore: use @std
prefix for internal module specifiers ( #24543 )
...
This change aims to replace all relative import specifiers targeted at
`tests/util/std` with mapped ones (using a `deno.json` file). Towards
updating the `std` git submodule.
2024-07-25 10:26:54 +10:00
Nathan Whitaker
795ed23b35
fix(future): Emit deno install
warning less often, suggest deno install
in error message ( #24706 )
...
Two small changes:
- In our BYONM errors, suggest running `deno install` instead of `npm
install` if `DENO_FUTURE` is set
- Only emit warning about `deno install` changes if you do `deno install
<foo>` with deno_future unset
2024-07-24 23:37:13 +00:00
Bartek Iwańczuk
1fad6eb2ac
fix(ext/fetch): respect authority from URL ( #24705 )
...
This commit fixes handling of "authority" in the URL by properly
sending "Authorization Basic..." header in `fetch` API.
This is a regression from https://github.com/denoland/deno/pull/24593
Fixes https://github.com/denoland/deno/issues/24697
CC @seanmonstar
2024-07-24 23:22:43 +02:00
Sean McArthur
c7f468d33b
fix(ext/fetch): use correct ALPN to proxies ( #24696 )
...
Sending ALPN to a proxy, and then when tunneling, requires better
juggling of TLS configs. This improves the choice of TLS config in the
proxy connector, based on what reqwest does. It also includes some
`ext/fetch/tests.rs` that check the different combinations.
Fixes #24632
Fixes #24691
2024-07-24 20:20:06 +00:00
Leo Kettmeir
b305ba3e1c
perf: update deno_doc ( #24700 )
...
Ref https://github.com/denoland/deno_doc/pull/616
2024-07-24 12:23:16 -07:00
HasanAlrimawi
fcd9bbe8ee
fix: update lsp error message of 'relative import path' to 'use deno add' for npm/jsr packages ( #24524 )
2024-07-24 16:12:42 +01:00
Yoshiya Hinosawa
199a8ca4c5
fix(ext/node/net): emit error
before close
when connection is refused ( #24656 )
2024-07-24 20:33:45 +09:00
Nathan Whitaker
29934d558c
fix(node): Run node compat tests listed in the ignore
field (and fix the ones that fail) ( #24631 )
...
The intent is that those tests will be executed, but our check that the
files are up to date won't overwrite the contents of the tests. This is
useful when a test needs some manual edits to work.
It turns out we weren't actually running them.
---
This ended up turning into a couple of small bug fixes to get the tests
passing:
- We weren't canonicalizing the exec path properly (it sometimes still
had `..` or `.` in it)
- We weren't accepting strings in `process.exit`
There was one failure I couldn't figure out quickly, so I disabled the
test for now, and filed a follow up issue: #24694
2024-07-24 03:12:08 +00:00
David Sherret
52ababc4bf
fix(node): better detection for when to surface node resolution errors ( #24653 )
2024-07-24 00:22:24 +00:00
Bartek Iwańczuk
445e05a39d
Reland "fix: CFunctionInfo and CTypeInfo leaks ( #24634 )" ( #24692 )
...
Reverted in
95847f4e94
.
2024-07-24 02:11:38 +02:00
David Sherret
9114a2df69
fix(upgrade): do not error if config in cwd invalid ( #24689 )
...
```
> deno upgrade
error: Unsupported lockfile version 'invalid'. Try upgrading Deno or recreating the lockfile.
V:\scratch
> V:\deno\target\debug\deno upgrade
Looking up latest version
Local deno version 1.45.3 is the most recent release
```
Closes #24517
Closes #20729
2024-07-23 19:00:48 -04:00
David Sherret
6055629ee7
refactor: update to use deno_package_json ( #24688 )
...
This is in preparation for extracting out node resolution code from
ext/node (which is something I'm going to do gradually over time).
Uses https://github.com/denoland/deno_package_json
2024-07-23 17:34:46 -04:00
HasanAlrimawi
f0df54fc70
fix: enable the reporting of parsing related problems when running deno lint ( #24332 )
2024-07-23 21:17:17 +00:00
Nayeem Rahman
a45a40533e
fix(lsp): rewrite import for 'infer return type' action ( #24685 )
2024-07-23 19:39:14 +01:00
denobot
9806064ac2
chore: forward v1.45.3 release commit to main ( #24681 )
...
This is the release commit being forwarded back to main for 1.45.3
---------
Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-07-23 03:41:40 +02:00
Bartek Iwańczuk
8a7ed17ea2
Revert "fix(cli): add NAPI support in standalone mode ( #24642 )" ( #24682 )
...
This reverts commit 4e8f5875bc
.
Reverting because, it caused a failure during v1.45.3 publish:
https://github.com/denoland/deno/actions/runs/10048730693/job/27773718095
CC @Mutefish0
2024-07-23 02:42:26 +02:00
Bartek Iwańczuk
3f8efe5289
Revert "chore: move all node-api impl to ext ( #24662 )" ( #24680 )
...
This reverts commit d00fbd7025
.
Reverting because, it caused a failure during v1.45.3 publish:
https://github.com/denoland/deno/actions/runs/10048730693/job/27773718095
2024-07-23 00:01:31 +00:00
Kenta Moriuchi
715675565a
fix(types): Conform lib.deno_web.d.ts to lib.dom.d.ts and lib.webworker.d.ts ( #24599 )
...
Fix #24578
Fix #21981
2024-07-22 22:02:39 +02:00
David Sherret
6960637b5c
fix(publish): warn about missing license file ( #24677 )
...
Part of https://github.com/denoland/deno/issues/24676 , but just a
warning for now.
2024-07-22 15:46:37 -04:00
snek
92abdb7669
chore: move all node-api impl to ext ( #24662 )
...
these symbols are re-exported from runtime/cli using `build.rs`, so we
don't need them in the same crate.
2024-07-22 11:41:59 -07:00
David Sherret
a459b43d59
fix(npm): handle packages with only pre-released 0.0.0 versions ( #24563 )
...
* https://github.com/denoland/deno_semver/pull/26
Closes https://github.com/denoland/deno/issues/24550
2024-07-22 10:58:48 -04:00
Nayeem Rahman
5a696551b7
fix(lsp): scope attribution for asset documents ( #24663 )
2024-07-22 15:06:08 +01:00
Bartek Iwańczuk
95847f4e94
Revert "fix: CFunctionInfo and CTypeInfo leaks ( #24634 )" ( #24665 )
...
This reverts commit 6c5905dbc3
.
Reverting because of errors like this in CI:
```
#
# Fatal error in , line 0
# Check failed: FastApiCallNode::ArityForArgc(c_arg_count, slow_arg_count) == value_input_count.
#
#
#
#FailureMessage Object: 0x7fd5b3ffd9d0
==== C stack trace ===============================
/home/runner/work/deno/deno/target/release/deps/url_ops-e4068c650cedb9fa(+0x1111883) [0x55b8d2107883]
/home/runner/work/deno/deno/target/release/deps/url_ops-e4068c650cedb9fa(+0x1110b6b) [0x55b8d2106b6b]
/home/runner/work/deno/deno/target/release/deps/url_ops-e4068c650cedb9fa(+0x110c6f9) [0x55b8d21026f9]
/home/runner/work/deno/deno/target/release/deps/url_ops-e4068c650cedb9fa(+0x20413cd) [0x55b8d30373cd]
/home/runner/work/deno/deno/target/release/deps/url_ops-e4068c650cedb9fa(+0x2034222) [0x55b8d302a222]
/home/runner/work/deno/deno/target/release/deps/url_ops-e4068c650cedb9fa(+0x202ff44) [0x55b8d3025f44]
/home/runner/work/deno/deno/target/release/deps/url_ops-e4068c650cedb9fa(+0x1e0b253) [0x55b8d2e01253]
/home/runner/work/deno/deno/target/release/deps/url_ops-e4068c650cedb9fa(+0x1dfcd96) [0x55b8d2df2d96]
/home/runner/work/deno/deno/target/release/deps/url_ops-e4068c650cedb9fa(+0x1df92aa) [0x55b8d2def2aa]
/home/runner/work/deno/deno/target/release/deps/url_ops-e4068c650cedb9fa(+0x1df8b71) [0x55b8d2deeb71]
/home/runner/work/deno/deno/target/release/deps/url_ops-e4068c650cedb9fa(+0x11ce49b) [0x55b8d21c449b]
/home/runner/work/deno/deno/target/release/deps/url_ops-e4068c650cedb9fa(+0x121fb23) [0x55b8d2215b23]
/home/runner/work/deno/deno/target/release/deps/url_ops-e4068c650cedb9fa(+0x1221359) [0x55b8d2217359]
/home/runner/work/deno/deno/target/release/deps/url_ops-e4068c650cedb9fa(+0x1112f3b) [0x55b8d2108f3b]
/home/runner/work/deno/deno/target/release/deps/url_ops-e4068c650cedb9fa(+0x111792b) [0x55b8d210d92b]
/home/runner/work/deno/deno/target/release/deps/url_ops-e4068c650cedb9fa(+0x110df0f) [0x55b8d2103f0f]
/lib/x86_64-linux-gnu/libc.so.6(+0x94ac3) [0x7fd5cb294ac3]
/lib/x86_64-linux-gnu/libc.so.6(+0x126850) [0x7fd5cb326850]
```
2024-07-22 14:58:58 +02:00