- 27 Aug, 2014 3 commits
-
-
Kevin Modzelewski authored
Complex2
-
Kevin Modzelewski authored
The mechanics for creating one actually seem pretty simple: you just pick a different metaclass (ClassType). I think the old-style classes are working ok now, but the old-style instances very much are not.
-
Kevin Modzelewski authored
We actually had most of the base support in place; this commit just adds the ability to specify a metaclass other than type_cls, and the ability to determine which metaclass to use when defining a new class. But just like how we have the base functionality to inherit from all the builtin types but haven't updated all the functions yet, I bet there are more places that assume the type of a class is always type_cls.
-
- 26 Aug, 2014 10 commits
-
-
Kevin Modzelewski authored
Somewhat confusing, since us_compiling_analysis_liveness is also contained in us_compiling_irgen, and I'm not sure of a good way to avoid that for now. But anyway, for "import re", the breakdown is roughly: - 215ms definedness analysis - 50ms liveness analysis - 80ms phi analysis - 200ms type analysis - 5ms irgen - 25ms other compilation stuff - 40ms non-compilation time
-
Kevin Modzelewski authored
Was not being careful about distinguishing starting states vs ending states... I'm not sure why that worked at all. Also include Marius's optimization from PR #137 This is currently only being used by the DefinednessAnalysis which could probably have a much faster algorithm.
-
Kevin Modzelewski authored
foundation for complex numbers
-
Kevin Modzelewski authored
Import math module
-
Marius Wachtler authored
Some functions are currently just stubs and I had to disable a test which checked for a math exception because our C-API does not support exceptions yet. This is also yet another performance regression, because patchpoint does not yet work for the C-API.
-
Kevin Modzelewski authored
Also required adding some string functions so that we could use os.path.
-
Kevin Modzelewski authored
made __module__ a member descriptor for functions
-
Kevin Modzelewski authored
Looks like we're going to be using much more CPython code than just in lib_python, so call that out specifically in the main LICENSE file.
-
-
Kevin Modzelewski authored
-
- 25 Aug, 2014 6 commits
-
-
Kevin Modzelewski authored
-
https://github.com/tjhance/pystonKevin Modzelewski authored
Conflicts: src/core/ast.cpp src/core/ast.h
-
-
Kevin Modzelewski authored
The benchmark runs but crashes due to OOM, I think because we never release the underlying long memory (due to lack of finalizers)
-
Kevin Modzelewski authored
-
Travis Hance authored
-
- 24 Aug, 2014 6 commits
-
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
With these changes, the optparse test successfully runs! It outputs a slightly different thing for us, since it looks at the str of obj.__dict__, which for us is currently an AttrWrapper. I think this case is benign, so I'm hopeful that we'll be able to keep __dict__ as an AttrWrapper and not as a full dict (which would require deoptimizing that object and/or tracking the existence of that dict to see if we can reoptimize). I'm not sure if we'll be able to, but there's only one way to find out.
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
For those calls (such as in conditionals and "not x" expressions), if for some reason we didn't think the object could be converted to bool, we would crash in codegen. This could happen if we knew that the type was a builtin type (ex: None, or dict) and we hadn't yet implemented __nonzero__. Unrelated, but implement isinstance(obj, (tuple_of_classes,)). This also lets us use multiple exception types in a single except statement.
-
- 23 Aug, 2014 3 commits
-
-
Kevin Modzelewski authored
-
Travis Hance authored
-
Travis Hance authored
-
- 22 Aug, 2014 7 commits
-
-
Kevin Modzelewski authored
I'm not sure I like the current approach, but it seems to be working.
-
Kevin Modzelewski authored
-
Travis Hance authored
-
Kevin Modzelewski authored
I didn't realize that pymem.h defined it originally to be malloc(), which was messing things up when we would start allocating GC objects using malloc(). Now that that's redefined, I *think* that as long as everything uses the API functions, we shouldn't need to override / hook malloc(). There are a number of uses of raw malloc() in the Modules directory; I hope that they're mostly string-related.
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
ie if you just have a __getitem__ method, you are still iterable. This patch is unfortunately yet another performance regression, since we obscure the behavior for known types (ie no longer try to go directly to the __iter__). Should make this into a call into type-specific behavior, so that known types can use __iter__ if they have one?
-
Kevin Modzelewski authored
-
- 21 Aug, 2014 5 commits
-
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
fixed object.__new__ error message for >=2.7.4
-
Kevin Modzelewski authored
fixed a number of small things to get it to work. Also, updated most of the abort()-ing functions to print out a Python-level stacktrace before actually calling abort() -- hopefully that won't cause any issues.
-
Kevin Modzelewski authored
-
Kevin Modzelewski authored
-