Inform-636.exe inform compiler: how to integrate with the Windows IDE?

I was really excited that the 636 version of the Inform compiler popped up on ifarchive.org.

This may not seem to mean anything to you, but trust me, it’s really cool. The main thing is that USE_MAX_PROP_TABLE and such no longer need to be defined in your code. It also seems faster–I have some pretty big projects that

  1. take at least 33% less time to compile and
  2. now have no risk of throwing an error such as “Increase USE_MAX_VARIABALE and try again!” sometimes more than once after I add a new item

I added 636 by going into the C:\Program Files (x86)\Inform 7\Compilers folder and copying inform-636.exe there, then renaming it to inform-633.exe (your compiler may be different.)

This works okay for me, and it should work okay for anyone. The important thing is to get the new features rolling. It’s going to save a lot of work and worry!

So yes, folks, it is worth the time to tinker with stuff and get it working–though you may want to back the inform*.exe files up just in case!

But I’m wondering. Is there a way to tweak the IDE so that it knows to look for inform-636.exe directly, so I don’t have to rename it to something slightly inaccurate? It seems I might have done so before, as 6G60 (my version) had 632 as a default, somehow.

(Note that as I’m using 6G60, and perhaps later versions have a more streamlined to change things.)

The screnenshot shows what I see, and you may note the 633 vs 636 discrepancy.

Release notes: Inform Release Notes
Windows binaries: https://ifarchive.org/if-archive/infocom/compilers/inform6/executables/inform636_win32.zip

3 Likes

I tried this on MacOS too:

cc -o inform *.c
cp inform /Applications/Inform.app/Contents/MacOS/inform6

This didn’t seem to break code signing. However, you might need to unsign the I7 app:

codesign --deep --remove-signature /Applications/Inform.app

(Adjust the path if you keep the Inform application somewhere else. Sorry, this is all command-line stuff.)

What happens if you leave it named inform-636.exe but move all the other versions of I6 out of the Compilers directory?

Given these bits of the code in the 6g60-tagged commit on the Windows I7 IDE github repo, it looks like that would work.

Inform7/ProjectFrame.cpp:  executable.Format("%s\\Compilers\\inform-%d",(LPCSTR)dir,m_settings.m_compiler);
Inform7/ProjectSettings.cpp:    BOOL found = compilers.FindFile(theApp.GetAppDir()+"\\Compilers\\inform-*.exe");
2 Likes

In later versions the executable is just “inform6.exe”, so you can drop a new version to replace it. In 6G60 the logic is slightly more complicated, but amounts to basically the same: the Windows front-end will use the latest numbered version of Inform 6, provided that it is called “inform-N.exe”, where N is something like “636”. So if you rename the new executable to “inform-636.exe” and drop it in the “Compilers” directory, it should just be used. You don’t even need to remove the old version of Inform 6.

4 Likes

@Zed, thanks for the code snippet!

@DavidK, thanks for the verification!

I just assumed that the IDE had things hard-coded to a certain number. I tried a few experiments, but it’s good to see the details.