- 18 May, 2016 4 commits
-
-
Boxiang Sun authored
-
Marius Wachtler authored
checkAndThrowCAPIException needs to do a 32bit comparison in some cases
-
Marius Wachtler authored
-
Marius Wachtler authored
this should fix a very annoying rarely encountered issue...
-
- 17 May, 2016 2 commits
-
-
Marius Wachtler authored
check return value instead of calling checkAndThrowCAPIException()
-
Marius Wachtler authored
this should make pyston more robust to cases where the error is set by a previous operation no functional change intended
-
- 16 May, 2016 11 commits
-
-
Marius Wachtler authored
refcounting changes for our integration tests
-
Kevin Modzelewski authored
Otherwise old build directories will switch to not having refchecking.
-
Marius Wachtler authored
this fixes and reenables some of our integration tests
-
Marius Wachtler authored
this gets triggered by M2Crypto which sets an error but returns None. previously we throw the error in the non rewriter path and ignored it in the rewriter. this makes it now identical and mote like cpython does it (only looks at the return value)
-
Marius Wachtler authored
the fixed blocksize of our region allocator was too small for very large actions fix this by using the more powerful llvm::BumpPtrAllocator which handles allocation larger than the slab size
-
Marius Wachtler authored
previously we checked if NDEBUG was defiend but this caused problems with extensions which modified this define
-
Marius Wachtler authored
interpreter: mark created_closure as live variable inside yields
-
Marius Wachtler authored
-
Marius Wachtler authored
without this we would never traverse the variable and the GC would therefore be unable to destroy the generator
-
Kevin Modzelewski authored
The issue with django was that it called object.__dict__.__get__(unicode), which would convert object to dict-backed, and then our shutdown logic doesn't support that case. The shutdown logic still doesn't support that case, and there are other ways to convert object's __dict__ to being dict-backed, so this commit isn't a full solution, but it seems like something we should do anyway.
-
Kevin Modzelewski authored
Try to reduce JIT time for the LLVM tier
-
- 14 May, 2016 4 commits
-
-
Kevin Modzelewski authored
I was worried we were in trouble since we don't always pass an owned reference to any arguments filled via defaults, but for Python functions this is fine since we will end up creating our own reference to it. For builtin functions, we disallow changing defaults.
-
Kevin Modzelewski authored
Not sure if it matters, but there are some cases that our refcounter will add decrefs earlier than CPython would, if it can prove that the variable won't end up getting used. One example is in: for i in foo(): break The iterator object (`iter(foo())`) will not get used after the first call to next(). So our system will put the decref at the top of the loop. CPython will do the decref after the loop exits, like normal.
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
and switch the llvm tier to use them instead of its own analysis
-
- 13 May, 2016 4 commits
-
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
Apparently they are slowing down the irgen phase in debug mode quite a bit, since a lot of the time is dominated by InternedString hashtables.
-
Kevin Modzelewski authored
I think this is the main source of our jit-time regression.
-
Kevin Modzelewski authored
This time, structure it a different way, This does a better job of highlighting the JIT-time regression from the refcounting branch.
-
- 12 May, 2016 2 commits
-
-
Kevin Modzelewski authored
Enable the gcc build
-
Kevin Modzelewski authored
The release CI builds are failing since they run the extra tests
-
- 11 May, 2016 8 commits
-
-
Kevin Modzelewski authored
Fix usage of undef variables
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
I think I had gotten confused and mixed up "undefined variables" (Python variables which hadn't gotten set) and "undefined values" (results of expressions that the JIT knows will throw, or otherwise can't evaluate). For undefined *variables*, we represent them using None, since they can still have refcount operations done on them. For undefined *values* (or results), we can use llvm's undefValues, since they should never be touched.
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
I ended up running "make update_section_ordering" multiple times since it seemed to help. Or maybe things are just very random and then I picked one that happened to benchmark well.
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
This should fix the bad behavior we had where setGlobal would only get rewritten by having its call to setattr() get inlined, and having setattr() then think it was being called directly. This was both brittle (only worked on release builds) and incorrect (there were checks that happened before calling into setattr, which needed to be emitted as guards). I had hacked in an attribute((always_inline)) to at least deal with the brittleness, but this should be a fix for real. And let us reenable the gcc builds.
-
Kevin Modzelewski authored
Otherwise they can end up seeing the return address of their caller
-
- 10 May, 2016 1 commit
-
-
Kevin Modzelewski authored
Fix the last two reffail tests
-
- 09 May, 2016 4 commits
-
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
At least what I added here is what CPython does.
-
Kevin Modzelewski authored
But still some in test/integration
-
Kevin Modzelewski authored
-