summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-06-13fix(ext/websockets): ensure we fully send frames before close (#19484)Matt Mastracci
Fixes #19483
2023-06-13refactor(core): cleanup feature flags for js source inclusion (#19463)Nayeem Rahman
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-13fix(npm): warn when tarball contains hardlink or symlink (#19474)David Sherret
This is to help us get some visibility into whether we need to support this.
2023-06-13chore(repl): mark some tests as flaky (#19475)David Sherret
2023-06-13fix(lsp): update import map config when deno.json changes (#19476)David Sherret
Half of #19468
2023-06-13fix(ext/node): handle 'upgrade' responses (#19412)Bartek Iwańczuk
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-13test(ext/node): add fs dirent unit test from std (#19461)Kaique da Silva
Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
2023-06-13feat(node): HTTPS server (#19362)Leo Kettmeir
2023-06-13chore(ext/http): fix github lint issue (#19479)Matt Mastracci
2023-06-12perf(ext/http): from_maybe_shared_unchecked for header values (#19478)Matt Mastracci
Prevents re-checking strings we already know are latin-1. Small improvement: 115k->116k
2023-06-12chore: No longer need a sparse checkout thanks to cargo sparse index (#19423)Matt Mastracci
`cargo`'s sparse index showed up in 1.68
2023-06-12chore(core): fix flaky flock_test on windows (#19477)Matt Mastracci
2023-06-12chore: update clap (#19467)Leo Kettmeir
Also switches to use defer for all subcommands besides run.
2023-06-12feat: Adaptations to support OpenBSD port (#19153)VlkrS
2023-06-10chore(tests): test_util - Add `PathRef` (#19450)David Sherret
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-10perf(serve): hoist promise error callback (#19456)Marvin Hagemeister
2023-06-09perf: optimize ByteString checks, hoist server rid getter (#19452)Bartek Iwańczuk
Further improves preact SSR and express benches by about 2k RPS. Ref https://github.com/denoland/deno/issues/19451
2023-06-09chore: fix flaky package_json_auto_discovered_for_local_script_arg (#19445)David Sherret
2023-06-09perf(serve): hoist repeated condition (#19449)Marvin Hagemeister
2023-06-09perf(node): cache realpath_sync calls in read permission check (#19379)Gustrb
2023-06-09chore: fix flaky stdio_streams_are_locked_in_permission_prompt (#19443)David Sherret
2023-06-09fix(fmt): do not panic formatting json with multiple values (#19442)David Sherret
2023-06-09chore: update release doc template (#19441)Bartek Iwańczuk
That action is not working properly.
2023-06-09fix(config): do not canonicalize config file path before loading (#19436)David Sherret
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-09chore(tests): add `.use_symlinked_temp_dir()` to `TestBuilder` (#19435)David Sherret
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-09perf: add Tokio runtime monitor (#19415)Bartek Iwańczuk
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-09chore: forward v1.34.2 release commit to main (#19434)denobot
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-06-08chore: update wpt (#19422)Leo Kettmeir
2023-06-08ci: use windows-xl runner for `--release` on main (#19429)David Sherret
2023-06-08chore(ext/node): revert changes to ClientRequest.onSocket (#19426)Bartek Iwańczuk
Partially reverts https://github.com/denoland/deno/pull/19340 because it causes hangs in some situations.
2023-06-08fix(ext/websocket): Close socket on bad string data (#19424)Matt Mastracci
2023-06-08chore: Use relative paths for assert imports to avoid test flakes (#19427)Matt Mastracci
Tests occasionally fail if we get a bad gateway attempting to fetch the assertion module
2023-06-08refactor(compile): store the npm snapshot in the eszip (#19343)David Sherret
2023-06-08perf(ext/websocket): Reduce GC pressure & monomorpize op_ws_next_event (#19405)Matt Mastracci
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-08chore: Ensure we only end up with the clang version we want & upgrade libffi ↵Matt Mastracci
(#19421) The number of clang versions installed on the build machines is too dang high.
2023-06-08feat(node_compat): Add a write method to the FileHandle class (#19385)nasa
## WHY ref: https://github.com/denoland/deno/issues/19165 The FileHandle class has many missing methods compared to node. ## WHAT Add write method
2023-06-08feat(node_compat): Add a read method to the FileHandle class (#19359)nasa
ref: #19165 The FileHandle class has many missing methods compared to node.
2023-06-08perf: use sendto syscalls (#19414)Bartek Iwańczuk
This switches syscall used in HTTP and WS server from "writev" to "sendto". "DENO_USE_WRITEV=1" can be used to enable using "writev" syscall. Doing this for easier testing of various setups.
2023-06-08chore: upgrade to Rust 1.68.2 (#19416)Bartek Iwańczuk
Also prints disk size in release builds.
2023-06-07fix(napi): don't panic if symbol can't be found (#19397)Bartek Iwańczuk
This should return an error to the caller to make it easier to track what went wrong. Should help with debugging https://github.com/denoland/deno/issues/19389
2023-06-07chore: downgrade to Rust 1.68 (#19411)David Sherret
Problems still persist from https://github.com/denoland/deno/pull/19407 -- downgrading to try out 1.68
2023-06-07ci: output file system space before and after building (#19409)David Sherret
This will help give us better insight.
2023-06-07refactor(core): use JoinSet instead of FuturesUnordered (#19378)Bartek Iwańczuk
This commit migrates "deno_core" from using "FuturesUnordered" to "tokio::task::JoinSet". This makes every op to be a separate Tokio task and should unlock better utilization of kqueue/epoll. There were two quirks added to this PR: - because of the fact that "JoinSet" immediately polls spawn tasks, op sanitizers can give false positives in some cases, this was alleviated by polling event loop once before running a test with "deno test", which gives canceled ops an opportunity to settle - "JsRuntimeState::waker" was moved to "OpState::waker" so that FFI API can still use threadsafe functions - without this change the registered wakers were wrong as they would not wake up the whole "JsRuntime" but the task associated with an op --------- Co-authored-by: Matt Mastracci <matthew@mastracci.com>
2023-06-07chore: downgrade to Rust 1.69 (#19407)David Sherret
2023-06-07refactor: helpers methods on `TypeCheckMode` (#19393)David Sherret
2023-06-07fix(cli): formatting bench with colors (#19323)Mike Mulchrone
2023-06-07perf(ext/websocket): monomorphize code (#19394)Bartek Iwańczuk
Using `deopt-explorer` I found that a bunch of fields on `WebSocket` class were polymorphic. Fortunately it was enough to initialize them to `undefined` to fix the problem.
2023-06-06perf(cli): conditionally load typescript declaration files (#19392)David Sherret
Closes #18583
2023-06-06fix(repl): correctly print string exception (#19391)sigmaSd
Fixes a recent regression where `throw "hello"` in the repl prints `Uncaught undefined` instead of `throw "hello"`
2023-06-06chore(core): build_bench tool (#19387)Matt Mastracci
This is a quick tool that I've been using to build benchmarking builds for Deno. Usage: Build a benchmark `HEAD~1` and `origin/main` executable: ```sh deno run tools/build_bench.ts HEAD~1 origin/main ``` Build debug benchmark executables of the last three commits: ```sh deno run tools/build_bench.ts --profile debug HEAD HEAD~1 HEAD~2 ```