Source

pypy / pypy / interpreter / eval.py

Author Commit Message Labels Comments Date
Maciej Fijalkowski
add some jit hooks, a bit ugly but works
Branches
better-jit-hooks
Maciej Fijalkowski
remove nonsense hints (those functions contain loops)
Armin Rigo
Replace the two lists on PyFrame, 'fastlocals_w' and 'valuestack_w', with a single unified list 'locals_stack_w' that stores first the locals and then the stack item.
Branches
store-sink-array
Benjamin Peterson
some rarely used frame methods which we don't have to look inside
Armin Rigo
Get rid of Frame.numlocals.
Amaury Forgeot d'Arc
GetSetProperty now accept arguments in both order: (space, self) or (self, space) Use the more natural order when the getter is a class method
Branches
improve-unwrap_spec
Carl Friedrich Bolz
merge improve-kwd-args
Maciej Fijalkowski
Check-in merge attempt. Diff is to huge to read it.
Armin Rigo
(alexander, armin) Removed the remaining suggested primitives - the stack and stackless manipulation. We had to resolve circular imports by removing "import objspace" from pypy/objspace/flow/__init__.py. This required some other imports to be fixed. Improved the controllerentry logic for rstack.py. In translator/c/test/: it's not really possible to test stack_too_big() directly. We have other tests in test_type…
Armin Rigo
* Support for unicode docstrings. * Make sure the docstring of a module is in co_consts[0].
Michael Hudson-Doyle
move frame creation onto the space
Armin Rigo
(pedronis, arigo) Intermediate check-in #2. More seriously, we rewrote the interpreter main loop in a style that should be easier for the JIT to grasp, but also -- possibly -- easier for human beings to grasp. A bit. Many levels of wrapping of stuff into other stuff are avoided now, and the PyFrame class hierarchy was completely removed. There is a possibly nice way to add opcodes from outside, with config opti…
Carl Friedrich Bolz
moving rstack
Michael Hudson-Doyle
remove the extremely-rarely-not-[] argument from the newdict operation.
Christian Tismer
we possibly have some coroutine pickling ready, given that this mess compiles:-)
Samuele Pedroni
refactoring: delegate frame creation etc logic to code objects, this enables some optimisations that were not possible before at all, parsing of arguments was eager which was a serious waste if the target had an __args__ argument. Use a pass-through logic for those cases. instance creation microbenchmark goes from 33x slower on my machine to 10x probably calling of geinterp builtins gains something too.
Anders Chrigström
(arre, eric) Fully implement fastcall for applevel functions.
Anders Chrigström
(arre, eric) Optimise some calls of applevel functions. (only single argument functions for now).
Armin Rigo
"self.last_exception=None" does not belong to eval.py not only for aesthetical reasons: eval.py is about the base Frame class, while pyframe.py contains the PyFrame subclass. The last_exception attribute should only exist on the subclass. Don't care about try:finally: here; it's unlikely that this line is not executed, and not really damageable anyway if it really isn't.
Christian Tismer
About this pseudo-memory-leak ----------------------------- dropping frame.last_exception after leaving it. This solves the problem that we get memory leaks on every applevel expcetion if we have to GC at hand. This is the only obvious circle that we have, and it is also not necessary and not conforming to the CPython implementation, which too clears exception state from frames when they are not executing. One might argue that I should have put this into…
Armin Rigo
A variant of the fastcall() shortcuts that are less Pythonic :-( no storing of None in the class to mean "this method is missing". Makes the rtyper unhappy at the moment, and it's messy to translate to non-C targets in general.
Armin Rigo
Enormous speed increase following discussion with Samuele about how incredibly indirect something like a space.add() between two integers actually is. This introduces a rather isolated shortcut, which even makes sense when reading the source of descroperation.py, where the non-shortcut case of space.get_and_call_function() can be seen as a fall-back for the uncommon general case.
Samuele Pedroni
avoid that what was .code (now pycode) get improperly lifted to Frame from PyFrame and that various attributes of PyCode get also lifted improperly to Code. Introduced an intermediary subclass eval.EvalFrame for .eval() based run/resume behavior. Now PyFrame inherits from it.
Michael Hudson-Doyle
remove uses of zip (seemed easier than magicing them away in a transform or whatever)
Armin Rigo
A couple of changes to make the rtyper happy with function calls. The rule is: if a call point can invoke several different functions, then these functions should always be called using the same "call shape" (i.e. # of args provided, */** arguments). It's fine to use various call shapes to call a single function explicitely, though; this rule is only about calls via a "function pointer" or an overridden method. These two changes were all that is needed in the whole of PyPy…
Christian Tismer
added the option to switch eager imports on and off. If it is off, then it is handled via an entry in builtin and still a little special-casing in specialcase.py, see that file. Note that I had to change a line in test_objspace, because lazy importing
Armin Rigo
issue26 resolved Got rid of getthreadlocals() and the strange interactions with execution contexts that disappear if there is no frame left in the frame stack. Now each space creates a single ExecutionContext and saves it in a private attribute. (The attribute is private to continue to force the use of space.getexecutioncontext(), which in the future should be modified to cache and return one ExecutionContext per…
Samuele Pedroni
more removal of double interpclass_w cases
rxe
* Removed ambiguity with applevel attribute of code objects: hidden_applevel * Some tidies in pyframe.py * Don't add frames with hidden code objects to * Fixes to sys._getframe() so tells the truth! * A dummy gc.py! * Hack in interactive to use its own executioncontext * regenerated module/classobjinterp.py
Anders Chrigström
A closer to working settrace functionality.
  1. Prev
  2. 1
  3. 2
  4. Next