Changeset 21673 for src/Pugs/CodeGen

Show
Ignore:
Timestamp:
08/01/08 13:56:05 (4 months ago)
Author:
audreyt
Message:

* Import Pugs 6.2.13.11 from Hackage into our source tree.
* Highlights:

  • Much faster startup time
  • Slightly faster compilation time (mostly due to refactored Pugs.AST.Internals)
  • Portable-to-Win32 readline thanks to Haskeline
Location:
src/Pugs/CodeGen
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • src/Pugs/CodeGen/Binary.hs

    r15616 r21673  
    1 {-# OPTIONS_GHC -fglasgow-exts #-} 
     1{-# OPTIONS_GHC -fglasgow-exts -fallow-undecidable-instances -fno-warn-orphans -funbox-strict-fields -cpp #-} 
    22 
    3 module Pugs.CodeGen.Binary (genBinary) where 
     3module Pugs.CodeGen.Binary (genParseBinary) where 
    44import Pugs.Internals 
    55import Pugs.AST 
    6 import Pugs.Compile 
    7 import Pugs.PIL1 
    8 import DrIFT.Binary 
    9 import System.IO 
    10 import System.Directory 
     6import Data.Binary 
     7import qualified Data.ByteString.Lazy.Char8 as L 
    118 
    12 genBinary :: Eval Val 
    13 genBinary = do 
    14     penv <- compile () :: Eval PIL_Environment 
    15     io $ do 
    16         tmp         <- getTemporaryDirectory 
    17         (file, fh)  <- openBinaryTempFile tmp "pugs.bin" 
    18         bh          <- openBinIO fh 
    19         put_ bh penv 
    20         hClose fh 
    21         return $ VStr (unlines [file]) 
     9genParseBinary :: FilePath -> Eval Val 
     10genParseBinary file = doGenParseBinary file 
     11 
     12doGenParseBinary :: FilePath -> Eval Val 
     13doGenParseBinary file = do 
     14    pad  <- filterPrim =<< asks envGlobal 
     15    main <- asks envBody 
     16    return $ VStr (L.unpack $! encode (mkCompUnit file pad main)) 
  • src/Pugs/CodeGen/PIR.hs

    r16627 r21673  
    1818import Pugs.Types 
    1919import Pugs.PIL1 
    20 import Emit.PIR.Instances () 
    21 import Emit.PIR 
     20import Language.PIR 
    2221import Pugs.Pretty 
    2322import Text.PrettyPrint 
     
    2726import Pugs.Run (getLibs) 
    2827import DrIFT.YAML 
    29 import qualified UTF8 as Str 
     28import qualified Data.ByteString.UTF8 as Str 
    3029 
    3130type CodeGen a = WriterT [Stmt] (ReaderT TEnv IO) a 
     
    250249    trans x = transError x 
    251250 
    252 instance LiteralClass Var Expression where 
     251instance LiteralClass Var where 
    253252    lit = ExpLit . LitStr . cast 
    254253 
    255 instance LiteralClass ByteString Expression where 
     254instance LiteralClass ByteString where 
    256255    lit = ExpLit . LitStr . cast 
    257256