snowleopard / hadrian

Hadrian: a new build system for the Glasgow Haskell Compiler. Now merged into the GHC tree!
https://gitlab.haskell.org/ghc/ghc/tree/master/hadrian
MIT License
208 stars 39 forks source link

move ghc-iserv to lib/bin #600

Closed chitrak7 closed 6 years ago

chitrak7 commented 6 years ago

For validation, the testsuite looks for ghc-iserv in lib/bin. This is causing near 200 validation failures. @angerman @snowleopard

snowleopard commented 6 years ago

@angerman What do you think? I'm on Windows, so I don't think I even build iserv on my machine.

izgzhen commented 6 years ago

the location is _build/stage1/bin/ghc-iserv on my Linux machine by the way

angerman commented 6 years ago

This needs to be parameterized. Especially as this will likely move someplace into utils/iserv.../ soon.

angerman commented 6 years ago

In general, we should try not to bend the layout for the testsuite, but adapt the testsuite to the new layout. Again this may need to be parameterized so that the old (make), and new (shake) based buildsystems both work.

snowleopard commented 6 years ago

@angerman See my comment here: https://github.com/snowleopard/hadrian/issues/592#issuecomment-388612287. I don't think I've ever seen any explanation for the rationale behind moving things from bin/lib to bin. If this is a useful feature, there should be a corresponding issue/PR that takes care of the GHC testsuite as well.

snowleopard commented 6 years ago

@chitrak7 @izgzhen There was a recent commit by @alpmestan (#591) where we fixed the path to unlit in a similar way. In the interest of making faster progress with the validation issue, I suggest we move iserv to bin/lib, where it is currently expected by the GHC infrastructure.

@angerman I'm fine to move things around in general, but let's move them in sync with GHC: if iserv should move, it's fine, but there should be corresponding changes in the GHC infrastructure so that we don't need to create elaborate workarounds in Hadrian.

chitrak7 commented 6 years ago

@snowleopard @angerman Current make system does not seem to take the location of ghc-iserv as an argument. I am looking further into this matter, but as of now, path to every other dependency can be specified as an argument (compiler, check-ppr, hp2ps, hsc etc), but not ghc-iserv.

alpmestan commented 6 years ago

I agree with @angerman that we ideally want this to be configurable. It should not be too hard to add an option for pointing to the iserv binary. I would however understand it if you decide to move the binary under lib/bin for now, so that @chitrak7 can make progress on the validation task. I might in fact look into this myself, I think I know what needs to be done in the testsuite driver.

@chitrak7 Do you think you could create a (GHC Trac) ticket with a summary of the problems you get when ghc-iserv is not under lib/bin/, with instructions to reproduce (just hadrian validate?) and assign it to me (I'm alpmestan on trac) ? Thanks!

snowleopard commented 6 years ago

Just an update: iserv has been moved in GHC and I made the necessary changes in Hadrian in https://github.com/snowleopard/hadrian/commit/8dba6748e84c632c3c0302620c3e62c9fcc3e948.

chitrak7 commented 6 years ago

I think we can close it now. The issue has been taken care of!!