cvs commit: hugs98/lib/exts Storable.hs hugs98/src MkInstal.in
connect.h ffi.c machdep.c static.c storage.c storage.h
Alastair Reid
reid@glass.cse.ogi.edu
Fri, 14 Jun 2002 17:29:10 -0700
reid 2002/06/14 17:29:10 PDT
Modified files:
lib/exts Storable.hs
src MkInstal.in connect.h ffi.c machdep.c
static.c storage.c storage.h
Log:
Tweaked install to install HsFFI.h in $prefix/share/hugs/include
As a result you have to 'make install' before testing the code.
Note: Use of the install directory $prefix/share/hugs isn't really
appropriate since HsFFI.h is machine dependent and any libraries
containing ffi code will be machine dependent too.
Tweaked ffi code to compile the code it generates. (As before, the
code needs autoconfed. It currently uses cc -shared and it assumes
directory separators of "/".)
Note: There's now an awful lot of code scattered around Hugs for
manipulating strings: parsing them, finding substrings (notable
equivalents of gnumake's basename, notdir, dir, etc.). A very
worthwhile task would be to create a proper library of string
manipulation code (taking care of all the overflow issues properly,
etc.) and clean up all the cruft that has accumulated.
A suitable test sequence for the ffi looks like this:
cd unix
./configure --prefix=$HOME/tmp
make install
cc -I. ../lib/exts/Storable_aux.c -c -o ../lib/exts/Storable_aux.o
$HOME/tmp/bin/hugs +G test.hs < /dev/null
$HOME/tmp/bin/hugs test.hs
stty sane
ToDo: Add some file modification time code to build the .{c,so} files
only if needed. Hmmm, but how do we define 'needed'? The right thing
to do is a dependency analysis from this module.
Revision Changes Path
1.2 +2 -2 hugs98/lib/exts/Storable.hs
1.7 +1 -0 hugs98/src/MkInstal.in
1.37 +7 -4 hugs98/src/connect.h
1.7 +93 -8 hugs98/src/ffi.c
1.52 +21 -7 hugs98/src/machdep.c
1.71 +19 -10 hugs98/src/static.c
1.42 +3 -2 hugs98/src/storage.c
1.38 +3 -2 hugs98/src/storage.h