[cvs-nhc98] patch applied (hat): Added modules to obtain a trusted tracing Prelude and module Char.

Malcolm Wallace Malcolm.Wallace at cs.york.ac.uk
Tue Oct 10 07:11:24 EDT 2006


Fri Dec 14 08:44:58 PST 2001  olaf
  * Added modules to obtain a trusted tracing Prelude and module Char.
  (Removed previous Prelude modules added by Malcolm.)
  Extended the transformation to build tracing wrappers to Haskell
  functions from foreign haskell declarations.
  Corrected small bugs in pretty printing.
  
  Purpose of new modules:
  
  TPreludeBuiltinTypes.hs  (imports Hat and original Prelude)
    Tracing version of types that are not definable in Haskell
    or are used by functions that are not definable in Haskell
  
  PreludeBuiltin.hs  (imports PreludeBuiltinTypes and original Char)
    Contains foreign haskell declarations for all functions
    not (portably) definable in Haskell.
    Has to be transformed into TPreludeBuiltin.hs
  
  PreludeBasic.hs  (imports PreludeBuiltin)
    Contains all parts of the Prelude and Char (both are mutually
    recursive) that can be expressed in Haskell (assuming
    nhc98's ability to derive instances of [],(,,,) etc).
    Has to be transformed into TPreludeBasic.hs
  
  PreludeTracing.hs (imports PreludeBasic)
    Wrapper that exports just the stuff normally defined in the
    Prelude.
    Has to be transformed into TPreludeTracing.hs and renamed to TPrelude.hs.
    The original name cannot be Prelude.hs because then nhc98
    confuses it with the original Prelude.
  
  CharTracing.hs (imports PreludeBasic)
    Like PreludeTracing.hs, but for the standard library module Char.
  
  
  Currently the transformation falls over module PreludeBasic, the preceeding ones can be transformed/compiled.
  
  The division between modules Hat and TPreludeBuiltinTypes and arbitrary and there is some redundancy. In the future contents may be exchanged.
  
  Module TPrelude needs to be removed when this Prelude generation mechanism works. Currently it is still there and the Makefile compiles it.

    M ./src/compiler98/AuxFile.hs -6 +1
    M ./src/compiler98/AuxFixity.hs -4 +14
    M ./src/compiler98/AuxLabelAST.hs -4 +5
    M ./src/compiler98/Bind.hs -4 +4
    M ./src/compiler98/Case.hs -2 +2
    M ./src/compiler98/DbgDataTrans.hs -3 +3
    M ./src/compiler98/DbgTrans.hs -5 +5
    M ./src/compiler98/Extract.hs -4 +4
    M ./src/compiler98/FFITrans.hs -4 +4
    M ./src/compiler98/FixSyntax.hs -2 +2
    M ./src/compiler98/Need.hs -4 +4
    M ./src/compiler98/Parse.hs -8 +13
    M ./src/compiler98/ParseLex.hs -2 +2
    M ./src/compiler98/PrettySyntax.hs -8 +10
    M ./src/compiler98/Rename.hs -4 +4
    M ./src/compiler98/SccModule.hs -4 +4
    M ./src/compiler98/Syntax.hs -3 +6
    M ./src/compiler98/SyntaxPos.hs -2 +2
    M ./src/compiler98/TokenId.hs -1 +1
    M ./src/compiler98/TraceTrans.hs -23 +133
    M ./src/compiler98/Type.hs -4 +4
    A ./src/hatlib/Char.hs
    M ./src/hatlib/Hat.hs -1 +13
    R ./src/hatlib/IOPrimitives.hs
    A ./src/hatlib/Prelude.hs
    A ./src/hatlib/PreludeBasic.hs
    A ./src/hatlib/PreludeBuiltin.hs
    R ./src/hatlib/Primitives.hs
    M ./src/hatlib/TPrelude.hs -20 +18
    A ./src/hatlib/TPreludeBuiltinTypes.hs
    M ./src/hattrans/AuxFile.hs -6 +1
    M ./src/hattrans/AuxFixity.hs -4 +14
    M ./src/hattrans/AuxLabelAST.hs -4 +5
    M ./src/hattrans/TraceTrans.hs -23 +133


More information about the Cvs-nhc98 mailing list