
reid 2002/08/09 07:25:02 PDT Modified files: docs ffi-notes.txt lib/exts ForeignPtr.hs src .cvsignore HsFFI.h MkInstal.in builtin.c tests testScript Log: Cleanup: ffi-notes: - document ffihugs ForeignPtr: - correct type (oops) HsFFI.h: - rearrange, refactor - I made an effort to change these definitions: typedef float HsFloat; typedef double HsDouble; to the more correct: typedef float HsFloat; typedef float HsDouble; But if you do this, there's no way to implement CDouble so you can't call sin, cos, etc. so I left the definitions alone. The long term fix is obvious: make Hugs support both Float and Double. All the code is in there (grep USE_DOUBLE_PRECISION *.[ch]) - all we have to do is rearrange the ifdefs. I don't propose to do this until after the release. For now, we'll just have to put up with the fact that you lose precision when you pass a double through Hugs. (When we clean this up, I'd like to kill support for HugsAPI1-3, eliminate the duplication between HsFFI.h and prelude.h, cleanup int64 support, etc. and look to see how much of builtin.c, iomonad.c, timeprim.c, dirprim.c, etc. we can kill. Hmmm, can we kill primSinFloat and friends too?) builtin.c: - minor cleanup to do with float/double distinction. MkInstall.in: - made 'make install_ffi' work again testScript: - hardwire the library search path in case anyone has defined HUGSFLAGS to point to some other installation or to a hierarchial install. Revision Changes Path 1.8 +3 -3 hugs98/docs/ffi-notes.txt 1.3 +1 -1 hugs98/lib/exts/ForeignPtr.hs 1.3 +1 -0 hugs98/src/.cvsignore 1.6 +77 -77 hugs98/src/HsFFI.h 1.17 +10 -8 hugs98/src/MkInstal.in 1.29 +20 -12 hugs98/src/builtin.c 1.16 +1 -1 hugs98/tests/testScript