1. 21 May, 1999 3 commits
    • sof's avatar
      [project @ 1999-05-21 14:46:19 by sof] · 263aaaa5
      sof authored
      Made rts_evalIO() stricter, i.e.,
         rts_evalIO( action );
      will now essentially cause `action' to be applied
      to the following (imaginary) defn of `evalIO':
          evalIO :: IO a -> IO a
          evalIO action = action >>= \ x -> x `seq` return x
      instead of just
          evalIO :: IO a -> IO a
          evalIO action = action >>= \ x -> return x
      The old, lazier behaviour is now available via rts_evalLazyIO().
    • sof's avatar
      [project @ 1999-05-21 14:37:12 by sof] · 472e4418
      sof authored
      Improved precision of LOOKS_LIKE_PTR()
    • sof's avatar
      [project @ 1999-05-21 14:28:32 by sof] · 7367cd55
      sof authored
      Don't perform repeated shutdowns
  2. 20 May, 1999 1 commit
  3. 13 May, 1999 1 commit
    • simonm's avatar
      [project @ 1999-05-13 17:30:50 by simonm] · 589b7946
      simonm authored
      Support for "unregisterised" builds.  An unregisterised build doesn't
      use the assembly mangler, doesn't do tail jumping (uses the
      mini-interpreter), and doesn't use global register variables.
      Plenty of cleanups and bugfixes in the process.
      Add way 'u' to GhcLibWays to get unregisterised libs & RTS.
      [ note: not *quite* working fully yet... there's still a bug or two
        lurking ]
  4. 11 May, 1999 2 commits
    • keithw's avatar
      [project @ 1999-05-11 16:49:44 by keithw] · 59555db8
      keithw authored
      Whoops, forgot to mention the following change:
        Various ticky counters have changed:
          - TICK_ALLOC_THK is now TICK_ALLOC_{UP,SE}_THK (updatable versus
          - TICK_UPD_{NEW,OLD}_IND is now TICK_UPD_{NEW,OLD}_{,PERM_}IND.
          - UPD_{CAF_,}BH_{UPDATABLE,SINGLE_ENTRY}_ctr added, counting the
            creation of various flavours of black holes.
          - ENT_PERM_IND, UPD_{NEW,OLD}_PERM_IND are only dumped if update
            squeezing is off; see comment in Ticky.c
        Some documentation for ticky-ticky has been added to the user guide.
    • keithw's avatar
      [project @ 1999-05-11 16:47:39 by keithw] · eb407ca1
      keithw authored
      (this is number 9 of 9 commits to be applied together)
        Usage verification changes / ticky-ticky changes:
        We want to verify that SingleEntry thunks are indeed entered at most
        once.  In order to do this, -ticky / -DTICKY_TICKY turns on eager
        blackholing.  We blackhole with new blackholes: SE_BLACKHOLE and
        SE_CAF_BLACKHOLE.  We will enter one of these if we attempt to enter
        a SingleEntry thunk twice.  Note that CAFs are dealt with in by
        codeGen, and ordinary thunks by the RTS.
        We also want to see how many times we enter each Updatable thunk.
        To this end, we have modified -ticky.  When -ticky is on, we update
        with a permanent indirection, and arrange that when we enter a
        permanent indirection we count the entry and then convert the
        indirection to a normal indirection.  This gives us a means of
        counting the number of thunks entered again after the first entry.
        Obviously this screws up profiling, and so you can't build a ticky
        and profiling compiler any more.
        Also a few other changes that didn't make it into the previous 8
        commits, but form a part of this set.
  5. 10 May, 1999 2 commits
  6. 07 May, 1999 1 commit
  7. 04 May, 1999 2 commits
  8. 28 Apr, 1999 1 commit
  9. 27 Apr, 1999 6 commits
  10. 23 Apr, 1999 2 commits
  11. 12 Apr, 1999 1 commit
  12. 08 Apr, 1999 1 commit
    • simonm's avatar
      [project @ 1999-04-08 15:43:44 by simonm] · 6a19a2b9
      simonm authored
      Don't set the cost centre when entering a PAP.  Either:
      	-  it's fully applied, in which case we're about to
      	   set the CCS in the function anyway, or
      	-  we're about to build another PAP in which case the
      	   costs get attributed to the current CCS.
      This avoids appending CCSs twice in some cases.
  13. 26 Mar, 1999 3 commits
  14. 25 Mar, 1999 1 commit
    • simonm's avatar
      [project @ 1999-03-25 13:13:51 by simonm] · e1db55d8
      simonm authored
      Profiling fixes.
      	- top-level CAF CCSs now *append* themselves to the
      	  current CCS when called.
      	- remove DICT stuff.
      	- fixes to the auto-scc annotating in the desugarer.
  15. 22 Mar, 1999 3 commits
  16. 20 Mar, 1999 1 commit
  17. 18 Mar, 1999 1 commit
  18. 17 Mar, 1999 4 commits
    • sewardj's avatar
      [project @ 1999-03-17 16:28:34 by sewardj] · 8f05bdd5
      sewardj authored
      Make mut_link field be NULL when removing CAF_{UN}ENTERED from
      mut_once_list.  Convention is to have the field be NULL iff
      the caf is not on a mut_once_list.  This gives a O(1) cost way
      to avoid putting a caf onto a mut_once_list more than once.
    • sewardj's avatar
      [project @ 1999-03-17 16:25:07 by sewardj] · bbe9289a
      sewardj authored
      Add missing semicolon
    • simonm's avatar
      [project @ 1999-03-17 13:19:19 by simonm] · d9eb68cf
      simonm authored
      - Stack overflow now generates an (AsyncException StackOverflow)
        exception, which can be caught as normal.
      - Add a stack overflow handler to the top-level mainIO handler, with
        the standard behaviour (i.e. call the stack overflow hook and then
      - Add a test for stack overflow catching.
      - Fix a couple of bugs in async exception support.
    • simonm's avatar
      [project @ 1999-03-17 09:50:08 by simonm] · 32e46064
      simonm authored
      When resizing a stack, set the Sp and Su of the old, dead, TSO to be just
      beyond the end of its stack so we don't attempt to scavenge any part of
      the stack in case we come across this TSO during GC.
  19. 16 Mar, 1999 1 commit
    • simonm's avatar
      [project @ 1999-03-16 13:20:07 by simonm] · 456eca73
      simonm authored
      Improvements to the threading model.
         - asynchronous exceptions supported.
      	- killThread# can now raise an exception in the specified
      	  thread.  It's new type is
      		killThread# :: ThreadId# -> Exception -> IO ()
      	  High-level versions:
      		killThread :: ThreadId -> IO ()
      		raiseInThread :: ThreadId -> Exception -> IO ()
      	  (killThread raises a 'ThreadKilled' exception in the
      	   specified thread).
      	  If the thread has no exception handler, it is killed
      	  as before.  Otherwise, the exception is passed to
      	  the innermost CATCH_FRAME and the thread is woken up
      	  if it was blocked.  The current computation is
      	  suspended, instead of being replaced by the exception
      	  (as is the case with throw).
      	  Sending an exception to the current thread works too.
         - new primitive: myThreadId# :: IO ThreadId# and corresponding
           high-level version myThreadId :: IO ThreadId.
         - new primitive: yield# :: IO (), and yield :: IO ().
         - the TSO now contains a pointer to the resource currently blocked
           on (MVAR or BLACKHOLE_BQ).
        - Add a giant comment to TSO.h about what the various link fields
          are supposed to do, and invariants etc.
  20. 15 Mar, 1999 3 commits