[cvs-nhc98] cvs commit: nhc98/src/prelude/FFI CTypes.h CTypes.hs CTypesExtra.hs

Malcolm Wallace Malcolm.Wallace at cs.york.ac.uk
Sun Jun 13 06:31:16 EDT 2004


Sven Panne <Sven.Panne at aedion.de> writes:

> >      Cannot find constructor for newtype: InfoData 92 NHC.FFI.CPtrdiff IEnone 92 (DataNewType False [])
> 
>     Cannot find constructor for newtype: InfoData 77 NHC.FFI.CInt IEnone 77 (DataNewType False [])

OK, I've just checked in a new version of include/NHC/FFI.hi, copied
directly from the build tree (src/prelude/FFI/FFI.hi) incorporating
your recent changes.

You will need to ensure that the 'base' library package gets re-built
using this new interface:

    rm targets/`harch`/libraries
    rm -r targets/`harch`/obj/libraries/base
    make libraries

If it still doesn't work, then it is possible that your application
code is importing, re-exporting, then re-importing CPtrdiff() and
CInt() abstract, i.e. without their constructors.  That can confuse
nhc98, which needs the definition info to appear in the interface
file, in order to determine what the real underlying type is.  This is
probably a bug, but one that is not easy to fix without introducing
other bugs.  The workaround is to mention the constructors on
import/export, viz, CInt(..).

Regards,
    Malcolm


More information about the Cvs-nhc98 mailing list