-
-
Notifications
You must be signed in to change notification settings - Fork 226
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
Network.AWS.*.Types.Product seems rather demanding to compile #304
Comments
Yes, this is known. At the beginning of all time, there was only a single To break it any further than that requires checking for dependencies between the types and then splitting into |
I'll also add that a non-negligible part of the compilation time is due to |
I can believe it. It'd be interesting to see whether generating explicit instance declarations helps with that. |
Any changes recently that may have worsened the situation? After a long while with all cores maxed out building
GHC 7.10.3 terminates, but is agonisingly slow as well. |
No changes aside from new types generated by upstream service definition changes have been added since this issue was opened. Do you still get this issue if you pass I've recently made some inroads into splitting the types modules up further, but have yet to complete it or benchmark any potential compilation time gains. |
EDIT: amended, I had gotten lost in curated package sets. |
I was just thinking about this again, particularly in regards to the EC2 compile. Some results about the dependency structure of shapes that may be of use:
I therefore reckon you could do get good results by putting all the types related to a single operation into that operation's module, picking out a handful of special cases (e.g. Hope that's of interest. |
Thanks @DaveCTurner, that's helpful and in line with my own findings. The problem is due to the auto-generated nature of the libraries I need to bake some form of maximal independent set calculation on the shape graph into the generation step. This is currently where the work lies, as it needs to be done for all libraries and not just |
I see, yes. I was looking at EC2 since that seems to have the largest set of shapes (by about a factor of 2) so anything that works there has a decent chance of working elsewhere too. I might be able to help with dividing the shapes up into sets that import nicely - I had something a bit different in mind from what you have so far - but I'm a bit daunted about actually generating the code from them. Perhaps it'd work to divide the work up along those lines? |
Given that the
|
Particularly the EC2 one:
I hypothesise this would be better if it were in more, smaller modules. Opening this issue here as I will investigate it at some point if nobody else gets there first, although definitely not before September.
The text was updated successfully, but these errors were encountered: