Å-machine Testing

Continuing the discussion from Aa-VM - Aa-machine implementation in Scheme:

Right now, the Å-machine part of the Dialog compiler isn’t included in the test suite, because we haven’t found a good way to incorporate it into our testing toolchain. Would you say the Rust one is mature enough to be used for this?

(Hopefully we’ll also incorporate the Node one once we have a person who knows Node on the project, and the Scheme one once it’s finished.)

Feature-wise, I believe it is? I remember being able to play Cloak of Darkness and others with it.

API-wise, not really. It’s a library, so basically just the engine, you’d have to create your own frontend, and the public API is not finalised at all.

Is using Rust really easier than using the official Node interpreter, though? Because it would make more sense to test against the reference interpreter.

In any case, I can try working on my Rust interpreter again to sort some of the things out first and add some documentation and examples.

2 Likes

I’m sure the Node interpreter would be easier, to someone familiar with the ecosystem! But unfortunately I am not, and the reference interpreter is mostly undocumented; I’ve never figured out how to properly install all the dependencies to make a basic command line application that I can hook up to the pipelines.

OK! I could try looking into the Node interpreter too (but no promises). Do you have any pointers on how to start?

So per GitHub - Dialog-IF/aamachine, it’s as simple as node src/js/nodefrontend.js example/cloak_rel2.aastory. Typos aside (the file is cloak-rel2.aastory with a dash), this works on my local machine. But at GitHub - Dialog-IF/dialog: The community-maintained fork of the Dialog programming language for interactive fiction. we use automated building and testing, and I haven’t been able to get Node properly functioning in that environment. I’m assuming it’s some basic Github thing, but the details of the automated builds are beyond my ken.