RE: GHC FFI Return Type Bug

2001-09-10 Thread Julian Seward (Intl Vendor)
| Speaking of 5.02 . Could someone enlighten us that are not on | the CVS mailing list about the state of things? When can we | expect the release? If I'm feeling optimistic, late this week; otherwise, sometime next week. We've had some stability problems, but I hope these are now solved.

Re: GHC FFI Return Type Bug

2001-09-10 Thread Alastair David Reid
Thanks. I think the decision here is to do the safe thing and mask the return results ourselves, since it's only one extra insn. This won't make it into 5.02, tho. So GHC's Int/Word implementation is different from Hugs'? Hugs represents Word8 (say) by a 32 bit int but doesn't guarantee

Re: GHC FFI Return Type Bug

2001-09-10 Thread Marcin 'Qrczak' Kowalczyk
10 Sep 2001 13:20:33 -0600, Alastair David Reid [EMAIL PROTECTED] pisze: So GHC's Int/Word implementation is different from Hugs'? Hugs represents Word8 (say) by a 32 bit int but doesn't guarantee that the top 24 bits are all zero. GHC does similarly, except that it does guarantee that

Re: FWD: Re: GHC FFI Return Type Bug

2001-08-08 Thread Fergus Henderson
Sigbjorn Finne [EMAIL PROTECTED] wrote: Julian Seward (Intl Vendor) [EMAIL PROTECTED] writes: | char fooble ( ... ) | { | return 'z'; | } | | on an x86, 'z' will be returned at the lowest 8 bits in %eax. What I | don't know is, is the C compiler obliged to clear the

Re: FWD: Re: GHC FFI Return Type Bug

2001-08-08 Thread Fergus Henderson
On 08-Aug-2001, Fergus Henderson [EMAIL PROTECTED] wrote: Sigbjorn Finne [EMAIL PROTECTED] wrote: Julian Seward (Intl Vendor) [EMAIL PROTECTED] writes: | char fooble ( ... ) | { | return 'z'; | } | | on an x86, 'z' will be returned at the lowest 8 bits in

RE: GHC FFI Return Type Bug

2001-08-07 Thread Julian Seward (Intl Vendor)
Sigbjorn Am confused by your answer. | char fooble ( ... ) | { | return 'z'; | } | | on an x86, 'z' will be returned at the lowest 8 bits in %eax. What I | don't know is, is the C compiler obliged to clear the upper 24 bits of | %eax, or does that onus fall on the callee? | |

Re: GHC FFI Return Type Bug

2001-08-07 Thread Carl R. Witty
Sigbjorn Finne [EMAIL PROTECTED] writes: Julian Seward (Intl Vendor) [EMAIL PROTECTED] writes: Hmm, we're looking at this. However, I don't really know what C is or is not supposed to do here. Given char fooble ( ... ) { return 'z'; } on an x86, 'z' will be returned

Re: GHC FFI Return Type Bug

2001-08-07 Thread Ashley Yakeley
At 2001-08-07 11:13, Carl R. Witty wrote: You can see that the code for f is: call g andl $255,%eax ret So gcc believes that a function which returns a value of type unsigned char is not responsible for clearing the high 3 bytes of %eax. This is to be expected; in most

Re: GHC FFI Return Type Bug

2001-08-07 Thread Sigbjorn Finne
Julian Seward (Intl Vendor) [EMAIL PROTECTED] writes: | char fooble ( ... ) | { | return 'z'; | } | | on an x86, 'z' will be returned at the lowest 8 bits in %eax. What I | don't know is, is the C compiler obliged to clear the upper 24 bits of | %eax, or does that onus

GHC FFI Return Type Bug

2001-08-05 Thread Ashley Yakeley
Has anyone else come across this? I've only tried this with Word8 but I suspect this is a problem with all return types smaller than four bytes. I've entered this as GHC bug #448104. http://sourceforge.net/tracker/index.php?func=detailaid=448104group_id=8 032atid=108032 Here's the C code: