-
Notifications
You must be signed in to change notification settings - Fork 4k
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
Certainty of source generators to be realized? #10882
Comments
(I am not an MS insider in any way) @mattwar's issue for this is #5292; spec document here: https://github.com/dotnet/roslyn/blob/features/generators/docs/features/generators.md The functionality is highly anticipated by a number of vocal members of the community, perhaps more than anything else currently on the C#7 list. That said, the features for C#7 are not finalized yet and there is no disclosed ETA at the moment. It is very possible that several features will still be cut and moved to some future release. Nobody wants Roslyn to ship a feature that is broken in some fundamental way and impossible to fix afterwords due to breaking compatibility. If you need it in production code today, I would consider either StackExchange.Precompilation or a hand rolled exe that runs in a pre-compile event from msbuild as is done by @roji's async rewriter; both styles are likely to get you a significant amount of reusable code for the eventuality of generators. |
I can't give you any kind of guarantee that source generators will be shipped. Until it is released any number of unforeseen circumstances could conspire to have the feature miss C# 7. To be clear: Q: What's the approx. ETA for C# 7.0 and how likely would you say source generators in their current form (ish) is part of it? Q: How sure is it something like source generators will end up in sharp Roslyn within reasonable time? (Like 2016-2017) We really like source generators. We feel that they enable a lot of cool stuff and we want them to be in C# 7. Unfortunately I can't give you any guarantees about them. |
I totally understand the uncertainty involved, and that's why I asked for approximate answers / qualified guesses. And those you provided very well meet those expectations. Thanks a lot for taking the time to elaborate, and hinting on related alternatives too! One final minor thing:
Wouldn't that qualify at least for a dedicated label, similar to I won't follow up on that, and don't bother answering if you got better things to do. Just sayin. |
@per-samuelsson OK, there is not a new tag for it. |
It's now been 9+ months since my original question, and my feeling today is that there is still no real commitment being made as to whether source generators will ever make it into a release or not. Especially reading that long December-discussion in #5561, the uncertainty rise. When constantly checking for issue activity tagged On our part, we are now getting to a point where we have to make a hard decision for our pre-compilation story. With RC 3 out, and So can I reuse my questions from OP, adjusted for the new premises of today:
For us, having anything less than "quite likely" on [2] would mean we'd go for one of our backup alternatives. Which is fine, we just need to know. |
We are heads down trying to ship the current version of the languages, IDE and tooling. When we finally get some time to think about future versions, we will take our standard approach. Namely, we will go through all the things we are interested in, but have not gotten to, and we'll reassess if they should go in the next release. I'm sure we'll this feature will be something we look at. Whether we take it or not is not something I know at this point. When we make our decisions on the future work we'll be doing, we'll let everyone know. |
As to your 'timing' questions. I cannot give any strong guidance here. I can say though that SourceGenerators are a massively huge feature. About as large as any single feature I've ever seen come through. Given that, hoping that it will happen in the short term is really stretching it IMO. And i do not think this is a feature that should be 'rushed'. If we do this, i want us to do it well. That means having an excellent story for:
|
I think you where already very clear on that in that December discussion in #5561. I totally respect that and understand your reasoning behind that.
That's fine. What you wrote here already, combined with all the content in #5561 seem enough now for us to make our decision.
I can see that, and understand that has to be your prio at this point. I still had to ask, because what you shipped in RC 3 that other day kind of was the "go" for us to continue on our side. Good luck with that. And again, thanks for taking the time to provide all the feedback! |
We got bruised by the DNX-burial and the dropping of compile modules in particular.
Now we reform, trying to assess if source generators can be an alternative. We're currently building Roslyn locally (generators branch) and are actively trying to port some of our ICompileModule-based bits, mostly to learn and see if we can achieve what we want with that.
Before we spend some major time on it, is it possible to get some kind of commitment on the future of source generators?
In Language Feature Status it's listed as part of C# 7.0 but my feeling is it does not get the same love as some of the other features on that list (e.g. it does not have a dedicated label on the issue tracker, the branch is "future", etc)
Basically, what I'm wondering is
current form (ish) is part of it?
reasonable time? (Like 2016-2017)
The text was updated successfully, but these errors were encountered: