-
Notifications
You must be signed in to change notification settings - Fork 1.3k
error in paste mode #10298
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Bisected from working 9.2.7 to failing 10-alpha.2. Found this commit was causing the failure: 04622e7. There are two changed lines in Including this change alone from the commit causes the failure. Examination of the generated object code with and without this change shows extensive changes to the arrangement of the stack frame. Here is the change in context: circuitpython/shared/runtime/pyexec.c Lines 91 to 98 in 88f6117
Moving the definition/assignment out of the scope of the This issue affects only Risc-V. |
The workaround described above stopped working with the introduction of gcc 14.2.0 by ESP-IDF 5.4.1. The reason this happened was a change in the ordering of generated RISC-V instructions in function
The call to Making |
Reproducible on ESP32-C3 and ESP32-C6:
A code error during paste mode or raw mode causes a hard crash when exiting the mode with ctrl-D.
This does not occur when using the regular REPL input mode.
Simplest example (
x
is an unassigned variable):One hypothesis is that the ctrl-D causes an EOF exception during read, and so there is a double exception (the first is due to the code error).
This does not occur on boards with native USB CDC REPL. The only such boards I have to test right now are ESP32-C3 and ESP32-C6, which are RISCV, but that may be a coincidence. Or it may be due to
nlr
handling on RISCV.EDITS:
Could not reproduce on ESP32 Feather HUZZAH32 or V2, or micro:bit V2, so it's not just serial-only boards.
1/0
is also a very simple error. Interestingly,raise ValueError
or similar does not provoke the crash.The text was updated successfully, but these errors were encountered: