- 07 Jan, 2016 5 commits
-
-
Boxiang Sun authored
-
Boxiang Sun authored
-
Boxiang Sun authored
-
Marius Wachtler authored
add PyGC_AddPotentialRoot
-
Marius Wachtler authored
This function let's one register a potential root range from the CAPI Was part of the unmerged #1026 but split out because #1029 requires it too.
-
- 06 Jan, 2016 2 commits
-
-
Marius Wachtler authored
Fix crash inside BoxedGenerator::gcHandler
-
Marius Wachtler authored
This could happend when we trigger a collection inside the BoxedGenerator constructor when allocating space for the args array. In this case it would not be set but we would dereference the memory.
-
- 04 Jan, 2016 3 commits
-
-
Marius Wachtler authored
Micro optimization on 'gc_invalidateOrderedFinalizerList'
-
Marius Wachtler authored
Fix #599 by allowing subclasses of string and unicode in sys.path
-
Marius Wachtler authored
Fix issue #596 'slice is not subclassable'
-
- 30 Dec, 2015 2 commits
-
-
Dong-hee Na authored
fix issue #596 'slice is not subclassable'
-
Dong-hee Na authored
Micro optimization on 'gc_invalidateOrderedFinalizerList'
-
- 24 Dec, 2015 1 commit
-
-
LoyukiL authored
Add four separate tests with prefix of sys_path for four types of sys.path entries: str, unicode, subclass of str, and subclass of unicode.
-
- 22 Dec, 2015 1 commit
-
-
loyukil authored
-
- 14 Dec, 2015 3 commits
-
-
Kevin Modzelewski authored
Fix two unwinding bugs I found while implementing #1031
-
Marius Wachtler authored
I encountered this issue sometimes in the sqlalchemy integration test.
-
Marius Wachtler authored
we can't use insert because it will not update existing values. We did not hit this issue because I compared an instance with a class...
-
- 09 Dec, 2015 1 commit
-
-
Kevin Modzelewski authored
Add cmath module and fix some bugs discovered in test_cmath.
-
- 04 Dec, 2015 12 commits
-
-
Marius Wachtler authored
Don't generate patchpoints for calls to fixed functions which don't need patching
-
Marius Wachtler authored
Inlining it causes a perf regression
-
Marius Wachtler authored
-
Marius Wachtler authored
because when calling a function with return type BOOL we currently expect it to return a i64. This got triggered by the inliner
-
Marius Wachtler authored
Previously we generated patchpoints for every call because the callee could do a frame introspection and we could not retrieve the frame info without the additional patchpoint informations. This change moves all required information inside the FrameInfo. Because the FrameInfo does not have a fixed offset (different num of stack args and OSR functions reuse the frame info from the interpreter), we generate at function entry a stack variable which points to the frame_info and than we emit a stackmap intrinsic in order to know which basepointer relative address it has. The current statement inside the FrameInfo gets only updated on direct calls - patchpoints still attach it directly instead of updating the memory. Because always updating the variable is a small slowdown. This allows us todo inlining of trivial call sites at the llvm IR level.
-
Marius Wachtler authored
Cheaper frame introspection
-
Marius Wachtler authored
-
Boxiang Sun authored
-
Boxiang Sun authored
-
Boxiang Sun authored
Just move some fundamental functions, the others are not,because Pyston'scomplex object format is different from CPython's, so leave some function in complex.cpp and use current implementaion is a acceptable.
-
Boxiang Sun authored
-
Kevin Modzelewski authored
More debugging tips.
-
- 03 Dec, 2015 2 commits
-
-
Kevin Modzelewski authored
clang-3.7 support
-
Kevin Modzelewski authored
Some small documentation
-
- 02 Dec, 2015 3 commits
-
-
Kevin Modzelewski authored
Not sure how we ended up with the '-1' everywhere.
-
Kevin Modzelewski authored
And also detect attempts to compile on a 32-bit system and quickly give a nice error message -- fixes #1018.
-
Kevin Modzelewski authored
-
- 30 Nov, 2015 3 commits
-
-
Dean Moldovan authored
-
Dean Moldovan authored
-
Marius Wachtler authored
-
- 20 Nov, 2015 2 commits
-
-
Marius Wachtler authored
This splits up the handling of deopts and normal frame introspection (e.g. for a traceback). We have to add to nearly all call sites frame introspection which makes it very important that it does not introduce much overhead over a normal call instruction. By always storing the user visible variables into a vregs array (layout the same as in the interpreter/bjit) we can make introspection cheaper. Frame introspection only needs to access user facing variables therefore we don't have to generate extra bytes for spilling variables which get clobbered in the callee because all values we need to access are inside the vregs array. This let's use remove the 95byte overhead and reduces the stackmap size. It adds a slight cost of maintaining the vregs array but we were already doing some of this work before with our manual spilling with the additional benefit of faster frame introspection. The deopts case stays pretty much the same with the exception that we don't add the user visible vars to the stackmap because they are already in the vreg. We could reduce the overhead by implementing a special "deopt()" function in asm which stores and restores all variables thereby we would not have to manualy spill the registers when filling the deopt IC. Alternatively we could handle it inside llvm by either switching to a stackmap intrinsic which already supports this case or adding it it does not exist... But I think it's not worth it because deopts should be uncommen...
-
Rudi Chen authored
Based on recent issues I've encountered working on running the NumPy test suite.
-