- 05 Jun, 2015 11 commits
-
-
Kevin Modzelewski authored
We were doing this for the main packages, but we would get different versions of their dependencies dependending on what the latest version was. Also, add some extra debugging output in the parser in case that issue crops up again.
-
Kevin Modzelewski authored
Try to make weakref4 less flaky
-
Kevin Modzelewski authored
Slightly change generator StopIteration handling
-
Kevin Modzelewski authored
Make multiple copies of all of the objects we expect to get collected, and just assert than any of them get collected.
-
Kevin Modzelewski authored
Unconditionally raise a StopIteration when trying to iterate a finished generator, regardless of what originally stopped it from iterating.
-
Kevin Modzelewski authored
Generator: don't generate the traceback for the StopIteration exc when the generator is exiting back to a hasnext call.
-
Kevin Modzelewski authored
Add the _elementtree and update libpypa
-
Kevin Modzelewski authored
Remove redundant code and pave way for #254
-
Kevin Modzelewski authored
Fix compile error when enabling memstats + call tp_richcompare even if rewrite_args == NULL
-
Marius Wachtler authored
I think this makes sense and I having different behaviour depending on rewrite_args is strange.
-
Marius Wachtler authored
-
- 04 Jun, 2015 9 commits
-
-
Bob Fang authored
unifying behaviour -- step 2 unifying behaviour -- step 3
-
Marius Wachtler authored
Generator: don't generate the traceback for the StopIteration exc when the generator is exiting back to a hasnext call. This is a small perf improvement for django-template.py: took 7.4ms for last iteration from 8.2ms
-
Marius Wachtler authored
-
Kevin Modzelewski authored
added some files that test_float needs
-
Kevin Modzelewski authored
Optimize stattimers
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
Main change is separating the representation of the timer stack (StatTimer) from the manipulation of it (ScopedStatTimer). This makes it easier to keep the different use cases (top level timers vs non-top-level) separate without having the individual functions check whether they think they are a top-level timer or not.
-
Kevin Modzelewski authored
I would have expected this to help a bunch but it seems to actually hurt
-
Kevin Modzelewski authored
-
- 03 Jun, 2015 19 commits
-
-
Marius Wachtler authored
-
Kevin Modzelewski authored
This roughly halves stattimer overhead, from +80% to +40% (on a very small benchmark; more complex benchmarks probably have lower overhead)
-
Marius Wachtler authored
-
Marius Wachtler authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
I don't think we regularly run make check anymore, and it's a pain to make sure the user has an up-to-date gcc (would need to come up with a good set of instructions for anyone on 12.04). So just remove it from make check for now.
-
Kevin Modzelewski authored
tp_richcompare
-
Kevin Modzelewski authored
virtualenv_test currently takes ~7m for me. we should probably move most of the stuff it does to the "extra" tests, but for now at least make `make check` not fail.
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
int, long, str, tuple, type int and long are implemented using tp_compare in CPython, which is the old-style comparison method. I don't really understand its semantics which rely on type coercion, and we don't have the methods it needs, so just implement it as tp_richcompare for now. I think this is still an overall compatibility improvement. str_richcompare is very odd where we have to do some weird things to convince the compiler to produce the best code it can.
-
Kevin Modzelewski authored
The notable places that are changed are PyEq, PyLt, and compare/compareInternal. The old codepaths are still in there (though thankfully now with reduced duplication with cpython), since for anything that defines a Python-level __lt__, it's better to call that with our rewriting support, rather than calling it through slot_tp_richcompare. The control flow is kind of messy, since I don't think we know what the right long-term organization is for these kinds of things. But basically, it's: - if we can't rewrite, just call the C slot - if we can rewrite, and we think calling tp_richcompare is profitable (ie it's not slot_tp_richcompare), we call that and emit a call to it in the patchpoint - otherwise, we try calling the python attribute Actual conversion of our attributes to tp_richcompare in the next commit.
-
Kevin Modzelewski authored
Reduce string allocations
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
and have the compiler pick the best way to convert to StringRef I was running into some cases where we had StringRefs but would call boxString which takes an std::string. So hopefully this change makes things cleaner and (slightly) faster.
-
Kevin Modzelewski authored
The motivating one was classLookup(), since this happened extremely frequently (once for every old-style instance lookup), but I decided to go through and get some others.
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
for getattrFunc use getattrInternal instead of getattr
-
Kevin Modzelewski authored
Float pow
-
Chris Toshok authored
getattr throws an exception if the attribute is not present. getattrFunc already throws the same exception (if there isn't a default value passed in).
-
- 02 Jun, 2015 1 commit
-
-
Kevin Modzelewski authored
Add a section-ordering script
-