Closed dckc closed 6 years ago
I guess I should make this a separate bug, but I can reproduce it with this little script, which does not win but loses as above:
exports (main)
def main(_argv) as DeepFrozen:
def builder := ::"m``".getAstBuilder()
def n := "x"
def lhs := builder.FinalPattern(builder.NounExpr(n, null), null, null)
def rhs := builder.LiteralExpr(2, null)
def expr := m`def $lhs := $rhs`
traceln(`win! $expr`)
Using builder.DefExpr(lhs, null, rhs, null)
wins:
exports (main)
def main(_argv) as DeepFrozen:
def builder := ::"m``".getAstBuilder()
def n := "x"
def lhs := builder.FinalPattern(builder.NounExpr(n, null), null, null)
def rhs := builder.LiteralExpr(2, null)
# BUGGY: def expr := m`def $lhs := $rhs`
def expr := builder.DefExpr(lhs, null, rhs, null)
traceln(`win! $expr`)
The QP bug was fixed sometime in the past few months. The Capn work continues in #162.
I also confirmed that as of 2c39756 we can actually compile the Person example schema:
$ capnp compile -o $(which cat) myproto.capnp >myproto.capn
$ ~/.nix-profile/mt-typhon -l mast -l . loader run tools/capnpc <myproto.capn >myproto.mast
$ monte dump-mast myproto.mast >myproto.mt
the translation of employment :union { ... }
looks goofy
and PhoneNumber.type
I wonder if I should re-open this.
When I compile the schema from https://capnproto.org/cxx.html into
meta.capn
and runmonte eval mast/lib/capnp.mt
I get:The problem seems to be thrown from line 557 of capn.mt
monte version: 17hymcpjpavxcwsy8x7hkd1zrxrilnph-monte/bin/monte
full trace: