An error occurred fetching the project authors.
- 01 Aug, 2015 2 commits
-
-
Kevin Modzelewski authored
Less helpful than I thought for now -- the KeyErrors are thrown by a custom class that does `raise KeyError`, so we won't benefit from this until we can have jitted code throw (not just receive) capi exceptions.
-
Kevin Modzelewski authored
-
- 30 Jul, 2015 2 commits
-
-
Kevin Modzelewski authored
Eventually we'll want to have a more sophisticated way of determining when to switch to capi exceptions; they do add noticeable overhead when no exception gets thrown.
-
Kevin Modzelewski authored
None are enabled in this commit, but add some of the helpers for handling exceptions if they were to be thrown.
-
- 29 Jul, 2015 1 commit
-
-
Rudi Chen authored
It's not too big of a move, hopefully this won't cause merge conflicts for anyone. Just part of an attempt to reduce the size of objmodel.cpp
-
- 17 Jul, 2015 1 commit
-
-
Kevin Modzelewski authored
- put it into a header file (and start including it) - move the grow-the-array part into a separate function to encourage the fast-path to get inlined.
-
- 08 Jul, 2015 2 commits
-
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
Put the common-case (where we don't do any work) in an inline-able function, and keep the slow stuff hidden.
-
- 10 Jun, 2015 1 commit
-
-
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.
-
- 06 Apr, 2015 2 commits
-
-
Michael Arntzenius authored
-
Joris Vankerschaver authored
-
- 26 Mar, 2015 1 commit
-
-
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
-
- 25 Mar, 2015 2 commits
-
-
Travis Hance authored
-
Travis Hance authored
-
- 23 Mar, 2015 1 commit
-
-
Travis Hance authored
-
- 21 Mar, 2015 1 commit
-
-
Kevin Modzelewski authored
-
- 25 Feb, 2015 2 commits
-
-
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.
-
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.
-
- 02 Feb, 2015 1 commit
-
-
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.
-
- 21 Jan, 2015 2 commits
-
-
Kevin Modzelewski authored
last_exc was not thread safe, and didn't respect frame-localness. Now that we have sys.exc_info support we can do this the right way
-
Kevin Modzelewski authored
-
- 11 Jan, 2015 1 commit
-
-
Kevin Modzelewski authored
Sometimes you want the wrapping behavior or not -- the builtin iter() function was calling getiter, but shouldn't be doing this wrapping.
-
- 05 Jan, 2015 1 commit
-
-
Kevin Modzelewski authored
(update copyright notices)
-
- 20 Nov, 2014 1 commit
-
-
Kevin Modzelewski authored
Ie if you override sys.stdout, prints without an explicit destination will go to the new location. Also sneak in a couple other bugfixes.
-
- 11 Sep, 2014 1 commit
-
-
Kevin Modzelewski authored
-
- 28 Aug, 2014 1 commit
-
-
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)
-
- 24 Aug, 2014 1 commit
-
-
Travis Hance authored
-
- 22 Aug, 2014 2 commits
-
-
Travis Hance authored
-
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?
-
- 21 Aug, 2014 1 commit
-
-
Travis Hance authored
-
- 15 Aug, 2014 1 commit
-
-
Kevin Modzelewski authored
Need this to track "softspace" correctly...
-
- 06 Aug, 2014 1 commit
-
-
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.
-
- 30 Jul, 2014 1 commit
-
-
Kevin Modzelewski authored
-
- 26 Jul, 2014 1 commit
-
-
Kevin Modzelewski authored
-
- 24 Jul, 2014 2 commits
-
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
Ended up not being too bad, except for some more fun around classdefs having different rules, and making sure to generate the correct error type and messages.
-
- 23 Jul, 2014 4 commits
-
-
https://github.com/xiafan68/pystonKevin Modzelewski authored
Merges #101 Conflicts: src/codegen/runtime_hooks.h
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
Before was throwing AttributeError, since we were just translating it to: import a b = a.b Now there's a special importFrom runtime function that does essentially the same thing, but throws the proper exception.
-
Kevin Modzelewski authored
Previously, a non-satisfied except filter would cause the traceback to be lost, since we were using the one-argument 'raise exc' form.
-