[nightly] 11-Oct-2004 build of STABLE on Darwin 7.5.0 powerpc(Stealth.local)

Wolfgang Thaller wolfgang.thaller at gmx.net
Mon Oct 11 11:54:09 EDT 2004


Simon Marlow wrote:

> On 10 October 2004 21:01, Sean David Seefried wrote:
>
>> Build description = STABLE on Darwin 7.5.0 powerpc (Stealth.local)
> ...
>> Unexpected failures:
>>    ffi003(normal)
>>    ffi003(optasm)
>>    ffi003(ghci)
>>    ffi003(threaded)
>
> Interesting: all ffi003 failures are via native code.  Wolfgang?

Yes... in fact, the test case is wrong here. It calls printf, a 
variable-argument function, via the ffi, and passes it a double. 
Variable argument functions are officially unsupported by the FFI, and 
really unsupported on PPC if you pass them a floating point value.
The calling convention is different in that case, and there's no way 
for GHC to know.

>>    ffi009(normal)
>>    ffi009(opt)
>>    ffi009(prof)
>>    ffi009(ghci)
>>    ffi009(threaded)
>
> Any idea about this one?

Grmpf. I still only support six parameters for foreign import 
"wrapper". Mac OS X's stack alignment requirement of 16 bytes makes 
this quite hard to do. I should probably just calculate the exact 
[platform-specific] frame size in DsForeign, pass that value to 
createAdjustor, and have the adjustor copy & reshuffle the stack frame 
using that information. I'd say Won't Fix for the STABLE branch, and 
someone please keep mentioning it to me until I do something for the 
HEAD.

>
>>    cg026(optasm)
>
> Another NCG failure - should we ignore this and claim it's fixed in the
> HEAD?

It is. I was not rounding often enough for single-precision floating 
point in the old NCG.

>>    signals001(normal)
>>    signals001(opt)
>>    signals001(optasm)
>>    signals001(prof)
>>    signals001(ghci)
>>    signals001(threaded)
>
> Probably because SIGPOLL is missing, like FreeBSD.  Nothing to worry
> about, but you can create a darwin-specific output file to fix the 
> test.

Right. SIGPOLL? What is SIGPOLL? There is no such thing as SIGPOLL. 
SIGPOLL never existed, anywhere, ever. ;-)

>>    enum01(normal)
>>    enum01(opt)
>>    enum01(optasm)
>>    enum01(prof)
>>    enum01(ghci)
>>    enum01(threaded)
>>    memo001(ghci)
>>    memo002(ghci)
>>    arith016(normal)
>>    arith016(optasm)
>>    arith016(threaded)
>>    tcrun021(ghci)
>
> Could someone investigate these please?

I'll have a look...

Cheers,

Wolfgang



More information about the Cvs-ghc mailing list