deno/tools
Nayeem Rahman 97954003cc
feat: queueMicrotask() error handling (#15522)
Adds error event dispatching for queueMicrotask(). Consequently unhandled errors are now reported with Deno.core.terminate(), which is immune to the existing quirk with plainly thrown errors (#14158).
2022-08-21 20:16:42 +02:00
..
bench
release chore: make the start_release workflow go faster (#15416) 2022-08-08 19:31:45 -04:00
wpt feat: queueMicrotask() error handling (#15522) 2022-08-21 20:16:42 +02:00
build_benchmark_jsons.js
cut_a_release.md chore: make the start_release workflow go faster (#15416) 2022-08-08 19:31:45 -04:00
deno.lock.json chore: update deno automation to 0.12 (#15248) 2022-07-19 16:35:58 -04:00
flamebench.js fix(tools): upgrade to new Deno.spawn api (#15265) 2022-07-21 14:15:15 +05:30
format.js fix(tools): upgrade to new Deno.spawn api (#15265) 2022-07-21 14:15:15 +05:30
lint.js Fix: Honor linter rules in CI and locally (#15492) 2022-08-19 08:17:18 -04:00
README.md
update_typescript.md fix: update to TypeScript 4.7.4 (#15022) 2022-07-04 15:13:50 +10:00
upload_wptfyi.js
util.js fix(tools): upgrade to new Deno.spawn api (#15265) 2022-07-21 14:15:15 +05:30
wgpu_sync.js fix(tools): upgrade to new Deno.spawn api (#15265) 2022-07-21 14:15:15 +05:30
wpt.ts chore(tools): update wpt setup to new spawn api (#15407) 2022-08-05 12:48:54 +02:00

Tools

Documentation for various tooling in support of Deno development.

format.js

This script will format the code (currently using dprint, rustfmt). It is a prerequisite to run this before code check in.

To run formatting:

deno run --allow-read --allow-write --allow-run --unstable ./tools/format.js

lint.js

This script will lint the code base (currently using dlint, clippy). It is a prerequisite to run this before code check in.

To run linting:

deno run --allow-read --allow-write --allow-run --unstable ./tools/lint.js

Tip: You can also use cargo to run the current or pending build of the deno executable

cargo run -- run --allow-read --allow-write --allow-run --unstable ./tools/<script>

flamebench.js

flamebench.js facilitates profiling and generating flamegraphs from benchmarks.

General usage:

 ./tools/flamebench.js
flamebench <bench_name> [bench_filter]

Available benches:
op_baseline
ser
de

To profile the op_baseline bench, run ./tools/flamebench.js op_baseline, this will run all 3 benches in `op_baseline.

Often when profiling/optimizing, you'll want to focus on a specific sub-bench, flamebench supports a bench/test filter arg like the regular cargo commands. So you can simply run ./tools/flamebench.js op_baseline bench_op_async or ./tools/flamebench.js op_baseline bench_op_nop to profile specific benches.

Tip: the [bench_filter] argument doesn't have to be an exact bench name, you can use a shorthand or a partial match to profile a group of benches, e.g: ./tools/flamebench.js de v8

wgpu_sync.js

wgpu_sync.js streamlines updating deno_webgpu from gfx-rs/wgpu.

It essentially vendors the deno_webgpu tree with a few minor patches applied on top, somewhat similar to git subtree.

  1. Update COMMIT or V_WGPU in ./tools/wgpu_sync.js
  2. Run ./tools/wgpu_sync.js
  3. Double check changes, possibly patch
  4. Commit & send a PR with the updates