summaryrefslogtreecommitdiff
path: root/cli/worker.rs
AgeCommit message (Collapse)Author
2020-01-02Happy new year! (#3578)Ry Dahl
2020-01-01cleanup after tokio upgrade (#3571)Gurwinder Singh
tokio_util::run and tokio::run_on_current_thread should accept Future<Output=()> instead of Future<Output=Result<(), ()>>. Currently, all the passed futures have to add Ok(()) or futures::future::ok(()) unnecessarily to call this method.
2019-12-30upgrade: Tokio 0.2 (#3418)Bartek Iwańczuk
2019-12-23Upgrades rust to 1.40.0 (#3542)Axetroy
2019-12-20repl: do not crash on async op reject (#3527)Kevin (Kun) "Kassimo" Qian
2019-12-05feat: first pass at native plugins (#3372)Andy Finch
2019-12-03remove duplicated argv member from ThreadSafeGlobalState (#3433)Ry Dahl
2019-11-24refactor: Elevate DenoPermissions lock to top level (#3398)Kevin (Kun) "Kassimo" Qian
2019-11-22remove tokio_util::block_on (#3388)Bartek Iwańczuk
This PR removes tokio_util::block_on - refactored compiler and file fetcher slightly so that we can safely block there - that's because only blocking path consist of only synchronous operations. Additionally I removed excessive use of tokio_util::panic_on_error and tokio_util::run_in_task and moved both functions to cli/worker.rs, to tests module. Closes #2960
2019-11-22minor clean ups in TS compiler (#3394)Bartek Iwańczuk
2019-11-19remove tokio_util::block_on from ops/workers.rs (#3381)Bartek Iwańczuk
2019-11-17refactor: fixes for futures (#3363)Bartek Iwańczuk
After landing #3358 the benchmarks exploded indicating problems with workers and deno_core_http_bench. This PR dramatically fixes thread/syscall count that showed up on benchmarks. Thread count is not back to previous levels but difference went from hundreds/thousands to about ~50.
2019-11-16Use futures 0.3 API (#3358)Bartek Iwańczuk
2019-11-09refactor: worker is no longer a resource (#3290)Bartek Iwańczuk
2019-11-07refactor: remove cli::resources::Resource (#3285)Bartek Iwańczuk
2019-11-06Remove CoreResource::inspect_repr method (#3274)Ry Dahl
Towards simplifying (or better removing entirely) the CoreResource trait. Resources should be any bit of privileged heap allocated memory that needs to be referenced from JS, not very specific trait implementations. Therefore CoreResource should be pushed towards being as general as possible.
2019-11-04Refactor Worker and ThreadSafeState (#3242)Bartek Iwańczuk
* Split ThreadSafeState into State and GlobalState. State is a "local" state belonging to "Worker" while "GlobalState" is state shared by whole program. * Update "Worker" and ops to use "GlobalState" where applicable * Move and refactor "WorkerChannels" resource
2019-10-28refactor: use core ResourceTable in cli (#3206)Bartek Iwańczuk
2019-10-19feat: Allow "deno eval" to run code as module (#3148)Kevin (Kun) "Kassimo" Qian
2019-10-14perf: eager poll async ops in Isolate (#3046)Bartek Iwańczuk
2019-10-13fix: [tls] op_dial_tls is not registerd and broken (#3121)Yusuke Sakurai
2019-10-11Add init methods for each op module (#3087)Ryan Dahl
2019-10-06remove more calls to tokio_util::block_on (#3059)Bartek Iwańczuk
towards #2960
2019-10-02feat: Add support for passing a key to Deno.env() (#2952)Jed Fox
This adds a new op to get a single env var.
2019-10-01use Isolate::register_op in deno_cli (#3039)Bartek Iwańczuk
2019-09-19Remove test.py, use cargo test as test frontend (#2967)Ryan Dahl
Fixes #2933
2019-09-04Run tests after "cargo build" on travis (#2854)Ryan Dahl
2019-08-21Organize dispatch a bit (#2796)Ryan Dahl
Just some clean up reorganization around flatbuffer/minimal dispatch code. This is prep for adding a JSON dispatcher.
2019-08-09Fix dynamic import base path problem for REPL and eval (#2757)Kevin (Kun) "Kassimo" Qian
2019-08-09Dynamic import (#2516)Bert Belder
2019-08-07Add op_id throughout op API (#2734)Ryan Dahl
Removes the magic number hack to switch between flatbuffers and the minimal dispatcher. Adds machinery to pass the op_id through the shared_queue.
2019-08-05Provide option to delete Deno namespace in worker (#2717)Kevin (Kun) "Kassimo" Qian
2019-07-31Use system rustfmt instead of fixed binary (#2701)Ryan Dahl
2019-07-31factor out FileFetcher to separate module (#2683)Bartek Iwańczuk
* merge SourceFileFetcher trait and FileFetcher struct * move logic related to source file fetching to //cli/file_fetcher.rs * use Result when creating new ThreadSafeState
2019-07-17Refactor DenoDir (#2636)Bartek Iwańczuk
* rename `ModuleMetaData` to `SourceFile` and remove TS specific functionality * add `TsCompiler` struct encapsulating processing of TypeScript files * move `SourceMapGetter` trait implementation to `//cli/compiler.rs` * add low-level `DiskCache` API for general purpose caches and use it in `DenoDir` and `TsCompiler` for filesystem access * don't use hash-like filenames for compiled modules, instead use metadata file for storing compilation hash * add `SourceFileCache` for in-process caching of loaded files for fast subsequent access * define `SourceFileFetcher` trait encapsulating loading of local and remote files and implement it for `DenoDir` * define `use_cache` and `no_fetch` flags on `DenoDir` instead of using in fetch methods
2019-07-11Refactor error to use dynamic dispatch and traitsBert Belder
This is in preperation for dynamic import (#1789), which is more easily implemented when errors are dynamic.
2019-07-08core: clearly define when module lookup is path-based vs URL-basedBert Belder
The rules are now as follows: * In `import` statements, as mandated by the WHATWG specification, the import specifier is always treated as a URL. If it is a relative URL, it must start with either / or ./ or ../ * A script name passed to deno as a command line argument may be either an absolute URL or a local path. - If the name starts with a valid URI scheme followed by a colon, e.g. 'http:', 'https:', 'file:', 'foo+bar:', it always interpreted as a URL (even if Deno doesn't support the indicated protocol). - Otherwise, the script name is interpreted as a local path. The local path may be relative, and operating system semantics determine how it is resolved. Prefixing a relative path with ./ is not required.
2019-06-19Combine CLI Errors (#2487)Kitson Kelly
2019-06-12Move ModuleSpecifier to //core (#2509)Bartek Iwańczuk
2019-06-12Refactor module resolving (#2493)Bartek Iwańczuk
Adds ModuleSpecifier, which wraps a URL. This is now passed around instead of specifier and resolver strings.
2019-06-12Remove Config struct from core (#2502)Ryan Dahl
It's unnecessary indirection and is preventing the ability to easily pass isolate references into the dispatch and dyn_import closures. Note: this changes how StartupData::Script is executed. It's no longer done during Isolate::new() but rather lazily on first poll or execution.
2019-06-11Removed unused method and update docs (#2499)Gurwinder S
2019-06-11Move Modules to ThreadSafeState (#2498)Ryan Dahl
2019-06-08Add 'bundle' subcommand. (#2467)Kitson Kelly
2019-06-05RecursiveLoad shouldn't own the Isolate (#2453)Ryan Dahl
This patch makes it so that RecursiveLoad doesn't own the Isolate, so Worker::execute_mod_async does not consume itself. Previously Worker implemented Loader, but now ThreadSafeState does. This is necessary preparation work for dynamic import (#1789) and import maps (#1921)
2019-06-04Handle compiler diagnostics in Rust (#2445)Kitson Kelly
2019-05-29TS compiler refactorRyan Dahl
* Compiler no longer has its own Tokio runtime. Compiler handles one message and then exits. * Uses the simpler ts.CompilerHost interface instead of ts.LanguageServiceHost. * avoids recompiling the same module by introducing a hacky but simple `hashset<string>` that stores the module names that have been already compiled. * Removes the CompilerConfig op. * Removes a lot of the mocking stuff in compiler.ts like `this._ts`. It is not useful as we don't even have tests. * Turns off checkJs because it causes fmt_test to die with OOM.
2019-05-11Add progress bar (#2309)Ryan Dahl
2019-05-03add --no-fetch CLI flag to prevent remote downloads (#2213)Bartek Iwańczuk
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.