-
Notifications
You must be signed in to change notification settings - Fork 37
Rules for rts/rts.cabal are broken #655
Comments
To produce So, this is not a bug but rather an unfortunate and bad (in my opinion) design decision. I'm happy to unlock the configure rule but regularly going back and forth on this is a bit silly. We should finally make this decision for good. |
I must say it's hard to distinguish this behaviour from a bug... And I guess people are also required to know when to rerun the configure script, and what inputs it takes? It seems a bit of a nightmare the way it currently is... Anyway, happy to close this as "expected" behaviour. |
I agree that this looks and quacks like a bug. @bgamari @hvr @angerman: I believe you all insisted on not allowing Hadrian to run the configure script automatically. What do you think of this issue? I think for non-expert users who don't build GHC every day this will definitely be very confusing. On the other hand, expert users who know and use various special flags with the configure script can certainly learn to run Hadrian with the |
I'd just like to throw my hat in saying that I agree with @angerman , @hvr and @bgamari here. I hate Aside from it being unusual, I'm also not sure how you'd actually get it correct either. Would you be extracting the configuration flags from When The amount of ways this could go wrong is quite large, why open up that can of worms. It seems quite logical to me that if you make the conscious effort to change a configuration input file, you must manually reconfigure. You never know the state of my console or environment at the |
@Mistuke how do you concretely suggest solving the problem at the top? How am I to know that changing |
@ndmitchell do what I wanted to do for the makefile-based system already but refrained from (because Hadrian came along and made it seem like wasted effort): let the build-system perform the |
@hvr sounds good! If the configure output was purely an input (had no significant dependencies on in-source stuff) then it's much easier to do either way. |
Are there any significant dependencies to in-source entities you're worried about? |
@ndmitchell the typical way you solve this is having the build system compare the timestamps on the input and generated file and issue an appropriate warning. Now whether you want this to be a warning or a hard abort can be a config flag, I assume Hadrian has an equivalent to |
I like @hvr's solution. Most of the |
@hvr solution just moves the goal post, a person would then modify configure and wonder why the .in file wasn't changed. or modify You're hacking around a fundamental property of autoconf for very little gain. I for one, would like an option to turn off this "feature" as I wouldn't trust it with a 10 foot pole. |
@Mistuke is right, my suggested solution only addresses part of the problem; specifically the part where you want to optimize the cabal.in -> cabal transformation for whe you're just messing with the ...and once you modify the |
Yes, I agree. The two solutions are not mutually exclusive. Implementing @hvr's is easier and solves this particular issue, so I don't see any harm in implementing it immediately. @Mistuke's proposal to introduce warnings for outdated configure-generated files is useful too, but it's not obvious to me what the right implementation is, so perhaps it deserves a separate issue. |
@snowleopard I think having I'd also minimize the problem using @hvr's suggestion. |
Two observations:
rts/rts.cabal.in
doesn't seem to changerts/rts.cabal
.rts/rts.cabal
and then rebuilding results in a complaint that the rule that was meant to producerts.cabal
didn't.Seems like there's a few issues around there? This is on Mac with the
--configure
argument not set.Reason for wanting to tweak
rts.cabal.in
after the fact was #614.The text was updated successfully, but these errors were encountered: