[Yhc] Re: Issue 122 in project yhc

Neil Mitchell ndmitchell at gmail.com
Sat Feb 24 13:26:08 EST 2007


Hi Thorkil,

> Attached a tar file with what I believe you are asking for. In addition to
> Package.hcr, multiple1.txt explains in more detail what I did. The remaining
> files may also be useful.
>
> And I just tried scons build yhc without the type=release, so that the ghc
> compiles become without -O. And now the correct "Not found" message is
> produced. So the case leans definitely towards an error in the ghc-6.6 that I
> am using.

That does look like an error, and it doesn't lean towards an error in
the generated core, as the release build goes from the same core. I
just downloaded 6.6 on this machine and rebuilt Yhc, and it works
perfectly on x86. I guess that points at a GHC bug in the code
generator.

I've just added some code so it now reads:

case (local,res) of
  ([x], _) -> return x
  (_, [x]) -> return x
  ([], []) -> raiseError $ ErrorFileNone noErrPos askMsg file rs
  (as, bs) ->
      -- ASSERTION TO DEBUG GHC 6.6 WITHOUT -O CODEGEN ON A MAC!
      assert (not $ null $ as ++ bs) $
      raiseError $ ErrorFileMany noErrPos askMsg file (map anyOne (as ++ bs))

That (to me) looks like an assertion that should always be true, but
which appears at first glance to be being violated by GHC 6.6 on a Mac
when compiled without -O. Can you try that on your machine, and see if
it does raise an assertion? If it does, we can then contact the GHC
developers and let them get a minimal test case :)

Thanks

Neil


More information about the Yhc mailing list