- 18 Aug, 2015 2 commits
-
-
Kevin Modzelewski authored
Much faster than using pyElements into a std::vector<Box*, StlCompatAllocator>. I think pyElements is pretty good, but the PySequence_Fast approach can beat it since we do the entire conversion up-front, and don't pay the dispatching cost per iteration. Plus the STL-compat-allocator is just as expensive as a Python list, and most of the time the extra storage isn't needed anyway.
-
Kevin Modzelewski authored
Instead of relying on stack unwinding to find it.
-
- 17 Aug, 2015 8 commits
-
-
Kevin Modzelewski authored
Copy tp_as_number *after* commonClassSetup
-
Kevin Modzelewski authored
Add float_info to sys module, and rewrite version_info use SequenceStructure
-
Kevin Modzelewski authored
This is important because commonClassSetup will modify tp_as_number if it exists. This causes an issue when an extension class uses multiple inheritance; it will inherit the tp_as_number from its main base, but then copy in any fields from its secondary bases. But tp_as_number points to the same struct as its parent, so it would update the parent's slots accidentally. So, move the tp_as_number copying to where CPython does it, or at least, after the calls to inherit_slots.
-
Kevin Modzelewski authored
Add more __repr__ attributes to our builtins
-
Marius Wachtler authored
-
Boxiang Sun authored
-
Boxiang Sun authored
-
Boxiang Sun authored
-
- 16 Aug, 2015 2 commits
-
-
Marius Wachtler authored
Switch our Python set implementation to use a llvm::DenseSet
-
Marius Wachtler authored
-
- 15 Aug, 2015 4 commits
-
-
Kevin Modzelewski authored
Microoptimize the rewriter class
-
Marius Wachtler authored
-
Kevin Modzelewski authored
Improve the float implementation, enable test_float
-
Kevin Modzelewski authored
make `int("some_random_string")` faster
-
- 14 Aug, 2015 19 commits
-
-
Kevin Modzelewski authored
Probably more compatible, but also much faster. Also, set str_cls->tp_repr.
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
We currently over-build it quite a bit; I'll try to look into that issue, but for now we can lessen the effects by at least building it in parallel.
-
Kevin Modzelewski authored
Allow string + bytearray => bytearray. Fixes #780
-
Boxiang Sun authored
-
Kevin Modzelewski authored
improve getattr() speed
-
Boxiang Sun authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
We're keeping them around anyway
-
Kevin Modzelewski authored
Our exception throwing is still slower than CPython's, and it looks like it's partially due to the CAPI calls we do as part of the throwing process. For example, we have to actually create an exception object, which involves calling the exception type constructor, etc. We could try to jit this stuff, but for now add another fast-path to typeCall that should catch some of this. Also, add a fast-path that inlines most of the exception-creation behavior. Looks like this isn't too much faster than the above-mentioned fast-path.
-
Kevin Modzelewski authored
-
Vinzenz Feenstra authored
-
Vinzenz Feenstra authored
-
Boxiang Sun authored
-
Boxiang Sun authored
-
Kevin Modzelewski authored
Remove __attribute__((__malloc__)) from the gc
-
Kevin Modzelewski authored
support yield statements inside lambdas
-
Kevin Modzelewski authored
This attribute unfortunately lets the compiler skip stores if the pointer doesn't escape. This is bad because we will be looking at the memory during a collection; the compiler was skipping storing to cls and then the gc was crashing.
-
- 13 Aug, 2015 5 commits
-
-
Marius Wachtler authored
-
Marius Wachtler authored
-
Kevin Modzelewski authored
Have pypa parse strings directly
-
Kevin Modzelewski authored
Save the key hash in dictionaries
-
Kevin Modzelewski authored
Enable libpypa support for break/continue misuse detection
-