many examples on the inform7 website fail to compile

Using Linux 6L38, I’ve tried:

Edited Bronze, by Emily Short, revised for younger players by Brendan Desilets. Removes some references to suicide and sexuality to make it more appropriate for classroom use with younger students. (Available as a project file for download, which may in turn be edited or used to produce a stand-alone game file. The game already-compiled is also available below.)

Gentle Introduction to Inform, by Mark Engelberg. This heavily-commented sample game introduces room creation and description, object creation, doors, rules for creating a prologue and ending the game, character creation, asking characters questions, scoring, text variations, instead and after rules, and every turn rules. (Available as a project file for download.)

Both from inform7.com/teach/resources-by-grade/

Also, ifdb.tads.org/viewgame?id=1iqmpkn009h9gbug “Raising the Flag on Mount Yo Momma”

None of these works run without error in the inform authoring environment. Furthermore, I cannot find email addresses of authors to contact. Are these works maintained? Do I need to report these problems somewhere? I bet the failures are due to very simple things, but I am not skilled enough in writing inform to fix them myself. Please suggest how I might proceed.

These works were written in an older version of Inform 7, and the language has changed in some ways since then. I believe Bronze and Gentle Introduction are both compatible with version 6G60, if you want to use an older copy. I’ll look at the compilation problems for all three, I imagine they’re fairly minor and can be patched easily (e.g. by redefining removed phrases: “to end the game in victory…”).

I think this is a serious issue, and really needs to be addressed. Inform7 has had many “bugfix” releases, and I’ve been recommended to use the latest version as a result, but there seems to be a polite fiction existing around the many extensions directly linked on the Inform7 webpage: many of them are just plain broken.

So it seems like syntax is incredibly fluid in Inform, and phrasings that worked in a build may not work just a few builds later. This is hell for a developer to try and figure out through trial and error 6L02 is compatible with Extension Blah by John Smith but not Extension Foo by Jane Jones. I believe the versioning philosophy is a contributor to this problem.

For instance, in Python (and many other pieces of software) a major version number is intended to signal incompatibility due to changed data structures or protocols or configuration files. Minor versions are fixes and small feature additions, and typically backwards compatibility is preserved. Admittedly, this is not the only way to structure software versioning, but it is probably the most common in use today.

I am relatively new to Inform, so anyone correct me if I’m speaking out of turn here, but Inform’s versioning is pretty hard to follow. I am using “Inform 7,” though 7 is not really the major version, but an entirely new language compared to Inform 6. Whether or not a given piece of Inform7 code will compile with the version you have is a crapshoot. Going to “about” reveals that the version I have is “Version 1.54 (1.54.4)”. I still do not know what this means, and have not heard of this number referred to anywhere. The build number I have is 6L38. It starts with 6 rather than 7, which is a little counterintuitive. I’ve observed numerous breakages in many of the extensions I’ve used between this version and 6L02 and whatever version I was using before that. Some of the extensions I’ve fixed, others were beyond my meager skill to fix. Am I totally off the mark here, or is it tough to find an indicator of what will work where? This seems like a big source of frustration for new Inform authors.

Edit: I realize there is a topic here devoted to which extensions are working and which are broken, as well as a repository at The Public Library for working extensions. Most of my points still stand in that I couldn’t find that forum topic googling for the error messages I encountered, and referring someone to github or a third party website for a working extension is not a great solution.

Let me clarify the background.

The important version number is 6L38. Extension compatibility will always be tied to that number, rather than the “1.54” (which is Mac-specific and not interesting, unless you run into a Mac UI bug.)

The 6 there is a coincidence. It’s a simple incrementing number, as you can see from the I7 history page (inform7.com/download/) – the past seven years of I7 development run from 4S08 to 6L38. I think every single development compile gets an increment.

At this stage in its lifecycle, I7 has major updates and bug-fix updates, although these are not clearly marked on the web site. 6F95 was a major update, followed by bug-fix update 6G60. 6L02 was really major update, followed by bug-fix update 6L38.

A bug-fix update may change a small number of language syntaxes; a major update will change a lot of them.

Finally: the I7 extension archive at emshort.com/pl/payloads/ .

No, nobody is thrilled that parts of the I7 web site are out of date.

Thanks for the post, I think I understand now. However, I don’t think anyone should have to understand.

I don’t believe in coincidence :wink:

I’d figured that the odd number-letter-number syntax . My point was only that “our forebears did it this way” is a bad reason to continue.

Oh, I wasn’t at all aware of that. That seems hard for someone to realize unless I missed something. It’s also not just parts of the Inform7 website that are out of date as a result: many help topics link to docs that no longer exist, and walkthrough/howtos/example source/book examples also break with no indication as to why-- they’re both marketed as “Inform7” to the novice.