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

Tracking Issue for polymorphization #124962

Open
RalfJung opened this issue May 10, 2024 · 0 comments
Open

Tracking Issue for polymorphization #124962

RalfJung opened this issue May 10, 2024 · 0 comments
Labels
-Zpolymorphize Unstable option: Polymorphization. C-tracking-issue Category: A tracking issue for an RFC or an unstable feature. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@RalfJung
Copy link
Member

RalfJung commented May 10, 2024

This is a tracking issue for polymorphization (-Zpolymorphize).

Current (2024-05) status:

  • no one has worked on it for 4 years yes
  • It mostly works, but there are some bugs remaining where it incorrectly polymorphizes
  • the current implementation is very limited and not really useful
  • @lcnr wants to remove the current implementation and replace it with a different approach

Open problems

Unresolved Questions

  • Does this in any way interact with which code gets monomorphized? For fully monomorphic functions, we sometimes monomorphize and codegen them for no good reason (see here or here). This is very hard to avoid, but it would be good to limit this to fully monomorphic functions. So even with polymorphization, ideally we will not generate code (and evaluate constants) for any function that's not already considered by the collector. Currently, it seems like everything is fine here, but we should have an eye on this.

Implementation history

@RalfJung RalfJung added C-tracking-issue Category: A tracking issue for an RFC or an unstable feature. -Zpolymorphize Unstable option: Polymorphization. labels May 10, 2024
@fmease fmease added the T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. label May 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-Zpolymorphize Unstable option: Polymorphization. C-tracking-issue Category: A tracking issue for an RFC or an unstable feature. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

2 participants