- 21 Nov, 2014 3 commits
-
-
Kevin Modzelewski authored
ie due to reoptimizing the function and then calling into the compiled code. We could handle this specific case by not treating these as "real" frames that need to be introspected, but we have these kinds of situations in other places (reopt from compiled code, osr from either kind) so I'd rather find a more general improvement.
-
Kevin Modzelewski authored
Before it was recompiling the OSR-entry function every time it would take an osr exit.
-
Kevin Modzelewski authored
-
- 20 Nov, 2014 7 commits
-
-
Kevin Modzelewski authored
New AST interpreter
-
Kevin Modzelewski authored
- Move internal definitions from header to source file - Fix root_stack_set bug carried over from llvm_interpreter - Cut off access to the old llvm interpreter - Slightly tune the tiering thresholds - They seem too high but our LLVM compilation is overly expensive right now - Our AST interpreter is also somewhat slow due to its string handling
-
Kevin Modzelewski authored
Once we get the AST interpreter in, we can add resume-from-any-point functionality, which means that we can get rid of the current OSR system. Maybe we should have done that first, but I thought it would be easy to get the OSR stuff working.
-
Marius Wachtler authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
This time for the llvm configuration. Sometimes when updating the LLVM directory, we need to reconfigure things. We don't know that until after we update it, though, but Make will decide at the beginning whether it needs to be updated or not. We could always reconfigure every time we update LLVM (might be ok), or add a helper target that recursively calls Make after the updating is done (what this patch does). This should fix those "C compiler can't generate executables" errors that come from running two copies of the configure script in parallel.
-
Kevin Modzelewski authored
Ie if you override sys.stdout, prints without an explicit destination will go to the new location. Also sneak in a couple other bugfixes.
-
- 19 Nov, 2014 6 commits
-
-
Kevin Modzelewski authored
List right multiplication, tuple multiplication
-
Joris Vankerschaver authored
-
Joris Vankerschaver authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
Implement FloorDivInt
-
Kevin Modzelewski authored
In preparation for using bitmaps for other purposes in the heap.
-
- 16 Nov, 2014 1 commit
-
-
Marius Wachtler authored
-
- 15 Nov, 2014 2 commits
-
-
Kevin Modzelewski authored
Fix uninitiated read of >> 3 == 3 (REPL)
-
Yi-Hong Lyu authored
-
- 14 Nov, 2014 8 commits
-
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
Not sure how hard a requirement it is to match CPython's behavior, but just assert out for now rather than doing something different. Also add an assert to copySlice, which could have similar issues.
-
Kevin Modzelewski authored
Fix slicing issues
-
Kevin Modzelewski authored
Fix assert in very verbose mode
-
Kevin Modzelewski authored
Set pypa option for not handling future import errors
-
Kevin Modzelewski authored
Astprint improvements
-
Kevin Modzelewski authored
fix memory leak
-
Kevin Modzelewski authored
-
- 13 Nov, 2014 5 commits
-
-
Marius Wachtler authored
-
Marius Wachtler authored
In addition: * unify slicing * performance improvements, especially for string slicing
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
[use_latest_valgrind] Use valgrind-3.10.0
-
- 12 Nov, 2014 1 commit
-
-
Marius Wachtler authored
-
- 11 Nov, 2014 4 commits
-
-
Vinzenz Feenstra authored
Signed-off-by: Vinzenz Feenstra <evilissimo@gmail.com>
-
Vinzenz Feenstra authored
Signed-off-by: Vinzenz Feenstra <evilissimo@gmail.com>
-
Kevin Modzelewski authored
We were scanning the wrong number of bytes for conservative objects; we were using the allocated size instead of the user size, but starting the scan at the beginning of the user section. Finally ran into a case where a conservative object was the very last object in the heap and it segfaulted.
-
Kevin Modzelewski authored
-
- 10 Nov, 2014 3 commits
-
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
An experimental way of making the runtime faster. Previously, the C++ runtime was much slower than pure-Python code, since the Python code can use the JIT to improve performance (through inline caches and type speculation). This commit adds "runtime ics", which are out-of-band patchpoints that we can allocate from C++. We insert them into the same patchpoint system that gets used by the main JIT pipeline, so they get rewritten like any other patchpoint, but the lifetime and use gets controlled by the C++ code. The trickiest part is getting the newly-allocated instruction regions to work with our exception handling; to make this work we have to emit .eh_frame sections. (A custom libunwind-based exception unwinder might not have this requirement.) Otherwise it feels like a decent approach. Right now just using it to implement class slots and then only using them in the pyElements iterator; it's probably not the most direct or efficient way of implementing that particular feature, but it has the benefit of being general and being useful for things such as binops which are not directly expressible in terms of class slots. This commit adds the support without turning the feature on (next commit will turn it on), since there are a number of other changes needed.
-
Kevin Modzelewski authored
Hopefully this doesn't break things for people trying non-default toolchains, but it might. We were previously using -static-libstdc++ to make sure that we would find the right libstdc++. I noticed that we weren't getting the right version of libgcc_s (using the system one instead of the freshly-built one), so use rpath for now.
-