summaryrefslogtreecommitdiff
path: root/src/ops.rs
AgeCommit message (Collapse)Author
2018-12-11Replace blocking! macro by generic function (#1305)F001
2018-12-05Isolate::from_raw_ptr and other cleanups.F001
`Isolate::from_void_ptr` is renamed to `from_raw_ptr`, to keep consistency with std libs. It is changed to `unsafe` function, because it can't guarantee that the input is valid. This guarantee should be provided by the caller. Its return type is changed to `&Isolate`, because `&mut Isolate` type requires that no other aliases co-exist in this period of time, this does not seem true. So I changed most of the methods to accept shared reference `&Isolate`. It is easier to reason about the correctness of `unsafe` blocks. As long as these shared references are in the same thread, these `unsafe` codes are probably correct.
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-11-30clippy fixes (#1250)Andy Hayden
2018-11-29Replace mutex by atomics (#1238)F001
2018-11-28REPL unblock event loop AND fix REPL setTimeout fire problemsKevin (Kun) "Kassimo" Qian
2018-11-16First pass at running subprocesses (#1156)Bert Belder
2018-11-16Support uploading data from fetch()Ryan Dahl
Does not yet support streaming, only strings and TypedArrays for now.
2018-11-14Support request method and headers in fetch() (#1188)Ryan Dahl
Adds a general HttpHeader flatbuffer message for serializing requests and responses.
2018-11-13Support streaming response bodies from fetch()Ryan Dahl
Also Buffer.readFrom in fetch() to buffer response.
2018-11-06Fix many of the clippy::pedantic warningsAndy Hayden
2018-11-05Add repl (#998)Andy Hayden
- Running repl from js side. - Add tests for repl behavior. - Handle ctrl-C and ctrl-D.
2018-11-04Fix clippy warnings (#1149)Andy Hayden
Run with: cargo clippy https://github.com/rust-lang-nursery/rust-clippy
2018-11-02Rename EnvPair to KeyValue.Ryan Dahl
2018-10-30Rename FetchReq op to Fetch.Ryan Dahl
2018-10-30Add resources op (#1119)Bartek Iwańczuk
2018-10-29Separate source map from output code.Kitson Kelly
2018-10-27Ergonomics: Prompt TTY for permission escalation (#1081)Ryan Dahl
2018-10-26Add chmod/chmodSync on unix (and fix Cargo.toml) (#1088)Kevin (Kun) "Kassimo" Qian
Initial implementation by Srijan Reddy (@srijanreddy98, #672).
2018-10-26Support https in fetch.Ryan Dahl
fetch should use same hyper connector as import.
2018-10-23Enforce media typesKitson Kelly
2018-10-20Optimization: eager acceptRyan Dahl
2018-10-20Optimization: eager writeRyan Dahl
2018-10-20Optimization: eager readRyan Dahl
TCP sockets should attempt the non-blocking read in the main thread.
2018-10-20Allow partial writes.Ryan Dahl
Do not use tokio_io::io:write_all(). Adds src/tokio_write.rs
2018-10-19Sort ops.Ryan Dahl
2018-10-19Add missing copyrights (#1024)ztplz
2018-10-17Optimization: Reuse ArrayBuffer during serialization.Ryan Dahl
2018-10-17Fix a bug that copyFile reports different error codesJinho Bang
This is a workaroud. Once the issue is resolved in Rust side, we should remove it. Fixes #895
2018-10-16FormatRyan Dahl
2018-10-15`deno -v` should report typescript versionJinho Bang
Fixes #993
2018-10-13Add cwd() and chdir() (#907)Shiva Prasanth
2018-10-11Add support for --typesKitson Kelly
2018-10-11Add deno.metrics()Bartek Iwańczuk
2018-10-10Rename BadFileDescriptorJ2P
2018-10-06docs: fix urls in commentsYoshiya Hinosawa
2018-10-06Fix symlink error messageKevin (Kun) "Kassimo" Qian
2018-10-05Replace panic with error on windows for symlinkKevin (Kun) "Kassimo" Qian
2018-10-05Clean up helpers in src/errors.rsRyan Dahl
* Add errors::bad_resource() * Move permission_denied() to errors.rs * Make op_symlink's not_implemented() into a runtime panic.
2018-10-05Implement closeRead/closeWrite using TcpStream::shutdown (#903)Kevin (Kun) "Kassimo" Qian
2018-10-04Use underscores in filenames.Ryan Dahl
2018-10-04Rename flatbuffer base.msg to base.innerRyan Dahl
This better disambiguates with the msg_generated.ts module, which in JS we call "fbs", but would be better called "msg".
2018-10-04Rename msg_from_js() to dispatch().Ryan Dahl
2018-10-04Rename handler.rs to ops.rsRyan Dahl