1. 28 May, 2000 9 commits
    • panne's avatar
      [project @ 2000-05-28 23:24:43 by panne] · 058d3710
      panne authored
      Don't forget litlit alternatives when deciding if an expression should
      make its way into an interface file.
      *please merge*
    • panne's avatar
      [project @ 2000-05-28 23:21:02 by panne] · 13f7bc6e
      panne authored
      Prefix litlits with "__litlit" in interface files.
      *please merge*
    • panne's avatar
      [project @ 2000-05-28 21:54:12 by panne] · 1d78b480
      panne authored
      Look through newtypes when generating stub code.
      *merge if/when SPJ's huge commit is merged*
    • panne's avatar
      [project @ 2000-05-28 21:53:12 by panne] · 19f4809b
      panne authored
      Removed unused import.
      *merge if/when SPJ's huge commit is merged*
    • panne's avatar
      [project @ 2000-05-28 20:45:45 by panne] · 33aaa8a6
      panne authored
      Rewrote RULES for gcd and lcm without forall. The old versions *did
      not* always fire because of a strange interaction with automatically
      generated specialisations for gcd! Example for this misbehaviour:
         main :: IO ()
         main = do
            print (gcd             15675            156750 :: Integer)
            print (gcd 12345678987651075            156750 :: Integer)
            print (gcd            156750 12345678987651075 :: Integer)
            print (gcd  2469135797530215 12345678987651075 :: Integer)
      I don't understand why the new version works and the old one did not,
      so somebody else should probably have a look at this phenomenon.
      *please merge* (like all my commits in the last few days :-}
    • panne's avatar
      [project @ 2000-05-28 20:39:43 by panne] · dd6234cc
      panne authored
      Added a few -#includes to eliminate warnings from gcc
      (*please merge*)
    • panne's avatar
      [project @ 2000-05-28 20:22:08 by panne] · d4777922
      panne authored
      Fixed gcdIntegerInt# primop, the previous macros was completely
      wrong. gcd for Integers worked only as long the corresponding RULE
      in PrelReal didn't fire.
    • panne's avatar
      [project @ 2000-05-28 17:47:27 by panne] · 6a089dac
      panne authored
      The C functions toLocalTime and toUTCTime now return an StgInt, not a
      rather useless StgAddr. This fixes two gcc warnings during the
      compilation of Time. In the course of this, toLocalTime.c and
      toUTCTime.c are synched a little bit more.
      (*please merge*)
    • panne's avatar
      [project @ 2000-05-28 16:06:52 by panne] · bcf0e153
      panne authored
      Lowered magical value of unfolding threshold for PrimPacked, so strlen
      doesn't appear in interface file. This fixes bootstrapping problems,
      e.g. when compiling FastString. Extremely hacky solution...
  2. 27 May, 2000 1 commit
    • panne's avatar
      [project @ 2000-05-27 14:28:06 by panne] · 3ea8a46c
      panne authored
      Bug or feature? Changed `envyron' back to `environ', otherwise
      hslibs/posix/cbits/env.c can't be compiled. If this breaks something
      on M$, it must be #ifdef-ed somehow, but not simply be renamed.
  3. 26 May, 2000 6 commits
  4. 25 May, 2000 7 commits
    • panne's avatar
      [project @ 2000-05-25 13:11:17 by panne] · 7a5e524c
      panne authored
      * Small fix for SPJ's last huge commit: Remove dependency on ghc-iface
        from Makefile.
      * Nuke ghc-recomp.lprl, this hasn't been used for a long time (I hope :-}
      (merge when/if SPJ's commit is merged)
    • panne's avatar
      [project @ 2000-05-25 12:54:05 by panne] · 90f550a3
      panne authored
      Cosmetics: Removed a whole bunch of "Field `foo' is not initialised"
      warnings. This should not have any impact on efficiency, as GHC
      inserts `recConError "blah"' expressions for uninitialised fields
      anyway, and I can't see any danger of space leaks.
      (can be merged with 4.07)
    • panne's avatar
      [project @ 2000-05-25 12:49:34 by panne] · 23acbea8
      panne authored
      Cosmetics: Removed two "Pattern match(es) are overlapped" warnings.
      (can be merged with 4.07)
    • 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.
  5. 24 May, 2000 17 commits