1. 02 Aug, 2001 7 commits
    • simonmar's avatar
      [project @ 2001-08-02 16:35:10 by simonmar] · e0521ba8
      simonmar authored
      Simplify the dependency analyser to use the Finder instead of doing
      its own directory searching.
    • simonmar's avatar
      [project @ 2001-08-02 16:30:41 by simonmar] · 6487214f
      simonmar authored
      Turn the strictness analyser back on again.
    • simonmar's avatar
      [project @ 2001-08-02 16:05:06 by simonmar] · 89cb459a
      simonmar authored
      Fix something that looks wrong in an attempt to get HEAD back on the
      rails again, whilst trying to get the award for the highest
      size-of-commit-message-to-number-of-lines-actually-changed ratio.
      The problem is this: a constructor defined as
      	data T = A !Int
      will cause a DataCon wrapper to be generated like this:
      	A = \x -> case x of x' { DEFAULT -> $wA x' }
      but the strictness on $wA says that it is strict in its first field.
      This is where the story gets a little hazy, but it seems that the
      compiler (5.00.2) happily removes the extra case thinking that x is
      going to get evaluated anyway, leaving us with
      	A = \x -> $wA x
      and the argument to A ends up not being evaluated at all.  Certain
      other parts of the compiler make use of the evaluatedness of fields in
      order to remove unnecessary cases, with the end result that we end up
      trying to dataToTag# an unevaluated thing, and certain derived Eq
      instances can give wrong results.  Phew.
      Now, here's the bit I *don't* understand: I can only see the bug with
      5.00.2, and only when the data type has more than one constructor:
      	data T = A !Int  |  B
      nevertheless, the HEAD compiler when bootstrapped displays symptoms of
      a broken Eq instance, so I'm trying this fix to see if it helps.
      The Attempted Fix: give the DataConId a fully-lazy strictness
    • ken's avatar
      [project @ 2001-08-02 15:33:35 by ken] · 73eb728f
      ken authored
      Some 64-bit fixes for the new GC code.
    • simonmar's avatar
      [project @ 2001-08-02 08:29:42 by simonmar] · c746737f
      simonmar authored
      oops, only import Exception.block when compiling GHCi (and we know
      we're bootstrapping)
    • qrczak's avatar
      [project @ 2001-08-02 05:15:33 by qrczak] · 63cd81f9
      qrczak authored
      Give ghc yet more memory.
    • sof's avatar
      [project @ 2001-08-02 01:01:46 by sof] · 053d8532
      sof authored
      Example invocation of 'windres' was a bit off
  2. 01 Aug, 2001 6 commits
    • sof's avatar
      [project @ 2001-08-01 21:55:04 by sof] · 262df042
      sof authored
      Support LFNs
    • qrczak's avatar
      [project @ 2001-08-01 20:37:00 by qrczak] · 0d84f3fa
      qrczak authored
      Give ghc more heap so it can bootstrap itself until the strictness
      analyser works again.
    • simonmar's avatar
      [project @ 2001-08-01 12:07:50 by simonmar] · f7828a36
      simonmar authored
      Signification cleanup & rewrite of CmLink.
      Fixes at least one bug: the PersistentLinkerState could sometimes get
      out of step with the RTS's idea of which modules were loaded, leading
      to an unloadObj failure when we try to unload the same module twice.
      This could happen if a ^C exception is received in the middle of a
      Fixed by keeping the part of the linker's state that must match up
      with the RTS's internal state entirely private to CmLink, stored in a
      global variable.  The operations in CmLink which manipulate this state
      are now wrapped by Exception.block, and so are safe from ^C
    • simonmar's avatar
      [project @ 2001-08-01 11:49:27 by simonmar] · fe5ab8f5
      simonmar authored
      use :set rather than :s
    • simonmar's avatar
      [project @ 2001-08-01 08:20:33 by simonmar] · 17678875
      simonmar authored
      *now* UF_CCS isn't used anywhere.
      (and it was wrong, too, which is why I wanted to get rid of it)
    • qrczak's avatar
      [project @ 2001-08-01 06:56:20 by qrczak] · c7876ef3
      qrczak authored
      Temporarily add -H80M to options for some modules, until the strictness
      analyser is working again.
  3. 31 Jul, 2001 8 commits
  4. 30 Jul, 2001 6 commits
  5. 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.
    • 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 :)
    • 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.
    • 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.
    • 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.
    • 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.
    • 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!
    • 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.
    • 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.
  6. 25 Jul, 2001 4 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
    • 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
      	both Lazy (Seq k l ds) = Seq Keep l ds
      Simple, eh?  (Comments with the code.)
    • 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().
    • 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.