- 22 Jan, 2015 5 commits
-
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
Doesn't support continue/break/return yet
-
- 21 Jan, 2015 14 commits
-
-
Kevin Modzelewski authored
last_exc was not thread safe, and didn't respect frame-localness. Now that we have sys.exc_info support we can do this the right way
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
Seems like it kinda works
-
Kevin Modzelewski authored
Currently nothing sets that though.
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
We were using the same .d name for the debug and release versions of the pch, which would cause them to not get rebuilt sometimes, and then clang would complain.
-
Kevin Modzelewski authored
This seems like a cleaner way to allow type-specific codegen -- make all types by default defer to UNKNOWN's handling of unpack(). Override the unpack() method in [Unboxed]TupleType to do the unpacking statically if possible.
-
Kevin Modzelewski authored
ie we now can handle catching the new ExcInfo objects from JITted code. This should also allow try-finally blocks more easily.
-
Kevin Modzelewski authored
ExcInfo is a triple of exc_type, exc_value, exc_traceback - analogous to Python's sys.exc_info(). Previously, we were just throwing exc_value. I still don't understand all the rules for when type(exc_value) is not necessarily exc_type. But this also makes it easier to pass exc_traceback around, and should make it possible to make our handling more consistent. This commit just changes the runtime; the generated code currently still expects a Box* to be thrown and will crash.
-
Kevin Modzelewski authored
-
- 14 Jan, 2015 2 commits
-
-
Kevin Modzelewski authored
Don't pass that particular command line flag to the pch compile.
-
Kevin Modzelewski authored
-
- 12 Jan, 2015 4 commits
-
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
Fixes #192
-
- 11 Jan, 2015 7 commits
-
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
Sometimes you want the wrapping behavior or not -- the builtin iter() function was calling getiter, but shouldn't be doing this wrapping.
-
Kevin Modzelewski authored
At runtime, we can detect if something supports the new Pyston iteration protocol (__hasnext__) or not. Statically, when we lower a for loop, we assume that the iterator supports the new protocol, and we can't check it This commit adds a check to getiter() which wraps a Python-style iterator with an IterWrapper which adds the __hasnext__ method.
-
Kevin Modzelewski authored
I think this addresses most of the remaining cases where we have a traceback including "Line 0". Most of these Name nodes can't cause an exception themselves, but other nodes copy their lineno values from these nodes, so just go ahead and set them appropriately.
-
- 10 Jan, 2015 8 commits
-
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
The previous changes increased -O execution time, showing up mostly in definedness analysis and type analysis I guess that makes sense, since we're adding additional symbols that we then have to analyze. We should make the analyses faster in general. For now, just eliminate some of the unnecessary symbols that we're generating. We only need to create the NONZERO temporary if we need to care about exception state, so if there's no exception handler, just skip the temporary and generate a nested structure.
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
They do a refcount==1 optimization, where they mutate a tuple if they see that it isn't shared. I don't know if we can have a good way of supporting this. Maybe we can always tell extensions that refcounts are >1? Not sure if there's any macro magic we can do to make "obj->ob_refcnt" return something of our choosing.
-