This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author pdox
Recipients pdox
Date 2017-10-13.23:58:23
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1507939104.79.0.213398074469.issue31785@psf.upfronthosting.co.za>
In-reply-to
Content
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)
History
Date User Action Args
2017-10-13 23:58:25pdoxsetrecipients: + pdox
2017-10-13 23:58:24pdoxsetmessageid: <1507939104.79.0.213398074469.issue31785@psf.upfronthosting.co.za>
2017-10-13 23:58:24pdoxlinkissue31785 messages
2017-10-13 23:58:24pdoxcreate