0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-10-29 08:58:01 -04:00
Commit graph

73 commits

Author SHA1 Message Date
Kevin (Kun) "Kassimo" Qian
077af20ceb Add seek and implement Seeker on File (#1797)
This patch contains a special hack that circumvents the current tokio
seek problem.

tokio `seek` is implemented to take ownership of the original File and
emit a new one in its future, which conflicts with the design of
ResourceTable.

To avoid the problem, the current hack makes the FsFile resource
an Option which we could `take` the value ownership out of it. We then
convert the tokio File into a Rust std File, perform the seek, and then
put it back into the resource.

This might be able to drop this hack after
https://github.com/tokio-rs/tokio/pull/785 lands.
2019-02-18 18:26:41 -05:00
Kitson Kelly
54094c7510 Rationalise compiler ops (#1740) 2019-02-18 10:42:15 -05:00
Dmitry Sharshakov
4dc4329e27 Add execPath function (#1743) 2019-02-15 11:22:02 -05:00
Yoshiya Hinosawa
2241049c34 feat: env option in run api (#1773) 2019-02-15 10:37:04 -05:00
Kevin (Kun) "Kassimo" Qian
1d36eb47eb Support scoped variables, unblock REPL async op, and REPL error colors (#1721) 2019-02-09 16:55:40 -05:00
Ryan Dahl
526497bc29
Adds deno.noColor (#1716) 2019-02-08 22:13:04 -05:00
Dmitry Sharshakov
9ab03389f0 Add --allow-read (#1689)
Co-authored-by: Greg Altman <g.s.altman@gmail.com>
2019-02-08 15:59:38 -05:00
bokuweb
ca397f6793 fix clippy warnings (#1711) 2019-02-08 11:14:33 -05:00
Dmitry Sharshakov
181b03273c Add isTTY function (#1622) 2019-02-02 22:05:30 -05:00
Kitson Kelly
efa1eeb8b3 Compiler cleanups and minor improvements (#1656) 2019-02-02 18:27:53 -05:00
Kevin (Kun) "Kassimo" Qian
0b082c4361 Clarify writeFile options and avoid unexpected perm modification (#1643) 2019-02-02 14:26:18 -05:00
Dmitry Sharshakov
16ed1f2545 Add performance.now (#1633) 2019-02-02 01:27:42 -05:00
bokuweb
aaaa35548e timers: use int instead of double for timeout type (#1469) 2019-01-26 22:10:38 +01:00
Ryan Dahl
315e4abd7e
mkdir should not be recursive by default (#1530)
It should return an error if a file with the given path exists and
recursive isn't specified.

Because mode is not used on windows and rarely used in unix, it is made
to the last parameter.

In collaboration with Stefan Dombrowski <sdo451@gmail.com>
2019-01-17 23:39:06 -05:00
Bert Belder
d8adeb41de Clippy fixes (also fixes build with nightly) (#1527) 2019-01-15 07:06:25 -05:00
Andy Hayden
526fdac053
Update to rust 2018 edition 2019-01-14 22:30:04 +01:00
Ryan Dahl
3c1a0ad19e
Properly parse network addresses. (#1515) 2019-01-13 22:14:59 -05:00
Ryan Dahl
0ceb554343
Native ES modules (#1460)
* Native ES modules

This is a major refactor of internal compiler.

Before: JS and TS both were sent through the typescript compiler where
their imports were parsed and handled. Both compiled to AMD JS and
finally sent to V8

Now: JS is sent directly into V8. TS is sent through the typescript
compiler, but tsc generates ES modules now instead of AMD. This
generated JS is then dumped into V8.

This should much faster for pure JS code. It may improve TS compilation
speed.

In the future this allows us to separate TS out of the runtime heap and
into its own dedicated snapshot. This will result in a smaller runtime
heap, and thus should be faster.

Some tests were unfortunately disabled to ease landing this patch:
1. compiler_tests.ts which I intend to bring back in later commits.
2. Some text_encoding_test.ts tests which made the file invalid utf8.
   See PR for a discussion.
Also worth noting that this is necessary to support WASM
2019-01-09 12:59:46 -05:00
Ryan Dahl
6f79ad721a
Minimal Worker support (#1476)
This adds the ability to spawn additional Isolates from Rust and send
and receive messages from them. This is preliminary work to support
running the typescript compiler in a separate isolate and thus support
native ES modules. Ref #975.
2019-01-08 14:44:06 -05:00
Ryan Dahl
57301909cd
Add deno.pid (#1464) 2019-01-06 14:16:42 -05:00
Ryan Dahl
ea6c9f2f36
Revert "use byte array instead of string for code fetch (#1307)" (#1455)
This reverts commit e976b3e041.

There is nothing technically wrong with this commit, but it's adding
complexity to a big refactor (native ES modules #975). Since it's not
necessary and simply a philosophical preference, I will revert for now
and try to bring it back later.
2019-01-03 22:11:01 -05:00
Ryan Dahl
2c477dd7cb Happy new year! 2019-01-02 02:37:08 +01:00
Kevin (Kun) "Kassimo" Qian
e4be1209b6 Avoid fetch segfault on empty Uri (#1394) 2018-12-21 04:47:09 -05:00
F001
0bb43ebbfc remove repeative permission checks (#1350) 2018-12-14 03:29:17 -05:00
Kevin (Kun) "Kassimo" Qian
2cb52cc4d1 Fix deno.open permission check (#1336) 2018-12-13 16:20:37 -05:00
Bartek Iwańczuk
c2b91a3ef6 Flesh out open() modes (#1282) 2018-12-12 12:05:58 -05:00
F001
e976b3e041 use byte array instead of string for code fetch (#1307) 2018-12-12 04:43:42 -05:00
Kevin (Kun) "Kassimo" Qian
585de35b1d readDir entry mode (#1326) 2018-12-12 02:31:18 -05:00
Ryan Dahl
52079b26db Minor rename for CodeFetch parameters
This bring it inline with terminology used in V8
See ResolveCallback in v8.h
2018-12-11 15:06:56 -05:00
F001
c1de50b0ca Replace blocking! macro by generic function (#1305) 2018-12-11 08:36:34 -05:00
F001
60c008d23b Isolate::from_raw_ptr and other cleanups.
`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-05 00:14:53 -08:00
F001
30420ad317 Remove static lifetime bound in OpCreator (#1276)
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-04 13:21:02 -08:00
Andy Hayden
aab02805dd clippy fixes (#1250) 2018-11-30 00:30:49 -08:00
F001
b6fda735ee Replace mutex by atomics (#1238) 2018-11-29 19:03:00 -08:00
Kevin (Kun) "Kassimo" Qian
09aa9b9698 REPL unblock event loop AND fix REPL setTimeout fire problems 2018-11-28 15:25:30 -08:00
Bert Belder
48bf4062e4 First pass at running subprocesses (#1156) 2018-11-16 12:07:40 +08:00
Ryan Dahl
eaec5a8780 Support uploading data from fetch()
Does not yet support streaming, only strings and TypedArrays for now.
2018-11-16 11:44:25 +08:00
Ryan Dahl
3c8d2bde68
Support request method and headers in fetch() (#1188)
Adds a general HttpHeader flatbuffer message for serializing requests
and responses.
2018-11-14 17:36:34 -08:00
Ryan Dahl
b1579460ce Support streaming response bodies from fetch()
Also Buffer.readFrom in fetch() to buffer response.
2018-11-13 21:44:38 -08:00
Andy Hayden
13e1eb2b87 Fix many of the clippy::pedantic warnings 2018-11-06 06:43:02 -08:00
Andy Hayden
27ecfc1617 Add repl (#998)
- Running repl from js side.
- Add tests for repl behavior.
- Handle ctrl-C and ctrl-D.
2018-11-05 09:55:59 -08:00
Andy Hayden
1241b8e9ba Fix clippy warnings (#1149)
Run with: cargo clippy
https://github.com/rust-lang-nursery/rust-clippy
2018-11-04 06:04:24 -08:00
Ryan Dahl
ee24254bad Rename EnvPair to KeyValue. 2018-11-02 20:50:01 -07:00
Ryan Dahl
80b5c61460 Rename FetchReq op to Fetch. 2018-10-30 17:42:19 -07:00
Bartek Iwańczuk
946acbc559 Add resources op (#1119) 2018-10-30 12:58:55 -07:00
Kitson Kelly
8b39d2c99e Separate source map from output code. 2018-10-29 08:16:35 -07:00
Ryan Dahl
6adc87e3eb
Ergonomics: Prompt TTY for permission escalation (#1081) 2018-10-27 06:11:39 -07:00
Kevin (Kun) "Kassimo" Qian
a99aaf5def Add chmod/chmodSync on unix (and fix Cargo.toml) (#1088)
Initial implementation by Srijan Reddy (@srijanreddy98, #672).
2018-10-26 13:01:45 -07:00
Ryan Dahl
9b8f77f525 Support https in fetch.
fetch should use same hyper connector as import.
2018-10-26 09:40:27 -07:00
Kitson Kelly
8ef7da2611 Enforce media types 2018-10-23 04:48:00 -07:00