[cvs-nhc98] commit

Malcolm Wallace malcolm@sparud.net
Wed, 22 Nov 2000 17:49:00 +0100 (CET)


malcolm: Wed Nov 22 17:49:00 CET 2000
nhc/src/compiler98 FFITrans.hs Foreign.hs TokenId.hs TokenInt.hs

Update of /usr/src/master/nhc/src/compiler98
In directory hinken:/tmp/cvs-serv1015

Modified Files:
	FFITrans.hs Foreign.hs TokenId.hs TokenInt.hs 
Log Message:
(1) An earlier change introduced a wrapper function allowing 
    'foreign import's always to have a pure (non-I/O) type.
    We now do the same thing for 'foreign export's, creating a wrapper
    that uses 'unsafePerformIO'.  (FFITrans.hs)
(2) So the generation of the C-code for foreign imports and exports can
    be simplified substantially now.  (Foreign.hs)
(3) We also take this opportunity to reverse the earlier decision to
    handle tupled result types in the compiler.  Simply treat them
    like any other non-primitive type - i.e. pass it as a single heap 
    value.  (Tools like GreenCard can do some extra work here if needed.)
(4) Improve the printing of type names in reports about foreign calls.