Do you have a question? Post it now! No Registration Necessary. Now with pictures!
- Amir Karger
July 29, 2004, 2:02 pm
rate this thread
that they're trying to re-invigorate lists like email@example.com...]
I've written a module that parses Z-machine files and translates
into executable Perl scripts. In the future, it'll be translating to
other languages: first on the list is PIR. I'd like to CPAN-ify it,
and wanted to ask about namespace.
* Language::Zcode - makes sense, but a Z-file contains more than just
* Language::Zmachine - makes more sense, except that Z-machine isn't
technically a language
* Games::Zmachine - well, Z-machine isn't technically just for games.
I say "technically" because the most "useful" Z-machine program I've
seen is a Befunge interpreter. But this module is really doing more
munging than gaming.
* Zmachine - cute, in that it's like Sun:: or MacOS::, but it's
starting a new top-level namespace, which is probably not considered
cool. Especially since there probably won't be more than a couple
modules ever written for this namespace.
* Perl6::Zmachine - just kidding. But Dan Sugalski's slide saying
parrot -b:zmachine zork1.dat
*was* the original impetus for my writing this.
I'm definitely leaning towards Language::something - maybe
Language::Zmachine since Z-machine is a more well-known term - but I
wanted to know what others thought. Any better suggestions?
* Games::Rezrov is an interpreter for Z-machine files. It allows you
to actually play said games. I've stolen a bunch of its code, but
my module is definitely doing different stuff, so it wouldn't make
sense as a sub-namespace of G::R.
For those unfamiliar with the Z-machine, it's a virtual machine
for the Infocom text adventure games, and the less moribund
Inform interactive fiction programming language.
Files for the Z-machine contain some header information, tables
containing game data (objects in the game, etc.), text strings to
print, and a bunch of commands in Z-code. Z-code is Z-machine machine
language, which is made super-compact (in case you're curious) by
using as few bits as possible for each command and argument. Which
makes it even harder to read than regular machine language.