- 25 May, 2016 15 commits
-
-
Kevin Modzelewski authored
Switch to CPython's descrobject.c
-
Kevin Modzelewski authored
The behavior changed in CPython 2.7.4, and Travis-CI runs 2.7.3.
-
Kevin Modzelewski authored
until I realize that it's because we were passing more tests than we expected.
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
Create a simple Dockerfile
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
This is for adding a guard on a non-immortal object, since we need to be safe against that object getting deallocated and a different object is allocated in its spot. We had support for this already, but it leaked memory. The biggest was that we never freed our runtimeICs, so if those ended up getting any GC references in them, then we would leak memory. So I started freeing those, but then that exposed the issue that the ICInvalidators expect that their dependent ICs never get freed. So I added back a mapping from ICSlotInfo-> ICInvalidators that reference them.
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
via their descrobject.c
-
Kevin Modzelewski authored
Not using it in this commit, just wanted to get the unmodified version in so it's easier to see the changes.
-
Kevin Modzelewski authored
We were doing a "call bumpUse() early" optimization to free up registers when we can, but as a side-effect it looked to the refcounter like the reference was done being used.
-
Kevin Modzelewski authored
The problem is that we emit an llvm "unreachable" instruction, and then continue to emit other code, which fails the verifier. endBlock(DEAD) is supposed to be the right way to handle that, but there is some more work that would need to be done there to get that working properly. So just do the easy thing for now -- create a new BB so that it's ok to emit more code.
-
Kevin Modzelewski authored
PyObject_New: register the type if the type is not yet registered
-
Kevin Modzelewski authored
that is just based off of pulling our latest release
-
- 24 May, 2016 5 commits
-
-
Marius Wachtler authored
-
Marius Wachtler authored
-
Kevin Modzelewski authored
str: use tp_as_sequence instead of tp_as_number
-
Marius Wachtler authored
string is special in that it is a c++ type which has tp_as_number and tp_as_sequence. This causes problems because when we fixup the slot dispatcher we will set the tp_as_number fields but not the tp_as_sequence because setting both can cause problems. Some extensions (e.g. numpy) require that we use the sq_* functions instead of nb_*. Therefore clear the tp_as_number fields (except nb_remainder which cpython has set too because it is not part of tp_as_sequence).
-
Marius Wachtler authored
BoxIteratorGeneric call PyIter_Next() lazily
-
- 23 May, 2016 17 commits
-
-
Marius Wachtler authored
update virtualenv to the one which always sets zip_safe=False
-
Marius Wachtler authored
-
Marius Wachtler authored
-
Marius Wachtler authored
We were fetching to eagerly which caused issues if the iterator got used for other stuff too
-
Kevin Modzelewski authored
Update test results
-
Kevin Modzelewski authored
Merge conflict between my pr that added the full test suite and Sun's that fixed one of the tests.
-
Kevin Modzelewski authored
Some work on the numpy test suite
-
Marius Wachtler authored
[WIP] Some minor numpy fixing.
-
Boxiang Sun authored
-
Marius Wachtler authored
binop: use PyNumber_* for user defined classes
-
Marius Wachtler authored
microptimization: mark _PyGC_generation0 as having a const address
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
I think it's most important that we do this for the first arg, since CPython won't end up increffing it either.
-
Kevin Modzelewski authored
Looked at all places it comes from and this looks safe (it's alive at least as long as the other arguments). We are now crashing on cpython_oldstyle_getattr_crash (a CPython crasher) but that's not really the fault of this change.
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
Merge refcounting into master
-
- 22 May, 2016 3 commits
-
-
Marius Wachtler authored
this is an advantage for _PyObject_GC_TRACK which before compiled to something like this: cmpq $-2, -16(%rdi) jne .LBB0_2 movq $-3, -16(%rdi) movq _PyGC_generation0(%rip), %rax movq %rax, -32(%rdi) movq _PyGC_generation0(%rip), %rax movq 8(%rax), %rax movq %rax, -24(%rdi) leaq -32(%rdi), %rcx movq %rcx, (%rax) movq _PyGC_generation0(%rip), %rax movq %rcx, 8(%rax) and now compiles to cmpq $-2, -16(%rdi) jne .LBB0_2 movq $-3, -16(%rdi) movq _PyGC_generation0(%rip), %rax movq %rax, -32(%rdi) movq 8(%rax), %rcx movq %rcx, -24(%rdi) leaq -32(%rdi), %rdx movq %rdx, (%rcx) movq %rdx, 8(%rax) notice that it had to load _PyGC_generation0 three times because the compiler had to assume that because of aliasing it got motified. (and this loads actually showed up in profiling as somewhat expensive)
-
Marius Wachtler authored
tuple: implement tp_as_sequence->sq_contains
-
Marius Wachtler authored
-