summaryrefslogtreecommitdiff
path: root/core
AgeCommit message (Collapse)Author
2019-04-23core: make Isolate concrete, remove Dispatch trait (#2183)Ryan Dahl
Op dispatch is now dynamically dispatched, so slightly less efficient. The immeasurable perf hit is a reasonable trade for the API simplicity that is gained here.
2019-04-21Fixes #2033, shared queue push bug (#2158)Ryan Dahl
2019-04-21Refactor CLI entry point (#2157)Bartek Iwańczuk
Changes "deno --types" to "deno types" and "deno --prefetch" to "deno prefetch"
2019-04-21Fix link to http_bench example in core README (#2167)Matt Harrison
2019-04-19v0.3.8Ryan Dahl
2019-04-19core: test Modules::deps and handle error cases better (#2141)Ryan Dahl
2019-04-19Improve test slow_never_ready_modules (#2145)Ryan Dahl
2019-04-18Fix redirects under async load (#2133)Kevin (Kun) "Kassimo" Qian
2019-04-17Fix clippy warningsBert Belder
2019-04-16Move deno_core_http_bench into examples dir (#2127)Ryan Dahl
2019-04-16core: make Isolate use FuturesUnordered to track opsBert Belder
Additionally, instead of polling ops in a loop until none of them are ready, the isolate will now yield to the task system after delivering the first batch of completed ops to the javascript side. Although this makes performance a bit worse (about 15% fewer requests/second on the 'deno_core_http_bench' benchmark), we feel that the advantages are worth it: * It resolves the extremely high worst-case latency that we were seeing on deno_core_http_bench, in particular when using the multi-threaded Tokio runtime, which would sometimes exceed a full second. * Before this patch, the implementation of Isolate::poll() had to loop through all sub-futures and poll each one of them, which doesn't scale well as the number of futures managed by the isolate goes up. This could lead to poor performance when e.g. a server is servicing thousands of connected clients.
2019-04-16core: run isolate tests within a taskBert Belder
This change is made in preparation for using FuturesUnordered to track futures that are spawned by the isolate. FuturesUnordered sets up notififications for every future that it finds to be not ready when polled, which causes a crash if attempted outside of a task context.
2019-04-16core/http_bench: support -D flag to enable loggingBert Belder
2019-04-16Implement async module loading in CLI (#2084)Ryan Dahl
2019-04-15third_party: upgrade rust cratesBert Belder
2019-04-11v0.3.7Ryan Dahl
2019-04-09core: Rename Behavior to Dispatch (#2082)Ryan Dahl
And rename IsolateState to ThreadSafeState. Also make ThreadSafeState directly implement Dispatch. This is simpler.
2019-04-08core: poll ops round robinBert Belder
Also use a VecDeque to store pending ops to avoid exponential time complexity when removing completed ops from the list.
2019-04-08core: snapshot improvements (#2052)Ryan Dahl
* Moves how snapshots are supplied to the Isolate. Previously they were given by Behavior::startup_data() but it was only called once at startup. It makes more sense (and simplifies Behavior) to pass it to the constructor of Isolate. * Adds new libdeno type deno_snapshot instead of overloading deno_buf. * Adds new libdeno method to delete snapshot deno_snapshot_delete(). * Renames deno_get_snapshot() to deno_snapshot_new(). * Makes StartupData hold references to snapshots. This was implicit when it previously held a deno_buf but is made explicit now. Note that include_bytes!() returns a &'static [u8] and we want to avoid copying that.
2019-04-04v0.3.6Ryan Dahl
2019-04-04Improve docs in core (#2049)Ryan Dahl
2019-04-04Non-fatal compile_sync failures (#2039)andy finch
And model worker resources as Stream
2019-04-02Refactor deno_core::RecursiveLoad to be more idiomatic (#2034)Bert Belder
2019-04-02Add deno_core::RecursiveLoad for async module loading (#2034)Ryan Dahl
2019-04-02Clippy fixesBert Belder
2019-04-01Add web worker JS API (#1993)andy finch
* Refactored the way worker polling is scheduled and errors are handled. * Share the worker future as a Shared
2019-03-31Publish rust crate on crates.io (#2024)Bert Belder
2019-03-31Remove deno_core_http_bench from core/Cargo.toml (#2023)Ryan Dahl
So we don't have to have an optional tokio dependency. We build deno_core_http_bench using GN anyway.
2019-03-30Rename crate deno_core to deno (#2022)Ryan Dahl
2019-03-30Call ninja directly from build.rs (#2020)Ryan Dahl
2019-03-30Move //libdeno to //core/libdeno (#2015)Ryan Dahl
Fixes some sed errors introduced in c43cfe. Unfortunately moving libdeno required splitting build.rs into two parts, one for cli and one for core. I've also removed the arm64 build - it's complicating things at this re-org and we're not even testing it. I need to swing back to it and get tools/test.py running for it.
2019-03-29third_party: upgrade rust cratesBert Belder
2019-03-28v0.3.5Ryan Dahl
2019-03-28Make sharedQueue overflow warning quieter (#2008)Ryan Dahl
2019-03-28Clippy fixes (#2009)Bert Belder
2019-03-26namespace reorg: libdeno and DenoCore to Deno.core (#1998)Kitson Kelly
2019-03-25Resolve callback moved from Behavior to mod_instantiate() (#1999)Ryan Dahl
This simplifies the Behavior trait and makes it more explicit where the resolve callback is being made. Also s/StartupScript/Script
2019-03-24Handle overflown shared queue (#1992)Bartek Iwańczuk
Fixes #1988
2019-03-21core: Allow terminating an Isolate from another thread (#1982)Simon Menke
2019-03-18Re-implement init scripts in core (#1958)andy finch
Re-enables arm64 CI test
2019-03-18Integrate //core into existing code baseRyan Dahl
This disables a few tests which are broken still: - tests/error_004_missing_module.test - tests/error_005_missing_dynamic_import.test - tests/error_006_import_ext_failure.test - repl_test test_set_timeout - repl_test test_async_op - repl_test test_set_timeout_interlaced - all of permission_prompt_test
2019-03-15core: remove reset() from SharedQueue APIBert Belder
2019-03-15core: Behavior shouldn't be genericRyan Dahl
We always pass around Box<[u8]>, and adding this generic is an unnecessary complication. Add deno_core_http_bench_test to test.py sharedQueue works on deno_core_http_bench
2019-03-15allow v8 cli flags on deno_core_http_bench (#1934)Ryan Dahl
2019-03-12Small cleanups for //core (#1914)Ryan Dahl
* Privatize a few deno_core::Isolate methods * Add deno_core::Isolate docs
2019-03-11core: Abstract out Behavior from Isolate (#1904)Ryan Dahl
Move v8_set_flags and v8_version to core. (The idea is that src/ should not depend on libdeno.rs anymore. This is a step towards that.)
2019-03-09Migrate from tslint to eslint for linting (#1905)Kitson Kelly
2019-02-28Use deno_core::JSError in deno (#1855)Ryan Dahl
src/js_errors.rs takes care of source maps and color while core/js_errors.rs is just the basic struct.
2019-02-27third_party: upgrade rust cratesBert Belder
2019-02-26core: add Cargo.tomlBert Belder
This aids development using Visual Studio Code. The http_bench can't be built with cargo yet because it needs to link with libdeno.