Hi, An update on the Guile 3 effort. Since last week I attacked the conditional instructions, replacing e.g. "br-if-< A B OFFSET" with a sequence of "<? A B" then "jl OFFSET". If you are following along at home, I recommend this sequence:
git pull git reset --hard 17cb3214558f88ee7923ba28a72cdd3afd919670 make -j4 make -C prebuilt clean make -C prebuilt -jn make -C bootstrap clean make -C module clean make -C guile-readline clean make -j4 git pull make -j4 make -C prebuilt -j4 This will rebuild everything with the new instructions, but at a point when the old instructions haven't been removed yet so your old .go files are valid (assuming you've built master in the last couple months or so). Then it updates to master where the old instructions are removed and does a quick build to update the VM and the assembler/disassembler. Or you can do a fresh complete rebuild. That's possible too but it takes a little while :) Anyway, things are a bit slower, as expected: there are more instructions and things aren't entirely optimized; notably there are some immediate instruction variants that aren't quite there yet. But things are going in the right direction I think and the compiler is getting smarter about reasoning about value representations, allowing it to fold more code. I reckon we are about 100 or 150 hack-hours away from a complete migration of Guile master to new instructions. I probably have that much available between now and the end of the year, so that's the timeline. Once things are migrated, I'll tweak things so the bytecode is tight, then start work on a template method JIT. Andy
