1. 15 Apr, 2016 5 commits
    • Kevin Modzelewski's avatar
      c4a4b013
    • Kevin Modzelewski's avatar
      A few misc test updates / fixes · e6b7d6c0
      Kevin Modzelewski authored
      e6b7d6c0
    • Kevin Modzelewski's avatar
      d4831adb
    • Kevin Modzelewski's avatar
      Allow forking with other threads alive · bb053bf4
      Kevin Modzelewski authored
      I wasn't sure what we would have to do in this case --
      we don't really have any way of cleaning up the data referenced
      by those other threads.
      
      Fortunately(?), CPython doesn't do much cleanup of those threads
      (cleans up their metadata but doesn't try to clean up any references
      held by the thread), so we don't have to do much either.  Just set
      a flag saying that this happened and that we should skip asserting
      that we got down to 0 refs.
      bb053bf4
    • Kevin Modzelewski's avatar
      Move our ThreadState handling closer to CPython's · 6eea2b47
      Kevin Modzelewski authored
      Our underlying implementation still looks pretty different, but
      rather than implement some newly-needed APIs completely from scratch,
      I copied in some of CPython's implementation.
      
      The result is a bit messy (multiple ways of doing similar things),
      but I think it's a step in the right direction.
      
      Regardless, this commit adds "clean up thread-local storage when the
      local object dies" functionality, as well as better cleanup when
      there are multiple threads.  I think this should help with the fork
      issues as well.
      6eea2b47
  2. 13 Apr, 2016 14 commits
  3. 12 Apr, 2016 19 commits
  4. 11 Apr, 2016 2 commits
    • Kevin Modzelewski's avatar
      Fix some bugs in the rewriter "gc references" tracking · 7018c659
      Kevin Modzelewski authored
      - simple bug where when clearing the IC I forgot to clear
        the old list of gc references.
      - keep gc references alive during the duration of the rewrite.
        There are some cases where the thing we are guarding on would
        normally get destroyed by the end of the operation.
        So make the ref an owned ref.  But at the end if we see
        that we hold the only reference to the object, abort the rewrite
        (since the guard could never pass in the future)
      7018c659
    • Kevin Modzelewski's avatar
      I guess our functions need clears now · 615d5702
      Kevin Modzelewski authored
      615d5702