I’m trying to use zarf’s regtest.py for a TADS 3 game on my Debian Linux system. My understanding is that regtest.py needs an interpreter that uses stdin/stdout for I/O.
My current interpreter is FrobTADS, and from reading the “frob --help” output and a little Google search it doesn’t seem to be possible to switch to stdin/stdout in FrobTADS. I don’t have Gargoyle or QTads on this system, but if either of them has this feature I’m happy to try.
The alternative seems to be just compiling the TADS 3 interpreter with CheapGlk. However the FrobTADS source doesn’t have a separate Makefile for the tads3/ directory. I haven’t poked a lot around this, but if someone has similar experiences of compiling TADS on Linux manually with a different Glk (maybe using the standalone TADS 2/3 porter’s source code distribution?), please give me a pointer to the right direction.
It turns out the “-i plain” mode of FrobTADS doesn’t do exactly what I want. So far the problems I have are (1) FrobTADS still wraps lines in plain interface using word boundaries, instead of sending the whole paragraph as one line to stdout; and (2) the “[More]” prompt after a full page (whatever the definition of a full page is) is still displayed, and FrobTADS waits for input, this really breaks scripted testing.
Gargoyle has an ANSI C + Glk port of TADS in its source tree, though it’s only been synced through 3.1.0 / 2.5.15.
Updating it is a matter of unpacking the new source code distribution (carrying forward the handful of garglk changes) and then implementing the VM system functions added in 3.1.1. You could probably stub those out pretty easily if you don’t rely on them in your game.
Once that’s done, it should be straightforward to compile the interpreter and link it with cheapglk instead of garglk.
Thanks Ben. Gargoyle looks huge to me and uses Jam which I’m not familiar at all. But I’ll definitely give it a try when I have time.
Currently I’m using a hacked version of FrobTADS (replacing the tads3/vmconmor.cpp file) for my purpose, and it works for me so far. So this is not that high priority to me anymore.