1. 13 Nov, 2001 2 commits
  2. 12 Nov, 2001 4 commits
  3. 09 Nov, 2001 9 commits
    • sof's avatar
      [project @ 2001-11-09 21:25:56 by sof] · 124690e9
      sof authored
      GhcCanonVersion: leave out GhcPatchLevel, causes problems when
      the GhcPatchLevel isn't a patchlevel but a date.
      124690e9
    • sof's avatar
      [project @ 2001-11-09 20:58:40 by sof] · 914cc0f0
      sof authored
      prel_PrelHandle_read(): de-hebetudified.
      914cc0f0
    • sof's avatar
      [project @ 2001-11-09 20:30:11 by sof] · cb470321
      sof authored
      Make recent rts/ changes work by recognising symbols starting
      with __stg as being known-funny-things.
      
      Still recognise "^stg" as 'funny', not sure if that's still
      needed.
      cb470321
    • sof's avatar
      [project @ 2001-11-09 18:40:52 by sof] · 6a0b3f67
      sof authored
      lookupInstEnv: "#ifdef DEBUG"-protect trace code
      that got included in prev. commit.
      
      (I'm guessing it either should be removed or moved
      into the ASSERT, but I'll let the original committer
      decide which).
      6a0b3f67
    • sof's avatar
      [project @ 2001-11-09 18:17:48 by sof] · 579b46fe
      sof authored
      * Moved CANON_HC_VERSION out of ghc/compiler/Makefile and into mk/config.mk.in
        (and renamed it as GhcCanonVersion).
      * Have ghc/driver/Makefile use it; cheaper and more robust than the version
        testing it was already doing.
      579b46fe
    • sof's avatar
      [project @ 2001-11-09 17:39:45 by sof] · cd844a66
      sof authored
      Optimised defn of CANON_HC_VERSION, synthesise it from config.mk info,
      not via an expensive $(shell ...) call.
      cd844a66
    • sof's avatar
      [project @ 2001-11-09 17:02:09 by sof] · 666d7f6b
      sof authored
      Use -fvia-C when compiling rename/ParseIface.hs and parser/Parser.hs -
      Int16 primops aren't supported by the NCG on all plats.
      666d7f6b
    • simonpj's avatar
      [project @ 2001-11-09 16:41:15 by simonpj] · b1c75ab0
      simonpj authored
      ---------------------------------------
      	Fix an obscure overlapping-instance bug
      	---------------------------------------
      
      	MERGE TO STABLE BRANCH
      
      When searching for instances, we used bale out if the type
      we seek could be instantiated to match the instance (because
      it might be so instantiated later, in which case we don't
      want to miss the opportunity).
      
      The bug was that we used *matching* whereas we should use
      *unification*.
      
      Comments in the file InstEnv.
      b1c75ab0
    • sof's avatar
      [project @ 2001-11-09 16:29:06 by sof] · 41a551e3
      sof authored
      Auto-rule for INSTALL_DATAS and cbits/ header files:
      
      Nuke $(shell perl -e '...') use, i.e., don't load in and start up
      a 3M binary just to capitalise a word (which gets done twice per
      invocation of 'make').
      41a551e3
  4. 08 Nov, 2001 17 commits
    • sof's avatar
      [project @ 2001-11-08 19:34:23 by sof] · 629b8c60
      sof authored
      gen_Eq_binds: when comparing constructor tags, emit just
      
         a == b = case con2tag_Foo# a of
                    a# -> case con2tag_Foo# b of b# -> a# PrelGHC.==# b#
      
      and not
      
         a == b = case con2tag_Foo# a of
                    a# -> case con2tag_Foo# b of
                            b# -> if a# PrelGHC.==# b# then PrelBase.True else PrelBase.False
      
      (Not that this wouldn't get simplified, but still).
      629b8c60
    • sof's avatar
      [project @ 2001-11-08 19:20:55 by sof] · 56883a7f
      sof authored
      rnHsForeignDecl: 'foreign import's (incl 'f.e.d's) _define_ local toplevel
      names, so better use RnEnv.lookupTopBndrRn and not RnEnv.lookupOccRn to
      resolve the name.
      
      As was, declaring ForeignImports with the same name as an imported entity
      wasn't permitted.
      56883a7f
    • sof's avatar
      [project @ 2001-11-08 18:55:19 by sof] · 0377a8db
      sof authored
      gencode: for completeness sake only, handle CCallTypedefs
      0377a8db
    • sof's avatar
      [project @ 2001-11-08 18:53:44 by sof] · 37cb78bd
      sof authored
      ghc-inplace: single-quote -B option to avoid de-escaping those b-slashes
      37cb78bd
    • sof's avatar
      [project @ 2001-11-08 18:51:03 by sof] · 8c08b1a3
      sof authored
      hardtop_plat: escape those backslashes (exponentially so).
      8c08b1a3
    • sof's avatar
      [project @ 2001-11-08 17:39:14 by sof] · f8bd123f
      sof authored
      Prev. commit upset world order - revert back to printing out
      build tree loc. first.
      f8bd123f
    • simonmar's avatar
      [project @ 2001-11-08 17:04:28 by simonmar] · f400d408
      simonmar authored
      minor simplification
      f400d408
    • simonmar's avatar
      [project @ 2001-11-08 17:02:41 by simonmar] · 02fb8137
      simonmar authored
      inputReady can be an unsafe foreign import.
      02fb8137
    • simonmar's avatar
      [project @ 2001-11-08 16:37:54 by simonmar] · 0e74df8d
      simonmar authored
      wibble
      0e74df8d
    • simonmar's avatar
      [project @ 2001-11-08 16:36:39 by simonmar] · 012eb965
      simonmar authored
      getProgArgv can be an unsafe foreign import.
      012eb965
    • simonmar's avatar
      [project @ 2001-11-08 16:17:35 by simonmar] · c094c3ad
      simonmar authored
      Revert resumeThread and suspendThread to working with StgRegTable
      rather than Capability, and do the conversion in the functions
      themselves rather than in the inline code.  This means I don't have to
      fiddle with the NCG to fix the SUSPEND_THREAD/RESUME_THREAD macros.
      c094c3ad
    • simonmar's avatar
      [project @ 2001-11-08 14:42:11 by simonmar] · 79368b84
      simonmar authored
      Fix a bug in the previous commit, and add some more sanity checking.
      79368b84
    • simonmar's avatar
      [project @ 2001-11-08 12:56:00 by simonmar] · 6ae381cd
      simonmar authored
      Updates to the native code generator following the changes to fix the
      large block allocation bug, and changes to use the new
      function-address cache in the register table to reduce code size.
      
      Also: I changed the pretty-printing machinery for assembly code to use
      Pretty rather than Outputable, since we don't make use of the styles
      and it should improve performance.  Perhaps the same should be done
      for abstract C.
      6ae381cd
    • simonmar's avatar
      [project @ 2001-11-08 12:50:07 by simonmar] · 11c7505f
      simonmar authored
      Remove the heap-check-size panic, following the RTS fixes for this problem.
      11c7505f
    • simonmar's avatar
      [project @ 2001-11-08 12:46:31 by simonmar] · 0671ef05
      simonmar authored
      Fix the large block allocation bug (Yay!)
      -----------------------------------------
      
      In order to do this, I had to
      
       1. in each heap-check failure branch, return the amount of heap
          actually requested, in a known location (I added another slot
          in StgRegTable called HpAlloc for this purpose).  This is
          useful for other reasons - in particular it makes it possible
          to get accurate allocation statistics.
      
       2. In the scheduler, if a heap check fails and we wanted more than
          BLOCK_SIZE_W words, then allocate a special large block and place
          it in the nursery.  The nursery now has to be double-linked so
          we can insert the new block in the middle.
      
       3. The garbage collector has to be able to deal with multiple objects
          in a large block.  It turns out that this isn't a problem as long as
          the large blocks only occur in the nursery, because we always copy
          objects from the nursery during GC.  One small change had to be
          made: in evacuate(), we may need to follow the link field from the
          block descriptor to get to the block descriptor for the head of a
          large block.
      
       4. Various other parts of the storage manager had to be modified
          to cope with a nursery containing a mixture of block sizes.
      
      Point (3) causes a slight pessimization in the garbage collector.  I
      don't see a way to avoid this.  Point (1) causes some code bloat (a
      rough measurement is around 5%), so to offset this I made the
      following change which I'd been meaning to do for some time:
      
        - Store the values of some commonly-used absolute addresses
          (eg. stg_update_PAP) in the register table.  This lets us use
          shorter instruction forms for some absolute jumps and saves some
          code space.
      
        - The type of Capability is no longer the same as an StgRegTable.
          MainRegTable renamed to MainCapability.  See Regs.h for details.
      
      Other minor changes:
      
        - remove individual declarations for the heap-check-failure jump
          points, and declare them all in StgMiscClosures.h instead.  Remove
          HeapStackCheck.h.
      
      Updates to the native code generator to follow.
      0671ef05
    • simonmar's avatar
      [project @ 2001-11-08 12:41:07 by simonmar] · d7dedcdb
      simonmar authored
      (addendum to the previous commit) also set bd->blocks to zero in
      coalesce().
      d7dedcdb
    • simonmar's avatar
      [project @ 2001-11-08 10:18:49 by simonmar] · 18b3cd97
      simonmar authored
      For each non-head block in a block group, set its 'blocks' field to
      zero (as per comments elsewhere).
      18b3cd97
  5. 07 Nov, 2001 8 commits