1. 23 Jul, 2001 20 commits
  2. 22 Jul, 2001 2 commits
    • chak's avatar
      [project @ 2001-07-22 03:28:25 by chak] · 6ea86573
      chak authored
      ELF_TARGET_386 has to be #defined for x86/Solaris.
    • chak's avatar
      [project @ 2001-07-22 03:19:51 by chak] · 02f8658b
      chak authored
      Solaris system headers contain function definitions (not just prototypes) for
      some functions; eg, stat().  WDP decided to toss (some of) them out during
      mangling.  I think, this is wrong, as the list of these functions changes with
      varying Solaris releases and it makes foreign importing these functions more
      complicated; in particular, it broke Directory.hsc and PosixFiles on
  3. 21 Jul, 2001 2 commits
  4. 20 Jul, 2001 8 commits
    • simonpj's avatar
      [project @ 2001-07-20 16:48:20 by simonpj] · 5d095cc1
      simonpj authored
      This commit adds the very convenient function
        Subst.substTyWith :: [TyVar] -> [Type] -> Type -> Type
      and uses it in various places.
    • simonpj's avatar
      [project @ 2001-07-20 16:47:55 by simonpj] · e3defabc
      simonpj authored
      	More newtype squashing
      Recursive newtypes were confusing the worker/wrapper generator.
      This is because I originally got rid of opaque newtypes altogether,
      then put them back for recursive ones only, and forgot to reinstate
      the cunning stuff in the w/w stuff.
      (Discovered by Sigbjorn; thanks!)
    • simonpj's avatar
      [project @ 2001-07-20 15:22:21 by simonpj] · 0fa26afe
      simonpj authored
      	Get rid of ArityAtLeast
      Now that we have CgInfo, with the exact code-generator arity
      for the value, we don't need the distinction between ArityAtLeast
      and ArityExactly in the ArityInfo field of an IdInfo.
      This commit makes
      	type ArityInfo = Maybe Arity
      and propagates this change consistently through the compiler.
    • simonpj's avatar
      [project @ 2001-07-20 10:09:32 by simonpj] · 738b84dc
      simonpj authored
      Third cut at the demand analyser; seems to work nicely now
    • simonpj's avatar
      [project @ 2001-07-20 10:08:56 by simonpj] · debd4f60
      simonpj authored
      	Hack around an infelicity in the simplifier
      Use 3 iterations of the simplifier (instead of the previous 2)
      because otherwise we land up with huge dead expressions.
      Reason: an infelicity in the simpifier.
            let k = BIG in foldr k z xs
       ==>  let k = BIG in letrec go = \xs -> ...(k x).... in go xs
       ==>  let k = BIG in letrec go = \xs -> ...(BIG x).... in go xs
       Don't stop now!
      I couldn't see an easy way to make the simplifier avoid this
      big intermediate, so I hacked round it like this.
    • simonpj's avatar
      [project @ 2001-07-20 10:05:37 by simonpj] · 98a74c9d
      simonpj authored
      	Correct a bug in exprArity
      This long-standing bug meant that exprArity gave over-pessimistic
      answers.  e.g.
      	\x -> f x
      where nothing is known about f.  We were getting
      	0 (for f)
      	-1 (for the argument)
      	+1 (for the lambda)
      The right answer is of course 1.
    • sof's avatar
      [project @ 2001-07-20 01:05:11 by sof] · 9d978426
      sof authored
      lookupSymbol (PEi386-only): When chasing down a label in a DLL, try
      removing the initial underscore (if any). I've prefixed the comment
      next to the change with the label 'HACK', as I'm not sure whether
      this is a name mangling operation you should always do when going
      from the import library name to the DLL-bound thing.
      (Julian, could you have a look?)
      Fixes probs with 'foreign import'ing DLL-bound symbols.
    • sof's avatar
      [project @ 2001-07-20 00:44:33 by sof] · ddb17caa
      sof authored
      Since longlong prims are no longer in the RTS, extend RTS_MINGW_ONLY_SYMBOLS with some reqd libgcc syms
  5. 19 Jul, 2001 8 commits