Skip to content
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

Whole program js #196

Merged
merged 9 commits into from
Nov 27, 2022
Merged

Whole program js #196

merged 9 commits into from
Nov 27, 2022

Conversation

b-studios
Copy link
Collaborator

@b-studios b-studios commented Nov 25, 2022

WIP.

Idea: also use whole program compilation in JS. We do need to support some form of separate compilation for the website (for performance reasons and to avoid calling eval over and over again -- which results in a quadratic explosion).

However, I first want to make the JS backend conform with all the other backends and THEN think about how to support the website again. Maybe this results in a design that works better in the common case.

For example, it would be fine to not run optimizations on the code generated for the website (so optimizations can be whole-program).

@b-studios
Copy link
Collaborator Author

Update: I am done homogenizing the different backends. This should make it slightly easier for Machine (LLVM, JIT) and mlton to generate code. More importantly. Aggregating all dependencies into a single file is now performed in ONE location. This is important since this way all backends can rely on this fact and do not have to deal with imports anymore.

Even more importantly, we can perform whole program optimizations once for all backends (@fritzladwig).

@b-studios b-studios marked this pull request as ready for review November 27, 2022 18:51
@b-studios b-studios merged commit b11eef8 into master Nov 27, 2022
@b-studios b-studios deleted the refactor/whole-program-js branch November 27, 2022 19:06
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.

None yet

1 participant