Commit graph

76 commits

Author SHA1 Message Date
Ry Dahl
29df272133
error on warnings (#3612) 2020-01-06 11:38:56 -05:00
Ry Dahl
76e44ddfd0
Rename crates: 'deno' to 'deno_core' and 'deno_cli' to 'deno' (#3600) 2020-01-05 11:56:18 -05:00
Gurwinder Singh
9f6bab6010 Use async at places, use &self instead of self: &Self (#3594) 2020-01-04 05:20:52 -05:00
Ry Dahl
bfab4ed0df
Happy new year! (#3578) 2020-01-02 15:13:47 -05:00
Gurwinder Singh
b0761138e5 Remove unnecessary use of Pin, use ready! (#3576) 2020-01-02 13:11:33 -05:00
Bartek Iwańczuk
4258ed262f
refactor: move HttpBody to cli/http_util.rs (#3569) 2019-12-31 15:09:58 +01:00
Bartek Iwańczuk
46d76a7562
upgrade: Tokio 0.2 (#3418) 2019-12-30 14:57:17 +01:00
Axetroy
3bb15ceaea Upgrades rust to 1.40.0 (#3542) 2019-12-23 09:59:44 -05:00
Nayeem Rahman
f07ffe8980 feat: Add Deno.dir("executable") (#3526) 2019-12-21 06:30:13 -05:00
Ry Dahl
077b6f7672
Reduce all directory functions to Deno.dir() (#3518) 2019-12-18 09:29:00 -05:00
Axetroy
de94698915 Feat: Add more dir APIs for Deno (#3491) 2019-12-15 13:14:20 +08:00
Luca Casonato
7144bbed34 fix: plugin ops should change op count metrics (#3455) 2019-12-08 04:09:09 +08:00
Andy Finch
7c3b9b4f4f feat: first pass at native plugins (#3372) 2019-12-05 15:30:20 -05:00
Ry Dahl
ee013102ff
remove duplicated argv member from ThreadSafeGlobalState (#3433) 2019-12-03 17:23:10 -05:00
Bartek Iwańczuk
136b5e3da2 disable eager polling for ops (#3434) 2019-12-02 12:21:32 -08:00
木杉
537c6b3ed9 fix realpath behavior in windows (#3425) 2019-12-01 11:23:35 -08:00
Kevin (Kun) "Kassimo" Qian
f88dc4e197 Add Deno.realpath (#3404) 2019-11-26 00:40:57 -08:00
Bartek Iwańczuk
658ec2aaf9 better error message for missing module (#3402) 2019-11-25 09:33:23 -05:00
Kevin (Kun) "Kassimo" Qian
bca23e6433 refactor: Elevate DenoPermissions lock to top level (#3398) 2019-11-24 10:42:30 -05:00
Bartek Iwańczuk
1912ed6740 remove tokio_util::block_on from ops/workers.rs (#3381) 2019-11-19 19:17:05 -05:00
Bartek Iwańczuk
f356b2bd5e refactor: fixes for futures (#3363)
After landing #3358 the benchmarks exploded indicating problems with workers and deno_core_http_bench.

This PR dramatically fixes thread/syscall count that showed up on benchmarks. Thread count is not back to previous levels but difference went from hundreds/thousands to about ~50.
2019-11-17 08:14:50 -05:00
Bartek Iwańczuk
8f9a942cb9 Use futures 0.3 API (#3358) 2019-11-16 19:17:47 -05:00
Bartek Iwańczuk
8b90b8e883 refactor: per-worker resource table, take 2 (#3342)
- removes global `RESOURCE_TABLE` - resource tables are now created per `Worker`
  in `State`
- renames `CliResource` to `StreamResource` and moves all logic related
  to it to `cli/ops/io.rs`
- removes `cli/resources.rs`
- adds `state` argument to `op_read` and `op_write` and consequently adds
  `stateful_minimal_op` to `State`
- IMPORTANT NOTE: workers don't have access to process stdio - this is
  caused by fact that dropping worker would close stdout for process
  (because it's constructed from raw handle, which closes underlying file
  descriptor on drop)
2019-11-14 12:10:25 -05:00
Kevin (Kun) "Kassimo" Qian
4189cc1ab5 Loader: support .wasm imports (#3328)
* loader: support .wasm imports

* http_server: true

* Support named exports

* Clippy
2019-11-14 08:31:39 -05:00
Ryan Dahl
fdf0ede2ac Revert "refactor: per-worker resource table (#3306)"
This patch does not work with the recent bundler changes (#3325).
Unfortunately I didn't merge master before landing this patch. It has
something to do with console.log not working inside the compiler worker.

This reverts commit fd62379eaf.
2019-11-13 23:42:35 -05:00
Bartek Iwańczuk
fd62379eaf refactor: per-worker resource table (#3306)
- removes global `RESOURCE_TABLE` - resource tables are now created per `Worker`
  in `State`
- renames `CliResource` to `StreamResource` and moves all logic related
  to it to `cli/ops/io.rs`
- removes `cli/resources.rs`
- adds `state` argument to `op_read` and `op_write` and consequently adds
  `stateful_minimal_op` to `State`
- IMPORTANT NOTE: workers don't have access to process stdio - this is
  caused by fact that dropping worker would close stdout for process
  (because it's constructed from raw handle, which closes underlying file
  descriptor on drop)
2019-11-13 22:16:57 -05:00
Yoshiya Hinosawa
31115067cd Add permissions.request (#3296) 2019-11-11 10:33:29 -05:00
Bartek Iwańczuk
335e8bd33c refactor: worker is no longer a resource (#3290) 2019-11-09 12:07:14 -08:00
Bartek Iwańczuk
c57207e96a refactor: move Child resource to ops/process.rs (#3291) 2019-11-07 18:52:21 -05:00
Bartek Iwańczuk
25c276055b refactor: remove cli::resources::Resource (#3285) 2019-11-07 11:11:15 -05:00
Bartek Iwańczuk
415d4c2e52 refactor: rewrite accept resources (#3271) 2019-11-07 09:59:02 -05:00
Ry Dahl
5c1deac0cf
Remove CoreResource::inspect_repr method (#3274)
Towards simplifying (or better removing entirely) the CoreResource
trait. Resources should be any bit of privileged heap allocated memory
that needs to be referenced from JS, not very specific trait
implementations. Therefore CoreResource should be pushed towards being
as general as possible.
2019-11-06 12:17:28 -05:00
Bartek Iwańczuk
0049d4e50c Refactor Worker and ThreadSafeState (#3242)
* Split ThreadSafeState into State and GlobalState. State is a "local"
  state belonging to "Worker" while "GlobalState" is state shared by
  whole program.
* Update "Worker" and ops to use "GlobalState" where applicable
* Move and refactor "WorkerChannels" resource
2019-11-04 10:38:52 -05:00
Bartek Iwańczuk
a7992e7703 refactor: use core ResourceTable in cli (#3206) 2019-10-28 20:42:44 -04:00
Yoshiya Hinosawa
efd7e78af3 Use web standard Permissions API (#3200) 2019-10-27 11:22:53 -04:00
Bartek Iwańczuk
dfcdc03152 fix: handle malformed control buffers (#3202) 2019-10-25 13:23:16 -04:00
Bartek Iwańczuk
492b87d460 Add error handling for minimal dispatch (#3176) 2019-10-24 17:22:31 -04:00
EnokMan
7c60ab4664 refactor DenoPermissions.check_net & resolve_addr (#3182) 2019-10-23 10:19:26 -04:00
Bartek Iwańczuk
6c5a981fd2 feat: Deno.listenTLS (#3152) 2019-10-21 14:38:28 -04:00
Kevin (Kun) "Kassimo" Qian
eff2a27bd0 feat: Allow "deno eval" to run code as module (#3148) 2019-10-19 17:19:19 -04:00
Yusuke Sakurai
6056595357 fix: [tls] op_dial_tls is not registerd and broken (#3121) 2019-10-13 10:37:37 -04:00
Ryan Dahl
97d8498d46
Add init methods for each op module (#3087) 2019-10-11 11:41:54 -07:00
Ryan Dahl
b81e5db17a
Merge deno_cli_snapshots into deno_cli (#3064) 2019-10-04 20:28:51 -04:00
Nayeem Rahman
eecb4fea26 Use xeval from deno_std (#3058) 2019-10-04 09:02:36 -04:00
Kitson Kelly
d9ff4eccb5 Async compiler processing (#3043)
Basically this does pre-processing of TypeScript files and gathers all the
dependencies asynchronously. Only then after all the dependencies are gathered,
does it do a compile, which at that point all the dependencies are cached in
memory in the compiler, so with the exception of the hard coded assets, there
are no ops during the compilation.

Because op_fetch_source_files is now handled asynchronously in the runtime, we
can eliminate the tokio_util::block_on() which was causing the increase in
threads. Benchmarking on my machine has shown about a 5% improvement in speed
when dealing with compiling TypeScript. Still a long way to go, but an
improvement.

In theory the module name resolution and the fetching of the source files could
be broken out as two different ops. This would prevent situations of sending the
full source file all the time when actually the module is the same module
referenced by multiple modules, but that could be done subsequently to this.
2019-10-03 07:23:29 -04:00
Jed Fox
99eec73b4b feat: Add support for passing a key to Deno.env() (#2952)
This adds a new op to get a single env var.
2019-10-02 11:55:28 -04:00
Bartek Iwańczuk
75eeac03f3 use Isolate::register_op in deno_cli (#3039) 2019-10-01 18:51:05 -04:00
Kevin (Kun) "Kassimo" Qian
6efca6d1a1 Add Deno.hostname() (#3032) 2019-09-27 19:09:42 -04:00
Kitson Kelly
3d2d0ee771 Handle uncaught worker errors without panicking (#3019) 2019-09-25 10:46:58 -04:00
Jonathon Orsi
045e74bb39 feat: Add Deno.dialTLS()
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2019-09-23 15:12:42 -04:00