-
Notifications
You must be signed in to change notification settings - Fork 118
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
Surprising lack of recompilation with conditionally defined rules #523
Comments
By the way, this is the same issue as what pacak mentions in #519 (comment) (pacak and I work for the same project). |
In theory rules shouldn't be conditionally defined, and I think I'll stick with that as the official rule. That said, in your instance, I can't see why Shake should do the new update, and to do it Shake might be doing more work than it needs to - so I think this might be legitimate for people who know what they are doing, and thus it's a Shake bug. I'll continue investigating tomorrow. |
Thank you for your reply. I'll remove conditionally defined rules from our build system. |
See #524 (comment) for an explanation. |
I expect the following program to print "update" twice, but it only prints it once with shake HEAD (760dddb). shake-0.15.11 prints "update" twice as expected:
I'm not completely sure if this is a bug in shake or I'm just misusing the library, because I don't know under which circumstances rules can be conditionally defined (if at all). However I find the behavior surprising because whenever a rule for "0.out" is defined, it depends on "0.in", so it seems like "0.out" should be rebuilt in the third invocation of shake.
The text was updated successfully, but these errors were encountered: