summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-05-31refactor(core): don't pass op state to prepare_module_load() (#19332)Nayeem Rahman
It's not used anymore. Subsequently allows removing `ModuleMap::op_state`, allowing `ModuleMap` to have a sane default so `JsRuntime::module_map` no longer needs to be optional.
2023-05-31refactor(ext/http): Expose internal serveHttpOnListener API for HTTP2 (#19331)Matt Mastracci
For the first implementation of node:http2, we'll use the internal version of `Deno.serve` which allows us to listen on a raw TCP connection rather than a listener. This is mostly a refactoring, and hooking up of `op_http_serve_on` that was never previously exposed (but designed for this purpose).
2023-05-31fix(runtime): add missing SIGIOT alias to SIGABRT (#19333)Marvin Hagemeister
2023-05-31feat(runtime): Add example for extension with ops (#19204)Exidex
Spend quite some time trying to get this working. With proper example would have been a lot faster. So this is pr with the example. I also rearranged examples a little bit to allow for addition of more examples
2023-05-31chore(ext/node): Implement stubs for Http2Session (#19329)Matt Mastracci
Fleshes out all the stubs for `node:http2`.
2023-05-31refactor: further work on node http client (#19327)Leo Kettmeir
Closes https://github.com/denoland/deno/issues/18300
2023-05-31chore(core): Split JsRuntimeForSnapshot from JsRuntime (#19308)Matt Mastracci
This cleans up `JsRuntime` a bit more: * We no longer print cargo's rerun-if-changed messages in `JsRuntime` -- those are printed elsewhere * We no longer special case the OwnedIsolate for snapshots. Instead we make use of an inner object that has the `Drop` impl and allows us to `std::mem::forget` it if we need to extract the isolate for a snapshot * The `snapshot` method is only available on `JsRuntimeForSnapshot`, not `JsRuntime`. * `OpState` construction is slightly cleaner, though I'd still like to extract more --------- Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-05-31fix(node): add missing process.reallyExit method (#19326)Marvin Hagemeister
This PR adds the missing `process.reallyExit()` method to node's `process` object. Was [pinged on twitter](https://twitter.com/biwanczuk/status/1663326659787862017) regarding running the `fastify` test suite in node. They use `node-tap` which has been around arguably the longest of the test frameworks and relies on a couple of old APIs. They have `signal-exit` as a dependency which in turn [makes use of `process.reallyExit()`](https://github.com/tapjs/signal-exit/blob/8fa7fc9a9c63f559af43d292b7eb727901775507/src/index.ts#L19). That function cannot be found anywhere in their documentation, but exists at runtime. See https://github.com/nodejs/node/blob/6a6b3c54022104cc110ab09044a2a0cecb8988e7/lib/internal/bootstrap/node.js#L172 This doesn't yet make `node-tap` work, but gets us one step closer.
2023-05-30perf(ext/http): Add a sync phase to http serving (#19321)Matt Mastracci
Under heavy load, we often have requests queued up that don't need an async call to retrieve. We can use a fast path sync op to drain this set of ready requests, and then fall back to the async op once we run out of work. This is a .5-1% bump in req/s on an M2 mac. About 90% of the handlers go through this sync phase (based on a simple instrumentation that is not included in this PR) and skip the async machinery entirely.
2023-05-30ci: bump CI cache version on CLI version bump (#19318)David Sherret
Automatically bump the CI cache version
2023-05-30fix: do not show cache initialization errors if stderr is piped (#18920)David Sherret
Closes #18918
2023-05-30feat(runtime): add `WorkerLogLevel` (#19316)David Sherret
This is not really used yet, but provides some infrastructure for doing more fine grained logging in JS. I will add warn messages in a future PR.
2023-05-29chore: forward v1.34.1 to main (#19312)Bartek Iwańczuk
Co-authored-by: denobot <33910674+denobot@users.noreply.github.com> Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
2023-05-30pin enum-as-inner dependency (#19311)Bartek Iwańczuk
Ref https://github.com/bluejekyll/enum-as-inner/issues/98 Had to pin it during the release to publish crates.
2023-05-29fix: use proper ALPN protocols if HTTP client is HTTP/1.1 only (#19303)Bartek Iwańczuk
Closes https://github.com/denoland/deno/issues/16923 --------- Co-authored-by: crowlkats <crowlkats@toaxl.com> Co-authored-by: Matt Mastracci <matthew@mastracci.com>
2023-05-29test(ext/node): add os_test.ts (#19305)egg
Part of #17840 I haven't made any changes or additions to the tests themselves, just moved the tests over and updated to match. --------- Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-05-29fix(node): http.IncomingMessageForClient.complete (#19302)Bartek Iwańczuk
Closes https://github.com/denoland/deno/issues/19238
2023-05-28refactor(core): Refactor and re-organize code for easier maintenance (#19287)Matt Mastracci
Part of some work to refactor and decouple the various parts of core.
2023-05-28refactor(core): remove ext: modules from the module map (#19040)Nayeem Rahman
Rather than disallowing `ext:` resolution, clear the module map after initializing extensions so extension modules are anonymized. This operation is explicitly called in `deno_runtime`. Re-inject `node:` specifiers into the module map after doing this. Fixes #17717.
2023-05-28fix(ext/http): fix a possible memleak in Brotli (#19250)Levente Kurusa
We probably need to free the BrotliEncoderState once the stream has finished.
2023-05-28chore: maybe fix cli/standalone/virtual_fs tests on main (#19295)David Sherret
Not sure why these don't fail on a PR run: https://github.com/denoland/deno/actions/runs/5102317156/jobs/9171796164 **Merge on approval**
2023-05-28chore: fix flaky test_include_dir_recursive (#19291)David Sherret
Maybe fixes this on main.
2023-05-27fix(compile): inline symlinks as files outside node_modules dir and warn for ↵David Sherret
directories (#19285) If a symlink within the `node_modules` directory lies outside that directory, it will now warn and inline the file. For directories, it will just warn for now. Probably fixes #19251 (I'm still unable to reproduce).
2023-05-27refactor(node/http): don't use readablestream for writing to request (#19282)Leo Kettmeir
Refactors the internal usage of a readablestream to write to the resource directly --------- Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-05-26fix(compile): implicit read permission to npm vfs (#19281)David Sherret
Closes #19280
2023-05-26refactor(node): use internal io and fs APIs (#19267)Bartek Iwańczuk
2023-05-26chore: upgrade rusty_v8 to 0.73.0 (#19278)Bartek Iwańczuk
2023-05-26fix(node): make 'v8.setFlagsFromString' a noop (#19271)Bartek Iwańczuk
Towards https://github.com/denoland/deno/issues/16460
2023-05-26chore: remove useless benchmark (#19272)Bartek Iwańczuk
This benchmark is useless and only gives several hundred thousand messages of failure. --------- Co-authored-by: David Sherret <dsherret@gmail.com>
2023-05-26chore(lsp/tests): diagnostic synchronization (reland) (#19270)David Sherret
Merge on approval as it fixes the flaky test.
2023-05-26fix(napi): properly handle arguments in napi_get_cb_info (#19269)Bartek Iwańczuk
Closes https://github.com/denoland/deno/issues/17213
2023-05-26fix(napi): clear currently registering module slot (#19249)Bartek Iwańczuk
This commit fixes problem with loading N-API modules that use the "old" way of registration (using "napi_module_register" API). The slot was not cleared after loading modules, causing subsequent calls that use the new way of registration (using "napi_register_module_v1" API) to try and load the previous module. Ref https://github.com/denoland/deno/issues/16460 --------- Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2023-05-26Revert "chore(lsp/tests): diagnostic synchronization (#19264)" (#19268)Bartek Iwańczuk
This reverts commit 89026abe395c22eb2ace4ea5f948189daa1dadf1. This change caused LSP benchmarks to fail on `main`.
2023-05-26chore(lsp/tests): diagnostic synchronization (#19264)David Sherret
Fixes the flaky lsp test by having better synchronization of diagnostics between the client and server for testing purposes.
2023-05-26chore(node_compat): fix broken link and typo (#19265)Hirotaka Tagawa / wafuwafu13
2023-05-25fix(compile): improve panic message when stripping root path fails (#19258)David Sherret
I'm not sure what's going on here, so this will help us debug. For #19251
2023-05-25fix(compile): handle when DENO_DIR is readonly (#19257)David Sherret
Closes #19253
2023-05-25fix: don't print release notes on version check prompt (#19252)Luca Casonato
2023-05-241.34.0 (#19246)denobot
Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com> Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-05-24fix(ext/node): ClientRequest.setTimeout(0) should remove listeners (#19240)Levente Kurusa
Co-authored-by: crowlkats <crowlkats@toaxl.com>
2023-05-24refactor: upgrade to deno_npm 0.6 (#19244)David Sherret
2023-05-24feat(ext/fs): add isBlockDevice, isCharDevice, isFifo, isSocket to FileInfo ↵Hirotaka Tagawa / wafuwafu13
(#19008) `isFile`, `isDirectory`, `isSymlink` are defined in `Deno.FileInfo`, but `isBlockDevice`, `isCharacterDevice`, `isFIFO`, `isSocket` are not defined. --------- Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-05-24refactor(core): store pending ops per realm (#19054)Bartek Iwańczuk
Dispatches op per-realm, and allows JsRealm to be garbage collected. Slight improvement to benchmarks, but opens opportunity to clean up event loop. --------- Co-authored-by: Matt Mastracci <matthew@mastracci.com>
2023-05-24fix(npm): create `node_modules/.deno/node_modules` folder (#19242)David Sherret
This is what pnpm does and we were missing it. It makes modules work which have a dependency on something, but don't say they have that dependency, but that dep is still in the tree somewhere.
2023-05-24chore(core): Ensure that net test ports aren't used elsewhere (#19243)Matt Mastracci
Fixes occasional test flake due to overlapping ports
2023-05-24feat(ext/http): Brotli Compression (#19216)Levente Kurusa
Add Brotli streaming compression to HTTP
2023-05-24fix(napi): add napi_async_init and napi_async_destroy (#19234)Bartek Iwańczuk
We don't have support for "AsyncContext" in "node:async_hooks" module, so these two APIs are just noops. Towards https://github.com/denoland/deno/issues/18610.
2023-05-24fix(node): fire 'unhandledrejection' event when using node: or npm: imports ↵Bartek Iwańczuk
(#19235) This commit fixes emitting "unhandledrejection" event when there are "node:" or "npm:" imports. Before this commit the Node "unhandledRejection" event was emitted using a regular listener for Web "unhandledrejection" event. This listener was installed before any user listener had a chance to be installed which effectively prevent emitting "unhandledrejection" events to user code. Closes https://github.com/denoland/deno/issues/16928
2023-05-24fix(npm): better handling of optional peer dependencies (#19236)David Sherret
Has fix for https://github.com/denoland/deno_npm/pull/9
2023-05-23feat: top level package.json install when node_modules dir is explicitly ↵David Sherret
opted into (#19233) When someone explicitly opts into using the node_modules dir via `--node-modules-dir` or setting `"nodeModulesDir": true` in the deno.json file, we should eagerly ensure a top level package.json install is done on startup. This was initially always done when we added package.json support and a package.json was auto-discovered, but scaled it back to be lazily done when a bare specifier matched an entry in the package.json because of how disruptive it was for people using Deno scripts in Node projects. That said, it does not make sense for someone to opt-into having deno control and use their node_modules directory and not want a package.json install to occur. If such a rare scenario exists, the `DENO_NO_PACKAGE_JSON=1` environment variable can be set. Ideally, we would only ever use a node_modules directory with this explicit opt-in so everything is very clear, but we still have this automatic scenario when there's a package.json in order to make more node projects work out of the box.