mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-20 02:09:32 -06:00
now we store version number in every .gfo file. If the file is compiled with different compiler then we simply recompile it.
This commit is contained in:
@@ -48,6 +48,9 @@ module Data.Binary (
|
||||
, encodeFile -- :: Binary a => FilePath -> a -> IO ()
|
||||
, decodeFile -- :: Binary a => FilePath -> IO a
|
||||
|
||||
, encodeFile_ -- :: FilePath -> Put -> IO ()
|
||||
, decodeFile_ -- :: FilePath -> Get a -> IO a
|
||||
|
||||
-- Lazy put and get
|
||||
-- , lazyPut
|
||||
-- , lazyGet
|
||||
@@ -254,6 +257,9 @@ decode = runGet get
|
||||
encodeFile :: Binary a => FilePath -> a -> IO ()
|
||||
encodeFile f v = L.writeFile f (encode v)
|
||||
|
||||
encodeFile_ :: FilePath -> Put -> IO ()
|
||||
encodeFile_ f m = L.writeFile f (runPut m)
|
||||
|
||||
-- | Lazily reconstruct a value previously written to a file.
|
||||
--
|
||||
-- This is just a convenience function, it's defined simply as:
|
||||
@@ -269,6 +275,11 @@ decodeFile f = bracket (openBinaryFile f ReadMode) hClose $ \h -> do
|
||||
s <- L.hGetContents h
|
||||
evaluate $ runGet get s
|
||||
|
||||
decodeFile_ :: FilePath -> Get a -> IO a
|
||||
decodeFile_ f m = bracket (openBinaryFile f ReadMode) hClose $ \h -> do
|
||||
s <- L.hGetContents h
|
||||
evaluate $ runGet m s
|
||||
|
||||
-- needs bytestring 0.9.1.x to work
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
@@ -200,4 +200,4 @@ getArray2 = do n <- get -- read the length
|
||||
xs <- replicateM n getArray -- now the elems.
|
||||
return (listArray (0,n-1) xs)
|
||||
|
||||
decodingError = fail "This PGF file was compiled with different version of GF"
|
||||
decodingError = fail "This file was compiled with different version of GF"
|
||||
|
||||
Reference in New Issue
Block a user