1. 25 May, 2000 4 commits
    • simonpj's avatar
      [project @ 2000-05-25 12:41:14 by simonpj] · 495ef8bd
      simonpj authored
      		Apr/May 2000
      This is a pretty big commit!  It adds stuff I've been working on
      over the last month or so.  DO NOT MERGE IT WITH 4.07!
      Interface file formats have changed a little; you'll need
      to make clean before remaking.
      						Simon PJ
      Recompilation checking
      Substantial improvement in recompilation checking.  The version management
      is now entirely internal to GHC.  ghc-iface.lprl is dead!
      The trick is to generate the new interface file in two steps:
        - first convert Types etc to HsTypes etc, and thereby
      	build a new ParsedIface
        - then compare against the parsed (but not renamed) version of the old
      	interface file
      Doing this meant adding code to convert *to* HsSyn things, and to
      compare HsSyn things for equality.  That is the main tedious bit.
      Another improvement is that we now track version info for
      fixities and rules, which was missing before.
      Interface file reading
      Make interface files reading more robust.
        * If the old interface file is unreadable, don't fail. [bug fix]
        * If the old interface file mentions interfaces
          that are unreadable, don't fail. [bug fix]
        * When we can't find the interface file,
          print the directories we are looking in.  [feature]
      Type signatures
        * New flag -ddump-types to print type signatures
      Type pruning
      When importing
      	data T = T1 A | T2 B | T3 C
      it seems excessive to import the types A, B, C as well, unless
      the constructors T1, T2 etc are used.  A,B,C might be more types,
      and importing them may mean reading more interfaces, and so on.
       So the idea is that the renamer will just import the decl
      	data T
      unless one of the constructors is used.  This turns out to be quite
      easy to implement.  The downside is that we must make sure the
      constructors are always available if they are really needed, so
      I regard this as an experimental feature.
      Elimininate ThinAir names
      Eliminate ThinAir.lhs and all its works.  It was always a hack, and now
      the desugarer carries around an environment I think we can nuke ThinAir
      As part of this, I had to move all the Prelude RdrName defns from PrelInfo
      to PrelMods --- so I renamed PrelMods as PrelNames.
      I also had to move the builtinRules so that they are injected by the renamer
      (rather than appearing out of the blue in SimplCore).  This is if anything simpler.
      * Tidy up the data types involved in Rules
      * Eliminate RnEnv.better_provenance; use Name.hasBetterProv instead
      * Add Unique.hasKey :: Uniquable a => a -> Unique -> Bool
        It's useful in a lot of places
      * Fix a bug in interface file parsing for __U[!]
    • simonmar's avatar
      [project @ 2000-05-25 10:40:39 by simonmar] · b5c71bff
      simonmar authored
      Add missing case in parsing of inline pragmas.
    • simonmar's avatar
      [project @ 2000-05-25 09:16:56 by simonmar] · b537743d
      simonmar authored
      raise_info, the info table we use for overwriting thunks with an
      exception, had the bogus closure type of FUN.  This was mostly
      harmless, but caused some confusion for THUNK_SELECTORs, which rightly
      assumed that they shouldn't be pointing at FUNs.
      The fix is to change the type to THUNK, which is slightly closer to
      being true.
      This fixes Alastair Reid's "THUNK_SELECTOR: strange selectee" bug.
    • andy's avatar
      [project @ 2000-05-25 08:36:34 by andy] · fac89d43
      andy authored
      Fixing up names to make a reasonable use of Java packages.
      This is just one of a number of steps before attacking the Prelude.
      Fixing up the output order of the inner classes, making postprocessing easier.
  2. 24 May, 2000 19 commits
  3. 23 May, 2000 9 commits
    • rrt's avatar
      [project @ 2000-05-23 16:53:14 by rrt] · 60a202ee
      rrt authored
      verbatim no longer supported; now in rts.tex
    • rrt's avatar
      [project @ 2000-05-23 16:52:50 by rrt] · 27055e2d
      rrt authored
      de-verbatimed (verbatim is no longer supported).
    • simonmar's avatar
      [project @ 2000-05-23 15:59:25 by simonmar] · 16873c64
      simonmar authored
      Don't use commas in an SLIT("..")
    • sewardj's avatar
      [project @ 2000-05-23 15:31:48 by sewardj] · 42284476
      sewardj authored
      zap spurious semicolon wibble
    • simonmar's avatar
      [project @ 2000-05-23 13:57:53 by simonmar] · c88e235f
      simonmar authored
      Fix a Real Bug(TM) in the new code for detecting dead threads: we
      weren't taking into account the case when a ThreadRelocated is found
      on the all_threads list.
    • simonpj's avatar
      [project @ 2000-05-23 13:16:51 by simonpj] · bebb2614
      simonpj authored
      MERGE 4.07
      * Fix records with polymorphic fields (broken by previous 'fix')
        As a tidy-up I also put a TyCon into a FieldLabel
      * Fix a glitch with the result-type-sig change
    • simonpj's avatar
      [project @ 2000-05-23 11:51:13 by simonpj] · 3a68f091
      simonpj authored
      Add tests for result type sigs
    • sewardj's avatar
      [project @ 2000-05-23 11:45:14 by sewardj] · ef675dbd
      sewardj authored
      Fix bug in diet_hep_initialise to do with argc/argv handling.
    • simonpj's avatar
      [project @ 2000-05-23 11:35:36 by simonpj] · bb91427f
      simonpj authored
      *** MERGE WITH 4.07 (once I've checked it works) ***
      * Fix result type signatures.  Note that a consequential change is that
        an ordinary binding with a variable on the left
      	f = e
        is now treated as a FunMonoBind, not a PatMonoBind.  This makes
        a few things a bit simpler (eg rnMethodBinds)
      * Fix warnings for unused imports.  This meant moving where provenances
        are improved in RnNames.  Move mkExportAvails from RnEnv to RnNames.
      * Print module names right (small change in Module.lhs and Rename.lhs)
      * Remove a few unused bindings
      * Add a little hack to let us print info about join points that turn
        out not to be let-no-escaped.  The idea is to call them "$j" and report
        any such variables that are not let-no-escaped.
      * Some small things aiming towards -ddump-types (harmless but incomplete)
  4. 22 May, 2000 8 commits