i7: Compiler and GUI as a Web App

This is something of a pie in the sky question, but has anyone done any work on making an HTML5 front end for the Inform 7 compiler (with the ni/inform6 backend pieces on a server elsewhere) that implements some or all of the functionality of the native GUIs? How about using something like enscripten to port the compiler itself to javascript?

Take a look at playfic.com/ . It’s not emscriptem, it’s fresh web interface with the original compiler running in back.

I’ve had this on my to do list for awhile. I think the tools to do this well are available, like Angular/Bootstrap, so it’s doable.

DC

Great! While I’d love to see something with all the bells and whistles of the native app eventually, this is exactly the kind of thing I was looking for.

Revisiting this for a moment: If I wanted to have a hack at working on my own interface, is there some place where the command line interface of the linux tool chain is documented?

Not only is it not documented, but some of the behavior is hard-coded in the ni compiler or the IDE. One of my peeves. Every variable needed by the ni compiler should be CLI available and well-documented.

It’s there for the I6 compiler. Why not NI?

C:\Program Files (x86)\Inform 7 6L\Compilers>ni /?
Inform 7 build 6L38 has started.
Did not set -internal when calling

C:\Program Files (x86)\Inform 7 6L\Compilers>inform6 /?
Inform 6.33N for Win32 (20th August 2014)
<before compilation>(0): Fatal error: Couldn't open source file "/?.inf"

C:\Program Files (x86)\Inform 7 6L\Compilers>inform6 /?
Inform 6.33N for Win32 (20th August 2014)
<before compilation>(0): Fatal error: Couldn't open source file "/?.inf"

C:\Program Files (x86)\Inform 7 6L\Compilers>ni --help
Inform 7 build 6L38 has started.
Unknown: -help
Unknown parameter at the command line

C:\Program Files (x86)\Inform 7 6L\Compilers>inform6 --help
Inform 6.33N for Win32 (20th August 2014)
Switch "--" unknown (try "inform -h2" for the list)

This program is a compiler of Infocom format (also called "Z-machine")
story files: copyright (c) Graham Nelson 1993 - 2014.

Usage: "inform [commands...] <file1> [<file2>]"

<file1> is the Inform source file of the game to be compiled. <file2>,
if given, overrides the filename Inform would normally use for the
compiled output.  Try "inform -h1" for file-naming conventions.

One or more words can be supplied as "commands". These may be:

  -switches     a list of compiler switches, 1 or 2 letter
                (see "inform -h2" for the full range)

  +dir          set Include_Path to this directory
  +PATH=dir     change the PATH to this directory

  $...          one of the following memory commands:
     $list            list current memory allocation settings
     $huge            make standard "huge game" settings (default)
     $large           make standard "large game" settings
     $small           make standard "small game" settings
     $?SETTING        explain briefly what SETTING is for
     $SETTING=number  change SETTING to given number

  (filename)    read in a list of commands (in the format above)
                from this "setup file"

For example: "inform -dexs $huge curses".

For fuller information, see the Inform Designer's Manual.

[No compilation requested]

C:\Program Files (x86)\Inform 7 6L\Compilers>

–dc

is there a way to tell the Inform 7 ni compiler the output file, or is it hard coded to use “auto.inf”? I can’t find the actual Github for the ni command args processing - I can read the C code if someone can please point me to the right page where the args are processed?

ni is closed source, so it’s all a mystery.

I don’t know of a way to change auto.inf to something else, I suspect it is hard coded. But you might like to take a look at a build script we use for Kerkerkruip, which specifies the options I know of:

github.com/i7/kerkerkruip/blob/ … i7-project

That with some search engine landed me on someone’s efforts at the start of the year to do the same thing I wanted :wink:

github.com/eevee/project-euler/ … t/Makefile

“As far as I can tell, it’s completely impossible to stick a single file in and get a single file out; it expects to have a simple directory structure available for dumping various build cruft into.”