gracelang / minigrace

Self-hosting compiler for the Grace programming language
39 stars 22 forks source link

backtrace is a sequence, but method pop is invoked on it #327

Closed KimBruce closed 4 years ago

KimBruce commented 4 years ago

ExceptionPacket is defined on line 41 of basicTypeBundle.grace and method backtrace returns a Sequence[[String]]. However, in xmodule.grace at line 164 a pop method request is sent to a backtrace, causing a crash.

apblack commented 4 years ago

This is indeed a bug; backtrace used to return a list, but as part of the simplification of the intrinsics, I made it return a sequence. (Exceptions and Sequences have to be intrinsic, but lists don't have to be.)

Probably fixed in commit a748474316

Unfortunately, I don't have the code that exposed the bug. It looks like the bug will surface if a dialect's checker raises an exception that is not a refinement of CheckerFailure, DialectError, or SyntaxError. Can you please check and see if the code that provoked this bug now prints the backtrace correctly?