- 22 Aug, 2015 5 commits
-
-
Kevin Modzelewski authored
We were storing and passing them as std::unordered_map (and sometimes switching to std::vector). But the set can only contain the integers 0 through 15, so just represent it as a bitset.
-
Kevin Modzelewski authored
Maybe a better overall approach is to not convert it out of its original flat format; we keep that original memory around anyway and I don't think it's that much faster to scan than our parsed version. But for now, optimize the current approach: - convert vector->SmallVector - call ensure since we usually know how many elements the vectors will have - use a StringMap instead of an unordered_map<std::string>
-
Kevin Modzelewski authored
Fix submodules
-
Kevin Modzelewski authored
Somehow most of them did not make it in the second merge.
-
Kevin Modzelewski authored
Undo testsuite split
-
- 21 Aug, 2015 10 commits
-
-
Kevin Modzelewski authored
Reduce allocations
-
Kevin Modzelewski authored
Use adjustment-post division to avoid int division overflow
-
Kevin Modzelewski authored
For some reason CPython allocates an extra "item" for generic variable-sized objects, but it looks like it doesn't do that for tuples. We had been doing that, so let's try not doing that and saving 8 bytes per tuple.
-
Kevin Modzelewski authored
Reduces boxing during the import process
-
Kevin Modzelewski authored
This is a temporary fix for the fact that "-1" is currently getting parsed as "-(1)", which will cause us to call '(1).__neg__()' with the associated overhead and allocation. It should be useful even after that gets fixed though.
-
Kevin Modzelewski authored
- Check for the allocation of empty tuples and just return the singleton - Try to avoid creating the kwargs dict since it might end up being empty - Let unicode-creation special case apply to all argument types - Fix type(obj) to be fast again (got superceded by a different special case) - Do fewer allocations in int()
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
Forgot to do this when I switched away from an StlCompatAllocator, so we were leaking memory pretty badly.
-
Kevin Modzelewski authored
more small exceptions optimizations
-
Kevin Modzelewski authored
-
- 20 Aug, 2015 4 commits
-
-
Kevin Modzelewski authored
Actually, for now in all cases unless __init__ is a Python function.
-
Kevin Modzelewski authored
- Add a has_subclasscheck class slot - Add a fast path for when the exception matches exactly (though we have to check that there isn't a metaclass involved first).
-
Kevin Modzelewski authored
The rest of our builtin types use our "hc attrs" (hidden-class-based attribute storage), but we use the CPython implementation of exceptions which ask for dict attributes. So, expose our hcattrs via the C API and change the exceptions classes to use it. Hopefully we can eventually find some more general way of providing this feature (ex for all string-keyed dicts) without needing these changes.
-
Kevin Modzelewski authored
-
- 19 Aug, 2015 3 commits
-
-
Boxiang Sun authored
-
Boxiang Sun authored
-
Kevin Modzelewski authored
Mercurial fixes
-
- 18 Aug, 2015 18 commits
-
-
Kevin Modzelewski authored
Some misc small optimizations
-
Kevin Modzelewski authored
descriptor/format fix
-
Kevin Modzelewski authored
bjit: don't generate a 'getGlobal' call for 'None'
-
Kevin Modzelewski authored
Some improvements for int to let test_int could pass
-
Kevin Modzelewski authored
They had mistakenly gotten enabled because the name of the integration test step was a superstring of the quick tests, so it matched the regex.
-
Kevin Modzelewski authored
It had gotten to the point that a large part of the cost of throwing an eception was allocating the std::string's to represent the function and filename. Most of the other strings have already been converted to being represented as BoxedString's (ie python strings), so do that conversion here and a few more places.
-
Kevin Modzelewski authored
The callee had already but updated to take a smallvector, but we were still instantiating it as a std::vector.
-
Kevin Modzelewski authored
Call a combined new+init, and don't create an arg tuple just to immediately slice into it.
-
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.
-
Marius Wachtler authored
-
Boxiang Sun authored
-
Boxiang Sun authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Boxiang Sun authored
-
Boxiang Sun authored
-
Boxiang Sun authored
add instanceTrunc to old style class, but not expose the API, just let instanceInt call it when the inst don't have __int__ attr
-