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

Requesting implicitly generated outputs #15742

Open
cameel opened this issue Jan 20, 2025 · 0 comments
Open

Requesting implicitly generated outputs #15742

cameel opened this issue Jan 20, 2025 · 0 comments
Labels
low effort There is not much implementation work to be done. The task is very easy or tiny. medium impact Default level of impact should have We like the idea but it’s not important enough to be a part of the roadmap.

Comments

@cameel
Copy link
Member

cameel commented Jan 20, 2025

Feature requested by @alcuadrado.

When the compilation of a specific contract is requested, the compiler may implicitly compile other contracts but will not include their outputs unless they were also requested.

This hides information that could potentially be used by frameworks to avoid unnecessary recompilation in some cases. For example when performing incremental compilation for specific files one by one, the framework could notice that it has already received outputs for one of the files it was planning to request and skip it.

While the extra information can always be requested explicitly, it's not always easy for the user to determine which contracts and outputs can be requested without triggering extra unwanted work, because this changes between compiler versions (e.g. recently as a result of #15373) and the fact that the implicit compilation even happens and under which conditions is not documented.

The feature could work either as an option telling the compiler to include all generated outputs, even if not requested or by allowing the user to conditionally request specific contracts/outputs, only if they happen to be generated anyway.

@cameel cameel added low effort There is not much implementation work to be done. The task is very easy or tiny. medium impact Default level of impact should have We like the idea but it’s not important enough to be a part of the roadmap. labels Jan 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
low effort There is not much implementation work to be done. The task is very easy or tiny. medium impact Default level of impact should have We like the idea but it’s not important enough to be a part of the roadmap.
Projects
None yet
Development

No branches or pull requests

1 participant