summaryrefslogtreecommitdiff
path: root/core
AgeCommit message (Collapse)Author
2021-04-20chore: update copyright headers (#10243)Yoshiya Hinosawa
2021-04-19refactor(core): move SerializablePkg to serde_v8 (#10231)Aaron O'Mullan
2021-04-18cleanup(core): simplify op_async(), drop need for try_dispatch_op() (#10240)Aaron O'Mullan
2021-04-18tooling(bench_util): benching and profiling utilities (#10223)Aaron O'Mullan
2021-04-18refactor(core): remove ZeroCopyBuf's dep on the bindings mod (#10232)Aaron O'Mullan
Also cleanup `bindings::deserialize()/decode()` so they use the `ZeroCopyBuf` abstraction rather than reimplementing it. This cleanup will facilitate moving `ZeroCopyBuf` to `serde_v8` since it's now self contained and there are no other `get_backing_store_slice()` callers.
2021-04-14fix(core): better "missing type" GothamState error (#10189)Ben Noordhuis
Include the type name in the error message so you know what to look for.
2021-04-13chore: release crates (#10164)Bartek Iwańczuk
2021-04-13fix(core): remove wasm-test-streaming flag (#10158)Casper Beyer
2021-04-13upgrade: rusty_v8 0.22.1 (V8 9.1.269.5) (#10159)Bert Belder
2021-04-13upgrade: rusty_v8 0.22.0 (V8 9.1.269.2) (#10152)Bert Belder
2021-04-12perf(core/ops): avoid allocs when returning primitives (#10149)Aaron O'Mullan
2021-04-12core: remove some unnecessary heap allocationsBen Noordhuis
2021-04-12core: let embedders plug in their own V8 platformBen Noordhuis
Fixes #9912.
2021-04-12refactor(deno): remove concept of bin & json ops (#10145)Aaron O'Mullan
2021-04-12feat: Add Deno.memoryUsage() (#9986)Aaron O'Mullan
2021-04-11core: avoid async op future reboxing to bundle PromiseId (#10123)Aaron O'Mullan
2021-04-09perf: use BTreeMap for ResourceTable (#10074)Aaron O'Mullan
2021-04-09perf(core): use BTreeMap for GothamState (#10073)Aaron O'Mullan
This commit replaces GothamState's internal HashMap with a BTreeMap to improve performance. OpState/GothamState keys by TypeId which is essentially an opaque u64. For small sets of integer keys BTreeMap outperforms HashMap mainly since it removes the hashing overhead and Eq/Comp on integer-like types is very cheap, it should also have a smaller memory footprint. We only use ~30 unique types and thus ~30 unique keys to access OpState, so the keyset is small and immutable throughout the life of a JsRuntime, there's no meaningful churn in keys added/removed.
2021-04-09fix: async op error stacktraces (#10080)Nayeem Rahman
Co-authored-by: Aaron O'Mullan <aaron.omullan@gmail.com>
2021-04-08chore: update deps (#10058)Luca Casonato
This commit updates crate dependencies.
2021-04-08fix(core): error handling in examples (#9867)Inteon
2021-04-07perf(core.js): introduce promise ring (#9979)Aaron O'Mullan
This is another optimization to help improve the baseline overhead of async ops. It shaves off ~55ns/op or ~7% of the current total async op overhead. It achieves these gains by taking advantage of the sequential nature of promise IDs and optimistically stores them sequentially in a pre-allocated circular buffer and fallbacks to the promise Map for slow to resolve promises.
2021-04-05core: remove serde_json-isms in op_close() and op_resources() (#10026)Aaron O'Mullan
Core no longer uses `serde_json` now, besides re-exporting it or in the module specifier tests
2021-04-04fix: Properly await already evaluating dynamic imports (#9984)Nayeem Rahman
2021-04-04perf(serde_v8): introduce Serializable boxable object (#9983)Aaron O'Mullan
2021-04-03refactor: don't call Context::Global in async_op_response (#9971)Ryan Dahl
2021-04-02core/op_baseline: drop BufVec and minor cleanup (#9969)Aaron O'Mullan
2021-04-02perf: bench async op baseline (#9954)Aaron O'Mullan
2021-04-02refactor(ops): remove variadic buffers (#9944)Aaron O'Mullan
2021-04-02chore: bump dependent crates for cli (#9964)Kitson Kelly
2021-04-01perf(core): js errors as unions vs tuples to reduce allocs (#9947)Aaron O'Mullan
2021-03-31refactor: new optimized op-layer using serde_v8 (#9843)Aaron O'Mullan
- Improves op performance. - Handle op-metadata (errors, promise IDs) explicitly in the op-layer vs per op-encoding (aka: out-of-payload). - Remove shared queue & custom "asyncHandlers", all async values are returned in batches via js_recv_cb. - The op-layer should be thought of as simple function calls with little indirection or translation besides the conceptually straightforward serde_v8 bijections. - Preserve concepts of json/bin/min as semantic groups of their inputs/outputs instead of their op-encoding strategy, preserving these groups will also facilitate partial transitions over to v8 Fast API for the "min" and "bin" groups
2021-03-30perf: add op_baseline bench (#9924)Aaron O'Mullan
2021-03-27refactor(core): decode JsStackFrames using serde_v8 (#9902)Aaron O'Mullan
2021-03-26remove macro_use (#9884)Ryan Dahl
2021-03-26refactor(core): simplify heapStats() by using serde_v8 (#9901)Aaron O'Mullan
2021-03-26chore: publish serde_v8, bump version (#9898)Ryan Dahl
2021-03-25Introduce serde_v8 (#9722)Aaron O'Mullan
2021-03-25upgrade: Rust 1.51.0 (#9895)Yusuke Tanaka
2021-03-25feat(lsp): add import completions (#9821)Kitson Kelly
2021-03-23feat(core): Deno.core.heapStats() (#9659)Aaron O'Mullan
This commit implements "Deno.core.heapStats()" function that allows to programatically measure isolate heap-usage.
2021-03-21chore: release crates (#9847)Bartek Iwańczuk
2021-03-21fix(core): don't panic on invalid arguments for Deno.core.print (#9834)Andrew Mitchell
2021-03-20refactor: Move bin ops to deno_core and unify logic with json ops (#9457)Inteon
This commit moves implementation of bin ops to "deno_core" crates as well as unifying logic between bin ops and json ops to reuse as much code as possible (both in Rust and JavaScript).
2021-03-20upgrade: tokio 1.4.0 (#9842)Ryan Dahl
2021-03-19chores: enforce type ResourceId across codebase (#9837)Divy Srivastava
2021-03-18refactor: update minimal ops & rename to buffer ops (#9719)Inteon
This commit rewrites "dispatch_minimal" into "dispatch_buffer". It's part of an effort to unify JS interface for ops for both json and minimal (buffer) ops. Before this commit "minimal ops" could be either sync or async depending on the return type from the op, but this commit changes it to have separate signatures for sync and async ops (just like in case of json ops).
2021-03-14chore: upgrade to tokio 1.3.0 (#9778)Yusuke Tanaka
2021-03-12refactor: simplify icu data alignment (#9766)Ben Noordhuis
2021-03-12chore: bump crates (#9769)Luca Casonato