Commit graph

464 commits

Author SHA1 Message Date
Bert Belder b042697902
perf: optimize some important crates more aggressively (#12332) 2021-11-08 12:49:11 -08:00
Luca Casonato be68b82eb4
chore: update to rusty_v8 0.33.0 (#12564) 2021-10-27 23:26:15 +02:00
Aaron O'Mullan 4f48efcc55
chore: return serde_v8 to main repo (#12500)
Reduces fragmentation, avoids version drift and facilitates coordinating serde_v8 and op-layer changes
2021-10-20 00:00:45 +02:00
Leo K f4a9db350f
chore(ext/webgpu): update wgpu to 0.10.0 (#11781)
Co-authored-by: Luca Casonato <hello@lcas.dev>
2021-08-24 13:29:42 +02:00
Aaron O'Mullan 4f322da07c
perf(url): build with opt-level 3 (#11779)
A ~25% improvement: `~1950ns/call` => `~1500ns/call`
2021-08-19 19:11:27 +02:00
Divy Srivastava 5d6d6836bb
perf(wpt/crypto): optimize num-bigint-dig for debug builds (#11681) 2021-08-13 10:08:13 +02:00
Ryan Dahl a0285e2eb8
Rename extensions/ directory to ext/ (#11643) 2021-08-11 12:27:05 +02:00
Elias Sjögreen 33c8d790c3
feat: ffi to replace plugins (#11152)
This commit removes implementation of "native plugins" and replaces
it with FFI API.

Effectively "Deno.openPlugin" API was replaced with "Deno.dlopen" API.
2021-08-06 23:28:10 +02:00
David Sherret d7d452efc1
chore: format toml files internally (#11563) 2021-08-02 10:19:27 -04:00
Luca Casonato f649960f87
refactor: deno_http op crate (#11335) 2021-07-12 12:44:49 +02:00
Ryan Dahl 511c48a03a
Revert "Remove unstable native plugins (#10908)"
This reverts commit 7dd4090c2a.
2021-07-11 18:12:26 -07:00
Luca Casonato bdeb4f430b
perf: opt-level = 3 for deno_net (#11283) 2021-07-06 01:23:18 +02:00
Bartek Iwańczuk 7dd4090c2a
Remove unstable native plugins (#10908)
This commit removes implementation of native plugins
alongside the unstable "Deno.openPlugin()" API.
2021-07-02 16:11:23 +02:00
Bartek Iwańczuk 38a7128cdd
feat: Add "deno_net" extension (#11150)
This commits moves implementation of net related APIs available on "Deno"
namespace to "deno_net" extension.

Following APIs were moved:
- Deno.listen()
- Deno.connect()
- Deno.listenTls()
- Deno.serveHttp()
- Deno.shutdown()
- Deno.resolveDns()
- Deno.listenDatagram()
- Deno.startTls()
- Deno.Conn
- Deno.Listener
- Deno.DatagramConn
2021-06-29 01:43:03 +02:00
Bert Belder e02403bb45
ci: run Linux release builds in sysroot with Ubuntu 18.04 and LLVM (#10920) 2021-06-23 19:36:05 +00:00
Bartek Iwańczuk 6091ea098a
refactor: merge deno_file crate into deno_web (#10914)
This refactor makes it so there's one less crate to publish on each release.
2021-06-10 15:26:10 +02:00
Bartek Iwańczuk e75ffab0c8
chore: move serde_v8 to separate repo (#10909)
Now available at https://github.com/denoland/serde_v8
2021-06-09 20:37:43 +02:00
Ben Noordhuis 8cf7f966f2 feat(extensions): add BroadcastChannel
Co-Authored-By: Ben Noordhuis <info@bnoordhuis.nl>
Fixes: #10354
2021-05-23 15:16:42 +02:00
Bert Belder afaac64737
chore: add/update crates listed in workspace (#10673) 2021-05-17 23:11:40 +02:00
Andy Hayden 684c357136
Rename crate_ops to extensions (#10431) 2021-04-30 15:51:48 -04:00
Bartek Iwańczuk 3432833574
chore: release crates (#10269)
* Revert "tooling(bench_util): benching and profiling utilities (#10223)"

This reverts commit 733a000305.

* Upgrade notify
2021-04-21 00:15:39 +02:00
Aaron O'Mullan 733a000305
tooling(bench_util): benching and profiling utilities (#10223) 2021-04-18 14:51:48 +02:00
Ben Noordhuis 5214acd3d9
refactor: move timers to deno_timers op crate (#10179)
Move timers out of runtime/ and into a standalone op crate.
2021-04-14 21:10:48 +02:00
Bert Belder 06b5959eed
ci: store last-modified timestamps in Github Actions cache (#10110) 2021-04-11 20:57:17 +00:00
Aaron O'Mullan 6519f232bd
perf: build runtime at opt-3 (#10072) 2021-04-11 14:10:22 +02:00
Ryan Dahl 01d8d70b10
Revert "Improve incremental build time (#10039)" (#10086)
This reverts commit a87da4b19a.
2021-04-09 14:03:32 -04:00
Ryan Dahl a87da4b19a
Improve incremental build time (#10039)
Unfortunately this increases the release build size by 8M
```
|        | incremental build | full build | binary size |
|--------|-------------------|------------|-------------|
| main   | 4m 21s            | 6m 24s     | 72M         |
| #10039 | 1m 45s            | 5m 28s     | 80M         |
```
2021-04-09 08:18:49 -04:00
Aaron O'Mullan a5198184aa
perf: build core packages at opt-3 (#10038) 2021-04-06 13:38:49 -04:00
Aaron O'Mullan 3d2e05dc7b
Introduce serde_v8 (#9722) 2021-03-25 22:36:46 -04:00
Luca Casonato e83ff62ccb
chore: split web op crate (#9635)
This commit starts splitting out the deno_web op crate into multiple
smaller crates. This commit splits out WebIDL and URL API, but in the
future I want to split out each spec into its own crate. That means we
will have (in rough order of loading): `webidl`, `dom`, `streams`,
`console`, `encoding`, `url`, `file`, `fetch`, `websocket`, and
`webgpu` crates.
2021-03-12 16:17:18 +01:00
evan c0f10e72ee
Change release build flags to -O3 when favorable (#9538) 2021-02-18 09:46:31 -05:00
Ryan Dahl 2b75a11559
update copyright to 2021 (#9081) 2021-01-10 21:59:07 -05:00
Bartek Iwańczuk 2e74f164b6
refactor: deno_runtime crate (#8640)
This commit moves Deno JS runtime, ops, permissions and
inspector implementation to new "deno_runtime" crate located
in "runtime/" directory.

Details in "runtime/README.md".

Co-authored-by: Ryan Dahl <ry@tinyclouds.org>
2020-12-13 19:45:53 +01:00
Divy Srivastava d5661f677e
refactor: deno_crypto op crate (#7956)
This commit factors out "deno_crypto" op crate.

"rand" crate dependency was consequently moved to 
"deno_crypto" crate and reexported.
2020-11-13 22:01:57 +01:00
tokiedokie c4ed3fb7e7
chore: add copyright (#7593) 2020-09-21 08:26:41 -04:00
Bartek Iwańczuk 7845740637
refactor: deno_fetch op crate (#7524) 2020-09-18 09:20:55 -04:00
Valentin Anger 31f32ed8c4
Move benchmarks to Rust (#7134)
All benchmarks are done in Rust and can be invoked with
`cargo bench`.

Currently this has it's own "harness" that behaves like
`./tools/benchmark.py` did.
Because of this tests inside `cli/bench` are currently not run.
This should be switched to the language provided harness
once the `#[bench]` attribute has been stabilized.
2020-08-28 09:03:50 -04:00
Bartek Iwańczuk 41215eb29c
Op crate for Web APIs (#6906)
Co-authored-by: Ryan Dahl <ry@tinyclouds.org>
2020-08-07 16:55:02 +02:00
Ryan Dahl b7942bf0f6
Change release build flags to optimize for size (#6907) 2020-07-28 13:37:27 -04:00
Ryan Dahl 2460689b1a
Remove deno_typescript (#6813) 2020-07-20 19:49:57 -04:00
Ryan Dahl 75d9913b22
Remove tools/hyper_hello (#6651) 2020-07-06 13:00:08 -04:00
Bartek Iwańczuk 90c5dcfe79
chore(test): move testing utilities to test_util crate (#6360) 2020-06-18 11:54:55 -04:00
skdltmxn b3c72d1e45
feat(std/hash): reimplement all hashes in WASM (#6292) 2020-06-16 17:12:50 -04:00
Andy Finch 7c3b9b4f4f feat: first pass at native plugins (#3372) 2019-12-05 15:30:20 -05:00
Ryan Dahl b81e5db17a
Merge deno_cli_snapshots into deno_cli (#3064) 2019-10-04 20:28:51 -04:00
Ryan Dahl c9ef182886
Make deno_cli installable via crates.io (#2946)
- Fixes cargo publish on deno_typescript, deno_cli_snapshots, and
  deno_cli.
- Combines cli_snapshots and js into one directory.
- Extracts TS version at compile time rather than runtime
- Bumps version awkwardly - it was necessary to test end-to-end
  publishing. Sorry.
- Adds git submodule deno_typescript/typescript
2019-09-15 18:36:27 -04:00
Ryan Dahl d43b43ca78
Refactor snapshot build (#2825)
Instead of using core/snapshot_creator.rs, instead two crates are
introduced which allow building the snapshot during build.rs.

Rollup is removed and replaced with our own bundler. This removes
the Node build dependency. Modules in //js now use Deno-style imports
with file extensions, rather than Node style extensionless imports.

This improves incremental build time when changes are made to //js files
by about 40 seconds.
2019-09-02 17:07:11 -04:00
Ryan Dahl bd6ebb32df
hyper_hello should be in its own crate (#2641)
So that "cargo build" will build it when the gn frontend is eventually
removed.
2019-07-15 14:00:27 -04:00
Ryan Dahl c9614d86c1
Move //libdeno to //core/libdeno (#2015)
Fixes some sed errors introduced in c43cfe.

Unfortunately moving libdeno required splitting build.rs into two parts,
one for cli and one for core.

I've also removed the arm64 build - it's complicating things at this
re-org and we're not even testing it. I need to swing back to it and get
tools/test.py running for it.
2019-03-30 14:45:36 -04:00
Bert Belder 3d6c033369
third_party: upgrade rust crates 2019-03-29 14:50:07 -04:00
Ryan Dahl b965c7ab36 v0.3.5 2019-03-28 16:58:17 -04:00
Ryan Dahl 223a2adbb4 v0.3.4 2019-03-20 18:54:47 -04:00
Ryan Dahl fa3c35301a
Rename //src/ to //cli/ (#1962)
To better distinguish the deno_core crate from the executable deno,
which will now be called "the cli" internally.
2019-03-19 12:18:05 -04:00
Ryan Dahl 3dbb06e699 v0.3.3 2019-03-13 13:31:23 -04:00
Ryan Dahl 535037b519 v0.3.2 2019-03-06 21:22:48 -05:00
Ryan Dahl b3b989ffdc
Use deno_core::JSError in deno (#1855)
src/js_errors.rs takes care of source maps and color while
core/js_errors.rs is just the basic struct.
2019-02-28 16:19:04 -05:00
Ryan Dahl b0c7b54f69 v0.3.1 2019-02-27 16:20:10 -05:00
Bert Belder d4e3bf945d
third_party: upgrade rust crates 2019-02-27 10:24:22 -08:00
Bert Belder 15831272bb
core: add Cargo.toml
This aids development using Visual Studio Code. The http_bench can't be
built with cargo yet because it needs to link with libdeno.
2019-02-26 16:23:36 -08:00
Ryan Dahl a5720d9e28 v0.3.0 2019-02-18 23:22:41 -05:00
Bert Belder 9240f9b57f
third_party: upgrade rust crates 2019-02-12 09:30:36 -08:00
Ryan Dahl b2fb8261e7 v0.2.11
- Add deps to --info output (#1720)
- Add --allow-read (#1689)
- Add deno.isTTY() (#1622)
- Add emojis to permission prompts (#1684)
- Add basic WebAssembly support (#1677)
- Add `NO_COLOR` support https://no-color.org/ (#1716)
- Add color exceptions (#1698)
- Fix: do not load cache files when recompile flag is set (#1695)
- Upgrade V8 to 7.4.98 (#1640)
2019-02-08 23:34:05 -05:00
Bert Belder f22e0d72c5
third_party: add the 'regex' crate 2019-02-07 14:46:52 -08:00
Dmitry Sharshakov 5c50d2819b Add emojis to permission prompts (#1684) 2019-02-07 16:19:50 -05:00
Ryan Dahl c324182252 v0.2.10 2019-02-02 18:26:31 -05:00
Ryan Dahl 1681bda14d v0.2.9 2019-01-29 22:57:11 -05:00
Bert Belder c03ff8556b
third_party: add the 'integer-atomics' crate 2019-01-26 16:32:03 +01:00
Bert Belder 6ad2e001b4
third_party: upgrade rust crates 2019-01-26 16:32:02 +01:00
Yoshiya Hinosawa 77114fbda4 chore: update license lines (#1557) 2019-01-21 13:03:30 -06:00
Ryan Dahl a47d545e4d v0.2.8 2019-01-19 11:54:45 -05:00
Ryan Dahl eb4a19ef6e v0.2.7 2019-01-14 20:25:57 -05:00
Andy Hayden 526fdac053
Update to rust 2018 edition 2019-01-14 22:30:04 +01:00
Bert Belder 8039e2a55a
third_party: upgrade rust crates, now with --edition 2018 support 2019-01-14 05:03:14 +01:00
Bert Belder 9e9550ceea
third_party: upgrade rust crates 2019-01-14 02:18:19 +01:00
Bert Belder 4f63aa4634
build: winapi is a windows-only dep 2019-01-14 02:18:18 +01:00
Bert Belder 69c370c5cc
src: remove dependency on the 'kernel32' crate 2019-01-14 02:18:18 +01:00
Ryan Dahl 404e6f8634 v0.2.6 2019-01-07 17:33:06 -05:00
Ryan Dahl bc2c808da1
Upgrade crates (#1471) 2019-01-07 10:36:08 -05:00
Ryan Dahl 320577c131 v0.2.5 2019-01-01 14:30:23 -05:00
Ryan Dahl c6e2fffc13 v0.2.4
- "cargo build" support (#1369 #1296 #1377 #1379)
- Remove support for extensionless import (#1396)
- Upgrade V8 to 7.2.502.16 (#1403)
- make stdout unbuffered (#1355)
- Implement `Body.formData` for fetch (#1393)
- Improve handling of non-coercable objects in assertEqual (#1385)
- Avoid fetch segfault on empty Uri (#1394)
- Expose deno.inspect (#1378)
- Add illegal header name and value guards (#1375)
- Fix URLSearchParams set() and constructor() (#1368)
- Remove prebuilt v8 support (#1369)
- Enable jumbo build in release. (#1362)
- Add URL implementation (#1359)
- Add console.count and console.time (#1358)
- runtime arg check `URLSearchParams` (#1390)
2018-12-23 23:39:11 -05:00
Ryan Dahl 63d558da0c
Use flatbuffers from crates.io (#1400) 2018-12-23 12:39:40 -05:00
Yoshiya Hinosawa bee55fcd20 make stdout unbuffered (#1355) 2018-12-22 23:53:29 -05:00
Ryan Dahl c69d2f554d v0.2.3
- console.assert should not throw error (#1335)
- Support more modes in deno.open (#1282, #1336)
- Simplify code fetch logic (#1322)
- readDir entry mode (#1326)
- Use stderr for exceptions (#1303)
- console.log formatting improvements (#1327, #1299)
- Expose TooLarge error code for buffers (#1298)
2018-12-14 15:11:44 -05:00
Ryan Dahl e6121762f8 v0.2.2
- Don't crash when .mime file not exist in cache (#1291)
- Process source maps in Rust instead of JS (#1280)
- Use alternate TextEncoder/TextDecoder implementation (#1281)
- Upgrade flatbuffers to 80d148
- Fix memory leaks (#1265, #1275)
2018-12-07 17:44:49 -05:00
Ryan Dahl c113df1bb8
Process source maps in Rust instead of JS (#1280)
- Improves speed and binary size significantly.
- Makes deno_last_exception() output a JSON structure.
- Isolate::execute and Isolate::event_loop now return
  structured, mapped JSError objects on errors.
- Removes libdeno functions:
  libdeno.setGlobalErrorHandler()
  libdeno.setPromiseRejectHandler()
  libdeno.setPromiseErrorExaminer()

In collaboration with Ryan Dahl.
2018-12-06 23:05:36 -05:00
Ryan Dahl b5c6bfa0c8 v0.2.1
- Allow async functions in REPL (#1233)
- Handle Location header relative URI (#1240)
- Add deno.readAll() (#1234)
- Add Process.output (#1235)
- Upgrade to TypeScript 3.2.1
- Upgrade crates: tokio 0.1.13, hyper 0.12.16, ring 0.13.5
2018-11-30 16:28:27 -08:00
Ryan Dahl 3846384888 Upgrade Rust crates 2018-11-30 15:07:13 -08:00
Ryan Dahl d083f7271b v0.2.0
Changes since v0.1.12:
- First pass at running subprocesses (#1156)
- Improve flag parsing (#1200)
- Improve fetch() (#1194 #1188 #1102)
- Support shebang (#1197)
2018-11-16 13:23:50 +08:00
Ryan Dahl 975f75d81e Specify exact versions in Cargo.toml
To fix "cargo check" on travis, where they have silently upgraded us
from Ring 0.13.2 to 0.13.4, which has some errors.
2018-11-16 11:20:35 +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 0c740ff85d v0.1.12
- Update to TypeScript 3.1.6 (#1177)
- Fixes Headers type not available. (#1175)
- Reader/Writer to use Uint8Array not ArrayBufferView (#1171)
- Fixes importing modules starting with 'http'. (#1167)
- build: Use target/ instead of out/ (#1153)
- Support repl multiline input (#1165)
2018-11-12 09:16:00 -08:00
Ryan Dahl e1d5f82d36 v0.1.11
- Performance and stability improvements on all platforms.
- Add repl (#998)
- Add deno.Buffer (#1121)
- Support cargo check (#1128)
- Upgrade Rust crates and Flatbuffers. (#1145, #1127)
- Add helper to turn deno.Reader into async iterator (#1130)
- Add ability to load JSON as modules (#1065)
- Add deno.resources() (#1119)
- Add application/x-typescript mime type support (#1111)
2018-11-05 14:51:29 -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
Bert Belder b9914c3113
third_party: add tokio-process Rust crate and its dependencies 2018-11-03 07:42:24 +01:00
Bert Belder a244c16270
third_party: upgrade Rust crates 2018-11-03 07:22:04 +01:00
Ryan Dahl 198e396ead
Support cargo check (#1128)
- Based on code from @qti3e and @piscisaureus in #724 and #1125
  respectively.
- TODO The DENO_BUILD_PATH env var must be supplied and must be an
  absolute path, this restriction should be removed in future work.
2018-10-31 11:11:10 -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 6e6deed12d Upgrade crates 2018-10-19 21:42:23 -04:00
ztplz b809a82fd9 Add missing copyrights (#1024) 2018-10-19 15:25:29 -04:00
Ryan Dahl 930df1848a Upgrade hyper-rustls
This removes tokio-core, which was deprecated.
2018-10-10 12:19:08 -04:00
Bert Belder 82d0638139 Add missing deps to cargo.toml
We're using ring and futures directly, so they should be listed in
cargo.toml.
2018-09-17 12:09:20 -07:00
Ryan Dahl 24ebd80ae7 Upgrade rust crates. 2018-09-17 12:09:20 -07:00
Kevin (Kun) "Kassimo" Qian 0185f9f9de
Add the 'dirs' crate, enable the required 'winapi' features 2018-09-16 18:38:41 -07:00
Ryan Dahl 4ccae957fb Upgrade flatbuffers 2018-09-03 10:45:58 -04:00
Ryan Dahl d8d5c421c3 Support https imports.
Adds hyper-rustls to the build.

Use ring for sha1 instead of "ssh1" crate.

Fixes #528.
2018-08-30 08:29:28 -04:00
Ryan Dahl 11896647e6 Downgrading tokio to registry version.
Prep for rustls.
2018-08-30 08:29:28 -04:00
Bert Belder ceaf822682
Implement makeTempDirSync() 2018-08-29 22:40:05 +02:00
Thomas Ghysels 7b0618c20b Add hyper dependencies 2018-08-20 16:53:39 -04:00
Robby Madruga 58b2362a24
Add 'tokio' and dependencies
Use tokio from git.
2018-08-09 01:13:11 +02:00
Ryan Dahl 229e3b80c5 Improve rust build docs 2018-08-03 10:04:12 -04:00
Ryan Dahl 1f093c12f8 Add sha1 and tempfile crates. 2018-07-29 00:22:39 -04:00
Ryan Dahl 0875411267
Add tools/build.py (#398)
To allow better tab completion for ./tools/build.py
mv build_third_party.py sync_third_party.py
2018-07-24 13:42:23 -04:00
robbym d93bd4b127 Use Cargo to install rust deps into //third_party/rust_crates (#383) 2018-07-18 20:00:53 -04:00