The X3 was originally X2, but I substituted X3 in the definition of MPLUS to distinguish from the other occurrence.
So the implementation in lang.lisp is losing the binding.
I'm not sure whether it's better to try to debug this — or just to get tests in place then focus on turning lang.lisp into a more literal backport of eval.rs. Given that the latter works on these examples, I'm inclined to that.
The most cautious approach would be to ensure the test mechanism covers the Rust implementation also, to maximize confidence before starting down that path.
Once #9 merges, there are still failures in examples — though some work.
After loading
micro.lurk
andmicro-progs.lurk
, loadingmicro-tests.lurk
fails.I've narrowed the first failure down to:
The
X3
was originallyX2
, but I substitutedX3
in the definition ofMPLUS
to distinguish from the other occurrence.So the implementation in
lang.lisp
is losing the binding.I'm not sure whether it's better to try to debug this — or just to get tests in place then focus on turning
lang.lisp
into a more literal backport ofeval.rs
. Given that the latter works on these examples, I'm inclined to that.The most cautious approach would be to ensure the test mechanism covers the Rust implementation also, to maximize confidence before starting down that path.