Skip to content

Upgrade glimmer-vm #20842

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 28 commits into from
Feb 13, 2025
Merged

Upgrade glimmer-vm #20842

merged 28 commits into from
Feb 13, 2025

Conversation

NullVoxPopuli
Copy link
Contributor

@NullVoxPopuli NullVoxPopuli commented Feb 7, 2025

Replaces: #20801


Warning

This requires we drop TS < 5, because we need verbatimModuleSyntax. TS v5 came out in March of 2023, so folks have had plenty of time to move to a newer version (and this is even beyond the window of our Major release cadence, and I believe dropping this is fine, even though, we now require consumers use verbatimModuleSyntax.

Most of what's in these VM changes is prep for bigger bugfixes and improvements (especially to debug tooling / inspector stuff).

The timing of this PR is early, as we don't want a big VM upgrade all at once.
Every change has gone through performance testing, and found either no regression, or slight improvement.

Changelog:

Updates:

  • Code supporting partials has been removed
  • Better debug symbols in strict-mode

notes:

long ago, I made https://github.com/NullVoxPopuli/tsc-lite because tsc does not the wrong thing by hiding your most important errors at the top of the buffer (and sometimes you have enough errors that it surpasses your max-buffer, so you can't scroll to the most important error). tsc-lite shows only the first few chunks of the tsc output, so you can focus on what to fix first, in the proper order.

This has come in handy here, as we broke the types in glimmer-vm (they need to be rolled up).

@NullVoxPopuli
Copy link
Contributor Author

Progress
image

This reverts commit b44b166.
…not needed, and is not public API -- it's compiled away during glimmer-vm publish
@NullVoxPopuli NullVoxPopuli marked this pull request as ready for review February 12, 2025 17:39
console.error(chalk.red(err.toString()));
console.error(chalk.red(`Error!`));

if ('passed' in err) {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change will print out:

{ passed: 40140, failed: 4, total: 40144, runtime: 47482 }

where as before it would print out [object Object]

@ef4 ef4 merged commit 91467a6 into emberjs:main Feb 13, 2025
27 checks passed
@kategengler
Copy link
Member

Is our "rolling window" for TS support documented anywhere better than the 'Stability' heading here? https://blog.emberjs.com/stable-typescript-types-in-ember-5-1/

cc @emberjs/typescript-core

@NullVoxPopuli
Copy link
Contributor Author

@NullVoxPopuli NullVoxPopuli deleted the nvp/upgrade-glimmer-vm-0-94 branch March 17, 2025 19:18
@kategengler
Copy link
Member

That doesn't say what our rolling window of support is -- afaict the only place it is somewhat documented is in the CI config.

@NullVoxPopuli
Copy link
Contributor Author

It might be this:

Packages using the “rolling window” policy should normally support all TypeScript versions released during the current ‘LTS’ of other core packages/runtimes/etc. they support, and drop support for them only when they drop support for that ‘LTS’, to minimize the number of major versions in the ecosystem.

So if we have 2+ LTS' with 5.0, we're good with that being our minimum, I think?
With the same logic, if we have 2+ LTS' with 5.7, we're good with that being our minimum? 🙈

@kategengler
Copy link
Member

I understand what the rolling support window concept is -- I am looking for somewhere we have documented which literal versions are supported by which versions of Ember that could be linked to in the release blog post. How can users easily tell which versions of Ember support which TS versions?

@NullVoxPopuli
Copy link
Contributor Author

I haven't seen that information exist anywhere.

Do we have similar information for node support? should it live in the same place?

@kategengler
Copy link
Member

Node support is here https://github.com/ember-cli/ember-cli/blob/master/docs/node-support.md
Which should also probably be linked from the website, at very least.

@gitKrystan
Copy link
Contributor

afaict the only place it is somewhat documented is in the CI config

Indeed this is the case.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants