esprit
esprit copied to clipboard
Printing nested structures crashes the board
In the cljs repl
cljs.user=> {:a 1 :b {:c 1 :d 3}}
Then on the serial connection
>Guru Meditation Error: Core 0 panic'ed (LoadProhibited). Exception was unhandled.
Core 0 register dump:
PC : 0x40083caf PS : 0x00060230 A0 : 0x8008503c A1 : 0x3ffdf0f0
A2 : 0x3ffb7838 A3 : 0x3ffdf0f0 A4 : 0x3ffc1150 A5 : 0x3ffdf0e0
A6 : 0xb33fffff A7 : 0x000000f0 A8 : 0x80083cad A9 : 0x3ffdf0d0
A10 : 0x00000000 A11 : 0x3ffb7838 A12 : 0x00060420 A13 : 0x00000001
A14 : 0xb33fffff A15 : 0x00060023 SAR : 0x00000019 EXCCAUSE: 0x0000001c
EXCVADDR: 0x0000001c LBEG : 0x4009b234 LEND : 0x4009b262 LCOUNT : 0xffffffff
Backtrace: 0x40083caf:0x3ffdf0f0 0x40085039:0x3ffdf110 0x4000bec7:0x3ffdf130 0x401a6bab:0x3ffdf150 0x401a0520:0x3ffdf180
Rebooting...
Yes, I this occurs on 0.6.0 as well, so not a regression with 0.7.0.
On 0.6.0, I saw:
>***ERROR*** A stack overflow in task espruinoTask has been detected.
abort() was called at PC 0x40096ce4 on core 0
Backtrace: 0x40096b73:0x3ffd8140 0x40096ccb:0x3ffd8160 0x40096ce4:0x3ffd8180 0x40093dad:0x3ffd81a0 0x400952f0:0x3ffd81d0 0x400952a6:0x3ffd81f0
Rebooting...
here is the compiled js
(function() {
try {
return cljs.core.pr_str.call(null, (function() {
var ret__6698__auto__ = new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null, "a", "a", -2123407586), (1), new cljs.core.Keyword(null, "b", "b", 1482224470), new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null, "c", "c", -1763192079), (1), new cljs.core.Keyword(null, "d", "d", 1972142424), (3)], null)], null);
(cljs.core._STAR_3 = cljs.core._STAR_2);
(cljs.core._STAR_2 = cljs.core._STAR_1);
(cljs.core._STAR_1 = ret__6698__auto__);
return ret__6698__auto__;
})());
} catch (e1097) {
var e__6699__auto__ = e1097;
(cljs.core._STAR_e = e__6699__auto__);
throw e__6699__auto__;
}
})()
Seemingly both this issue and #28 are embedded specific as they work fine on the linux build. Additionally, the above js runs just fine when pasted in. Implying something is wrong with the REPL.