1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-25 15:29:32 -05:00
Commit graph

9506 commits

Author SHA1 Message Date
Leo Kettmeir
cde9e99c7d
chore(ext/node): bring back changes to ClientRequest.onSocket (#19509)
Reverts denoland/deno#19426
2023-06-15 22:50:40 +02:00
Matt Mastracci
e05cc74750
refactor(core): some runtime methods should live on the module map (#19502)
A few easy migrations of module code from the runtime to the module map.

The module map already has a few places where it needs a handle scope,
so we're not coupling it any further with the v8 runtime.

`init_runtime_module_map` is replaced with an option to reduce API
surface of JsRuntime.

`module_resolve_callback` now lives in the `ModuleMap` and we use a
annex data to avoid having to go through the `Rc<RefCell<...>>` stored
in the `JsRuntime`'s isolate.
2023-06-15 22:50:39 +02:00
David Sherret
3472e26dbe
fix(compile): some npm dependencies were missing in compiled output (#19503)
Test is in deno_npm.

Closes #19500
2023-06-15 22:50:39 +02:00
Bartek Iwańczuk
7136ede444
perf(web): optimize timer resolution (#19493)
Closes https://github.com/denoland/deno/issues/19348

This changes benchmark from the issue from:
```
deno run -A https://raw.githubusercontent.com/nats-io/nats.deno/deno-transport-changes/examples/bench.js --subject a --payload 3500 --pub --count 650000
pub 7,636 msgs/sec - [85.13 secs] ~ 25.49 MB/sec 85127.8765/85127.8765
```
to:
```
> ./target/release/deno run -A https://raw.githubusercontent.com/nats-io/nats.deno/deno-transport-changes/examples/bench.js --subject a --payload 3500 --pub --count 650000
pub 176,840 msgs/sec - [3.68 secs] ~ 590.27 MB/sec 3675.646833/3675.646833

> ./target/release/deno run -A https://raw.githubusercontent.com/nats-io/nats.deno/deno-transport-changes/examples/bench.js --subject a --payload 3500 --pub --count 650000
pub 174,589 msgs/sec - [3.72 secs] ~ 582.76 MB/sec 3723.01925/3723.01925
```
2023-06-15 22:50:39 +02:00
Bartek Iwańczuk
de82fa2f83
perf: don't run microtask checkpoint if macrotask callback did no work (#19492)
Most of the time there's no firing timers, nor pending promise
rejections, so it's wasteful to run microtask checkpoint 
additionally twice on each tick of the event loop.

Closes https://github.com/denoland/deno/issues/18871
Ref https://github.com/denoland/deno/issues/19451
2023-06-15 22:50:39 +02:00
Igor Zinkovsky
1e725e6fd5
chore(kv) fix flaky queue test (#19495) 2023-06-15 22:50:39 +02:00
Jhan S. Álvarez
0276a38927
fix(ext/http): Include hostname in onListen argument (#19497)
Closes #19470.
2023-06-15 22:50:39 +02:00
Matt Mastracci
87f41a816b
chore(core): Refactor runtime and split out tests (#19491)
This is a quick first refactoring to split the tests out of runtime and
move runtime-related code to a top-level runtime module.

There will be a followup to refactor imports a bit, but this is the
major change that will most likely conflict with other work and I want
to merge it early.
2023-06-15 22:50:38 +02:00
Igor Zinkovsky
116972f3fc
feat(kv) queue implementation (#19459)
Extend the unstable `Deno.Kv` API to support queues.
2023-06-15 22:50:38 +02:00
Matt Mastracci
fccec654cb
chore(core): Split modules.rs into multiple files (no code changes) (#19486)
A simple refactoring to make it easier to understand. No code changes.
2023-06-15 22:50:38 +02:00
Bartek Iwańczuk
c6bfa8cc43
Revert "refactor(core): cleanup feature flags for js source inclusion… (#19490)
… (#19463)"

This reverts commit ceb03cfb03.

This is being reverted because it causes 3.5Mb increase in the binary
size,
due to runtime JS code being included in the binary, even though it's
already snapshotted.

CC @nayeemrmn
2023-06-15 22:50:38 +02:00
David Sherret
58c79b8dd2
chore: fix compile error on main (#19489) 2023-06-15 22:50:38 +02:00
David Sherret
9d944cfbe6
fix(lsp): don't pre-load documents matched in the config file's "exclude" (#19431)
This prevents documents specified in a deno.json's "exclude" from being
pre-loaded by the lsp.

For example, someone may have something like:

```jsonc
// deno.json
{
  "exclude": [
    "dist" // build directory
  ]
}
```
2023-06-15 22:50:37 +02:00
Leo Kettmeir
e2aee58c89
fix(node/buffer): make slice be the same as subarray (#19481) 2023-06-15 22:50:37 +02:00
Bartek Iwańczuk
e4920f4a28
perf(http): cache verified headers (#19465)
Use `Map` to cache validated HTTP headers. Cache
has a capacity of 4096 elements and it's cleared
once that capacity is reached.

In `preactssr` benchmark it lowers the time spent
when adding headers from 180ms to 2.5ms.
2023-06-15 22:50:37 +02:00
Matt Mastracci
d14b0f0564
fix(ext/http): replace await Deno.serve with await Deno.serve().finished (#19485)
We have a bunch of these to clean up after we changed the API.
2023-06-15 22:50:37 +02:00
Matt Mastracci
d158a0bf99
fix(ext/websockets): ensure we fully send frames before close (#19484)
Fixes #19483
2023-06-15 22:50:37 +02:00
Nayeem Rahman
cd61c01545
refactor(core): cleanup feature flags for js source inclusion (#19463)
Remove `ExtensionFileSourceCode::LoadedFromFsDuringSnapshot` and feature
`include_js_for_snapshotting` since they leak paths that are only
applicable in this repo to embedders. Replace with feature
`exclude_js_sources`. Additionally the feature
`force_include_js_sources` allows negating it, if both features are set.
We need both of these because features are additive and there must be a
way of force including sources for snapshot creation while still having
the `exclude_js_sources` feature. `force_include_js_sources` is only set
for build deps, so sources are still excluded from the final binary.

You can also specify `force_include_js_sources` on any extension to
override the above features for that extension. Towards #19398.

But there was still the snapshot-from-snapshot situation where code
could be executed twice, I addressed that by making `mod_evaluate()` and
scripts like `core/01_core.js` behave idempotently. This allowed
unifying `ext::init_ops()` and `ext::init_ops_and_esm()` into
`ext::init()`.
2023-06-15 22:50:36 +02:00
David Sherret
a9595bad3e
fix(npm): warn when tarball contains hardlink or symlink (#19474)
This is to help us get some visibility into whether we need to support
this.
2023-06-15 22:50:36 +02:00
David Sherret
68d8321f16
chore(repl): mark some tests as flaky (#19475) 2023-06-15 22:50:36 +02:00
David Sherret
b78a91d3ba
fix(lsp): update import map config when deno.json changes (#19476)
Half of #19468
2023-06-15 22:50:36 +02:00
Bartek Iwańczuk
0d2eba4b3e
fix(ext/node): handle 'upgrade' responses (#19412)
This commit adds support for "upgrade" events in "node:http"
"ClientRequest". Currently only "Websocket" upgrades are
handled. Thanks to this change package like "npm:puppeteer"
and "npm:discord" should work.

Closes https://github.com/denoland/deno/issues/18913
Closes https://github.com/denoland/deno/issues/17847
2023-06-15 22:50:36 +02:00
Kaique da Silva
8b1df4f9bd
test(ext/node): add fs dirent unit test from std (#19461)
Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
2023-06-15 22:50:36 +02:00
Leo Kettmeir
28b04b285e
feat(node): HTTPS server (#19362) 2023-06-15 22:50:35 +02:00
Matt Mastracci
2fdbea763e
chore(ext/http): fix github lint issue (#19479) 2023-06-15 22:50:35 +02:00
Matt Mastracci
b480341fa6
perf(ext/http): from_maybe_shared_unchecked for header values (#19478)
Prevents re-checking strings we already know are latin-1. Small
improvement: 115k->116k
2023-06-15 22:50:35 +02:00
Matt Mastracci
4a4878f4a6
chore: No longer need a sparse checkout thanks to cargo sparse index (#19423)
`cargo`'s sparse index showed up in 1.68
2023-06-15 22:50:35 +02:00
Matt Mastracci
8aeec47a62
chore(core): fix flaky flock_test on windows (#19477) 2023-06-15 22:50:35 +02:00
Leo Kettmeir
7e3b5b1a13
chore: update clap (#19467)
Also switches to use defer for all subcommands besides run.
2023-06-15 22:50:35 +02:00
VlkrS
359030ac15
feat: Adaptations to support OpenBSD port (#19153) 2023-06-15 22:50:34 +02:00
David Sherret
8884c14a2d
chore(tests): test_util - Add PathRef (#19450)
This adds a new `PathRef` struct to test_util for making it easier to
work with paths in test code. I'm going to expand on this more in the
future.
2023-06-15 22:50:34 +02:00
Marvin Hagemeister
855772b663
perf(serve): hoist promise error callback (#19456) 2023-06-15 22:50:34 +02:00
Bartek Iwańczuk
a0a7a65cc3
perf: optimize ByteString checks, hoist server rid getter (#19452)
Further improves preact SSR and express benches by about 2k RPS.

Ref https://github.com/denoland/deno/issues/19451
2023-06-15 22:50:34 +02:00
David Sherret
f7cb0b44e3
chore: fix flaky package_json_auto_discovered_for_local_script_arg (#19445) 2023-06-15 22:50:34 +02:00
Marvin Hagemeister
97e268c39e
perf(serve): hoist repeated condition (#19449) 2023-06-15 22:50:34 +02:00
Gustrb
c67dfaec61
perf(node): cache realpath_sync calls in read permission check (#19379) 2023-06-15 22:50:33 +02:00
David Sherret
7ee3eec58a
chore: fix flaky stdio_streams_are_locked_in_permission_prompt (#19443) 2023-06-15 22:50:33 +02:00
David Sherret
ef9d91dec4
fix(fmt): do not panic formatting json with multiple values (#19442) 2023-06-15 22:50:33 +02:00
Bartek Iwańczuk
2eefa18575
chore: update release doc template (#19441)
That action is not working properly.
2023-06-15 22:50:33 +02:00
David Sherret
8a737f5a16
fix(config): do not canonicalize config file path before loading (#19436)
I'm unsure why we canonicalize the config file path when loading and the
canonicalization is causing issues in #19431 because everything in the
lsp is not canonicalized except the config file (actually, the config
file is only canonicalized when auto-discovered and not whens pecified).
We also don't canonicalize module paths when loading them.

Canonicalization was added in https://github.com/denoland/deno/pull/7621
2023-06-15 22:50:33 +02:00
David Sherret
573cf00648
chore(tests): add .use_symlinked_temp_dir() to TestBuilder (#19435)
This allows easily using a symlinked temporary directory, which is
useful for debugging issues locally that happen on the CI with a
symlinked temporary directory. For example:

```rs
let context = TestContextBuilder::new()
    .use_temp_cwd()
    .use_symlinked_temp_dir() // add this
    .build();
```
2023-06-15 22:50:33 +02:00
Bartek Iwańczuk
40cd7a3cda
perf: add Tokio runtime monitor (#19415)
This commit adds ability to print metrics of the Tokio
runtime to the console by passing "DENO_TOKIO_METRICS=1"
env var.

Metrics will be printed every second, but this can be changed
by "DENO_TOKIO_METRICS_INTERVAL=500" env var.
2023-06-15 22:50:32 +02:00
denobot
acf5d44a22
1.34.2 (#19433)
Bumped versions for 1.34.2

---------

Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-06-09 02:13:59 +02:00
Leo Kettmeir
c7d13db107
chore: update wpt (#19422) 2023-06-09 01:13:28 +02:00
David Sherret
b51be8762f
ci: use windows-xl runner for --release on main (#19429) 2023-06-09 01:13:28 +02:00
Bartek Iwańczuk
d6271e204b
chore(ext/node): revert changes to ClientRequest.onSocket (#19426)
Partially reverts https://github.com/denoland/deno/pull/19340
because it causes hangs in some situations.
2023-06-09 01:13:27 +02:00
Matt Mastracci
eb28a37cf8
fix(ext/websocket): Close socket on bad string data (#19424) 2023-06-09 01:13:27 +02:00
Matt Mastracci
270ac0775a
chore: Use relative paths for assert imports to avoid test flakes (#19427)
Tests occasionally fail if we get a bad gateway attempting to fetch the
assertion module
2023-06-09 01:13:27 +02:00
David Sherret
959e795b44
refactor(compile): store the npm snapshot in the eszip (#19343) 2023-06-09 01:13:27 +02:00
Matt Mastracci
1bbf67f6ca
perf(ext/websocket): Reduce GC pressure & monomorpize op_ws_next_event (#19405)
Reduce the GC pressure from the websocket event method by splitting it
into an event getter and a buffer getter.

Before:
165.9k msg/sec

After:
169.9k msg/sec
2023-06-09 01:13:27 +02:00