1. 21 May, 2003 12 commits
  2. 20 May, 2003 7 commits
  3. 19 May, 2003 9 commits
    • simonpj's avatar
      [project @ 2003-05-19 15:39:17 by simonpj] · 7f480764
      simonpj authored
      	Improve the dynamic-linking story
      Arrange proper initialisation for the dynamic linker.  Whenever the dynamic linker does
      anything (Linker.linkExpr), it first initialises itself, arranging to only do so once
      of course.
      "Initialising itself" includes loading any .o files, libraries, and packages specified
      on the command line.  The main effect of all this is to fix a Template Haskell problem,
      which happened when a TH link needed some C library that it couldn't link.  Now it does.
      While I was at it, I tidied up main/Main.hs quite a bit.  This is a delicate area (handling
      the command line arguments), but I don't believe I broke anything!  All the libraries
      build, and lots of tests run.
      Wolfgang: I also jiggled the darwin_TARGET_OS stuff a little in Linker.lhs, but again
      I think the net effect is zero. You might want to check.
    • simonpj's avatar
      [project @ 2003-05-19 15:11:15 by simonpj] · 143f478b
      simonpj authored
      Comments only
    • simonpj's avatar
      [project @ 2003-05-19 15:10:40 by simonpj] · 20555469
      simonpj authored
      	Minor Template Haskell bug
      This bug meant that spliced-in class declarations yielded a 'op not in scope',
      where op was the class operation.  Thanks to Andre Pang for spotting this.
      Some consequential tidying up in parsing too.
    • simonmar's avatar
      [project @ 2003-05-19 13:29:15 by simonmar] · 3bb15d8e
      simonmar authored
      - rearrange the file a little
      - build a binary distribution from stage 2 by default, unless
        overriden from the command line.
    • simonmar's avatar
      [project @ 2003-05-19 13:01:23 by simonmar] · e23544cc
      simonmar authored
      Remove obsolete references to DriFT, DtdToHaskell and Xtract.
    • simonmar's avatar
      [project @ 2003-05-19 12:11:14 by simonmar] · 850fd993
      simonmar authored
      tryM again: make it work with GHC 5.02.x (I hope).  Seems we changed
      the representation of UserErrors several times in the last few
    • simonmar's avatar
      [project @ 2003-05-19 11:37:07 by simonmar] · 69164b87
      simonmar authored
      Fix a pair of off-by-one errors that meant that BCOs were normally two
      words larger than they needed to be.
    • simonmar's avatar
      [project @ 2003-05-19 11:33:06 by simonmar] · e59ac28b
      simonmar authored
      Eeek!  intsToReverseBitmap was borked for bitmaps with more than
      wORD_SIZE_IN_BITS entries.
    • simonpj's avatar
      [project @ 2003-05-19 08:31:11 by simonpj] · b15e663f
      simonpj authored
      More Win32 help
  4. 17 May, 2003 2 commits
  5. 16 May, 2003 5 commits
  6. 15 May, 2003 1 commit
  7. 14 May, 2003 4 commits
    • simonmar's avatar
      [project @ 2003-05-14 11:55:11 by simonmar] · 83183fce
      simonmar authored
      Should have been committed with recent SRT changes (see rev. 1.39 of StgSyn.lhs).
    • simonmar's avatar
      [project @ 2003-05-14 09:13:52 by simonmar] · 7a236a56
      simonmar authored
      Change the way SRTs are represented:
      Previously, the SRT associated with a function or thunk would be a
      sub-list of the enclosing top-level function's SRT.  But this approach
      can lead to lots of duplication: if a CAF is referenced in several
      different thunks, then it may appear several times in the SRT.
      Let-no-escapes compound the problem, because the occurrence of a
      let-no-escape-bound variable would expand to all the CAFs referred to
      by the let-no-escape.
      The new way is to describe the SRT associated with a function or thunk
      as a (pointer+offset,bitmap) pair, where the pointer+offset points
      into some SRT table (the enclosing function's SRT), and the bitmap
      indicates which entries in this table are "live" for this closure.
      The bitmap is stored in the 16 bits previously used for the length
      field, but this rarely overflows.  When it does overflow, we store the
      bitmap externally in a new "SRT descriptor".
      Now the enclosing SRT can be a set, hence eliminating the duplicates.
      Also, we now have one SRT per top-level function in a recursive group,
      where previously we used to have one SRT for the whole group.  This
      helps keep the size of SRTs down.
      Bottom line: very little difference most of the time.  GHC itself got
      slightly smaller.  One bad case of a module in GHC which had a huge
      SRT has gone away.
      While I was in the area:
        - Several parts of the back-end require bitmaps.  Functions for
          creating bitmaps are now centralised in the Bitmap module.
        - We were trying to be independent of word-size in a couple of
          places in the back end, but we've now abandoned that strategy so I
          simplified things a bit.
    • simonmar's avatar
      [project @ 2003-05-14 09:11:49 by simonmar] · efbac413
      simonmar authored
      Comments only
    • simonmar's avatar
      [project @ 2003-05-14 09:11:06 by simonmar] · c7268677
      simonmar authored
      Calling mmap() with a size > 3Gig results in EINVAL on Linux.  Catch
      this case and report it as an out of memory condition instead of a