Thu Oct 30 05:51:08 PDT 2008  [EMAIL PROTECTED]
  * Add (a) CoreM monad, (b) new Annotations feature
  
  This patch, written by Max Bolingbroke,  does two things
  
  1.  It adds a new CoreM monad (defined in simplCore/CoreMonad),
      which is used as the top-level monad for all the Core-to-Core
      transformations (starting at SimplCore).  It supports
         * I/O (for debug printing)
         * Unique supply
         * Statistics gathering
         * Access to the HscEnv, RuleBase, Annotations, Module
      The patch therefore refactors the top "skin" of every Core-to-Core
      pass, but does not change their functionality.
  
  2.  It adds a completely new facility to GHC: Core "annotations".
      The idea is that you can say
         {#- ANN foo (Just "Hello") #-}
      which adds the annotation (Just "Hello") to the top level function
      foo.  These annotations can be looked up in any Core-to-Core pass,
      and are persisted into interface files.  (Hence a Core-to-Core pass
      can also query the annotations of imported things.)  Furthermore,
      a Core-to-Core pass can add new annotations (eg strictness info)
      of its own, which can be queried by importing modules.
  
  The design of the annotation system is somewhat in flux.  It's
  designed to work with the (upcoming) dynamic plug-ins mechanism,
  but is meanwhile independently useful.
  
  Do not merge to 6.10!  
  

    M ./compiler/deSugar/Desugar.lhs -1 +3
    M ./compiler/ghc.cabal.in +4
    M ./compiler/hsSyn/Convert.lhs -2 +17
    M ./compiler/hsSyn/HsDecls.lhs -6 +57
    M ./compiler/iface/BinIface.hs +29
    M ./compiler/iface/IfaceSyn.lhs -1 +12
    M ./compiler/iface/LoadIface.lhs -14 +43
    M ./compiler/iface/MkIface.lhs +14
    M ./compiler/iface/TcIface.lhs -2 +33
    M ./compiler/iface/TcIface.lhs-boot -1 +3
    A ./compiler/main/Annotations.lhs
    M ./compiler/main/DynFlags.hs -7 +33
    M ./compiler/main/GHC.hs +10
    M ./compiler/main/HscMain.lhs -1
    M ./compiler/main/HscTypes.lhs +49
    R ./compiler/main/HscTypes.lhs-boot
    M ./compiler/main/TidyPgm.lhs -1 +4
    M ./compiler/parser/Lexer.x +2
    M ./compiler/parser/Parser.y.pp +9
    M ./compiler/parser/RdrHsSyn.lhs +2
    M ./compiler/prelude/PrelNames.lhs +11
    M ./compiler/rename/RnSource.lhs -7 +29
    M ./compiler/simplCore/CSE.lhs -10 +2
    A ./compiler/simplCore/CoreMonad.lhs
    M ./compiler/simplCore/FloatIn.lhs -12 +2
    M ./compiler/simplCore/FloatOut.lhs -11 +1
    M ./compiler/simplCore/LiberateCase.lhs -16 +2
    M ./compiler/simplCore/SAT.lhs -7 +3
    M ./compiler/simplCore/SetLevels.lhs -2 +2
    M ./compiler/simplCore/SimplCore.lhs -125 +215
    M ./compiler/specialise/Rules.lhs -12 +17
    M ./compiler/specialise/SpecConstr.lhs -16 +3
    M ./compiler/specialise/Specialise.lhs -17 +3
    M ./compiler/stranal/DmdAnal.lhs -4
    M ./compiler/stranal/StrictAnal.lhs -4 +1
    M ./compiler/stranal/WorkWrap.lhs -24 +2
    A ./compiler/typecheck/TcAnnotations.lhs
    M ./compiler/typecheck/TcEnv.lhs -4 +11
    M ./compiler/typecheck/TcExpr.lhs -3 +6
    M ./compiler/typecheck/TcRnDriver.lhs -8 +22
    M ./compiler/typecheck/TcRnMonad.lhs -1 +2
    M ./compiler/typecheck/TcRnTypes.lhs -4 +9
    M ./compiler/typecheck/TcSimplify.lhs +23
    M ./compiler/typecheck/TcSplice.lhs -42 +126
    M ./compiler/typecheck/TcSplice.lhs-boot +5
    M ./compiler/utils/Binary.hs +22
    M ./compiler/utils/IOEnv.hs +12
    M ./compiler/utils/MonadUtils.hs -2 +31
    M ./compiler/utils/Outputable.lhs -1 +4
    A ./compiler/utils/Serialized.hs
    M ./compiler/vectorise/Vectorise.hs -12 +9
    M ./docs/users_guide/glasgow_exts.xml +77

View patch online:
http://darcs.haskell.org/ghc/_darcs/patches/20081030125108-1287e-0d574124860400f8c0cac6c75b3b43a7ef2b32b3.gz

_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to