Hi Petra, Since you are a system administrator, I asume that you will also want to install FranTk so other people can use it. I'm not sure this is possible. I did manage to get it working for myself localy, but a "make install" doesn't do anything. If you are in a hurry, you can use the fixes below and let the users copy your directory and make their programs in the FranTk/demos directory. The whole directory is about 27M. Like always, a better solution is to wait a little: According to the news on the FranTk homepage the library will become part of hslibs. This means that it will be distributed with ghc and it should also have a proper installation. I would wait for that. I will CC the mail to haskell@haskell.org, maybe someone there can give you an estimate on when FranTk will be released as part of hslibs. Regards, Jan To get FranTk for ghc 4.06 to work with ghc 4.08 apply the following fixes: Run configure like normal, i.e.: ./configure --prefix=/scratch/kort/pkgs/frantk Change the file FranTk/src/FranSrc/Compatibility.ghc.hs to ======================================================================== -- this module is for GHC; GSL module Compatibility ( double2Float , yield , debugMsgLn , setDebug , mkWeakIORef , toInt , fromInt ) where import GlaExts import NumExts(doubleToFloat) import PrelRead(readDec) import IOExts import Concurrent import Exception double2Float = doubleToFloat setDebug :: Bool -> IO () setDebug _ = return () debugMsgLn :: String -> IO () debugMsgLn s = assert (trace s `seq` True) $ return () ======================================================================== In the file FranTk/src/FranTkSrc/Makefile change the line: HC_OPTS+= -i../FranSrc:../TclHaskellSrc -fallow-overlapping-instances -fallow-undecidable-instances -syslib misc to: HC_OPTS+= -i../FranSrc:../TclHaskellSrc -fallow-overlapping-instances -fallow-undecidable-instances -syslib data In the file FranTk/demos/Makefile change the line: HC_OPTS+= -i../src/FranTkSrc:../src/FranSrc:../src/TclHaskellSrc -fallow-overlapping-instances -fallow-undecidable-instances -syslib misc to: HC_OPTS+= -i../src/FranTkSrc:../src/FranSrc:../src/TclHaskellSrc -fallow-overlapping-instances -fallow-undecidable-instances -syslib data If the compiler complains about not finding the file "tcl.h", in the file FranTk/src/TclHaskellSrc/Makefile change the rule: tclhaskell.o: tclhaskell.c tclhaskell.h $(HC) -c tclhaskell.c to: tclhaskell.o: tclhaskell.c tclhaskell.h $(HC) -I/opt/arch/lib/tk8.3/include -c tclhaskell.c where /opt/arch... is the place "tcl.h" and "tk.h" are. In the directory FranTk/src/TclHaskellSrc do: rm *.hi *.o In the file FranTk/src/TclHaskellSrc/Makefile add TclPrim.hs to the HS_SRCS list. In the directory FranTk/src/FranSrc do: rm *.hi In the directory FranTk/demos do: rm *.hi And then continue the normal installation with: gmake boot gmake all
want to install FranTk so other people can use it. I'm not sure this is possible.
sure it is .. and it is rather easy to make it known to ghc (so that -syslib frantk works). just add these lines to the driver script (around line 2740, where all the other syslib entries live) frantk, [ # where to find the archive to use when linking ( $INSTALLING ? "$InstLibDirGhc" : "$TopPwd/hslibs/frantk" ) , # no cbits archive '' , 'lang data concurrent' # Syslib dependencies , '' # extra ghc opts , '' # extra cc opts , '-ltk8.0 -ltcl8.0 -lX11 -lm -ldl' # extra ld opts # where to slurp interface files from , ( $INSTALLING ? ( "$InstLibDirGhc/imports/frantk" ) : ( "$TopPwd/hslibs/frantk" ) ) ], and move all the hi files to $TopPwd/imports/frantk, and libfrantk.a to $TopPwd/libHSfrantk.a by the way, if you use `hmake', be sure to set GHCINCDIR and GHCINCPATH so that it knows about ghc's interface files. then, you can use `hmake "-syslib frantk" Foo' to make your project. (i think you need the double quotes.) best regards -- -- Johannes Waldmann ---- http://www.informatik.uni-leipzig.de/~joe/ -- -- joe@informatik.uni-leipzig.de -- phone/fax (+49) 341 9732 204/252 --
Dear Haskellers, After enjoying "Tackling the Awkward Squad" (Simon Peyton Jones), I wonder what other elements of the squad can be tackled in a simular way? Right now I am thinking about FixIO. This little bugger seems to show up in a lot of code! Can we give it an operational semantics a la Tackling the awkward squad? I am quite stumped on this one, so i wont event post my meager attempts, but rather hope someone brighter then me will :) We need to add a new Value "FixIO N"... Cheers! __________________________________________________ Do You Yahoo!? Get personalized email addresses from Yahoo! Mail - only $35 a year! http://personal.mail.yahoo.com/
I am responding to my own email:) First, I didnt know about the whole mdo thing in hugs98 jan 2001. Also there are some papers that discuss semantics if you search for mdo or recusive monads. Anyway, it turns out that fixIO doenst work the way I wanted anyway. I guess I really need to understand unsafeInterleaveIO. Is there ANYWAY to come up with an operational semantics for this bugger?? It is the most awkward of all, to me! __________________________________________________ Do You Yahoo!? Get personalized email addresses from Yahoo! Mail - only $35 a year! http://personal.mail.yahoo.com/
participants (3)
-
Jan Kort -
Johannes Waldmann -
Ronald Legere