Crash about overflowing max_stackdepth
Summary
I tried to run scrapscript.py with RustPython. It crashed. I reduced the input code with CReduce and then manually from ~4k lines to 21 lines.
Expected
No crash. In the full example, I expect the test suite to run. In the reduced example I expect nothing to happen.
Actual
# scrapscript.py class LeftParen: pass class RightParen: pass class Lexer: def read_char(self) : return None def read_one(self) : while self: c = self.read_char() break else: return x { "(": LeftParen, ")": RightParen} def tokenize(): lexer = Lexer() while (lexer.read_one()) : pass tokenize()
cedar% rustpython scrapscript.py test
[vm/src/frame.rs:1942] self = ExecutingFrame {
code: code: <code object read_one at ??? file "scrapscript.py", line 8>,
state: FrameState {
stack: [
[PyObject PyStr { value: "(", kind: Ascii, hash: -1 }],
[PyObject [PyType LeftParen]],
[PyObject PyStr { value: ")", kind: Ascii, hash: -1 }],
],
blocks: [],
lasti: 16,
},
}
thread 'main' panicked at vm/src/frame.rs:1943:9:
tried to push value onto stack but overflowed max_stackdepth
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
cedar%