1. 31 Jul, 2001 3 commits
    • rrt's avatar
      [project @ 2001-07-31 10:58:34 by rrt] · f4f66fda
      rrt authored
      Add the --with-gcc story. Tidy up some typos.
      f4f66fda
    • simonmar's avatar
      [project @ 2001-07-31 10:48:02 by simonmar] · 0abc95b1
      simonmar authored
      Update for changes in Haskell 98: take, drop & splitAt now don't fail
      on negative arguments.
      0abc95b1
    • sewardj's avatar
      [project @ 2001-07-31 10:06:25 by sewardj] · 48297725
      sewardj authored
      Disable all strictness analysis in the HEAD compiler until such time
      as we can figure out why the new analyser is not working correctly.
      I realise this is a drastic measure, but all previous attempts to
      either fix or work around the problem have failed.
      
      If you are doing work which requires maxed-out performance, you may
      want to revert the effects of this commit in your source tree.  The
      compiler only generates wrong code under pretty obscure circumstances
      (when compiling itself).  All other programs appear to work correctly
      with the new analyser.
      
      We hope this situation will not last for long.
      48297725
  2. 30 Jul, 2001 6 commits
  3. 26 Jul, 2001 9 commits
    • qrczak's avatar
      [project @ 2001-07-26 16:22:50 by qrczak] · 5993e639
      qrczak authored
      Clean *_hsc.$(way_)o for other ways too.
      5993e639
    • simonmar's avatar
      [project @ 2001-07-26 14:29:26 by simonmar] · bc51f1af
      simonmar authored
      Fall back to doing a linear scan of the old generation when the mark
      stack fills up.
      
      The compacting collector should work for all programs now, but there's
      still some work to do on the speed of the collector - don't expect
      programs to go any faster :)
      bc51f1af
    • simonmar's avatar
      [project @ 2001-07-26 10:06:22 by simonmar] · 2d11beb6
      simonmar authored
      Fix from Simon P.J. (committing over the phone :-)
      
      Add missing case in lub:
      
      	lub Eval (Seq k Defer ds) = Lazy
      
      previously lub of Eval and Defer would have defaulted to Eval, which
      was overoptimistic.
      2d11beb6
    • simonmar's avatar
      [project @ 2001-07-26 09:54:39 by simonmar] · d8f55050
      simonmar authored
      Make the panic case in evalAbsence into another "TELL SIMON" trace.
      d8f55050
    • ken's avatar
      [project @ 2001-07-26 03:26:28 by ken] · 78045445
      ken authored
      The heap shall start at HEAP_BASE == 0x180000000L on alpha-osf3.
      78045445
    • ken's avatar
      [project @ 2001-07-26 03:24:01 by ken] · 6d855554
      ken authored
      In addition to handling SIGINT, also handle SIGFPE by ignoring it.
      Apparently IEEE requires floating-point exceptions to be ignored by
      default, but alpha-dec-osf3 doesn't seem to do so.
      6d855554
    • ken's avatar
      [project @ 2001-07-26 03:20:52 by ken] · a1b48d4c
      ken authored
      Added to main():
      
         /*
          * Believe it or not, calling tzset() at startup seems to get rid of
          * a scheduler-related Heisenbug on alpha-dec-osf3.  The symptom of
          * the bug is that, when the load on the machine is high or when
          * there are many threads, the variable "Capability *cap" in the
          * function "schedule" in the file "Schedule.c" magically becomes
          * null before the line "t = cap->rCurrentTSO;".  Why, and why does
          * calling tzset() here seem to fix it?  Excellent questions!
          */
         tzset();
      a1b48d4c
    • ken's avatar
      [project @ 2001-07-26 03:13:37 by ken] · 8cc0574a
      ken authored
      Fixed code to not return an undefined value on platforms that are
      neither OBJFORMAT_ELF nor OBJFORMAT_PEi386.
      8cc0574a
    • ken's avatar
      [project @ 2001-07-26 03:08:38 by ken] · 47774449
      ken authored
      Run prelude/primops.txt through the preprocessor, to weed out
      primitives that don't (need to) exist on 64-bit architectures.
      47774449
  4. 25 Jul, 2001 11 commits
    • simonpj's avatar
      [project @ 2001-07-25 15:55:30 by simonpj] · 7fde87b3
      simonpj authored
      -----------------------------------------
      	Fix a bug in the monomorphism restriction
      	------------------------------------------
      
      Thanks for Koen for reporting this bug.
      
      In tcSimplifyRestricted, I wrongly called tcSimpifyToDicts,
      whereas actually we have to simplfy further than simply to
      a dictionary.
      
      The test for this is in typecheck/should_compile/tc132.hs
      7fde87b3
    • simonpj's avatar
      [project @ 2001-07-25 13:29:07 by simonpj] · 92428681
      simonpj authored
      ---------------------------------
      	Fix a bug in the defn of "both"
      	---------------------------------
      
      This bug made the bootstrapped GHC enter an absent argument.
      
      The change is from
      
      	both Lazy (Seq k Now ds) = Seq Keep Now ds
      to
      	both Lazy (Seq k l ds) = Seq Keep l ds
      
      Simple, eh?  (Comments with the code.)
      92428681
    • simonmar's avatar
      [project @ 2001-07-25 12:18:26 by simonmar] · f7341243
      simonmar authored
      - move the call to scavenge_mark_stack() inside the inner scavenge loop,
        so it gets called more often and there's less chance of the mark
        stack filling up.  None of the nofib tests cause the mark stack to
        fill up now.
      
      - remove some experimental code from scavenge_mark_stack().
      f7341243
    • simonmar's avatar
      [project @ 2001-07-25 11:55:57 by simonmar] · 06754543
      simonmar authored
      Specialise thread_static() a little bit: improves performance for
      threading the static object list.
      06754543
    • simonpj's avatar
      [project @ 2001-07-25 10:49:46 by simonpj] · 0338d7e2
      simonpj authored
      Do for evalStrictness the same as for evalAbsence
      0338d7e2
    • simonmar's avatar
      [project @ 2001-07-25 10:10:25 by simonmar] · 7d34d68c
      simonmar authored
      - Move FptoolsHcOpts out of the hslibs section of this file (which was
        *exactly* the wrong place for it).
      
      - Clarify the meaning of FptoolsHcOpts and GhcHcOpts.
      
      NOTE: $(FptoolsHcOpts) gets added to every Haskell compilation for
      Haskell *programs* (not libraries), including GHC itself.  By default,
      it contains only -O.  To remove the -O, you need to override
      FptoolsHcOpts in build.mk, not GhcHcOpts.
      
      GhcHcOpts is still there, and contains options to be added when
      compiling GHC only.
      7d34d68c
    • simonpj's avatar
      [project @ 2001-07-25 09:19:41 by simonpj] · a47868d5
      simonpj authored
      ---------------------------------
      	Another long-standing infelicity!
      	---------------------------------
      
      CoreTidy was throwing away demand info on let-binders.
      This meant that CorePrep would build a let (thunk) instead of
      a case, even if the Id is sure to be demanded.
      
      Easily fixed by making CoreTidy retain the demand info.
      
      This demand-analysis stuff is having the excellent side effect
      of flushing out performance bugs!
      a47868d5
    • simonmar's avatar
      [project @ 2001-07-25 09:14:21 by simonmar] · e16e9973
      simonmar authored
      - bugfix (was erroneously ignoring the return value from scavenge_one() and
        checking failed_to_evac instead, which was always false)
      
      - printf format fix (shut gcc up).
      e16e9973
    • simonpj's avatar
      [project @ 2001-07-25 08:04:00 by simonpj] · 513e9c2f
      simonpj authored
      Change pretty-print of DmdType slightly
      513e9c2f
    • simonpj's avatar
      [project @ 2001-07-25 07:43:53 by simonpj] · 7ca7d77a
      simonpj authored
      ---------------------------
      	Fix another bad DmdAnal bug
      	---------------------------
      
      The `both` operator wasn't commutative, leading to most
      strange results.  In particular, the fixpoint finder went into
      an infinite fip/flop loop on Marcin's program.
      7ca7d77a
    • simonpj's avatar
      [project @ 2001-07-25 07:42:23 by simonpj] · 72904630
      simonpj authored
      ---------------------------------------
      	Fix a grevious dict-inlining infelicity
      	---------------------------------------
      
      This commit fixes an infelicity that must have been there
      for a long time.  The problem was that dictionary functions
      (arising from instance declarations) were treated as GlobalIds,
      and hence no taken account of when doing free variable and dependency
      analysis.    As a result, the specialiser was messing up dependency
      order, so the program was considerably more complex than it should
      be by the time it got to the strictness analyser.
      
      Net result:
      	PrelRead.$sreduce :: Integer -> Integer -> (Integer,Integer)
      didn't get detected as strict.
      
      Easily fixed, by making DictFunIds into LocalIds (albeit exported ones).
      72904630
  5. 24 Jul, 2001 11 commits