[project @ 2000-01-04 17:40:46 by simonpj]
authorsimonpj <unknown>
Tue, 4 Jan 2000 17:40:52 +0000 (17:40 +0000)
committersimonpj <unknown>
Tue, 4 Jan 2000 17:40:52 +0000 (17:40 +0000)
commit5ca77490a603e0175bb717343884533ad8de017d
tree92975cbc4421a3d14f5cedbbd893e820895cecda
parenta8b0e4a232ebc3c5778e2a3f32d71f80a84b16ad
[project @ 2000-01-04 17:40:46 by simonpj]
This commit arranges that literal strings will fuse
nicely, by expressing them as an application of build.

* NoRepStr is now completely redundant, though I havn't removed it yet.

* The unpackStr stuff moves from PrelPack to PrelBase.

* There's a new form of Rule, a BuiltinRule, for rules that
  can't be expressed in Haskell.  The string-fusion rule is one
  such.  It's defined in prelude/PrelRules.lhs.

* PrelRules.lhs also contains a great deal of code that
  implements constant folding.  In due course this will replace
  ConFold.lhs, but for the moment it simply duplicates it.
22 files changed:
ghc/compiler/DEPEND-NOTES
ghc/compiler/basicTypes/Id.lhs
ghc/compiler/basicTypes/MkId.lhs
ghc/compiler/coreSyn/CoreFVs.lhs
ghc/compiler/coreSyn/CoreSyn.lhs
ghc/compiler/coreSyn/CoreTidy.lhs
ghc/compiler/coreSyn/CoreUnfold.lhs
ghc/compiler/coreSyn/CoreUtils.lhs
ghc/compiler/coreSyn/PprCore.lhs
ghc/compiler/coreSyn/Subst.lhs
ghc/compiler/deSugar/DsExpr.lhs
ghc/compiler/main/MkIface.lhs
ghc/compiler/prelude/PrelRules.lhs [new file with mode: 0644]
ghc/compiler/prelude/PrimOp.lhs
ghc/compiler/prelude/ThinAir.lhs
ghc/compiler/simplCore/SimplCore.lhs
ghc/compiler/simplCore/Simplify.lhs
ghc/compiler/specialise/Rules.lhs
ghc/compiler/typecheck/TcIfaceSig.lhs
ghc/lib/std/PrelBase.lhs
ghc/lib/std/PrelPack.hi-boot
ghc/lib/std/PrelPack.lhs