Hello,

The wip-rtl-cps branch has been rebased again (on top of wip-rtl). It now
includes support for toplevel references and sets, thanks mostly to Andy's
work on supporting them in RTL. (Although you shouldn't kick that part of
it too hard just yet; I think I know where it will break.) Other highlights
include using the top-level variable support to evaluate "(+ 3 4)"
correctly.

Overall, I think it's coming along well. The parts of Tree-IL that are left
to implement are local mutable variables (should be easy after toplevel
ones), module references and sets (very similar to top-level ones),
closures, and the dynamic environment stuff. Local mutable variables are my
next project, and then I think closures.

One question I've had is, can we assume that the variables in the (guile)
module are immutable? I think the current compiler does this. Otherwise
there's no correct way to inline primitive procedures like + unless we have
a way to invalidate our compiled code and recompile it (which I would like
to have anyway, but that's a different story).

Best,
Noah

Reply via email to