- 05 Jul, 2016 1 commit
-
-
Boxiang Sun authored
If rewriter encounter a situation which can't be handled. It will set the `failed` to `true`. In this situation, just stop to emit code. And also don't check some assert.
-
- 27 Jun, 2016 3 commits
-
-
Marius Wachtler authored
Some scipy related fixing.
-
Kevin Modzelewski authored
Enable function.func_closure and function.__new__
-
Boxiang Sun authored
In Pyston, has_getattribute got set if __getattribute__ is overridden, but only tp_getattro is supposed to set __getattribute__ and tp_getattr will not set it. So add a check to update_one_slot, if type->tp_getattr is not NULL, don't set has_getattribute to False.
-
- 26 Jun, 2016 2 commits
-
-
Marius Wachtler authored
enable the clang travis CI build again
-
Marius Wachtler authored
This reverts commit d1b799e5.
-
- 24 Jun, 2016 1 commit
-
-
Kevin Modzelewski authored
Fixes part of #1263
-
- 23 Jun, 2016 1 commit
-
-
Boxiang Sun authored
The function PyCFunction_GetFunction(func) check func type should be exactly PyCFunction_Type. PyCFunction_GET_FUNCTION(func) does not check func type. But assumes func layout starts with PyCFunctionObject. i.e. for allowing func to be PyCFunction_Type subclass. This way an extension which subclasses PyCFunctionObject will get into trouble using PyCFunction_GET_FUNCTION() on Pyston
-
- 20 Jun, 2016 1 commit
-
-
Kevin Modzelewski authored
Add some helper API to Pyston.
-
- 17 Jun, 2016 10 commits
-
-
Marius Wachtler authored
rewriter+bjit: remove duplicate getattrs, misc codegen improvements
-
Marius Wachtler authored
this saves a few bytes by replacing some movabs imm64, reg with smaller instructions
-
Marius Wachtler authored
before when we allocated scratch space we always needed one more reg to store the address of the scratch space this address is a constant stack offset so this was not needed because it can be recalculated like to a constant value
-
Marius Wachtler authored
e.g. relative or absolute using a temp register
-
Marius Wachtler authored
this transform some xdecrefs to decrefs and removes some calls of assertNameDefinedHelper
-
Marius Wachtler authored
-
Marius Wachtler authored
problem was that the bumped the variable to late which caused an extra spill
-
Boxiang Sun authored
-
Boxiang Sun authored
I think we need a place to test new added C API. And Pyston missed PySet_Size implementation(already declared it). Add and test it.
-
Kevin Modzelewski authored
Add more line numbers
-
- 16 Jun, 2016 11 commits
-
-
Kevin Modzelewski authored
We've been a bit lazy about adding line numbers to all ast nodes. This is an inconvenience when the tracebacks are bad/wrong, and it's also causing issues for testing code that wants to look at the line at which something failed. So I added line numbers to a whole bunch more nodes. There are still quite a few that don't have line numbers, but many of them are harmless, so I tried to identify the ones that matter. I also added some assertions to make sure that bad (non-positive) line numbers don't escape to the user.
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
This issue is that type analysis is stronger than irgen. Specifically here, type analysis knows that the phi isn't required and propagates the type across BB's, but irgen conservatively promotes to UNKNOWN.
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
Fix some leaks related to signals
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
The IR we generated looked something like this: 1: i64 %a = doIC() 2: checkPendingCalls() 3: Box* %b = (Box*)%b The problem is that the refcounter only knew about %b, starting on line 3. So for line 2, the refcounter didn't think it needed to decref %a if an exception was thrown. So the first thing this commit does is it adds check that when we refcount-track a value, if it is a cast, then the cast must be right next to the thing it is casting. This is stricter than we need but it should be easy enough to do and be sufficient. Another approach would have been to have the refcount checker be able to track the non-box-like values, ie track %a in the above example. This would need some checking to make sure that people didn't forget to track that. In the end I thought this would be simpler. The second thing is it adds a helper function createAfter that inserts the cast in the right location. This could have worked by having createIC do the casting itself. But this was a little bit tricky since some callers want to know the Instruction of the call itself, and if createIC only returned the cast then those would get confused. It could have returned both, but that seemed complicated.
-
Kevin Modzelewski authored
We would leak refs if an exception was thrown via the pending-calls handler.
-
Kevin Modzelewski authored
Previously we would print out all leaked objects at program exit. But this is problematic since it includes both directly leaked objects (the ones we are interested in), and indirectly leaked objects (which only got leaked by being referenced from another leaked object). This uses the cycle collector infrastructure to figure out what objects have non-heap, ie leaked, references remaining. Hopefully this should help us debug cases where there are hundreds of objects remaining.
-
Kevin Modzelewski authored
-
- 15 Jun, 2016 4 commits
-
-
Boxiang Sun authored
-
Marius Wachtler authored
perf: add a script which allows 'perf report' to disassemble JITed functions
-
Marius Wachtler authored
-
Boxiang Sun authored
In Pyston the PyCodeObject just an opaque pointer. Which can't calculate the number of freevars. Implement a function to check whether there has freevars in BoxedCode object.
-
- 13 Jun, 2016 5 commits
-
-
Marius Wachtler authored
Remove redefinition error in pyport.h
-
Marius Wachtler authored
-
Marius Wachtler authored
add prefix to Pyston defined True and False
-
Marius Wachtler authored
download cython from github instead of cython.org
-
Marius Wachtler authored
cython.org is currently down
-
- 12 Jun, 2016 1 commit
-
-
Boxiang Sun authored
The current pyport.h missed somethings due to it started with an empty pyport.h. And add things increfmentally from CPython, now copied all things in CPython pyport.h.
-