-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Add abstraction over non-bootstrapped/bootstrapped/optimised builds #3141
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is getting out of hand, we shouldn't be duplicating so much stuff in our build. We can make functions that return projects and use that to abstract over non-bootstrapped/bootstrapped/optimized, a bit like sbt-crossproject has functions to make jvm and js projects out of one thing.
I started working on factoring out project components and abstracting over non-bootstrapped/bootstrapped/optimized. |
5a5baac
to
b8b8444
Compare
@sjrd could you have a look and tell us if you think this is a sane way to do things or if there's a better way? |
It looks decent as far as the bootstrapped/non-bootstrapped distinction goes. I am less convinced by the optimized distinction. The reason is that you need the bootstrapped and non-bootstrapped projects to cohabit, since the former actually depends on the latter. The optimized versions, however, are just a variant of the bootstrapped thing, IIUC. That is better handled with a dynamic In general, things that can be done with a |
After discussing with @sjrd, we concluded that having the @smarter @allanrenucci WDYT? |
Could you describe that usecase? |
I have two development use cases:
|
I wonder if we could do something a bit more like sbt-crossproject, e.g: lazy val compiler = dottyProject(NonBootstrapped, Bootstrapped, BootstrappedOptimized)
.settings(dottyCompilerSettings)
.bootstrappedSettings(bootstrappedCompilerSettings)
...
lazy val `dotty-compiler` = compiler.nonBootstrapped
lazy val `dotty-compiler-bootstrapped` = compiler.bootstrapped
lazy val `dotty-compiler-bootstrapped-optimized` = compiler.boostrappedOptimized |
I will look to the crossproject idea later. |
No description provided.