An error occurred fetching the project authors.
  1. 01 Aug, 2015 2 commits
  2. 30 Jul, 2015 2 commits
  3. 29 Jul, 2015 1 commit
  4. 17 Jul, 2015 1 commit
  5. 08 Jul, 2015 2 commits
  6. 10 Jun, 2015 1 commit
    • Kevin Modzelewski's avatar
      Change the way we store and pass string data · 95ad7ffc
      Kevin Modzelewski authored
      Convert to BoxedString much sooner, and have any functions that
      might need to box a string take a BoxedString.  This means that
      on some paths, we will need to box when previously we didn't, but
      for callsites that we control we can just intern the string and
      not have to box again.  The much more common case is that we
      passed in unboxed string data, but then ran into a branch
      that required boxing.
      
      BoxedString shouldn't be that much more costly than std::string,
      and this should cut down on string allocations.
      
      For django-template.py, the number of strings allocated drops from
      800k to 525k; for virtualenv_test.py, it goes from 1.25M to 1.0M
      
      A couple things made this not 100% mechanical:
      - taking advantage of places that we could eliminate unbox/rebox pairs
      - different null-termination assumptions between StringRef and the c api.
      95ad7ffc
  7. 06 Apr, 2015 2 commits
  8. 26 Mar, 2015 1 commit
    • Marius Wachtler's avatar
      Use cpythons isinstance and issubclass implementation · 836af2e4
      Marius Wachtler authored
      This commit removes our implementation of this functions,
      because they could not handle mixing of old and new style classes.
      And having two implementations with very similar name but different
      results is very confusing.
      Also adds __subclasscheck__ and __instancecheck__ support
      836af2e4
  9. 25 Mar, 2015 2 commits
  10. 23 Mar, 2015 1 commit
  11. 21 Mar, 2015 1 commit
  12. 25 Feb, 2015 2 commits
    • Kevin Modzelewski's avatar
      Support unicode literals in source files · bd80565f
      Kevin Modzelewski authored
      Currently storing + passing unicode strings around as UTF-encoded bytestrings
      in std::string; maybe it'd be nice to have the type system show that these are
      actually unicode strings, or to use the CPython internal representation (UCS4?)
      to reduce the number of encodings/decodings.
      bd80565f
    • Marius Wachtler's avatar
      Add compvars and rewriting support for GET_ITER nodes · 07978243
      Marius Wachtler authored
      If the type analysis successfully determines that the __iter__() and __hasnext__()
      methods we can now replace them with direct calls to the destination.
      Else we create a patchpoint and do a rewrite.
      07978243
  13. 02 Feb, 2015 1 commit
    • Kevin Modzelewski's avatar
      Basic (new) deopt support · 25ac9de4
      Kevin Modzelewski authored
      Old deopt worked by compiling two copies of every BB, one with
      speculations and one without, and stitching the two together.
      This has a number of issues:
      - doubles the amount of code LLVM has to jit
      - can't ever get back on the optimized path
      - doesn't support 'deopt if branch taken'
      - horrifically complex
      - doesn't support deopt from within try blocks
      
      We actually ran into that last issue (see test from previous commit).  So
      rather than wade in and try to fix old-deopt, just start switching to new-deopt.
      
      (new) deopt works by using the frame introspection features, gathering up all
      the locals, and passing them to the interpreter.
      25ac9de4
  14. 21 Jan, 2015 2 commits
  15. 11 Jan, 2015 1 commit
  16. 05 Jan, 2015 1 commit
  17. 20 Nov, 2014 1 commit
  18. 11 Sep, 2014 1 commit
  19. 28 Aug, 2014 1 commit
    • Kevin Modzelewski's avatar
      Improve tuple unpacking behavior · b0e93d19
      Kevin Modzelewski authored
      - Use the right unpacking protocol (ie don't check __len__, just try to iterate)
      - Handle unpacking exceptions appropriately
      - Expand the targets of assigns correctly (think: f().x = 1)
      -- this was not just for tuples but came up here first; this also was broken:
      [0 for i in xrange(5)][0] = 1
      (silly but legal)
      b0e93d19
  20. 24 Aug, 2014 1 commit
  21. 22 Aug, 2014 2 commits
    • Travis Hance's avatar
      foundation for complex numbers · 50b886e4
      Travis Hance authored
      50b886e4
    • Kevin Modzelewski's avatar
      Implement the sequence iterator protocol · 4cf93f94
      Kevin Modzelewski authored
      ie if you just have a __getitem__ method, you are still iterable.
      
      This patch is unfortunately yet another performance regression, since
      we obscure the behavior for known types (ie no longer try to go directly
      to the __iter__).  Should make this into a call into type-specific behavior,
      so that known types can use __iter__ if they have one?
      4cf93f94
  22. 21 Aug, 2014 1 commit
  23. 15 Aug, 2014 1 commit
  24. 06 Aug, 2014 1 commit
    • Kevin Modzelewski's avatar
      Make the GC-header managed by the GC · cd11e1d5
      Kevin Modzelewski authored
      Previously the gc header had to be set and managed by the user of the GC,
      which didn't make much sense.
      
      Also took this opportunity to clean up a bunch of old cruft.
      
      Also got rid of ObjectFlavors and AllocationKinds, in preference for
      a GCKind which I think makes more sense.  Right now there are only three
      different GCKinds, but I'm not sure if the previous AllocationKinds
      should each get their own GCKind.
      cd11e1d5
  25. 30 Jul, 2014 1 commit
  26. 26 Jul, 2014 1 commit
  27. 24 Jul, 2014 2 commits
  28. 23 Jul, 2014 4 commits