>    * Someone writes a Hugs-based application that uses the
>      Hugs FFI (with the help of Green Card); the application
>      causes Hugs to load a shared object.
>    * A user installs the said application and compiles the shared
>      object with the current GreenCard.h
>    * A new Hugs is released, which changes the binary interface
>      of the FFI - in the process changing GreenCard.h

I may be missing something here, but the binary interface of
the FFI is defined by the calling convention in the 'foreign import'
declaration.  So if my program says

        foreign import stdcall "f" :: Int -> Int

then the binary interface will only change if the "stdcall" interface
changes.  And stdcall (or the C interface, or Pascal, or whatever) are
not defined by us.  For example, if Unix changes its calling convention
then indeed life is going to be difficult.

In short, upgrading Hugs shouldn't change the binary interface
offered by the FFI.  Unless I'm missing somethign.

Simon

Reply via email to