> The incorrect code that CSC allows other things to work on: This should have stated CSI.
-Dan On Sat, May 2, 2015 at 8:01 AM, Dan Leslie <[email protected]> wrote: > > Hi Chickeners! > > Around two weeks ago I received a bug report that the monad egg wasn't > working in CSC. This turned out to be the result of a syntax error, and > though I've greatly simplified the syntax and narrowed the issue > considerably, I find myself stuck in a corner while surrounded by wet > paint. > > Working branch is here: > https://github.com/dleslie/monad-egg/tree/compiler-import-bug > > The issue is thus: the egg does some heavy lifting of syntax transforms, > and there exists a utility such that a user might bind new symbols while > within the quoted syntax of a stack of transformers. It looks like this: > > (do <state> > (/m! put 99) > (x <- (/m get)) > (return x)) > > Which would expand to something similar to: > > (<state>-bind > (<state>-put 99) > (<state>-bind > (<state>-get) > (lambda (x) > (<state>-unit x)))) > > I think; it's early. ;) > > Anyhow, notice that the /m and /m! transforms occur within the do > syntax; the do syntax transforms through do-using, %unroll-do-using, and > finally to using; where they're defined dynamically within a quoted > syntax block. > > Here's the wierdness: this works magnificently in CSI, but fails in CSC. > > Moreover, if I replace /m! with a broken variant then /m works great in > both CSI and CSC! I know, it doesn't make much sense to me either. My > best guess is that /m! failing somehow short-circuits a code path in the > compiler and so allows /m to function as I expect. > > The correct code that CSC breaks on: > > https://github.com/dleslie/monad-egg/blob/compiler-import-bug/monad.scm#L58-L61 > And test output: > https://gist.github.com/71cc934fbc9fc7fa2d86 > > The incorrect code that CSC allows other things to work on: > > https://github.com/dleslie/monad-egg/blob/compiler-import-bug/monad.scm#L63-L66 > And test output: > https://gist.github.com/d0c276f7ed243d79166b > > Any thoughts would be appreciated. :D > > Thanks! > > -- > -Dan Leslie >
_______________________________________________ Chicken-users mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/chicken-users
