[Python-Dev] Is core dump always a bug? Advice requested (original) (raw)

Tim Peters tim.one at comcast.net
Wed May 12 16:17:58 EDT 2004


[Armin]

Even without these, checking if a bytecode could possibly over/underflow the stack is indeed equivalent to the halting problem; a silly example:

POPTOP This underflows the stack if and only if the algorithm stops.

[Guido]

Uninteresting though, since no compiler will emit such code, and we only need to accept a reasonable subset. The same arguments could prove that Java's bytecode verification is "impossible", but nevertheless it's done.

That's right. Anyone who intends to "do something" here (as opposed to just talking about it) is strongly encouraged to read the Java docs I posted a link to last time. Their answer to my original question ("verify what, precisely?") is "what the algorithm described here checks". As also with Java's compile-time guarantee of "no use of uninitialized variables", there's no attempt to solve impossible problems. Instead they give a reasonable, conservative algorithm, and define "it's OK" as "what this algorithm allows". The difference between that and theoretical perfection isn't an issue in practice.



More information about the Python-Dev mailing list