1. 25 Mar, 2015 3 commits
  2. 24 Mar, 2015 10 commits
    • Kevin Modzelewski's avatar
      Make BoxIteratorImpl objects gc-managed · 743cc66a
      Kevin Modzelewski authored
      We were getting some gc issues with these, I think because there
      could be GC pointers behind the GC-opaque shared_ptr pointers.
      
      Just make impl be a conservatively-allocated object so that the
      collector will find it while scanning.  We still need to explicitly
      call BoxIterator::gcAlloc if we store a reference (ex for BoxedEnumerate),
      but this should mean that we keep these alive when they are just on
      the stack (ex when we do a for-each loop over pyElements).
      
      I don't really like how this turned out, but I think the better option
      is to get rid of the indirection.
      743cc66a
    • Kevin Modzelewski's avatar
      tuple.index, set.__eq__ and __ne__ · 8ffe4e64
      Kevin Modzelewski authored
      Also fix str.rpartition, and add a signal handler for SIGUSR1 that
      prints out a stack trace.  I wanted this because our stack unwinder
      doesn't work when called from a gdb print command, so it was hard to
      debug why we were in an infinite loop.
      
      Also, fix the '-i' argument so that we get back to the repl if the
      program throws an exception.
      8ffe4e64
    • Marius Wachtler's avatar
      Allow subclassing of properties · abdf99d3
      Marius Wachtler authored
      abdf99d3
    • Marius Wachtler's avatar
      Add missing boxGCHandler() calls · b0ba8e15
      Marius Wachtler authored
      b0ba8e15
    • Marius Wachtler's avatar
      Add a few missing imp functions · f78cf569
      Marius Wachtler authored
      f78cf569
    • Kevin Modzelewski's avatar
    • Kevin Modzelewski's avatar
      Support setting __dict__ · 8b94bbc4
      Kevin Modzelewski authored
      It's trickier than just setting all of the attributes, since any updates
      to either the original dict or to the object's attributes will get
      mirrored in the other object.  I don't know if anyone uses this,
      but I don't think there's any good way for us to tell if this is
      going to happen so we just have to be conservative.
      
      So, add a new distinction between "types" of hidden classes, and add
      a new "dict backed" type.  Instead of having an array of attributes,
      has a single attribute which is a dict.
      
      There are some pretty tricky corner cases that we don't support yet,
      such as if you access and save __dict__, then set __dict__, and then
      try to access the saved version.  At least we can detect that and fail.
      8b94bbc4
    • Kevin Modzelewski's avatar
      Merge pull request #405 from dagar/cmake-libunwind · 415673dc
      Kevin Modzelewski authored
      cmake fix libunwind flags
      415673dc
    • Kevin Modzelewski's avatar
      Fix some bugs · 7be6eea8
      Kevin Modzelewski authored
      - Inherit simple_destructor from base classes
      - Handle unreachable code better
      - Call reprICAsString instead of reprIC
      - Fix self-assignment checking bug
      7be6eea8
    • Daniel Agar's avatar
      fixes #402 cmake fix libunwind release flags · 05e33940
      Daniel Agar authored
      -don't pass empty CFLAGS='' when buliding libunwind in release mode
      -revert libunwind to older version that has per thread caching enabled
      and match Makefile
      05e33940
  3. 23 Mar, 2015 10 commits
  4. 22 Mar, 2015 1 commit
  5. 21 Mar, 2015 11 commits
  6. 20 Mar, 2015 5 commits
    • Kevin Modzelewski's avatar
      Merge pull request #397 from rntz/master · 4714b860
      Kevin Modzelewski authored
      tiny misc improvements
      4714b860
    • Kevin Modzelewski's avatar
      Merge branch 'getattr' · d1c5d853
      Kevin Modzelewski authored
      Things are getting pretty messy, but it's an incremental step towards doing things more
      like CPython which should ultimately make things simpler.
      
      The use of the tp_getattro slots (even though they're the CAPI slots) seems to lead to
      about a ~7% improvement in interpreter-only speed.
      d1c5d853
    • Kevin Modzelewski's avatar
      Add tp_subclasses so we can update slots on subclasses · b42de323
      Kevin Modzelewski authored
      ie if we set __getattribute__ on a superclass, we have to update
      tp_getattro on all subclasses.  We've always been broken on this, but
      this didn't really matter as much until now since we would internally
      check __getattribute__ and not tp_getattro.
      
      tp_subclasses is a list of weakrefs, which means that we need weakref
      support before we can start finalizing classes.  which means we have to
      add a whole slew of things into the bootstrapping section.
      
      We should probably just do this in a more systematic way, but I'm
      not sure what that would be...
      b42de323
    • Kevin Modzelewski's avatar
    • Kevin Modzelewski's avatar
      Add getattrInternalGeneric to support non-overwridden lookups · 8f1cfa61
      Kevin Modzelewski authored
      This is the analogue of 9f63b62e but for getattr instead of setattr:
      previously there was no way to run the default getattr logic, since
      getattrInternalGeneral would always check for a custom __getattr__
      or __getattribute__.  This meant that object.__getattribute__ was
      the same thing as getattr() and that PyObject_GenericGetAttr was the
      same as PyObject_GetAttr, which were not correct.
      8f1cfa61