Parchment is currently using Bocfel for its Z-Machine interpreter. Bocfel works well, but it gets turned into a 2.2MB WASM file. Even when compressed for the Inform 7 template it’s still a bit under 800KB. And being GPL licensed it doesn’t really fit in the Inform 7 ecosystem (I think Graham would prefer the built in interpreters to be permissively licensed.) So I’m investigating other options.
Nitfol is incredibly old now, and also GPL licensed.
Fizmo has been updated as recently as 5 years ago and is BSD licensed. Looking at its code, and wow, that’s a lot of Git submodules (I can’t complain though, considering the nested submodules Parchment uses.) The Glk interface seems to have been mostly used by @zarf for his iOS terp. Any thoughts about Fizmo?
I think I’ve thoroughly looked through IFWiki and I think those are the only other real Glk options, at least for anything updated in the last decade. But is there anything else that I missed (or that hasn’t been added to IFWiki)?
I’m actually considering just writing a new interpreter in Rust. I don’t know that it would end up smaller than Bocfel, but it might be worth trying.
Doesn’t Frotz use Glk? I thought dfrotz was specifically Frotz linked against cheapglk.
EDIT: Never mind, it’s also GPL-licensed, so if that’s a problem for Inform that’s also a non-starter. (And I can see why it would be, if it’s part of every website Inform generates.)
Dumb Frotz doesn’t use Glk. Gargoyle used to have its own Glk port of Frotz, but it was never incorporated into the upstream Frotz codebase, and is thoroughly unmaintained now.
I think if there’s no other option it would be okay for one of the Inform web interpreters to be GPL licensed. But the plan is for all extensions including interpreters like Parchment to be distributed in the new Public Library. GPL isn’t one of the approved licenses for the PL, so if you start issuing exceptions for something like Parchment then other people would probably ask for exceptions for their GPL stuff too.
Well, to be fair, a GPL-licensed interpreter and a GPL-licensed extension are pretty different things, no? Running your compiled game in a GPL interpreter doesn’t obligate you to license your own code under the GPL (because the interpreter and the game are manifestly separate programs), but including a GPL-licensed extension does (the result is a single program), to my read. And the latter is what would make life complicated for anyone using the Public Library.
You’re not wrong. It’s just that Graham wants the web interpreters to be distributed in the new extension format, which will help for things like Vorple which have an interpreter as well as code that gets compiled into games. I don’t know for certain what Graham would say in regards to including Bocfel, but if I can make it a non-issue (by swapping Bocfel for something else) then I think I’d prefer to do that.
I’ve long pondered swapping Bocfel to the MIT license. That obviously won’t help the size issue, but if I can unstick at least one issue, I’m not wedded to the GPL.
MIT is compatible with GPL (both v2 and v3) so this is not an issue, an MIT-licensed interpreter can be plugged into anything where GPL would also work.
(Unlike e.g. Apache-2.0 which is infamously not compatible with GPLv2 - hence the popularity of MIT/Apache-2.0 dual licensing in some corners of the FOSS world.)