cvs commit: fptools/ghc/compiler/main HscMain.lhs fptools/ghc/lib/std PrelST.lhs PrelByteArr.lhs PrelIOBase.lhs

qrczak@glass.cse.ogi.edu qrczak@glass.cse.ogi.edu
Tue, 20 Feb 2001 10:40:54 -0800


qrczak      2001/02/20 10:40:54 PST

  Modified files:
    ghc/compiler/main    HscMain.lhs 
    ghc/lib/std          PrelST.lhs PrelByteArr.lhs PrelIOBase.lhs 
  Log:
  Apply tweaks needed to let this compile: remove syn_map argument from
  typecheckExpr in HscMain, import PrelNum.fromInt to modules which
  use integer literals with -fno-implicit-prelude flag.
  
  It crashes later, on Directory.hs:
  ghc: panic! (the `impossible' happened):
          srtExpr
  
  I'm not sure if resolving numeric literals to top-level definitions
  of fromInt/fromInteger with -fno-implicit-prelude is a good idea.
  Using names from whatever module is called Prelude would be IMHO
  better, probably when -fglasgow-exts is given. Prel* modules themselves
  would import PrelNum as Prelude.
  
  Both schemes break for fromInt, which is non-standard and by default
  it's visible neither at the top level nor in the Prelude module. My
  proposal for dealing with it is as follows (assuming that fromInteger
  is taken from the module locally called Prelude instead of the top
  level): when the standard Prelude is used, take fromInt from PrelNum;
  when a Prelude replacement is used, use fromInt from it if available,
  otherwise use its fromInteger instead. That way Prelude replacements
  can ignore this non-standard extension and get the expected behavior,
  or they can also choose to use this extension (in a way compatible
  with Haskell implementations which allow to replace Prelude but don't
  have fromInt).
  
  Revision  Changes    Path
  1.96      +1 -1      fptools/ghc/compiler/main/HscMain.lhs
  1.18      +2 -2      fptools/ghc/lib/std/PrelST.lhs
  1.11      +2 -1      fptools/ghc/lib/std/PrelByteArr.lhs
  1.34      +2 -2      fptools/ghc/lib/std/PrelIOBase.lhs