1. 28 Mar, 2003 3 commits
    • sof's avatar
      [project @ 2003-03-28 15:47:15 by sof] · f7cf092c
      sof authored
      fix ProjectVersion
    • sof's avatar
      [project @ 2003-03-28 15:13:52 by sof] · 34beae43
      sof authored
      FIRST_BLOCK_OFF: more parens (for prec table illiterates like me)
    • sof's avatar
      [project @ 2003-03-28 01:59:05 by sof] · a5687b3b
      sof authored
      Off-by-one tidyup.
      ALLOC_AP, ALLOC_PAP and MKAP were all being constructed
      with size arguments equal to (1+number of args/FVs) in
      ByteCodeGen.schemeE, only for Interpreter.c to subtract 1
      when fishing out the payloads. This commit drops the
      Simplification spotted by Andy Moran
  2. 27 Mar, 2003 7 commits
    • sof's avatar
      [project @ 2003-03-27 22:35:28 by sof] · cdc9f210
      sof authored
      be gone
    • sof's avatar
      [project @ 2003-03-27 17:59:09 by sof] · 6da62425
      sof authored
      NCG support for f.e.d. stdcall -- Literal.MachLabels now optionally carry
      the size (in bytes) of the stack frame it expects, if known. That just
      so happens to match what stdcall labels need to be annotated with when
      emitting them in the NCG..
    • simonmar's avatar
      [project @ 2003-03-27 13:54:31 by simonmar] · bf8b921f
      simonmar authored
      Two performance tweaks:
        - Use specialised indirections, which perform the right kind of
          return without needing to enter the object they point to.  This
          saves a small percentages of memory reads.
        - Tweak the update code to generate better code with gcc.  This
          saves a few instructions per update.
    • simonpj's avatar
      [project @ 2003-03-27 08:25:31 by simonpj] · b52d5ab7
      simonpj authored
            Fix a wibble in default-type setting for TH
      When a bunch of declarations contains no 'default' declaration,
      we were setting 'defaultDefaultTys' as appropriate default types.
      This isn't right for Template Haskell, which may have more than
      one bunch of top-level decls.  (The bunches are separated by
      top-level declaration splices.)
      Instead, if there is no 'default' declaration we should do nothing.
    • simonpj's avatar
      [project @ 2003-03-27 08:21:27 by simonpj] · 3ede7cd4
      simonpj authored
            Respect SPECIALISE pragmas in instance decls
      For some time now we have simply been discarding SPECIALISE pragmas
      in instance declarations.  I think this was my fault, at some point
      when I was re-plumbing TcClassDcl.lhs, but it's been this way for
      some time.
      The only uses of this facility in the Prelude are in GHC/Float.lhs
      and GHC/Real.lhs, which affected the efficiency of the Float and
      Double instance of properFraction, floor, ceiling, etc.
      Ah well, it's fixed now.
    • simonpj's avatar
      [project @ 2003-03-27 08:18:21 by simonpj] · e79e33b9
      simonpj authored
      Reduce tctrace verbosity
    • simonpj's avatar
      [project @ 2003-03-27 08:16:29 by simonpj] · e9440920
      simonpj authored
      Import wibbles
  3. 26 Mar, 2003 8 commits
  4. 25 Mar, 2003 12 commits
  5. 24 Mar, 2003 4 commits
    • simonmar's avatar
      [project @ 2003-03-24 16:18:26 by simonmar] · 2e9a75d1
      simonmar authored
      warning elimination
    • simonmar's avatar
      [project @ 2003-03-24 15:33:25 by simonmar] · 25efe5a4
      simonmar authored
      A couple of changes related to bug #2 in the previous commit:
       - follow IND_STATICs, now that we can check whether
         we end up in to-space or not
       - improve the commentary
    • simonmar's avatar
      [project @ 2003-03-24 14:46:53 by simonmar] · b3f53081
      simonmar authored
      Fix some bugs in compacting GC.
      Bug 1: When threading the fields of an AP or PAP, we were grabbing the
      info table of the function without unthreading it first.
      Bug 2: eval_thunk_selector() might accidentally find itself in
      to-space when going through indirections in a compacted generation.
      We must check for this case and bale out if necessary.
      Bug 3: This is somewhat more nasty.  When we have an AP or PAP that
      points to a BCO, the layout info for the AP/PAP is in the BCO's
      instruction array, which is two objects deep from the AP/PAP itself.
      The trouble is, during compacting GC, we can only safely look one
      object deep from the current object, because pointers from objects any
      deeper might have been already updated to point to their final
      The solution is to put the arity and bitmap info for a BCO into the
      BCO object itself.  This means BCOs become variable-length, which is a
      slight annoyance, but it also means that looking up the arity/bitmap
      is quicker.  There is a slight reduction in complexity in the byte
      code generator due to not having to stuff the bitmap at the front of
      the instruction stream.
    • simonmar's avatar
      [project @ 2003-03-24 11:23:20 by simonmar] · 82387309
      simonmar authored
      #ifdef some more code that belongs to the old strictness analyser.
      It turns out we were still compiling the Demand and SaLib modules,
      which aren't required unless OLD_STRICTNESS is on (do we still need
  6. 22 Mar, 2003 1 commit
  7. 21 Mar, 2003 5 commits
    • sof's avatar
      [project @ 2003-03-21 16:18:37 by sof] · 557bca73
      sof authored
      Friday morning code-wibbling:
      - made RetainerProfile.c:firstStack a 'static'
      - added RetainerProfile.c:retainerStackBlocks()
    • sof's avatar
      [project @ 2003-03-21 15:48:06 by sof] · d4c65d1e
      sof authored
      drop FILE_SIZE (hasn't been needed by NCG for the past 5 years or so)
    • sof's avatar
      [project @ 2003-03-21 15:45:56 by sof] · 107a09db
      sof authored
      reliably clean out mk* binaries
    • simonmar's avatar
      [project @ 2003-03-21 13:54:27 by simonmar] · 2e6d322e
      simonmar authored
      Modifications to the way we calculate CafInfo during tidying (again).
      The previous hack of setting the CafInfo on all non-top-level bindings
      to NoCafRefs was a hack, and it came back to bite us: when CorePrep
      floats out a let to the top level it doesn't create a new binding, and
      the existing let binder happens to say NoCafRefs which is unsafe.  It
      was caught by an ASSERT in the CoreToStg when compiling the libraries
      without -O - compiling without -O tends to result in more
      opportunities for CorePrep to float things to the top level.
      Now, we calculate CafInfo on the pre-tidied expressions, using the
      mapping from Ids to Ids that is being built up during tidying.  This
      avoids one loop, but will be slightly slower due to the extra lookups.
      However, it means we don't need to set the CafInfo on non-top-level
      binders to NoCafRefs.
    • simonmar's avatar
      [project @ 2003-03-21 10:59:20 by simonmar] · 63a5c646
      simonmar authored
      GNU ar seems to have trouble with duplicate object file names if you
      use the 's' modifier, so detect GNU ar here and use a simple 'ar q'
      command to create archives.
      This bug was tickled when I replaced an 'ar q' with '$(AR)' in
      target.mk yesterday: the default $(AR) is 'ar clqs'.