
default: fprintf(stderr, "Invalid argument
to DUP_TOPX: %d!\n", oparg);
[Thomas Wouters]
Hm, this fprintf is stray debugging code, added because I wasn't sure that a SystemError wouldn't crash the interpreter, given that the stack is utterly fu*d up at this point and we don't know what the compiler thinks is the stack size or block size here. (The snippet doesn't show it, but it also raises a SystemError.) Is it okay if I remove/comment this fprintf() before 2.0 final ?
Suggest replacing it with: assert(!"Invalid argument to DUP_TOPX"); Then there's no cost in release mode, but we have a useful check in debug mode. ("assert(!string)" is a handy C debugging idiom more people should know about! It's semantically the same as assert(0) (i.e. will fail if ever reached), but unlike using a comment, using a string gets a useful msg displayed if it ever does fail).
(At least it didn't say "awoogah, stray debugging code detected, this machine will self-destruct in 10 seconds" :-)
Beats "Unto the root this day a brother is born" <wink -- a famous "can't happen" msg that, of course, got displayed, many years ago in a different project -- except the original was in Latin!>.
Another-day-another-demerit<wink>-ly y'rs,
That's a funny thing about working on Python: collect 5 demerits and you can exchange them for 1 brownie point! If you're not leaving crap behind, you're not eating enough Python code. continuous-recoding-is-as-effective-as-it-is-rare-ly y'rs - tim