0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-02-23 05:33:33 -05:00
denoland-deno/cli/tsc
Nathan Whitaker 174e496847
refactor: remove tsc snapshot (#27987)
Removes the TSC snapshot to unblock the V8 upgrade (which enables shared
RO heap, and is incompatible with multiple snapshots).


this compresses the sources and declaration files as well, which leads
to a roughly 4.2MB reduction in binary size.

this currently adds about 80ms to deno check times, but code cache isn't
wired up for the extension code (namely `00_typescript.js`) yet

```
❯ hyperfine --warmup 5 -p "rm -rf ~/Library/Caches/deno/check_cache_v2" "../../deno/target/release-lite/deno check main.ts" "deno check main.ts"
Benchmark 1: ../../deno/target/release-lite/deno check main.ts
  Time (mean ± σ):     184.2 ms ±   2.2 ms    [User: 378.3 ms, System: 48.2 ms]
  Range (min … max):   181.5 ms … 189.9 ms    15 runs

Benchmark 2: deno check main.ts
  Time (mean ± σ):     107.4 ms ±   1.2 ms    [User: 155.3 ms, System: 23.9 ms]
  Range (min … max):   105.3 ms … 109.6 ms    26 runs

Summary
  deno check main.ts ran
    1.72 ± 0.03 times faster than ../../deno/target/release-lite/deno check main.ts
```

---------

Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2025-02-10 16:39:18 +00:00
..
dts feat(unstable): type lint plugin visitor (#28005) 2025-02-07 13:01:33 +01:00
00_typescript.js feat: TypeScript 5.7 (#27857) 2025-01-31 16:07:42 -05:00
97_ts_host.js refactor: remove tsc snapshot (#27987) 2025-02-10 16:39:18 +00:00
98_lsp.js refactor: remove tsc snapshot (#27987) 2025-02-10 16:39:18 +00:00
99_main_compiler.js refactor: remove tsc snapshot (#27987) 2025-02-10 16:39:18 +00:00
_analyze_types_node.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
compiler.d.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
diagnostics.rs fix(check): compiler options from workspace members (#27785) 2025-01-28 10:49:58 -05:00
mod.rs refactor: remove tsc snapshot (#27987) 2025-02-10 16:39:18 +00:00
README.md feat: TypeScript 5.4 (#23086) 2024-03-26 18:52:57 -04:00

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:

  1. Checkout denoland/TypeScript repo in a separate directory.
  2. Add Microsoft/TypeScript as a remote and fetch its latest tags
  3. Checkout a new branch based on this tag.
  4. Cherry pick the custom commit we made in a previous release to the new one.
  5. This commit has a "deno.ts" file in it. Read the instructions in it.
  6. Copy typescript.js into Deno repo.
  7. Copy d.ts files into dts directory.
  8. 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/