summaryrefslogtreecommitdiff
path: root/core
AgeCommit message (Collapse)Author
2019-07-08Rewrite snapshot_creator in RustBartek Iwańczuk
2019-07-08core: replace ModuleSpecifier::to_url() by as_url()Bert Belder
2019-07-08cli: refactor deno_dir to use Url instead of StringBartek Iwańczuk
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-07-07v0.11.0Ryan Dahl
2019-06-30core: return useful error when import path has no prefix like ./Bert Belder
2019-06-25v0.10.0Ryan Dahl
2019-06-23Minor tweaks (#2569)Gurwinder Singh
1. Separate Snapshot and Script StartupData functions based on cfg "no-snapshot-init" 2. Replace deprecated Once::ONCE_INIT with Once::new (https://github.com/rust-lang/rust/pull/61757) 3. Elide lifetime 4. Fix typos
2019-06-20Fix silent failure of WebAssembly.instantiate() (#2548)Ryan Dahl
By making WASM compilation synchronous. We'll have to do more work to make it properly async.
2019-06-19Combine CLI Errors (#2487)Kitson Kelly
2019-06-18Add dyn to be rust nightly compatible (#2538)Kitson Kelly
2019-06-17refactor dispatch take 2 (#2533)andy finch
2019-06-15v0.9.0Ryan Dahl
2019-06-15third_party: upgrade rust cratesBert Belder
2019-06-14Revert "Refactor dispatch handling (#2452)"Ryan Dahl
Due to performance regression: https://github.com/denoland/deno/commit/dc60fe9f300043f191286ef804a365e16e455f87#commitcomment-33943711 This reverts commit dc60fe9f300043f191286ef804a365e16e455f87.
2019-06-13Refactor dispatch handling (#2452)andy finch
Promise id is now created in core and passed back to JS.
2019-06-12Move ModuleSpecifier to //core (#2509)Bartek Iwańczuk
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-11Revert "Work around Windows-only V8 concurrent initialization crash"Bert Belder
This fix is no longer necessary as the underlying V8 bug has been fixed upstream. This reverts commit 48bcfce09e11901244447617be2eb7789427eab0.
2019-06-10Upgrade V8 to 7.7.37 (#2492)Ryan Dahl
2019-06-10Expose dynamic import in core (#2472)Ryan Dahl
2019-06-09feat: Import maps (#2360)Bartek Iwańczuk
2019-06-08v0.8.0Ryan Dahl
2019-06-06Deno.core.evalContext & Deno.core.print fix (#2465)Michał Sabiniarz
2019-06-06libdeno: expose dynamic import (#2461)Ryan Dahl
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-05-30third_party: upgrade rust cratesBert Belder
2019-05-29v0.7.0Ryan Dahl
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-20v0.6.0Ryan Dahl
2019-05-20Adjust core/README.md textRyan Dahl
2019-05-16build: add support for rust proc-macro cratesBert Belder
2019-05-11v0.5.0Ryan Dahl
2019-05-11Typo (#2337)Nikola Ristic
2019-05-11third_party: upgrade rust cratesBert Belder
2019-05-11core: make PinnedBuf::Raw -> PinnedBuf conversion actually a moveBert Belder
2019-05-09core: Privatize ModuleNameMap SymbolicModule deno_buf (#2324)Bartek Iwańczuk
2019-05-03v0.4.0Ryan Dahl
2019-05-03v0.3.11Ryan Dahl
2019-05-03core,cli: fix clippy warningsBert Belder
2019-05-02Work around Windows-only V8 concurrent initialization crashBert Belder
This patch provides a work-around for an apparent V8 bug where initializing multiple isolates concurrently leads to a crash on Windows. At the time of writing the cause of this crash is not exactly understood, but it seems to be related to the V8 internal function win64_unwindinfo::RegisterNonABICompliantCodeRange(), which didn't exist in older versions of V8.
2019-05-02core: remove support for moving deno_buf ownership from C++ to JavaScriptBert Belder
The functionality hasn't been in use for a long time. Without this feature, the `alloc_ptr` and `alloc_len` fields are no longer necessary.
2019-05-01core: express op as enum (#2255)Ryan Dahl
2019-05-01Refactor zero-copy buffers for performance and to prevent memory leaksBert Belder
* In order to prevent ArrayBuffers from getting garbage collected by V8, we used to store a v8::Persistent<ArrayBuffer> in a map. This patch introduces a custom ArrayBuffer allocator which doesn't use Persistent handles, but instead stores a pointer to the actual ArrayBuffer data alongside with a reference count. Since creating Persistent handles has quite a bit of overhead, this change significantly increases performance. Various HTTP server benchmarks report about 5-10% more requests per second than before. * Previously the Persistent handle that prevented garbage collection had to be released manually, and this wasn't always done, which was causing memory leaks. This has been resolved by introducing a new `PinnedBuf` type in both Rust and C++ that automatically re-enables garbage collection when it goes out of scope. * Zero-copy buffers are now correctly wrapped in an Option if there is a possibility that they're not present. This clears up a correctness issue where we were creating zero-length slices from a null pointer, which is against the rules.
2019-05-01core: remove unused function StrBufNullAllocPtr()Bert Belder
2019-05-01Rename test targets (#2262)Bartek Iwańczuk
2019-04-27core: add Deps::to_json() (#2223)Greg Altman
2019-04-25v0.3.10Ryan Dahl
2019-04-25v0.3.9Ryan Dahl
2019-04-24core: Add test for snapshotting from Rust (#2197)Ryan Dahl