summaryrefslogtreecommitdiff
path: root/src/snapshot.rs
AgeCommit message (Collapse)Author
2019-01-02Happy new year!Ryan Dahl
2018-12-19build: fix RLS-invoked 'cargo check' buildBert Belder
2018-12-04Remove static lifetime bound in OpCreator (#1276)F001
The main purpose of this PR is to remove the `'static` lifetime bound in type OpCreator = fn(state: &Arc<IsolateState>, base: &msg::Base, data: &'static mut [u8]) -> Box<Op>; The reason is simple: it is plain wrong, the `data` is actually not `'static`. It is created when the message is sent from C side, and will be recycled when the message is responded. It violates the definition of `'static` lifetime. If someone save this pointer somewhere else, and reuse it later again, uninitialized memory could be accessed. This kind of memory unsafety does not happen yet because the logic is carefully organized in this project. Lifetime constraints are maintained by code convention. It could be more robust if we can express this constraint by Rust's type system. Basic idea: tie buffer's lifetime to an object's lifetime, a.k.a, RAII. The type `deno_buf` is pretty suitable for this job.
2018-12-03Use include_bytes! instead of incbin.Ryan Dahl
This is the second attempt at this patch. The first version was reverted in 2ffd78daf9956a24098d1f959f21882e350e9d37 The problem, I suspect, was that the snapshot was represented as a source_set, which inserted a node into the dependency tree. include_bytes does properly insert the snapshot into rustc's depfile but the use of source_set confused gn. Now the that the deno executable has the create_deno_snapshot as a direct dependency, changes will be propagated.
2018-11-23Revert "Use include_bytes! instead of incbin. (#1182)"Ryan Dahl
Reverting because this is causing Appveyor to be red. However I hope we can reintroduce include_bytes! soon in a way that works on windows. Fixes #1208. This reverts commits 96c3641fffe8509af9351cec4580861e76d89cc9 and 92e404706b0b1a26cdaf6f8cf81aac148292557f.
2018-11-12Use include_bytes! instead of incbin. (#1182)Ryan Dahl
2018-10-24libdeno: deno_new should take a snapshot parameter.Ryan Dahl