1. 31 May, 2000 9 commits
    • simonmar's avatar
      [project @ 2000-05-31 15:50:42 by simonmar] · b4065a08
      simonmar authored
      Update expected output.
    • simonmar's avatar
      [project @ 2000-05-31 15:44:29 by simonmar] · 0d61ee90
      simonmar authored
      Incorporate Josef's patch to fix the bogus warning about overlapping
      string patterns.  Thanks Josef!
    • rrt's avatar
      [project @ 2000-05-31 13:23:09 by rrt] · 279826fc
      rrt authored
      Always run docbook scripts with the catalog as the first argument (taken
      from DOCBOOK_CATALOG).
    • rrt's avatar
      [project @ 2000-05-31 13:22:25 by rrt] · c04238f0
      rrt authored
      Update to use DOCBOOK_CATALOG to get the correct catalog.
    • panne's avatar
      [project @ 2000-05-31 12:04:49 by panne] · 9b6f49a2
      panne authored
      Use new way of #including for packages
    • panne's avatar
      [project @ 2000-05-31 12:02:48 by panne] · 37782afc
      panne authored
      floatExtreme.h's definitions reside in PrimOps.h
    • panne's avatar
      [project @ 2000-05-31 11:58:27 by panne] · 799b3236
      panne authored
      Trying to get the whole #include business right: ccalls are unfolded
      into interface files, even without -funfold-casms-in-hi-file. Although
      this is a good thing performance-wise, the header files should better
      be #included during compilation of the .hc files. Solution:
         * Every .hc file #includes "Stg.h" first.
         * For every package `foo' used, "HsFoo.h" is #included, too. This
           means that every package has to come with a corresponding header
           file, even if it is empty.
         * Getting #includes right with ghc-inplace is a little bit ugly:
           The boot target in Makefiles must copy the package's header files
           into GHC_INCLUDE_DIR (don't forget the clean target!), and final
           installation of those headers is done there, too.   :-P  Better
           solutions are highly welcome.
         * Possible pollution of the C name spaces.
    • lewie's avatar
      [project @ 2000-05-31 10:13:57 by lewie] · e7f04a0d
      lewie authored
      Cleanup pass on functional dependencies.  Most noticeably, make it so that
      signatures involving classes with functional dependencies work.  Also,
      Fundeps are now properly handled by the simplifier, resolving problems
      where the fundeps were sometimes being discarded too early, and sometimes
      hanging around too long.  Took out the early ambiguity testing in the
      renamer, because that's too early (you don't know the fundeps yet).  Now,
      the ambiguity test happens in the typechecker.
      Functional Dependencies should now be up to snuff with Mark's paper,
      however, the derived instances and superclass extensions found in hugs
      are still not in there.
      It would be nice if this were merged into 4.07.  I have diffs against
      the 4.07 tree in case it's too thorny working around Simon's big commit.
    • chak's avatar
      [project @ 2000-05-31 00:55:10 by chak] · d7fefe23
      chak authored
      Autoconf magic to determine a working DocBook CATALOG file (if any).  Makes
      the makefile variable DOCBOOK_CATALOG refer to this CATALOG file (absolute
  2. 30 May, 2000 6 commits
  3. 29 May, 2000 3 commits
  4. 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...
  5. 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.
  6. 26 May, 2000 6 commits
  7. 25 May, 2000 6 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.