Typing f.e.d.

Manuel M. T. Chakravarty chak at cse.unsw.edu.au
Sun Feb 11 19:51:29 EST 2001


Sven Panne <Sven.Panne at informatik.uni-muenchen.de> wrote,

> I have a small change request regarding foreign export dynamic.
> Currently the FFI doc says:
> 
>    topdecl 
>    : ...
>    ..
>    | 'foreign' 'export' [callconv] 'dynamic' varid :: prim_type -> IO Addr
> 
> GHC additionally allows:
> 
>    prim_type -> IO Ptr
> 
> As usual the FFI "looks through" newtypes.  But now that we have
> FunPtr, the following typing makes much more sense:
> 
>    'foreign' 'export' [callconv] 'dynamic' varid :: prim_type -> IO (FunPtr prim_type)
> 
> where both prim_types have to be the *same*. We should probably allow
> the old Addr-typing as well for some time to facilitate the transition,
> but not the Ptr-typing (bleeding edge people will know what to do :-).
> The corresponding changes to GHC look easy, so I'd like to commit this
> if there are no objections.
> 
> Furthermore, the FFI docs still talk about Addr only, not Ptr/FunPtr.
> Now that Addr is deprecated, this should be changed, too.

Yes, Addr is dead.  So, allowing Addr in f.e.d., or anywhere
else for that matter, can only be for reasons of temporary
backward compatibility.

Cheers,
Manuel




More information about the FFI mailing list