mirror of
https://github.com/denoland/deno.git
synced 2025-03-04 18:12:59 -05:00
![]() In particular this helps startup of the TSC isolate because `00_typescript.js` can use the code cache. Overall, this offsets a fair bit of the hit we took when we removed the TSC snapshot. ``` ❯ hyperfine --warmup 5 -p "rm -rf ~/Library/Caches/deno/check_cache_v2" "./deno-this-pr check main.ts" "./deno-no-snapshot check main.ts" "./deno-with-snapshot check main.ts" Benchmark 1: ../../deno/target/release-lite/deno check main.ts Time (mean ± σ): 145.7 ms ± 3.6 ms [User: 347.6 ms, System: 36.9 ms] Range (min … max): 142.2 ms … 155.9 ms 19 runs Benchmark 2: ./deno-no-snapshot check main.ts Time (mean ± σ): 195.4 ms ± 3.3 ms [User: 397.7 ms, System: 34.9 ms] Range (min … max): 192.1 ms … 206.0 ms 15 runs Benchmark 3: ./deno-with-snapshot check main.ts Time (mean ± σ): 109.0 ms ± 2.2 ms [User: 155.9 ms, System: 19.3 ms] Range (min … max): 106.5 ms … 118.0 ms 26 runs Summary ./deno-with-snapshot check main.ts ran 1.34 ± 0.04 times faster than ./deno-this-pr check main.ts 1.79 ± 0.05 times faster than ./deno-no-snapshot check main.ts ``` |
||
---|---|---|
.. | ||
dts | ||
00_typescript.js | ||
97_ts_host.js | ||
98_lsp.js | ||
99_main_compiler.js | ||
_analyze_types_node.ts | ||
compiler.d.ts | ||
diagnostics.rs | ||
mod.rs | ||
README.md |
tsc
This directory contains the typescript compiler and a small compiler host for the runtime snapshot.
How to upgrade TypeScript.
The files in this directory are mostly from the TypeScript repository. We currently (unfortunately) have a rather manual process for upgrading TypeScript. It works like this currently:
- Checkout denoland/TypeScript repo in a separate directory.
- Add Microsoft/TypeScript as a remote and fetch its latest tags
- Checkout a new branch based on this tag.
- Cherry pick the custom commit we made in a previous release to the new one.
- This commit has a "deno.ts" file in it. Read the instructions in it.
- Copy typescript.js into Deno repo.
- Copy d.ts files into dts directory.
- Review the copied files, removing and reverting what's necessary
So that might look something like this:
git clone https://github.com/denoland/TypeScript.git
cd typescript
git remote add upstream https://github.com/Microsoft/TypeScript
git fetch upstream
git checkout v3.9.7
git checkout -b branch_v3.9.7
git cherry pick <previous-release-branch-commit-we-did>
npm install
npx hereby
rsync built/local/typescript.js ~/src/deno/cli/tsc/00_typescript.js
rsync --exclude=protocol.d.ts --exclude=tsserverlibrary.d.ts --exclude=typescriptServices.d.ts built/local/*.d.ts ~/src/deno/cli/tsc/dts/