1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-19 05:45:09 -05:00
Commit graph

1118 commits

Author SHA1 Message Date
Ryan Dahl
6666f1d36a
remove target_test.py (#5112) 2020-05-06 16:34:48 -04:00
Ryan Dahl
221221cc97
BREAKING: execPath should require allow-read (#5109) 2020-05-06 15:51:33 -04:00
Ryan Dahl
2b15e53d5a
Upgrade crates (#5104) 2020-05-06 10:10:51 -04:00
Bartek Iwańczuk
a913b7a1ba
BREAKING: remove CLI 'deno script.ts' hack (#5026)
This PR removes the hack in CLI that allows to run scripts with shorthand: deno script.ts.

Removing this functionality because it hacks around short-comings of clap our CLI parser. We agree that this shorthand syntax is desirable, but it needs to be rethinked and reimplemented. For 1.0 we should go with conservative approach that is correct.
2020-05-04 13:03:30 +02:00
Luca Casonato
80e2211141
Unstable methods should not appear in runtime or d.ts (#4957)
Co-authored-by: Kitson Kelly <me@kitsonkelly.com>
2020-04-30 11:23:40 -04:00
Nayeem Rahman
678313b176
BREAKING: Remove Deno.EOF, use null instead (#4953) 2020-04-28 12:40:43 -04:00
Ryan Dahl
02bc58d832
BREAKING: Make fetch API more web compatible (#4687)
- Removes the __fetch namespace from `deno types`
- Response.redirect should be a static.
- Response.body should not be AsyncIterable.
- Disables the deno_proxy benchmark
- Makes std/examples/curl.ts buffer the body before printing to stdout
2020-04-10 09:51:17 -04:00
Ryan Dahl
b7e673ba93
upgrade: rust crates (#4679) 2020-04-08 14:29:42 -04:00
Andres Villegas
3892d49165
fix: Add check to fail the benchmark test on server error (#4519) 2020-03-30 14:04:45 -04:00
Kitson Kelly
bced52505f
Update to Prettier 2 and use ES Private Fields (#4498) 2020-03-28 13:03:49 -04:00
João Souto
70a5034431
feat: Support Unix Domain Sockets (#4176) 2020-03-23 18:02:51 -04:00
Ryan Dahl
0adc86f105
Remove DENO_BUILD_MODE and DENO_BUILD_PATH (#4431)
* Remove DENO_BUILD_MODE and DENO_BUILD_PATH

Also remove outdated docs related to ninja/gn.

* fix

* remove parameter to build_mode()

* remove arg parsing from benchmark.py
2020-03-20 21:48:34 -04:00
Samrith Shankar
798904b0f2
Add require-await lint rule (#4401) 2020-03-20 09:38:34 -04:00
Bartek Iwańczuk
87d2ba42bf
perf: Optimize TextEncoder and TextDecoder (#4430)
* add tests for "Deno.core.encode" and "Deno.core.decode" for empty inputs
* use "Deno.core.encode" in "TextEncoder"
* use "Deno.core.decode" in "TextDecoder"
* remove "core_decode" and "core_encode" benchmarks
2020-03-19 21:31:56 +01:00
Bartek Iwańczuk
dc6e0c3591
feat: Deno.core.{encode,decode}; standalone UTF-8 encoding/decoding (#4349)
This commits add two new methods to "Deno.core" namespace: "encode" and "decode".

Those methods are bound in Rust to provide a) fast b) generally available of encoding and decoding UTF-8 strings. 

Both methods are now used in "cli/js/dispatch_json.ts".
2020-03-15 15:31:55 +01:00
Bartek Iwańczuk
aab1acaed1
refactor: unit test runner communicates using TCP socket (#4336)
Rewrites "cli/js/unit_test_runner.ts" to communicate with spawned subprocesses 
using TCP socket.

* Rewrite "Deno.runTests()" by factoring out testing logic to private "TestApi" 
  class. "TestApi" implements "AsyncIterator" that yields "TestEvent"s, 
  which is an interface for different types of event occuring during running
  tests.

* Add "reporter" argument to "Deno.runTests()" to allow users to provide custom
  reporting mechanism for tests. It's represented by "TestReporter" interface,
  that implements hook functions for each type of "TestEvent". If "reporter"
  is not provided then default console reporting is used (via 
  "ConsoleReporter").

* Change how "unit_test_runner" communicates with spawned suprocesses. Instead
  of parsing text data from child's stdout, a TCP socket is created and used
  for communication. "unit_test_runner" can run in either "master" or "worker"
  mode. Former is responsible for test discovery and establishing needed
  permission combinations; while latter (that is spawned by "master") executes
  tests that match given permission set.

* Use "SocketReporter" that implements "TestReporter" interface to send output
  of tests to "master" process. Data is sent as stringified JSON and then
  parsed by "master" as structured data. "master" applies it's own reporting 
  logic to output tests to console (by reusing default "ConsoleReporter").
2020-03-13 15:57:32 +01:00
Ryan Dahl
18076db8f0
upgrade rust dependencies (#4270) 2020-03-07 15:51:23 -05:00
dubiousjim
9a63902db5
Rename readDir -> readdir (#4225) 2020-03-06 08:34:02 -05:00
Ryan Dahl
c14cc84a85
fix tools/docs.py (#4210) 2020-03-02 16:22:12 +01:00
Kevin (Kun) "Kassimo" Qian
b5bf28e68f
fetch_cached_remote_source support redirect URL without base (#4099) 2020-02-28 09:04:18 -05:00
João Souto
ff4b7b0921
Add clippy to /tools/lint.py (#4132) 2020-02-27 14:30:41 -05:00
Ryan Dahl
3d03d7e83b
Fix flaky tests (#4134) 2020-02-26 11:50:25 +01:00
Kitson Kelly
be787d09d5
upgrade: TypeScript 3.8 (#4100) 2020-02-25 15:33:19 -05:00
João Souto
ac933dd1b8
port tools/repl_test.py to Rust (#4096)
ref #2988
2020-02-24 17:49:40 -05:00
hazæ41
08686cbc3a
feat: support UDP sockets (#3946) 2020-02-21 11:26:54 -05:00
geoFlux
2e7d449623
feat: add --cert flag for http client (#3972) 2020-02-17 11:59:51 -05:00
Bert Belder
f650c3edb3
Refactor deno_core_http_bench and make it single-threaded (#3903) 2020-02-07 18:17:03 -08:00
Luka Hartwig
7d115a2a65
refactor: port fetch test to rust (#3887) 2020-02-04 17:42:07 -05:00
Ryan Dahl
161cf7cdfd
refactor: Use Tokio's single-threaded runtime (#3844)
This change simplifies how we execute V8. Previously V8 Isolates jumped
around threads every time they were woken up. This was overly complex and
potentially hurting performance in a myriad ways. Now isolates run on
their own dedicated thread and never move.

- blocking_json spawns a thread and does not use a thread pool
- op_host_poll_worker and op_host_resume_worker are non-operational
- removes Worker::get_message and Worker::post_message
- ThreadSafeState::workers table contains WorkerChannel entries instead
  of actual Worker instances.
- MainWorker and CompilerWorker are no longer Futures.
- The multi-threaded version of deno_core_http_bench was removed.
- AyncOps no longer need to be Send + Sync

This PR is very large and several tests were disabled to speed
integration:
- installer_test_local_module_run
- installer_test_remote_module_run
- _015_duplicate_parallel_import
- _026_workers
2020-02-03 18:08:44 -05:00
Luka Hartwig
f168597b7a
Remove //tests symlink (#3849) 2020-02-02 16:55:22 -05:00
Ryan Dahl
af081d7449
upgrade: Rust 1.41.0 (#3838) 2020-01-31 04:49:13 -05:00
Ryan Dahl
2338e7679c
Remove --current-thread flag (#3830)
This flag was added to evaluate performance relative to tokio's threaded
runtime. Although it's faster in the HTTP benchmark, it's clear the runtime
is not the only perf problem.

Removing this flag will simplify further refactors, in particular
adopting the #[tokio::main] macro. This will be done in a follow up.

Ultimately we expect to move to the current thread runtime with Isolates
pinned to specific threads, but that will be a much larger refactor. The
--current-thread just complicates that effort.
2020-01-30 10:49:33 -05:00
Bartek Iwańczuk
73a3cc21d0
feat: dprint formatter (#3820)
* rewrite fmt_test in Rust, remove tools/fmt_test.py
* remove //std/prettier
2020-01-29 21:16:48 -05:00
Kitson Kelly
f604becaba Improve support of type definitions (#3755) 2020-01-26 13:59:41 -05:00
Ryan Dahl
3059558d41
fix cargo-publish-on-tag (#3781)
Also rename the "test" CI worker to "test_release"
2020-01-24 14:24:27 -05:00
Takashi Idobe
108294deeb change copyrights from 2019 to 2020 (#3733) 2020-01-21 10:01:55 -05:00
Ry Dahl
e83658138b
Fix bug in strace parser (#3720)
Co-authored-by: @kt3k
2020-01-20 09:49:18 -05:00
Bartek Iwańczuk
34b99fec8e
rename dial to connect and dialTLS to connectTLS (#3710) 2020-01-18 18:35:12 +01:00
Ry Dahl
020898762f Debug strace issue (#3706) 2020-01-18 10:20:10 +01:00
Ry Dahl
d720309203
Auto cargo-publish on tags (#3704)
fix tools/cargo_publish.py
2020-01-17 17:53:13 -05:00
Bartek Iwańczuk
cad7b3e4fe add "deno fetch" benchmarks (#3688) 2020-01-16 15:32:25 -05:00
Ry Dahl
a4dde552de
Revert "feat(flags): script arguments come after '--'" (#3681)
Due to complaints about ergonomics and because it breaks shebang on
linux.

This reverts commit 2d5457df15.

BREAKING CHANGE
2020-01-15 19:21:35 -05:00
Bartek Iwańczuk
702ff4283f extend bencharks to 20s 2020-01-13 07:12:30 -07:00
EnokMan
1ea06f9c84 Add gzip, brotli and ETag support for file fetcher (#3597) 2020-01-11 11:11:05 +01:00
Ry Dahl
d492c5abe3
feat: Deno.args now does not include script (#3628)
Previously Deno.args was ["script.js", "arg1", "arg2"]
Now it is just ["arg1", "arg2"]
BREAKING CHANGE
2020-01-09 11:37:01 -07:00
Ry Dahl
2d5457df15
feat(flags): script arguments come after '--' (#3621) 2020-01-08 14:59:53 -05:00
Ry Dahl
8466460311 update pylintrc (#3618) 2020-01-08 01:51:11 +01:00
Bert Belder
52a0f3a5ef
Upgrade rust crates and modernize hyper_hello (#3606) 2020-01-05 23:12:35 +01:00
Ry Dahl
5f1df038fb
Replace libdeno with rusty_v8 (#3556) 2020-01-05 09:19:29 -05:00
Luca Casonato
0a900949c8 Added textencoder benchmark (#3589) 2020-01-04 05:21:06 -05:00
Waldir Pimenta
2a36879e30 Add missing year ranges to copyright notices (#3582) 2020-01-02 18:41:59 -05:00
Ry Dahl
bfab4ed0df
Happy new year! (#3578) 2020-01-02 15:13:47 -05:00
Kevin (Kun) "Kassimo" Qian
d146d45861 benchmark: align deno_http and node_http response (#3484) 2019-12-12 13:02:23 +08:00
Christian Moritz
214b3eb29a fix depot_tools on macOS Catalina by upgrading it to 23247b9 (#3441)
Fixes: #3440
Fixes: #3153
2019-12-04 18:16:39 -05:00
Bartek Iwańczuk
2ac107f548 fix: use AF_INET6 in ./tools/http_server.py (#3374) 2019-11-19 12:56:37 -05:00
Kevin (Kun) "Kassimo" Qian
e73a82dc42 feat(std/node) add CommonJS require (#3380) 2019-11-19 01:54:20 -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
Kitson Kelly
9837d324a7 Update to TypeScript 3.7 (#3275)
and update to prettier 1.19

Also, update `assert()` and remove not null assertions where possibly
in `cli`.

Closes #3273
2019-11-13 13:42:34 -05:00
Kitson Kelly
8d03397293 Make bundles fully standalone (#3325)
- Bundles are fully standalone. They now include the shared loader with
  `deno_typescript`.
- Refactor of the loader in `deno_typescript` to perform module
  instantiation in a more
- Change of behaviour when an output file is not specified on the CLI.
  Previously a default name was determined and the bundle written to that
  file, now the bundle will be sent to `stdout`.
- Refactors in the TypeScript compiler to be able to support the concept
  of a request type.  This provides a cleaner abstraction and makes it
  easier to support things like single module transpiles to the userland.
- Remove a "dangerous" circular dependency between `os.ts` and `deno.ts`,
  and define `pid` and `noColor` in a better way.
- Don't bind early to `console` in `repl.ts`.
- Add an integration test for generating a bundle.
2019-11-13 10:35:56 -05:00
Bert Belder
adab69bccc
Upgrade rust crates (#3292) 2019-11-07 16:21:51 -08:00
Ryan Dahl
508d728b5e upgrade: V8 8.0.192 2019-11-07 17:58:05 -05:00
Ry Dahl
af61dbed87 Upgrade node_modules, change tagline, clean up root directory (#3247)
* Upgrade node_modules
* Simplify tagline
* Move gclient_config.py out of root
* Move package.json to tools
* Remove yarn.lock
* Remove CONTRIBUTING.md
2019-10-31 19:33:27 -07:00
Ry Dahl
8f571ef166
Remove TTY tests - dead code (#3229) 2019-10-29 17:52:57 -04:00
Andy Hayden
49e04fb240 fix race condition in test http server (#3237) 2019-10-29 16:06:14 -04:00
Ry Dahl
38f01f73a4
Move prebuilt binaries to third_party (#3227) 2019-10-28 22:04:24 -04:00
Andy Hayden
f484776384 Use top-level for-await in various places (#3217) 2019-10-28 15:58:35 -04:00
Andy Hayden
aec5a646c9 feat: top-level-for-await (#3212) 2019-10-27 09:04:42 -04:00
Ry Dahl
1d8f3cc896
Remove old website (#3194)
Move manual.md and style_guide.md into //std so they can be accessed
from https://deno.land/std/manual.md

Code for new website is https://github.com/denoland/deno_website2

Co-authored-by: Christian Moritz <chrmoritz@gmail.com>
2019-10-24 16:14:05 -04:00
JaePil Jung
4bebbda8db Small cleanups in perrmission_prompt_test.ts (#3188) 2019-10-23 00:31:46 -07:00
Ry Dahl
dc80dd2ace
Add TextDecoder benchmark (#3180) 2019-10-22 18:50:56 -04:00
Ryan Dahl
99d8ac70db Fix tools/docs.py (#3135) 2019-10-16 11:31:37 -07:00
Yusuke Sakurai
c1b302d769 fix: remote jsx/tsx files were compiled as js/ts (#3125) 2019-10-16 13:35:04 -04:00
Nayeem Rahman
04ed8d0531 Ensure DENO_DIR when saving the REPL history (#3106) 2019-10-11 10:12:39 -07:00
Ryan Dahl
93f7f00c95
Run deno_std tests in github actions 2019-10-09 17:22:22 -04:00
Christian Moritz
3e02d7ddbc refactor benchmark results posting (#3076) 2019-10-06 11:18:15 -04:00
Christian Moritz
33e3ff5de8 remove appveyor specific code paths (#3071) 2019-10-05 21:19:00 -04:00
Ryan Dahl
b81e5db17a
Merge deno_cli_snapshots into deno_cli (#3064) 2019-10-04 20:28:51 -04:00
Ryan Dahl
ddcad56ee9
Move deno_std to a more convenient location. (#3057)
js/deps/https/deno.land/std -> js/std
2019-10-04 14:49:32 -04:00
Ryan Dahl
5f7ab4884c
Use 0.0.0.0 for servers in benchmarks and tests (#3010) 2019-09-30 12:35:48 -04:00
Christian Moritz
726f08694b tools: fix cc_wrapper in setup.py (#3017) 2019-09-24 15:19:23 -04:00
Ryan Dahl
97bb2bdb79
dial/listen API change (#3000)
Previously: dial("tcp", "deno.land:80")
Now: dial({ hostname: "deno.land", port: 80, transport: "tcp" })
Similarly with listen().
2019-09-20 18:32:18 -04:00
Ryan Dahl
56ac638d93
Remove test.py, use cargo test as test frontend (#2967)
Fixes #2933
2019-09-19 14:48:05 -04:00
Bert Belder
a130e8858b
Clean up miscellaneous metafiles (#2981)
The yarn.lock file is moved from //third_party to the root of
the main repository. This is where other package metadata
files (e.g. Cargo.lock and package.json) are also located.
2019-09-19 03:32:48 +02:00
Ryan Dahl
4a807f4225
First pass at github actions (#2966) 2019-09-18 17:23:27 -04:00
Bert Belder
02cb34d8ad
Fix and enable linting of deno_typescript/*, tools/*, website/* (#2962) 2019-09-16 23:30:56 +02: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
Christian Moritz
9c282d6a0e
Move GN root into //core/libdeno (#2943) 2019-09-15 22:12:12 +02:00
Bert Belder
c8184eceb0
tools: remove unused function 'find_exts()' (#2950) 2019-09-15 20:12:16 +02:00
Bert Belder
63e1a4cf2b
tools: do not use 'find_exts()' in benchmarks.py (#2950) 2019-09-15 20:12:16 +02:00
Bert Belder
fbfd895bc7
tools: refactor lint.py and format.py (#2950) 2019-09-15 17:47:51 +02:00
Bert Belder
456b75cbf9
tools: add 'shell' parameter to 'run()' (#2950) 2019-09-15 17:47:51 +02:00
Bert Belder
e7d1da3671
tools: clean up third_party.py, and merge prebuilt.py into it (#2950)
* Remove reference to removed dir 'third_party/rust_crates'.
* Remove reference to unused environment variable 'DENO_NINJA_PATH'.
* Remove helper functions 'root()' and 'tp()'.
* Move definition of 'third_party_path' to build.py.
* Move definition of 'gn_exe()' to setup.py.
* Move 'download_sccache()' and 'download_hyperfine()' from prebuilt.py
  to third_party.py, and delete prebuilt.py.
* Add helper function 'get_platform_dir_name()' to locate the
  platform-specific 'v8/buildtools/<platform>' and
  'prebuilt/<platform>' directories.
* Add helper function 'get_prebuilt_tool_path()' that returns the full
  path to a platform-specific executable in //prebuilt.
* Cosmetic improvements.
2019-09-15 17:47:50 +02:00
Bert Belder
d936c49d53
tools: consistently use 'sys.executable' instead of 'python' (#2950) 2019-09-15 17:47:50 +02:00
Ryan Dahl
aa7a0f4bd8
Fix tools/cargo_package.py (#2940) 2019-09-13 16:39:42 -04:00
Bert Belder
ac68f628d2
Upgrade rust crates 2019-09-13 00:38:02 +02:00
Christian Moritz
19cd8deaf2 tools: download gn from CIPD (#2912) 2019-09-11 18:22:23 -04:00
Ryan Dahl
82dc1b8e59
Upgrade pylint (#2917)
depot_tools is removing pylint from its distribution so we must maintain
our own copy.
2019-09-11 16:47:42 -04:00
Bartek Iwańczuk
85c51404ae feat: Set user agent for http client (#2916) 2019-09-11 07:31:00 -04:00
Bert Belder
df5b6cdd7f
Remove error message mentioning build.py 2019-09-10 20:23:59 -07:00
Ryan Dahl
dd70d8622b
Upgrade V8 to 7.9.8 (#2907)
//build was updated and our patch rebased:
https://github.com/denoland/chromium_build/tree/20190910_win_clang_depfile

V8 has removed the binaries third_party/v8/buildtools/*/gn.sha1 and started 
using CIPD. In this patch, I've hacked in the original .sha1 files and continue to
use download_from_google_storage instead of the new CIPD. This will be fixed
in later work.
2019-09-10 19:18:31 -04:00
Ryan Dahl
49aea7abbc
Minor fixes in tools/ (#2906)
* Fix tools/docs.py

* Remove dead code: sync_rust_crates.py
2019-09-10 14:34:54 -04:00
Bartek Iwańczuk
acee1944b9 feat: Make integration tests rust unit tests (#2884)
Co-authored-by:  Bartek Iwańczuk <biwanczuk@gmail.com>
2019-09-10 11:09:54 -04:00
Ryan Dahl
acaff6d056
Remove tools/build.py (#2865)
Testing regression: ASAN build removed.
2019-09-06 20:32:58 -04:00
Ryan Dahl
9d62d77cfa
Run tests after "cargo build" on travis (#2854) 2019-09-04 17:16:46 -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
Nayeem Rahman
df2f54b2a6 Fix REPL '_' assignment, support '_error' (#2845) 2019-08-31 15:17:56 -04:00
Kevin (Kun) "Kassimo" Qian
07c3c76d0d Save last execution result in for REPL (#2843) 2019-08-31 02:45:35 -04:00
Ryan Dahl
c370f749b2
Remove ts_library_builder, maintain lib.deno_runtime.d.ts by hand (#2827) 2019-08-30 11:11:33 -04:00
Bert Belder
e939ec0f21
third_party: upgrade 'rustls' and related crates 2019-08-29 10:45:09 -07:00
Ryan Dahl
725eb98105
Clean up various flatbuffer references (#2819) 2019-08-26 22:29:51 -04:00
Ryan Dahl
f94900406d
Remove flatbuffers (#2818) 2019-08-26 17:02:34 -04:00
Ryan Dahl
7ff67017f2 Move TestFmt to the end of tests, because slow 2019-08-26 14:56:42 -04:00
Bartek Iwańczuk
017f88ee99 fix: shared queue requires aligned buffer (#2816) 2019-08-26 07:48:40 -04:00
Ryan Dahl
de713e42c8
Upgrade to rust 1.37.0 (#2786) 2019-08-16 20:49:00 -04:00
Kevin (Kun) "Kassimo" Qian
286ee1d8b6 Fix dynamic import base path problem for REPL and eval (#2757) 2019-08-09 16:33:59 -07:00
Daniel Buckmaster
520bdb6c31 Fix repl crash when deno dir doesn't exist (#2727) 2019-08-08 07:25:39 -04:00
Ryan Dahl
a517513182
Remove Deno.build.args feature (#2728)
This is a minor feature which complicates the build signifigantly.
Removing to ease refactoring the build system:
https://github.com/denoland/deno/issues/2608
2019-08-05 18:00:45 -04:00
Kevin (Kun) "Kassimo" Qian
52c13fb3ed Enforce env permission on homeDir() and execPath (#2714) 2019-08-03 21:34:13 -04:00
Bert Belder
c6861b537e
third_party: upgrade rust crates 2019-08-02 18:59:54 +02:00
Ryan Dahl
3971dcfe10
Use system rustfmt instead of fixed binary (#2701) 2019-07-31 17:11:37 -04:00
Bartek Iwańczuk
e7cee29c84 Add --current-thread flag (#2702) 2019-07-31 11:02:20 -04:00
Bartek Iwańczuk
ff96e3dc63 benchmarks: make latency benchmark less noisy (#2689) 2019-07-28 21:31:18 +00:00
Bartek Iwańczuk
187310a3e1 benchmarks: add bundle size (#2690) 2019-07-28 10:11:08 +00:00
Ryan Dahl
bc12a3ba56
Reorder tools/format.py so slowest are last (#2661) 2019-07-18 15:00:50 -04:00
Bartek Iwańczuk
8214b686ce Refactor DenoDir (#2636)
* rename `ModuleMetaData` to `SourceFile` and remove TS specific
  functionality

* add `TsCompiler` struct encapsulating processing of TypeScript files

* move `SourceMapGetter` trait implementation to `//cli/compiler.rs`

* add low-level `DiskCache` API for general purpose caches and use it in
  `DenoDir` and `TsCompiler` for filesystem access

* don't use hash-like filenames for compiled modules, instead use
  metadata file for storing compilation hash

* add `SourceFileCache` for in-process caching of loaded files for fast
  subsequent access

* define `SourceFileFetcher` trait encapsulating loading of local and
  remote files and implement it for `DenoDir`

* define `use_cache` and `no_fetch` flags on `DenoDir` instead of using
  in fetch methods
2019-07-17 18:15:30 -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
1fde15c0bc
Fix REPL when it receives EOF (#2638) 2019-07-12 10:23:08 -04:00
Yoshiya Hinosawa
a948f9ff54 io: change Reader interface (#2591)
Instead of returning { nread: number, eof: bool }, read() returns EOF | number.
2019-07-06 10:16:03 -04:00
Bartek Iwańczuk
9d18f97327 fix: normalize Deno.execPath (#2598) 2019-06-30 13:32:24 -04:00
Yoshiya Hinosawa
1068b4848c ts_library_builder: update README (#2604) 2019-06-30 10:52:28 -04:00
Long(Tony) Lian
1d0d54247c feat: fetch() now handles redirects (#2561) 2019-06-24 06:34:09 -07:00
Yoshiya Hinosawa
201ddd29a7 fmt_test: resolve old absolute path issue (#2562) 2019-06-22 07:21:39 -07:00
Ryan Dahl
8693d0e0a7 Split up tools/sync_third_party
This is just encoding my actual workflow; not suggesting that this
workflow is ideal. Previously I would edit sync_third_party.py each time
I ran it.
2019-06-12 10:57:58 -04:00
Ryan Dahl
912e4f7177
feat: default output filename for deno bundle (#2484)
And improve bundle docs
2019-06-11 14:38:19 -04:00
Ryan Dahl
508e9849ff
Move TestFmt to end of tests (#2491) 2019-06-11 11:11:12 -04:00
Andy Hayden
5960e398ec make tests quieter (#2468)
Don't mix every http request in with the tests output.
Don't print that the file servers are starting unless
-vv flag is passed.

Capture the output of run with run_output which returns
stdout, stderr and exit_code. Test against this rather
than relying on sys.exit.
2019-06-08 07:46:57 -04:00
Kurt Mackey
4ea2df6759 http benchmarks with unique ports (#2471) 2019-06-07 15:36:26 -04:00
Kurt Mackey
9a6cfd653d add tcp proxy benchmarks + split out website section for proxy req/s (#2464) 2019-06-06 22:46:18 -04:00
Kurt Mackey
341150266e add http proxy benchmark (#2462) 2019-06-06 12:44:35 -04:00
Bartek Iwańczuk
43c6c1a9f5 Refactor test infrastructure (#2432)
* use subclass of unittest.TestCase for all test cases

* allow to run single test file (eg. python tools/integration_tests.py)

* test filtering (via --pattern/-p CLI flag)

* use common CLI parser for all tests:
  usage: test.py [-h] [--failfast] [--verbose] [--executable EXECUTABLE]
               [--release] [--pattern PATTERN] [--build-dir BUILD_DIR]

  optional arguments:
  -h, --help            show this help message and exit
  --failfast, -f        Stop on first failure
  --verbose, -v         Verbose output
  --executable EXECUTABLE
                        Use external executable of Deno
  --release             Test against release executable
  --pattern PATTERN, -p PATTERN
                        Run tests that match provided pattern
  --build-dir BUILD_DIR
                        Deno build directory

* respect NO_COLOR variable
2019-06-03 12:35:55 -04:00
Kitson Kelly
d438a6d259 Upgrade TypeScript to 3.5.1 (#2437) 2019-06-01 11:13:36 -04:00
Andy Hayden
8fb44eba5b chore: refactor python tests to use unittest (#2414)
Move every test to a method on DenoTestCase.
test.py is a single TestSuite of every TestCase.

Add a Spawn context manager for http_server,
this is explicitly used where it's needed.
Each python test file can now be run independently
without needing to manually run http_server.

Add --help and consistent flags using argparse for
each python test, including --failfast.

Use ColorTextTestRunner so that '... ok' is green.
2019-05-30 16:40:40 -04:00
Christian Moritz
0e780e8948 tools/setup: don't download sccache if --no-binary-download is passed 2019-05-30 13:18:30 -04:00
Christian Moritz
15dadf812c tools/third_party: add DENO_GN_PATH and DENO_NINJA_PATH env vars 2019-05-30 13:18:30 -04:00
Ryan Dahl
64d2b7bc90 Change tools/fmt_test.py to always download prettier
This is to ensure a more fair test. Also we were already downloading
from the internet since we changed the URL to use std@v0.5.0. This
change exposes an OOM bug, which is then fixed in the upcoming compiler
refactor by changing checkJs compiler option to false.
2019-05-29 07:53:39 -04:00
Bartek Iwańczuk
824542e61e chore: Port Python tests to unittest (#2408) 2019-05-27 09:27:55 -04:00
Bartek Iwańczuk
1105982586 re-fix permissions for dial and listen (#2400)
Closes #2397
2019-05-23 23:47:55 +03:00
Bert Belder
7d03a63ded
Revert "Fix permissions for dial and listen (#2373)"
This reverts commit 7219787894.
2019-05-22 19:47:15 -07:00
Bartek Iwańczuk
7219787894 Fix permissions for dial and listen (#2373) 2019-05-17 14:50:53 -04:00
Bert Belder
6e7ccf0b49
tools: format .gn files in the 'cli' directory 2019-05-16 19:57:31 -07:00
Ryan Dahl
160a815767
Rename HTTP benchmarks (#2350) 2019-05-14 15:22:50 -04:00
Kevin (Kun) "Kassimo" Qian
d9cdc6788b fix: support relative path for whitelisting (#2317)
Using `std::fs::canonicalize` to expand path to full existing path, such that
later attempt to loop-pop and compare path segment would work.
2019-05-09 12:20:34 -04:00
andy finch
2edee3367d First pass at permissions whitelist (#2129) 2019-05-08 19:20:30 -04:00
Bartek Iwańczuk
ac8c6fec5b Refactor unit test runner (#2294)
Properly discovers the permissions needed for each test.
2019-05-08 19:15:24 -04:00
Bartek Iwańczuk
f6a9d7d717 add "deno run" subcommand (#2215) 2019-05-03 17:15:16 -04:00
Kevin (Kun) "Kassimo" Qian
3608117132 feat(cli cmd): deno xeval (#2260) 2019-05-03 16:24:09 -04:00
Ryan Dahl
e4354ce739
Re-enable networking unit tests (#2268)
The following tests were commented out in order to get this to go green :
- bodyMultipartFormData
- bodyURLEncodedFormData
- fetchRequestInitStringBody
- netConcurrentAccept
- netListenAsyncIterator
2019-05-02 17:08:02 -04:00
Bartek Iwańczuk
8978870808 Rename test targets (#2262) 2019-05-01 09:48:56 -04:00
andy finch
c36b5dd01c Make error in ast_util more informative. (#2252) 2019-04-30 12:15:03 -07:00
Bartek Iwańczuk
b7d8a0c6f6 Rename deno prefetch to deno fetch (#2210) 2019-04-25 13:47:33 -04:00
Ryan Dahl
9dfebbc949
Fix eslint warnings (#2151)
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
Co-authored-by: LE GOFF Vincent <g_n_s@hotmail.fr>
2019-04-21 16:40:10 -04:00
Bartek Iwańczuk
cd19da62d9 Refactor CLI entry point (#2157)
Changes "deno --types" to "deno types"
and "deno --prefetch" to "deno prefetch"
2019-04-21 11:34:18 -04:00
Jonathon Orsi
648d2f3ba8 fix typo in permissions explanation (#2162) 2019-04-20 15:12:00 -04:00
Ryan Dahl
f03280ead1
benchmarks: improve syscall and thread count (#2140) 2019-04-17 15:47:07 -04:00
Ryan Dahl
f20b05af24
benchmarks: fix max_memory and clean up (#2137) 2019-04-17 10:52:36 -04:00
Dmitry Sharshakov
0c46358220 Add max memory benchmark (#2061) 2019-04-16 13:57:05 -04:00
Yoshiya Hinosawa
5a3f3a7445 upgrade deno_std & add workaround prettier issue (#2087) 2019-04-09 13:32:48 -04:00
Vincent LE GOFF
734cf781c6 Allow high precision performance.now() (#1977) 2019-04-08 16:22:40 -04:00
Ryan Dahl
3995473925
Fix unit_tests.py (#2065)
They were silently broken in 780e72 due to flag reordering. This commit
also includes a new assert that would avoid that kind of failure in the
future.
2019-04-07 20:58:26 +03:00
Bartek Iwańczuk
780e72ab6a Refactor CLI flag parsing (#2025) 2019-04-07 01:13:06 +03:00
Ryan Dahl
cb11bbd839
Test TCP_NODELAY in hyper_hello (#2060) 2019-04-06 16:56:30 +03:00
Ryan Dahl
9e890c260b Fix tools/docs.py (#2055) 2019-04-06 15:54:54 +02:00
andy finch
7a3df0a184 Add worker benchmarks (#2059) 2019-04-05 22:57:59 +03:00
Kevin (Kun) "Kassimo" Qian
534b8d3021 Follow redirect location as new referrers for nested module imports (#2031)
Fixes #1742
Fixes #2021
2019-04-01 21:46:40 -04:00
andy finch
b0a23beb8f Add web worker JS API (#1993)
* Refactored the way worker polling is scheduled and errors are handled.
* Share the worker future as a Shared
2019-04-01 15:09:59 -04:00
Kitson Kelly
ada5ffa610 Upgrade to TypeScript 3.4.1 (#2027) 2019-04-01 12:47:25 -04:00
Bert Belder
97265895ba
Publish rust crate on crates.io (#2024) 2019-03-31 17:22:02 -04:00
Ryan Dahl
6744bb8d75
Call ninja directly from build.rs (#2020) 2019-03-30 19:27:00 -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
Ryan Dahl
c25e262b04
Merge the --recompile and --reload flags (#2003) 2019-03-28 16:05:41 -04:00
Bartek Iwańczuk
5ae78eb1de Update ts_library_builder (#1920) 2019-03-25 00:23:24 -04:00
Bernard Lin
3cc90d9bcf Add benchmark for max latency (#1975) 2019-03-24 23:36:27 -04:00
Ryan Dahl
12753e492f
Website updates (#1984) 2019-03-22 11:34: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
c7d81fa9ff Make write_gn_args.py quiet 2019-03-19 03:50:47 -04:00
Ryan Dahl
8f3d0ca664 Deprecate DENO_BUILD_MODE=release
Instead use: tools/build.py --release
2019-03-19 03:50:47 -04:00
andy finch
e98d3391de Re-enable permissions prompt tests (#1957) 2019-03-18 18:54:59 -04:00
Ryan Dahl
44773c9b0f Integrate //core into existing code base
This disables a few tests which are broken still:
- tests/error_004_missing_module.test
- tests/error_005_missing_dynamic_import.test
- tests/error_006_import_ext_failure.test
- repl_test test_set_timeout
- repl_test test_async_op
- repl_test test_set_timeout_interlaced
- all of permission_prompt_test
2019-03-18 17:17:08 -04:00
Ryan Dahl
33438b83a2 Re-order tests for sanity 2019-03-18 17:17:08 -04:00
andy finch
08a674bf91 More permissions prompt options (#1926) 2019-03-18 16:46:23 -04:00
Ryan Dahl
59ac2063e0 Remove unused tools/build_test.py file 2019-03-18 14:07:24 -04:00
Ryan Dahl
52b7cc5499 Fix entry point for tools/docs.py 2019-03-18 14:07:24 -04:00
Ryan Dahl
1811318097 core: Behavior shouldn't be generic
We always pass around Box<[u8]>, and adding this generic is an
unnecessary complication.

Add deno_core_http_bench_test to test.py

sharedQueue works on deno_core_http_bench
2019-03-15 10:58:18 -04:00
Ryan Dahl
76c73ec61e
Add --no-binary-download option to setup.py (#1916) 2019-03-15 10:06:17 -04:00
andy finch
7e09221031 --no-prompt flag for non-interactive environments (#1913) 2019-03-13 12:43:47 -04:00
Kitson Kelly
75a500ba81 Update to TypeScript 3.3 (#1908) 2019-03-11 10:53:18 -04:00
Kitson Kelly
034e2cc028 Migrate from tslint to eslint for linting (#1905) 2019-03-09 12:30:38 -05:00
Kitson Kelly
24d6bf6aeb Remove 'deno' builtin module (#1895) 2019-03-07 21:56:56 -05:00
Kitson Kelly
0473d832c1 Cleanup node_modules, update packages (#1894)
And fix new lint issues.
2019-03-07 08:53:56 -05:00
Andy Hayden
91364cabae Replace deno.land/x/std with deno.land/std (#1890) 2019-03-06 10:23:47 -05:00
Bert Belder
ee29ed79a7
tools/run_node: only create 'node_modules' symlink once
Previously run_node.py would always attempt to remove and then re-create
the 'target/xx/node_modules' symlink. This causes sporadic build errors
on windows when multiple build targets that use run_node.py are being
built concurrently.
2019-03-04 21:01:52 -08:00
Bert Belder
860be9f0de
tools: remove fix_symlinks() function
This fixes an issue on Windows that causes build to fails when
fix_symlinks() is called concurrently with another build step.

It is also no longer necessary, since recent versions of git know how to
properly create symbolic links on checkout.
2019-03-04 21:01:52 -08:00
Yoshiya Hinosawa
a7bb8ccce8 Add Deno.version.gnArgs (#1845)
To display specific build args passed to GN.
2019-03-01 19:33:28 -05:00
Ryan Dahl
b8a537d020
deno_core (#1827)
A new low-level crate with focus on speed. 
This doesn't yet hook into the existing code base.
2019-02-26 17:36:05 -05:00
Ryan Dahl
e109941bd2 Improve readme (#1822) 2019-02-21 20:22:44 -08:00
Dmitry Sharshakov
4dc4329e27 Add execPath function (#1743) 2019-02-15 11:22:02 -05:00
Ryan Dahl
748e456cdb
Use prebuilt hyperfine (#1755) 2019-02-14 18:18:24 -05:00
Ryan Dahl
f29c40a433
Decouple ts_library_builder from std/testing (#1749) 2019-02-12 15:22:43 -05:00
Ryan Dahl
0b0d962eb9
Revert "Rewrite tools/format.py in deno (#1528)" (#1752)
tools/format.ts is making CI flaky and it's difficult to run right now.
Reverting to tools/format.py

This reverts commit f19622e768.
2019-02-12 15:20:32 -05:00
Kitson Kelly
a21a5ad2fa Add Deno global namespace (#1748)
Resolves #1705

This PR adds the Deno APIs as a global namespace named `Deno`. For backwards
compatibility, the ability to `import * from "deno"` is preserved. I have tried
to convert every test and internal code the references the module to use the
namespace instead, but because I didn't break compatibility I am not sure.

On the REPL, `deno` no longer exists, replaced only with `Deno` to align with
the regular runtime.

The runtime type library includes both the namespace and module. This means it
duplicates the whole type information. When we remove the functionality from the
runtime, it will be a one line change to the library generator to remove the
module definition from the type library.

I marked a `TODO` in a couple places where to remove the `"deno"` module, but
there are additional places I know I didn't mark.
2019-02-12 10:08:56 -05:00
Ryan Dahl
a4dec944bc
web design (#1728) 2019-02-11 17:41:13 -05:00
Kevin (Kun) "Kassimo" Qian
489c69f8e1 REPL multiline support with recoverable errors (#1731) 2019-02-11 14:01:28 -05:00
Yoshiya Hinosawa
d26655371b fix: improve formatting (#1732) 2019-02-11 12:57:26 -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
Yoshiya Hinosawa
1502051453 Add read permission for format.ts (#1726) 2019-02-09 10:55:18 -05:00
J2P
65cafd2edf Add --allow-read test code 2019-02-09 05:57:41 -05:00
Bert Belder
394b81de15
Move .rustfmt.toml to the repository root
This allows rustfmt to automatically pick it up.
It's right there with similar files such as .prettierrc.
2019-02-08 20:06:21 -08:00
Ryan Dahl
526497bc29
Adds deno.noColor (#1716) 2019-02-08 22:13:04 -05:00
Yoshiya Hinosawa
4c869dc885 Use std/prettier in deno //tools/format.ts (#1708) 2019-02-08 21:38:59 -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
Ryan Dahl
46804e50ed
Color exceptions (#1698) 2019-02-07 20:07:20 -05:00
Dmitry Sharshakov
5c50d2819b Add emojis to permission prompts (#1684) 2019-02-07 16:19:50 -05:00
Dmitry Sharshakov
aea7884d11 Make integration tests standalone (#1671)
Co-authored-by: Sergey Golovin <golovim@gmail.com>
2019-02-07 15:11:03 -05:00
Ryan Dahl
79b95341d9
Upgrade V8 to 7.4.98 (kKeep fix) (#1640)
* Upgrade V8 to 7.4.98 (kKeep fix)

https://github.com/denoland/deno/issues/814
https://bugs.chromium.org/p/v8/issues/detail?id=8761

* fix tests
2019-02-06 23:43:31 -05:00
Kitson Kelly
48fedee34e Add WebAssembly to runtime library (#1677)
This also modifies the `ts_library_builder` to support inlining assets.

Includes integration tests from @sh7dm
2019-02-05 08:12:58 -05:00
Dmitry Sharshakov
181b03273c Add isTTY function (#1622) 2019-02-02 22:05:30 -05:00
Ryan Dahl
18b815e336 Support --fmt 2019-02-02 17:48:43 -05:00
Ryan Dahl
98d20cd178 Make it possible to run one integration test at a time 2019-02-02 17:33:21 -05:00
Kevin (Kun) "Kassimo" Qian
3650bae5f6 Add --info flag to display file info (compiled code/source map) (#1647) 2019-02-02 01:28:31 -05:00
Ryan Dahl
eff7a1484e
Upgrade deno_std to bef7ba (#1609) 2019-01-31 18:11:37 -05:00
Ryan Dahl
06c0e29118 Fix cpplint 2019-01-30 15:53:23 -05:00
Ryan Dahl
b9e368cb4c
Add snapshot_compiler.bin to binary size benchmark (#1611) 2019-01-30 14:01:13 -05:00
Sergey Golovin
240ca25617 Add repl functions "help" and "exit" (#1563) 2019-01-29 14:41:12 -05:00
JaePil Jung
7f88b5fff3 Minor code cleanups (#1570) 2019-01-24 10:54:43 -05:00
Yoshiya Hinosawa
77114fbda4 chore: update license lines (#1557) 2019-01-21 13:03:30 -06:00
Yoshiya Hinosawa
f19622e768 Rewrite tools/format.py in deno (#1528)
Note: findFiles and findFilesWalk are borrowed from the previous
attempt of @pseudo-su (#1434)
2019-01-17 15:09:44 -05:00
J2P
befc6b2e76 Fixed copyright of types output 2019-01-17 14:44:31 -05:00
Kitson Kelly
00b655add1 Add globalThis definition to runtime (#1534) 2019-01-16 17:57:15 -05:00
Kevin (Kun) "Kassimo" Qian
c870cf4082 Add --prefetch flag for deps prefetch without running (#1475) 2019-01-15 12:19:58 -05:00
Ryan Dahl
8ae178e9ce
Fix permission_prompt_test (#1509) 2019-01-13 12:09:45 -05:00
JaePil Jung
37e3db00a2 Add --allow-run test code (#1504) 2019-01-12 11:29:45 -05:00
Maxim Mazurok
3634488caa Fix flaky REPL test (#1491)
Fixes #1490
2019-01-09 15:32:05 -05:00
Ryan Dahl
4f62a56f90
Move testing module to deno_std (#1451)
Upgrades deno_std submodule.
2019-01-03 14:55:22 -05:00
Kevin (Kun) "Kassimo" Qian
8d452d74fa Support more fetch init body types (#1449) 2019-01-03 06:41:20 -05:00
Ryan Dahl
2c477dd7cb Happy new year! 2019-01-02 02:37:08 +01:00
Kevin (Kun) "Kassimo" Qian
73fb98ce70 Lazily create .mime files only with mismatch/no extension (#1417) 2018-12-27 20:40:06 +00:00
Ryan Dahl
32e1641628 deno_net -> deno_std rename
Also don't format external js/deps
2018-12-24 11:31:17 -05:00
Kevin (Kun) "Kassimo" Qian
cbee2895b3 Implement Body.formData for fetch (#1393) 2018-12-21 17:09:53 -05:00
Ryan Dahl
aa66ef98ea
travis: Set CARGO_HOME to third_party/rust_crates (#1370)
Adds prebuilt hyperfine and sccache binaries 

Only build test_cc for LSAN

Add Cargo.lock

Only run benchmarks in master
2018-12-18 21:09:30 -05:00
Ryan Dahl
7a0d9370e8 Load sccache from S3 on CI 2018-12-18 15:15:08 -05:00
Bert Belder
b40326875c Remove prebuilt v8 support 2018-12-18 15:15:08 -05:00
Ryan Dahl
0481d6c2c0
Enable jumbo build in release. (#1362) 2018-12-18 09:16:49 -05:00
Ryan Dahl
bba1a0d44a tools: remove_and_symlink can be skipped on unix
This is more optimial and this fixes a problem where occasionally
remove_and_symlink will error with:

    gen/compiler_bundle/main.js --sourcemapFile /Users/rld/src/deno --silent
    Traceback (most recent call last):
      File "../../tools/run_node.py", line 18, in <module>
        util.remove_and_symlink(target_rel, "node_modules", True)
      File "/Users/rld/src/deno/tools/util.py", line 103, in remove_and_symlink
        symlink(target, name, target_is_dir)
      File "/Users/rld/src/deno/tools/util.py", line 141, in symlink
        os.symlink(target, name)
    OSError: [Errno 17] File exists
2018-12-11 15:07:38 -05:00
Ryan Dahl
9a960b9f58
Use stderr for exceptions (#1303) 2018-12-10 17:50:41 -05:00
Bartek Iwańczuk
ba429ccde8 Add benchmark for net/http (#1289) 2018-12-07 16:36:16 -05:00
Kitson Kelly
6cc89b9e27 Use alternate TextEncoder/TextDecoder implementation (#1281)
This is faster and smaller.
2018-12-06 10:01:15 -08:00
Ryan Dahl
8373046719 Add LSAN build to travis.
For now it only runs test_cc and has to filter out a test which leaks.
However we will expand this over time until the entire build is LSAN clean.
2018-12-03 15:31:06 -08:00
Bert Belder
7d02971c2c
third_party: symlink //third_party/v8/build => //build 2018-12-03 12:14:05 -08:00
Ryan Dahl
c5d8cf8eb6 Use pylint. 2018-11-30 11:33:45 -08:00
Ryan Dahl
122ccce89a Fix flaky REPL test. 2018-11-30 09:23:04 -08:00
Ryan Dahl
cc126528f0
Add prebuilt/win/v8_debug.lib (#1249)
The windows debug build was broken due to libc link errors.
2018-11-29 23:25:59 -08:00
Ryan Dahl
1ac2934604 Make //build a git submodule
So we can float patches before sending them upstream.
https://github.com/denoland/chromium_build

Remove build_extra/toolchain
2018-11-29 23:12:38 -08:00
Ryan Dahl
84a1b4d793 Move libdeno build config to libdeno/BUILD.gn 2018-11-29 17:46:09 -08:00
Andy Hayden
e6309b78b0 Cleanup setTimeout repl test and alphabetize tests 2018-11-29 11:53:17 -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
Ryan Dahl
89096c9210 Use prebuilt V8 library by default.
This still retains the ability to build V8 from scratch, with an number
of configurations. The prebuilt binaries were created using

DENO_BUILD_MODE=release ./tools/build.py v8
2018-11-27 15:47:31 -08:00
Ryan Dahl
65cce40a89 gitignore vim .swp files 2018-11-27 15:47:31 -08:00
Bert Belder
48bf4062e4 First pass at running subprocesses (#1156) 2018-11-16 12:07:40 +08:00
Ryan Dahl
765863e87a Add a simple doc generation tool.
And website upload tool.
2018-11-14 17:34:28 -08:00
Kitson Kelly
34b6b86c76 Ensure global type instances are available. 2018-11-09 08:39:49 -08:00
Ryan Dahl
a18e51fd61
build: Use target/ instead of out/ (#1153) 2018-11-08 10:38:20 -08:00
Andy Hayden
e9327be831 Support repl multiline input (#1165) 2018-11-06 11:19:16 -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
Kitson Kelly
5e48a681c4 Fix issue with runtime lib generation. 2018-11-05 07:17:47 -08:00
Kitson Kelly
4e07783663 Improve integration test harness (#1142) 2018-11-04 11:52:31 -08:00
Kitson Kelly
765f229357 Improve robustness of lib builder. 2018-11-04 05:56:49 -08: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
0fbee30f05 Make format.py less verbose. 2018-10-30 17:42:19 -07:00
Kevin (Kun) "Kassimo" Qian
a68403d090 Add application/x-typescript mime type support 2018-10-28 11:18:53 -07:00
Ryan Dahl
6adc87e3eb
Ergonomics: Prompt TTY for permission escalation (#1081) 2018-10-27 06:11:39 -07:00
Bert Belder
dfe21af237
Disable treat_warnings_as_errors on windows when sccache is in use 2018-10-26 04:14:37 +02:00
Ryan Dahl
231bb9cfb6 Add error_001.ts to execution time benchmarks.
Ref #1087
2018-10-25 16:12:52 -07:00
Ryan Dahl
3438dbe350 Remove deno_ns 2018-10-24 14:52:38 -07:00
Ryan Dahl
a4fb5175ce
Add node_tcp target to http_benchmark. (#1074) 2018-10-23 15:02:30 -07:00
Bert Belder
e9bf206416
format: don't format files in third_party
It's annoying, and it also makes appveyor slow because it will re-upload
the third_party cache every time something changes in there.
2018-10-23 18:51:06 +02:00
Bert Belder
0dda87f962
third_party: install yapf with pip 2018-10-23 16:51:54 +02:00
Bert Belder
4ceb205512
Bundle pywin32 in third_party 2018-10-23 16:29:46 +02:00
Kitson Kelly
8ef7da2611 Enforce media types 2018-10-23 04:48:00 -07:00
Kitson Kelly
64f0dfd50e Improve globals for runtime type library 2018-10-22 19:37:38 -07:00
Ryan Dahl
47c96a6152 CI should fail when code isn't formatted. 2018-10-21 13:59:53 -07:00
Ryan Dahl
bb9a927bd5 Add yapf to third_party. 2018-10-21 13:59:53 -07:00
Kyra
fbb3f05b6f Add URLSearchParams (#1049) 2018-10-21 08:07:29 -07:00
Kevin (Kun) "Kassimo" Qian
86409eb836 Add Rust hyper http benchmark (#1043)
* Add go net/http benchmark

* Forget about Go. Let's do Rust Hyper

* Update BUILD.gn

* Rename
2018-10-20 19:56:16 -07:00
Yoshiya Hinosawa
f44ecdff97 feat: show only 20 benchmark data in inde.html 2018-10-20 08:07:20 -04:00
Ryan Dahl
00884d7164 Add rustfmt to third_party. 2018-10-20 01:19:59 -04:00
Andy Hayden
2d583f85ee Exit http_server.py if it's crashed 2018-10-20 00:27:37 -04:00
ztplz
b809a82fd9 Add missing copyrights (#1024) 2018-10-19 15:25:29 -04:00
J2P
198fa31ec1 Fix a typo in http_benchmark.py 2018-10-19 09:07:55 -04:00
Ryan Dahl
213885a9d0 Optimization: Reuse ArrayBuffer during serialization. 2018-10-17 20:20:06 -04:00
Ryan Dahl
4e2e185de7 Add tools/build_test.py 2018-10-17 20:20:06 -04:00
Ryan Dahl
21bcdd49cd Only run deno during ./tools/http_benchmark.py 2018-10-17 16:02:00 -04:00
Yoshiya Hinosawa
d4afbe6ef3 improve benchmark page performance and fix test (#1002) 2018-10-16 12:00:47 -04:00
Amos Lim
a90cf4c2ee Interrupt http_server.py by ctrl + c (#1001) 2018-10-16 11:54:08 -04:00
Ryan Dahl
c61a0f2f84 First pass at http benchmark. 2018-10-16 09:37:38 -04:00
Ryan Dahl
62962e71fe Fix throughput_benchmark 2018-10-16 09:37:38 -04:00
Ryan Dahl
590feb1c71 Format 2018-10-16 09:37:38 -04:00
Jinho Bang
28682a1d2c Fix a binary size regression
This patch changes Jumbo build to use only in debug mode.
2018-10-15 14:22:15 -04:00
Kitson Kelly
25c97962f4 Update to TypeScript 3.1 and ts-simple-ast 17 (#980) 2018-10-15 12:47:48 -04:00
Amos Lim
15590a0cde Specify deno_dir location with env var DENO_DIR (#970)
(Use C:\deno instead of c:\deno in appveyor config because it's cloned to c:\ by clone_folder variable in .appveyor.yml. On the other hand, build directory is pointed to C:\ by $(APPVEYOR_BUILD_FOLDER) so that test targets are placed on separated partitions.)
2018-10-15 12:08:19 -04:00
Kitson Kelly
298d755152 Add support for --types 2018-10-11 20:29:43 -04:00
Kitson Kelly
ec402c6932 Replace globals.d.ts with lib.deno_runtime.d.ts 2018-10-11 20:29:43 -04:00
Ryan Dahl
d4f72e18be
Improve tools/unit_tests.py (#958)
Checks the output more carefully. The first line of output from
js/unit_tests.ts should be something like "running 96 tests"
And the last line should be something like
"test result: ok. 96 passed; 0 failed; 0 ignored; 0 measured; 36
filtered out"
This parses those strings and make sure they align.

This will catch silent death bugs.
2018-10-11 16:56:50 -04:00
Ryan Dahl
c814d5a914
Add throughput benchmark (#961) 2018-10-11 16:55:22 -04:00
Bartek Iwańczuk
51f9331ecb Add deno.metrics() 2018-10-11 15:45:51 -04:00
Kevin (Kun) "Kassimo" Qian
888824c617 Add redirect follow feature (#934) 2018-10-09 20:31:06 -04:00
cedric05
ba6c617432 tslint warning supress using tsconfig 2018-10-05 21:13:35 -04:00
Ryan Dahl
ab952e3340 Format 2018-10-05 14:27:47 -04:00
Chris Bystrek
6a649012bc Changed tools/lint.py to lint the entire js and tests directories. (#900)
* Changed tools/lint.py to lint the entire js and tests directorys and sub directories, currently it was pointing at tsconfig and would only lint files that were part of js/main.ts or node_modules/typescript/lib/lib.esnext.d.ts and their dependencies

* Broke the typescript linting out into separate steps for the main typescript programing and tests.

* Fixed linting issues in ts tests.
2018-10-05 07:29:55 -04:00
Bert Belder
8ca082c508
tools/format: format markdown files with prettier 2018-10-04 02:02:23 -07:00
Ryan Dahl
b7fd6e9c69 Add fetch_deps syscall count benchmark. 2018-09-30 16:35:12 -04:00
Bert Belder
4c6f37cec3
tools: define ERROR_INVALID_PARAMETER in utils.py
Fixes #865.
2018-09-30 12:44:58 -07:00
Andy Hayden
bf93ca54dd Ensure spawning python server twice raises an exception.
Previously it would dump the traceback but not raise.
It's unclear if serve_forever could crash for some other reason,
but the main reason spawn throws is if the port is already in use.
2018-09-27 15:49:43 -04:00
Kevin (Kun) "Kassimo" Qian
32806b1871 Expand binary size benchmark (#830) 2018-09-26 14:16:22 -07:00
Bert Belder
206d4f5c17
tools/setup: detect sccache presence and use it to cache rustc targets 2018-09-26 10:25:58 -07:00
Bert Belder
f10012facf
build: let rustc pick filenames, remove rust depfile hack
Fixes #787.
2018-09-26 10:25:49 -07:00
Bert Belder
531a427d88
build: do not quote cc_wrapper on windows
This brings behavior inline with the unix toolchain, which also leaves
cc_wrapper unquoted. If necessary, add quotes in the setup phase instead.
2018-09-26 09:52:30 -07:00
Bert Belder
023b4640fc
tools/setup: add gn_string() utility function 2018-09-26 09:52:30 -07:00
Bert Belder
1b9424e9d7
tools: add shell_quote() utility function 2018-09-26 09:52:30 -07:00
Bert Belder
3a6da19eb8 Revert "Expand binary size benchmark (#830)"
This reverts commit 8c7416b3f6.
2018-09-26 08:35:12 -04:00
Kevin (Kun) "Kassimo" Qian
8c7416b3f6 Expand binary size benchmark (#830) 2018-09-25 20:08:09 -04:00
Ryan Dahl
1956d6846c Also plot cold start time. 2018-09-25 13:13:09 -04:00
Kevin (Kun) "Kassimo" Qian
d957f8ebc2 Add syscall count benchmark for 002_hello.ts (#820)
* Add syscall count tracking for benchmark

* Add fetch_deps thread benchmark

* Switch to `strace -c` for syscall parsing

* Spawn http_server during benchmark (for fetch)

* Rename `benchmarks` to `exec_time_benchmarks`

* Update app_test.js
2018-09-24 23:58:18 -04:00
Kevin (Kun) "Kassimo" Qian
1729bdb0d7 Add thread count benchmark (#811) 2018-09-24 18:12:52 -04:00
Bert Belder
2e3a8b495d
tools: make color output work on windows 2018-09-24 13:45:03 -07:00
Yoshiya Hinosawa
9203e983d1 benchmark: track the binary size (#804) 2018-09-23 11:54:07 -04:00
Yoshiya Hinosawa
3747ec57e0
Add benchmark tools (#777) 2018-09-22 01:09:25 -07:00
Bert Belder
516e1da54c
Revert "Add benchmark tools (#777)"
This reverts commit 3ad48bdb3e.
2018-09-21 15:18:44 -07:00
Yoshiya Hinosawa
3ad48bdb3e Add benchmark tools (#777) 2018-09-21 12:06:59 -04:00
Bert Belder
3574c7a5d3
tools/setup: on windows, make env vars not affect gn gen output 2018-09-10 04:29:18 +02:00
Bert Belder
8ace0f142f
tools/format: don't format files in third_party on Windows 2018-09-10 02:20:21 +02:00
Bert Belder
9b052ace09
tools/setup: replace generated args.gn unless handcrafted 2018-09-08 23:55:18 +02:00
Bert Belder
30b268dd7d
build: override host_toolchain on windows to use sccache with v8 2018-09-08 23:55:18 +02:00
Ryan Dahl
7784b0e17e Move installer to its own repo.
https://github.com/denoland/deno_install

1. This allows the installer to use a more aggressive CI build matrix
   with different version of python.

2. Running the installer during tools/test.py artificially inflates our
   download stats.

3. Running the installer during tools/test.py makes the test script
   dependent on having an internet connection.

4. Running the installer during tools/test.py introduces a race
   condition during release - where it tries and fails to download the
   latest release in build process that should be uploading that release.
2018-09-06 10:22:15 -04:00
Ryan Dahl
43aead854f Add --reload to JS unit tests.
Fixes #677
2018-09-05 22:27:47 -04:00
Bert Belder
2c0d00840d
tools/build: skip build path detection when given '-C «dir»' ninja arg 2018-09-05 01:24:55 +02:00
Ryan Dahl
787832c68e Format. 2018-09-03 10:45:58 -04:00
Andy Hayden
89dddca3b4 Refactor release_url to take platform as an argument 2018-09-01 10:40:08 -04:00
Andy Hayden
c0ef797fc9 Avoid using temporary directory in install.py 2018-09-01 10:40:08 -04:00
Mirko Jotic
3d063223cc Add release installer (#639) 2018-08-31 20:55:04 -04:00
Aaron Power
f131445a46 Implemented deno.env and refactored flags.rs 2018-08-31 13:18:24 -04:00
Ryan Dahl
a63d794c7f Fix lastchange rebuild problem.
lastchange.py is causing a full rebuild on every commit. This is a
temporary workaround.
2018-08-29 12:05:58 -04:00
Bert Belder
542eb54254
tools: make sha256sum.py more generic and move it to 'tools' 2018-08-29 12:28:11 +02:00
Bert Belder
fe9ca53bc2
tools/setup: don't overwrite existing args.gn 2018-08-28 02:01:42 +02:00
Bert Belder
7e3d9f8f2b
format 2018-08-28 02:01:41 +02:00
Ryan Dahl
85ebc6b1ac Run lastchange.py during setup.py 2018-08-27 19:23:53 -04:00
Ryan Dahl
e13f3c10ca Add ability to unit test by permissions. 2018-08-27 17:51:24 -04:00
Ryan Dahl
fde96a8e43 allow_reuse_address for test http server. 2018-08-27 17:51:24 -04:00
Bert Belder
4747f50f52
tools/format: fix clang-format glob pattern 2018-08-26 18:27:12 +02:00
Bert Belder
3bcf7e271f
Build: make it possible to use ccache/sccache on windows
Also auto-detect the availability of sccache in setup.py.
2018-08-25 14:16:41 +02:00
Ryan Dahl
e2f9b0e6fd First pass at HTTP imports
Implement --reload

Integrate hyper errors into DenoError

In collaboration with Tommy Savaria <tommy.savaria@protonmail.ch>
2018-08-23 09:41:08 -04:00
Ryan Dahl
7d7263c48f Implement writeFileSync
In collaboration with Tommy Savaria <tommy.savaria@protonmail.ch>
2018-08-22 18:39:07 -04:00
Ryan Dahl
790baae673 Expose deno.exit() and add test. 2018-08-21 18:34:56 -04:00
Ryan Dahl
f7fd238953 Enable http server for tests. 2018-08-20 16:53:39 -04:00
Ryan Dahl
81b042c8db
Rename :all target to :default 2018-08-18 01:09:48 +02:00
Bert Belder
3640ea4c0d
build: don't clobber rust depfile mtime when fixing its paths
This avoids ninja unnecessarily rebuilding rust targets.
Add a check for problems like these to be run on appveyor.
2018-08-18 00:58:01 +02:00
Ryan Dahl
3f7d61a589 Add yarn.lock to third_party
Prevents upgrades with running tools/sync_third_party.py
2018-08-17 15:11:32 -04:00
Yoshiya Hinosawa
67d89ff692 chore: download clang-format from google storage 2018-08-17 12:58:58 -04:00
Yoshiya Hinosawa
565a21eb0e chore: format files in tests/ 2018-08-17 12:43:21 -04:00
mervynzhang
e41ee9bf4c import sys since sys.exit(1) used 2018-08-17 11:00:57 -04:00
Kitson Kelly
c4cafcecb1 Support wildcard matching of output in tests 2018-08-10 11:50:45 -07:00
Ryan Dahl
9d90c4ae95
Adds js/unit_tests.ts (#448) 2018-08-09 14:48:17 -07:00
Ryan Dahl
038c5f0727 Remove RUSTFMT_FLAGS 2018-08-08 18:35:26 -07:00
Ryan Dahl
4a1ccdeadb Change rustfmt flags. For v0.8.2. 2018-08-08 18:35:26 -07:00
Ryan Dahl
f632797bc8 Print output even when test failed. 2018-08-08 18:35:26 -07:00
Ryan Dahl
942b3090e7 Remove yarn.lock
Fixes #393.
2018-08-08 10:08:18 -07:00
Ryan Dahl
229e3b80c5 Improve rust build docs 2018-08-03 10:04:12 -04:00
Ryan Dahl
7fe656f4b9 Add 005_more_imports.ts
And run check_output_test in order.
2018-08-02 12:49:40 -04:00
Bert Belder
788b0795de
util: make symlink() work on older Windows versions 2018-08-02 02:59:37 +02:00
Bert Belder
e5b7d31aba
tools/setup: avoid running gn gen twice in the same output directory 2018-08-02 02:59:36 +02:00
Bert Belder
1a6ba1f812
tools: fix tools/clang symlink on startup 2018-08-02 02:59:36 +02:00
Ryan Dahl
b44c235579 Install sysroot on linux. 2018-07-29 00:24:16 -04:00
Ryan Dahl
db65c723ae Rename run_hooks.py to setup.py
Moves 'gn gen' into setup.py

Make tools/build.py more ergonomic.
2018-07-29 00:24:16 -04:00
Kitson Kelly
5d146ed742 Ignore any generated TypeScript files 2018-07-27 10:06:29 -04:00
Ryan Dahl
6b49944da1 Simplify run_rustc.py output. 2018-07-26 11:38:03 -04:00
Kitson Kelly
5562c36824 Remove msg_generated hack (#409) 2018-07-25 23:07:50 -04:00
Bert Belder
4d08bb85a4
Clean up and fix tools
* Make sync_third_party work in general
* Un-break build.py and run_hooks.py on windows
* Partially fix format.py on windows
* Reduce code duplication between run_hooks and sync_third_party
2018-07-25 20:13:17 +02: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
Ryan Dahl
0213053856 Remove handlers crate target.
- Add build scripts for Rust flatbuffers.
- Rewrites some reply.cc methods in Rust.
- Changes some struct elements to table in msg.fbs (rust flatbuffers
  lacks support currently)
- Renames handlers_test to test_rs.
- This reorg is needed to make progress on the code cache handler.
2018-07-24 12:29:54 -04:00
Ryan Dahl
7baf8a0fd1 Fix recursive globbing in tools/format.py
And use third_party/depot_tools/gn.
2018-07-24 12:29:54 -04:00
Bert Belder
dcaf9b3227
Make check_output_test.py tolerate CRLF line endings in test output 2018-07-22 03:50:22 +02:00
Ryan Dahl
dff5c16e85
Add tools/test.py test runner. (#384) 2018-07-21 19:08:24 -04:00
Bert Belder
709b0cb90c Fix symlink creation on windows 2018-07-21 13:04:11 -04:00
Ryan Dahl
5d1cb54261 Add deno_third_party as git submodule. 2018-07-21 13:04:11 -04:00
Ryan Dahl
21c4b8a42d Use 2 space indent.
Apologies for the churn, but my screen is small. rustfmt assumes big
monitors.
2018-07-20 03:46:26 -04:00
Ryan Dahl
a7bf154cb8 Wrap rust at 80 columns. 2018-07-20 03:46:26 -04:00
Bert Belder
422150c797
Link rust_test targets with external linker, fix handlers_test linkage 2018-07-19 21:55:39 +02:00
robbym
d93bd4b127 Use Cargo to install rust deps into //third_party/rust_crates (#383) 2018-07-18 20:00:53 -04:00
Ryan Dahl
d78254009e Reduce unnecessary build output. 2018-07-18 15:43:50 -04:00
Ryan Dahl
f9e0a5dece gclient sync should be shallow 2018-07-13 14:38:50 -04:00
Ryan Dahl
791357115c
Remove -f option from rustfmt. (#356)
And add support for RUSTFMT_FLAGS (Some people might need -f option)
2018-07-10 19:18:30 -04:00
Ryan Dahl
c4d61accf4 Fix rust depfile problem.
Fixes #316.
2018-07-09 16:50:33 -04:00
Yoshiya Hinosawa
46db20172c chore: use local prettier 2018-07-09 11:05:02 -04:00
Bert Belder
7c5db007de tools: fix windows
This fixes most things, but format.py doesn't work yet, because
yapf is broken due to some depot_tools shimming python.
2018-07-08 13:40:18 -04:00
Ryan Dahl
f917c5e722 Clean up tools/
- Factor out tools/util.py
- Move js/*.py to tools.
- Rewrite tools/format.sh in python.
- Run lint first in travis.
2018-07-08 13:40:18 -04:00
Yoshiya Hinosawa
6c79b471aa tools: generate third_party dir and symlinks from the script. (#346)
Everyone needs to run ./tools/build_third_party.py after this commit.
2018-07-08 02:18:14 -04:00
Hao Li
cf0c0668da Rewrite tools/lint.sh in python (#343) 2018-07-08 01:56:03 -04:00
Ryan Dahl
d30664958e Further gn/rust cleanups
Move rust.gni and deno.gni into build_extra/

Removes rust_library which was only an action. This instead defines
rust_component, which is an action plus a gn "component" target
to expose the resulting object file. This simplifies link code in
rust.gni.

Support rust modules that can be linked into C++.
2018-07-06 10:46:30 -04:00
Faris Amali Alis
bfe08aa462 Rename deno.cc to binding.cc and other renames (#339)
Fixes #336
2018-07-06 03:19:19 -04:00
Yoshiya Hinosawa
31eda28a64 chore: clean up build_third_party.py 2018-07-05 20:57:42 -04:00
Ryan Dahl
06a28998ea Replace protobufs with flatbuffers 2018-07-04 16:43:08 -04:00
Yoshiya Hinosawa
2060bc939d Add tools/build_third_party.py (#328)
Fixes #312
2018-07-04 15:04:59 +02:00
Ryan Dahl
15d6541d4d Separate deno.gni and rust.gni and clean up.
Put rust depfile in target_out_dir because the depfile isn't in the
outputs, the gen directory doesn't get created.

Prefix rlib files with lib.
2018-07-04 14:24:25 +02:00
Yoshiya Hinosawa
6f7ca760b8 move v8 to third_party/v8 (#322) 2018-07-03 10:15:32 +02:00
Parsa Ghadimi
235e549035 Add tslint 2018-07-01 21:41:53 +02:00
Yoshiya Hinosawa
ea35281d63 chore: move //src/js to //js
refs: #285
2018-07-01 17:22:36 +02:00
Ryan Dahl
9528ee4a42 Add cpplint to third_party 2018-07-01 15:28:36 +02:00
Yoshiya Hinosawa
6830370c3e reorg: Move GN files to root (#309)
refs: #285
2018-07-01 13:47:28 +02:00
Ryan Dahl
467408c6dc Reorg: Move tools/ and gitignore to root. 2018-06-28 21:56:53 +02:00