- 19 May, 2016 13 commits
-
-
Marius Wachtler authored
some minor NumPy fixing
-
Kevin Modzelewski authored
Fix remaining "check refcounting" assertions
-
Boxiang Sun authored
-
Boxiang Sun authored
-
Boxiang Sun authored
-
Marius Wachtler authored
Remove numpy submodule
-
Boxiang Sun authored
clone numpy with 1.11.0 tag from github, and adjust the numpy test file.
-
Kevin Modzelewski authored
Some misc performance optimizations
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
They were all in code that is now dead, so I spent some time verifying that and cleaning it up.
-
- 18 May, 2016 13 commits
-
-
Kevin Modzelewski authored
Make rearrangeArgs take a callback instead passing back values
-
Kevin Modzelewski authored
thanks Marius for the tip
-
Kevin Modzelewski authored
add tuple free list and don't update boxed frame on exit when it's not used
-
Kevin Modzelewski authored
My hunch is that code density is more important than avoiding ome of the `if (rewrite_args)` checks. Also add some hacks to get rid of the func-name-getter-as-lambda, so we don't need to templatize on that either. Results of this commit are kind of mixed: django_template3_10x.py 13.6s (2) 13.8s (2) +1.4% sqlalchemy_imperative2_10x.py 18.8s (2) 19.0s (2) +1.2% pyxl_bench2_10x.py 10.7s (2) 10.1s (2) -5.1% geomean 14.0s 13.8s -0.9%
-
Kevin Modzelewski authored
And add an optimization that in the fast paths, we don't incref any args.
-
Kevin Modzelewski authored
This function is complicated because it has so many return values (out-parameters). It also returns a decent amount of information about what the caller has to do after it is done with the args (decref them, decref the rewritten ones, etc), and the contract was getting very complicated. It also had some complicated rules about how the caller had to set up certain input arguments. I also tried adding some optimizations to it, where it would sometimes not incref all of the returned args; I tried continuing the current scheme by passing back some information about which args needed to be decref'd or not. This was really messy and was also a perf hit. So instead, switch it to being callback-based. I think this should clean it up quite a bit and also open up some room for more optimizations. This commit is just a refactor -- it changes the name to rearrangeArgumentsAndCall, which takes a "continuation" callback. For now it just calls rearrangeArguments under the hood.
-
Kevin Modzelewski authored
-
Boxiang Sun authored
-
Marius Wachtler authored
this uses a slightly modified version of cpythons free list. I removed the special handling for the empty tuple and fixed some C/C++ type mismatches.
-
Marius Wachtler 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 1 commit
-
-
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.
-