summaryrefslogtreecommitdiff
path: root/core/lib.rs
AgeCommit message (Collapse)Author
2020-12-16refactor: rewrite ops to use ResourceTable2 (#8512)Bartek Iwańczuk
This commit migrates all ops to use new resource table and "AsyncRefCell". Old implementation of resource table was completely removed and all code referencing it was updated to use new system.
2020-12-14Revert "build: Factor out common code into core/build_util.rs (#8756)" (#8763)Bartek Iwańczuk
This reverts commit 502c77aad969fe8557aaf6d56432f94450c26a2a.
2020-12-14build: Factor out common code into core/build_util.rs (#8756)Ryan Dahl
2020-12-11refactor(cli): decouple ops from ProgramState and Flags (#8659)Bartek Iwańczuk
This commit does major refactor of "Worker" and "WebWorker", in order to decouple them from "ProgramState" and "Flags". The main points of interest are "create_main_worker()" and "create_web_worker_callback()" functions which are responsible for creating "Worker" and "WebWorker" in CLI context. As a result it is now possible to factor out common "runtime" functionality into a separate crate.
2020-12-09core: add plumbing for canceling ops when closing a resource (#8661)Bert Belder
2020-12-01fix(compile): disable source mapping of errors (#8581)Bartek Iwańczuk
This commit disables source mapping of errors for standalone binaries. Since applying source maps relies on using file fetcher infrastructure it's not feasible to use it for standalone binaries that are not supposed to use that infrastructure.
2020-11-27feat(core): Add FsModuleLoader that supports loading from filesystem (#8523)Yusuke Tanaka
This commit adds `FsModuleLoader` to `deno_core`, which implements `ModuleLoader` trait. It is used when creating a runtime that supports module loading from filesystem. Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2020-11-25core: implement 'AsyncRefCell' and 'ResourceTable2' (#8273)Bert Belder
2020-10-17refactor(core): more control over isolate creation (#8000)Ben Noordhuis
Make JSRuntime::new() accept a custom v8::CreateParams object to tune the v8::Isolate it creates. Subsumes the functionality of HeapLimits, which I therefore removed.
2020-10-09Implement Serialize for ModuleSpecifier (#7900)Ryan Dahl
Also re-export serde from deno_core, since its now a dependency.
2020-09-22Actually remove js_check (#7636)Ryan Dahl
2020-09-17refactor: move op_resources and op_close to deno_core (#7539)Bartek Iwańczuk
Moves op_close and op_resources to deno_core::ops and exports them. Adds serde dependency to deno_core and reexports it. Moves JS implementation of those ops to Deno.core and reexports them in Deno.
2020-09-16Re-export deno_core::url (#7525)Ryan Dahl
Also re-exports deno_core::futures and deno_core::serde_json but these are not yet used in the CLI.
2020-09-14Make JsRuntimeState private (#7484)Ryan Dahl
2020-09-14refactor: Remove dependency on downcast_rs. (#7475)Scott Olson
We don't seem to use downcast_rs in any essential way. We can just use the standard library `Any` directly.
2020-09-15refactor: use the 'anyhow' crate instead of 'ErrBox' (#7476)Bert Belder
2020-09-11refactor(core): JsRuntime initialization (#7415)Bartek Iwańczuk
Removes: - "deno_core::StartupData" - "deno_core::Script" - "deno_core::OwnedScript" Changes to "JsRuntime": - remove "new_with_loader()" - remove "with_heap_limits()" - rename "IsolateOptions" to "RuntimeOptions" and make public - "JsRuntime::new()" takes "RuntimeOptions" as a single param
2020-09-10Use gotham-like state for ops (#7385)Ryan Dahl
Provides a concrete state type that can be dynamically added. This is necessary for op crates. * renames BasicState to OpState * async ops take `Rc<RefCell<OpState>>` * sync ops take `&mut OpState` * removes `OpRegistry`, `OpRouter` traits * `get_error_class_fn` moved to OpState * ResourceTable moved to OpState
2020-09-07feat(info): Dependency count and sizes (#6786)KrisChambers
This commit changes "deno info" subcommand logic. - Modules are no longer loaded into V8 isolate - analysis is done using ModuleGraph. - Removed deno_core::Deps structure. - Modules are no longer type-checked and transpiled - "compiled" file is shown only if it is already available. - Added number of unique dependencies for root module. - Changed tree output: - file size is shown next to the dependency - repeated dependencies are marked with "*" - used less spaces in prefix to save terminal width
2020-09-06refactor(core): rename CoreIsolate to JsRuntime (#7373)Bartek Iwańczuk
deno_core/ - rename core_isolate.rs to runtime.rs - rename CoreIsolate to JsRuntime - rename JSError to JsError - rename JSStackFrame to JsStackFrame cli/ - update references from deno_core::CoreIsolate to deno_core::JsRuntime - rename deno_core::JSError to deno_core::JsError - rename fmt_errors::JSError to fmt_errors::JsError
2020-09-06refactor(core): merge CoreIsolate and EsIsolate (#7370)Bartek Iwańczuk
2020-09-06Move JSON ops to deno_core (#7336)Bert Belder
2020-09-01Remove unused crate_modules feature (#7311)Ryan Dahl
2020-08-26Simplify ErrBox-to-class mapping & hook it up to core json ops (#7195)Bert Belder
2020-08-26refactor: remove OpError, use ErrBox everywhere (#7187)Bert Belder
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2020-08-20First pass at json ops in core (#7033)Ryan Dahl
Adds Deno.core.jsonOpSync and Deno.core.jsonOpAsync
2020-08-18Async op dispatcher support with 'stateful_json_op_(a)sync()' (#7095)Bert Belder
Closes: #7020
2020-08-14Add missing export of HeapLimits (#7047)Moritz Gunz
Currently this blocks using the ::with_heap_limits constructor of CoreIsolate, because you cannot access the struct.
2020-08-12unify path normalization utility (#6865)Divy Srivastava
2020-08-12Undo JsonOpDispatcher and OpDispatcher traits (#7023)Ryan Dahl
This reverts commit f83d672ffad7afb1473bd4f9b9c645539064c620. This reverts commit d51972377c1325076704d9faec2eee6f0e024496.
2020-07-13refactor: Make OpDispatcher a trait (#6736)Gurwinder Singh
2020-07-08feat(cli): json option for "deno info" (#6372)Emmanuel
2020-05-29refactor: Split isolate and state using safe get_slot() (#5929)Ryan Dahl
2020-05-28tidy up deno_core modules (#5923)Ryan Dahl
2020-05-11Change plugin interface to prevent segfaults when unloading plugin (#5210)Bert Belder
Fixes: #3473 Closes: #5193
2020-04-20Remove core/plugin.rs (#4824)Ryan Dahl
This simplifies the plugin interface in order to deliver op crates with a similar API
2020-03-27feat: Support Inspector / Chrome Devtools (#4484)Ryan Dahl
This is a first pass implementation which is still missing several important features: - support for --inspect-brk (#4503) - support for source maps (#4501) - support for piping console.log to devtools console (#4502) Co-authored-by: Bert Belder <bertbelder@gmail.com> Co-authored-by: Matt Harrison <mt.harrison86@gmail.com> Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2020-03-02Do not convert exceptions to JSON and back (#4214)Bert Belder
2020-02-03refactor: Use Tokio's single-threaded runtime (#3844)Ryan Dahl
This change simplifies how we execute V8. Previously V8 Isolates jumped around threads every time they were woken up. This was overly complex and potentially hurting performance in a myriad ways. Now isolates run on their own dedicated thread and never move. - blocking_json spawns a thread and does not use a thread pool - op_host_poll_worker and op_host_resume_worker are non-operational - removes Worker::get_message and Worker::post_message - ThreadSafeState::workers table contains WorkerChannel entries instead of actual Worker instances. - MainWorker and CompilerWorker are no longer Futures. - The multi-threaded version of deno_core_http_bench was removed. - AyncOps no longer need to be Send + Sync This PR is very large and several tests were disabled to speed integration: - installer_test_local_module_run - installer_test_remote_module_run - _015_duplicate_parallel_import - _026_workers
2020-02-01feat: support crate imports in deno_typescript (#3814)Andy Finch
Co-authored-by: Ryan Dahl <ry@tinyclouds.org>
2020-01-07core: factor out EsIsolate from Isolate (#3613)Bartek Iwańczuk
2020-01-06refactor: remove core/libdeno.rs (#3611)Bartek Iwańczuk
2020-01-06error on warnings (#3612)Ry Dahl
2020-01-06merge libdeno::DenoIsolate into core::Isolate (#3605)Bartek Iwańczuk
2020-01-05Replace libdeno with rusty_v8 (#3556)Ry Dahl
2020-01-02Happy new year! (#3578)Ry Dahl
2019-12-05feat: first pass at native plugins (#3372)Andy Finch
2019-10-23core: Add ResourceTable (#3150)Bartek Iwańczuk
2019-09-30feat: op registration in core (#3002)Bartek Iwańczuk
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.