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 terry.reedy
Recipients Trundle, alex, aronacher, benjamin.peterson, daniel.urban, eric.araujo, ncoghlan, terry.reedy
Date 2011-07-22.21:38:02
SpamBayes Score 8.1079293e-10
Marked as misclassified No
Message-id <1311370683.28.0.737055018772.issue12575@psf.upfronthosting.co.za>
In-reply-to
Content
From a top level view, the patch adds PyAST_Validate (with helpers) to ast.c and one call to PyAST_Validate in bltinmodule.c in builtin_compile(). The added tests do every silly thing you can think of.

Does PyAST_Validate get invoked for all calls to compile() or just those with an ast as input. To put it another way, does it validate *all* asts, including those generated by the code parser, or just user-constructed asts. If just the latter now, it seems that turning it on for parser asts at least temporarily could test that it does not invalidate valid code and could be used to test an ast-level optimizer.

Two obvious questions: 1) does this address a real problem that has happened in the field or something that just *might* happen; 2) what is the time penalty (compared to the time of compilation). I guess these amount to "Is the maintenance burden on developers and speed burden on users worth the benefit?". In theory, I am in favor of anything that prevents segfaults. Would that ctypes use could be similarly validated (yes, this is a joke;-).

A last question, whose answer might depend on those above: given that the new function is not exposed to users, why not validate as part of compilation, to avoid walking the tree twice?
History
Date User Action Args
2011-07-22 21:38:03terry.reedysetrecipients: + terry.reedy, ncoghlan, benjamin.peterson, aronacher, eric.araujo, alex, Trundle, daniel.urban
2011-07-22 21:38:03terry.reedysetmessageid: <1311370683.28.0.737055018772.issue12575@psf.upfronthosting.co.za>
2011-07-22 21:38:02terry.reedylinkissue12575 messages
2011-07-22 21:38:02terry.reedycreate
Morty Proxy This is a proxified and sanitized view of the page, visit original site.