On Jan 8, 2007, at 11:56 AM, Simon Marlow wrote:
Peter Tanski wrote:
To my knowledge a mismatch in calling convention ( __cdecl ->
__stdcall) is not a problem for static libraries but for dynamic
bindings it can lead to very bad things since the stack cleanup
methods (caller, callee) are almost completely the opposite.  Since
the Windows API's (DLL versions) are __stdcall, NativeGen will need
to support __stdcall for dynamic bindings to them.

NCG supports stdcall just fine. It must do: we can foreign import stdcall functions at the moment, the Win32 package is full of them. What problem are you trying to solve here?

There are two issues: explicitly loading DLLs (manually linking them) and creating GHC-compiled libraries as relocatable DLLs. This isn't necessary at the moment, of course but would be very useful for a fully native version because it would allow you to place the DLLs anywhere in the standard MS search path instead of a single location-- programs compiled by GHC would want this. I knew foreign import supported stdcall but I did not know the NCG did. There may be no problem at all except ensuring there are no mismatches (or converting, if necessary). At least conversions in foreign calls may rely on the C compiler which will handle the convention for you with the appropriate declarations.

Cheers,
Pete

_______________________________________________
Cvs-ghc mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to