From: Duncan C. <dun...@us...> - 2004-11-13 17:27:07
|
Update of /cvsroot/gtk2hs/gtk2hs/tools/c2hs/c2hs/gen In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15642/c2hs/gen Modified Files: GBMonad.hs Log Message: add Axel's --precomp patches with a binary serialisation framework derived from the one used in ghc. This required makeing Position a proper data type. Also converted to using Data.FiniteMap rather than the CTK FiniteMaps module. Index: GBMonad.hs =================================================================== RCS file: /cvsroot/gtk2hs/gtk2hs/tools/c2hs/c2hs/gen/GBMonad.hs,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- GBMonad.hs 13 Nov 2004 16:42:39 -0000 1.1.1.1 +++ GBMonad.hs 13 Nov 2004 17:26:53 -0000 1.2 @@ -80,8 +80,8 @@ import Common (Position, Pos(posOf), nopos, builtinPos) import Errors (interr) import Idents (Ident, identToLexeme, onlyPosIdent) -import FiniteMaps (FiniteMap, zeroFM, addToFM, lookupFM, joinFM, toListFM, - listToFM) +import Data.FiniteMap (FiniteMap, emptyFM, addToFM, lookupFM, plusFM, + fmToList, listToFM) -- C -> Haskell import C (CT, readCT, transCT, raiseErrorCTExc) @@ -237,8 +237,8 @@ lib = "", prefix = "", frags = [], - ptrmap = zeroFM, - objmap = zeroFM + ptrmap = emptyFM, + objmap = emptyFM } -- set the dynamic library and library prefix @@ -299,7 +299,7 @@ ptrMapsTo :: (Bool, Ident) -> (String, String) -> GB () (isStar, cName) `ptrMapsTo` hsRepr = transCT (\state -> (state { - ptrmap = addToFM (isStar, cName) hsRepr (ptrmap state) + ptrmap = addToFM (ptrmap state) (isStar, cName) hsRepr }, ())) -- query the pointer map @@ -314,7 +314,7 @@ objIs :: Ident -> HsObject -> GB () hsName `objIs` obj = transCT (\state -> (state { - objmap = addToFM hsName obj (objmap state) + objmap = addToFM (objmap state) hsName obj }, ())) -- query the Haskell object map @@ -367,8 +367,8 @@ mergeMaps :: String -> GB () mergeMaps str = transCT (\state -> (state { - ptrmap = joinFM readPtrMap (ptrmap state), - objmap = joinFM readObjMap (objmap state) + ptrmap = plusFM readPtrMap (ptrmap state), + objmap = plusFM readObjMap (objmap state) }, ())) where (ptrAssoc, objAssoc) = read str @@ -384,9 +384,9 @@ ptrFM <- readCT ptrmap objFM <- readCT objmap let dumpable = ([((isStar, identToLexeme ide), repr) - | ((isStar, ide), repr) <- toListFM ptrFM], + | ((isStar, ide), repr) <- fmToList ptrFM], [(identToLexeme ide, obj) - | (ide, obj) <- toListFM objFM]) + | (ide, obj) <- fmToList objFM]) return $ show dumpable |