New submission from pdox <p...@alum.mit.edu>:

I'd like to move all instruction code (the code inside a TARGET(NAME) block) 
from Python/ceval.c to a new file, Python/instructions.h. The new file will 
contain only instruction bodies (prefixed by related helper functions/macros).

Eval-context macros (e.g. TARGET, DISPATCH, TOP, PUSH, POP, etc) will not be 
moved to instructions.h, but will be expected to be available (defined by the 
#includer).

ceval.c will define the eval-context macros in the same way, and #include 
"instructions.h", inside the body of _PyEval_EvalFrameDefault. The code emitted 
should remain exactly the same.

The benefit of this change, is that it becomes easy to produce alternative 
implementations of EvalFrame which reuse the same instruction code, but with 
changes to the evaluation context or dispatch mechanism. In particular, after 
this change, I hope to experiment with adding a cross-platform 
subroutine-threading code evaluator. (for performance testing)

----------
components: Interpreter Core
messages: 304370
nosy: pdox
priority: normal
severity: normal
status: open
title: Move instruction code blocks to separate file
type: enhancement
versions: Python 3.7

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue31785>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to