cvs commit: hugs98/lib/exts CString.hs Storable_aux.h .cvsignore CTypes.hs MarshalAlloc.hs MarshalUtils.hs Storable.hs Storable_aux.c hugs98/src HsFFI.h MkInstal.in connect.h ffi.c hugs.c machdep.c static.c hugs98/tests Readme config.in testScript ...

Alastair Reid reid@glass.cse.ogi.edu
Fri, 21 Jun 2002 16:22:01 -0700


reid        2002/06/21 16:22:01 PDT

  Modified files:
    lib/exts             .cvsignore CTypes.hs MarshalAlloc.hs 
                         MarshalUtils.hs Storable.hs 
                         Storable_aux.c 
    src                  HsFFI.h MkInstal.in connect.h ffi.c 
                         hugs.c machdep.c static.c 
    tests                Readme config.in testScript 
    tests/ffi            FileIO.hs FileIO.output Forms.hs Sin.hs 
                         Types.hs forms_aux.h types_aux.c 
  Added files:
    lib/exts             CString.hs Storable_aux.h 
  Log:
  Big changes:
  
  1) Hugs +G only generates code for files specified on command line.
  2) Hugs now #includes the header file if specified.
  3) Hugs will report use of lib specs as an error.
     (You can turn this off if you #define SILENTLY_IGNORE_FFI_LIB_SPECS)
  4) Hugs now ignores lib specs
  5) The +L flag can be used to specify things you want added to the
     compilation command line.  This would typically be the things you'd
     have specified in your lib specs but it might also be compiler flags,
     preprocessor flags, etc.
  6) Hugs uses a single global namespace for any C code called by ffi code.
  7) make install applies hugs +G to files in lib/exts which contain ffi code
     (The list of files is maintained manually both to keep the makefile
     portable and because some libraries need +L arguments.)
  
       build_libexts	:: hugs$(EXE) install_include
  	./hugs +q -P../lib:../lib/exts Storable     +G +L"Storable_aux.c" < /dev/null
  	./hugs +q -P../lib:../lib/exts MarshalAlloc +G  < /dev/null
  	./hugs +q -P../lib:../lib/exts MarshalUtils +G  < /dev/null
  
     The need to use </dev/null suggests that +G should imply quitting
     before reading commands and maybe +q too.
  
  8) You now have to make install before running the testsuite
  
  Also:
  
    Added CString.hs
    Made CString.hs marginally more like what it should be.
  
  Revision  Changes    Path
  1.2       +3 -0      hugs98/lib/exts/.cvsignore
  1.2       +8 -1      hugs98/lib/exts/CTypes.hs
  1.2       +3 -3      hugs98/lib/exts/MarshalAlloc.hs
  1.2       +2 -2      hugs98/lib/exts/MarshalUtils.hs
  1.5       +51 -51    hugs98/lib/exts/Storable.hs
  1.3       +18 -18    hugs98/lib/exts/Storable_aux.c
  1.5       +18 -19    hugs98/src/HsFFI.h
  1.8       +8 -3      hugs98/src/MkInstal.in
  1.39      +3 -2      hugs98/src/connect.h
  1.14      +41 -36    hugs98/src/ffi.c
  1.85      +20 -7     hugs98/src/hugs.c
  1.53      +5 -5      hugs98/src/machdep.c
  1.75      +18 -16    hugs98/src/static.c
  1.7       +2 -2      hugs98/tests/Readme
  1.2       +5 -0      hugs98/tests/config.in
  1.4       +4 -8      hugs98/tests/testScript
  1.2       +17 -15    hugs98/tests/ffi/FileIO.hs
  1.2       +9 -11     hugs98/tests/ffi/FileIO.output
  1.2       +9 -17     hugs98/tests/ffi/Forms.hs
  1.2       +2 -2      hugs98/tests/ffi/Sin.hs
  1.2       +16 -16    hugs98/tests/ffi/Types.hs
  1.2       +2 -1      hugs98/tests/ffi/forms_aux.h
  1.2       +19 -3     hugs98/tests/ffi/types_aux.c