New 2014 build of Inform now out

Build 6L02, the first new release of Inform in three years, is now available from inform7.com.

This release is a major reform of a now-mature language which is widely used, and it has been over three years in the making. It has the following main objectives: to clarify and better enforce the syntax of the language (which is now formally documented); to have much greater linguistic flexibility, enabling stories to be written in any person and tense, and paving the way for translation to non-English languages; to remove phrases and features which have been deprecated for some years; to remove procedural rules, which were little used or understood and incurred a significant speed cost at run-time, in favour of simpler ways to substitute rule behaviour; to remove assumptions about the kind of narrative being written (i.e., that Inform is always making a “game” which is “won” or “lost” and has a “score”); to reform the rules handling “blocked” actions, such as listening; to redesign the Index, the in-application documentation, and the extensions index; to reform the handling of text, unifying “text” and “indexed text”, and improving their performance; to introduce a simple but powerful system of “responses” allowing authors to change stock replies in the Standard Rules and other extensions, including third-party ones (and also to make it easy to translate these to non-English languages); and to implement full floating-point arithmetic in numerical kinds of value, at least on the Glulx virtual machine.

This will be a disruptive release. Existing source texts which use deprecated features will no longer work, and the improved syntax checking means that Inform will catch problems it previously missed. It should also be noted that the run-time implementation is different in numerous ways: story files are a little larger but will run a little faster. We believe that almost all Inform projects will be able to migrate to the new system with reasonable ease - for example, “Bronze”, a large story written in the very early days of Inform 7, took about an hour’s work to adapt. Nevertheless, authors of large existing Inform projects may want to be cautious in their approach to what is, we stress once again, an across-the-board reform of the language.

This release also refines the user interface for the Inform application. As in Inform 7’s earliest days, new features are being piloted on Mac OS X, but will make their way to Windows and Linux soon - Toby Nelson, David Kinder and Philip Chimento are all working on these refinements. Search facilities are improved, but the big new feature is the Public Library, which automatically matches the user’s collection of extensions against those on the Inform website, and allows the user to download or update them singly or en masse at the click of a button. There are no user accounts, no passwords; no data is held about Inform users at the server; and everything is free.

The existence of the Public Library will, we hope, be good news for extension writers - it will now be much easier to get your extensions out to users. We’ve always had a set of community standards for extensions, and Mark Musante, the Inform project’s extensions librarian, has put in a good deal of work in recent years to look after all this. We now want to go further with that. The Inform website holds hundreds of extensions going back several years, but some of those are out of date, and many will contain deprecated phrases now removed from the language. So the rule is that the Public Library will contain only those extensions from the website which comply with the guidelines and which work properly on the 2014 Inform - we don’t want new users, especially, to download obsolete code. Firstly, extensions should always use Responses to reply to the player’s commands: this will make them more flexible and easier to translate to natural languages other than English. (At present German IF authors, say, have to “fork” extensions in order to translate them, and we want to avoid the need for that.) Secondly, these responses should where appropriate use adaptive text substitutions so that they will work in any person and tense, and will correctly cope with plural or proper nouns in all situations. An extension which does all this is called “adaptive”. As from this build, all built-in extensions are adaptive, and we hope for quite a rapid takeup from third-party extension writers, too, since there is much to be gained and the changes are quite simple to make. Since adaptive versions of extensions will be incompatible with older builds of Inform, we are making arrangements to keep old non-adaptive versions of extensions online at the Inform website (just as older released builds are always available for download): those won’t be on the Public Library, but they’ll still be available for direct download just as they are now.

Note that a number of existing extensions to provide adaptive text facilities, such as Plurality by Emily Short, will now be redundant. But our build is indebted to this early work, particularly by Aaron Reed and David Fisher.

This new version was basically finalised on 30 April 2014, Inform’s 21st birthday, but has taken a few days to get ready for distribution. It incorporates over 500 bug fixes, and there was a brief period (yesterday) when the Core Inform project on the bug tracker made it all the way down to 0 unresolved issues, though I see that this is back up to 4 today. For a fuller account of what’s new, including an itemised list of bug fixes, see the change log, which is also now available in EPUB form (as is the documentation in general).

Enormous thanks to the very many people who’ve helped this work along, and especially to Emily Short, Andrew Plotkin, Toby Nelson, David Kinder, Philip Chimento, Andrew Hunter, Adam Thornton, Erik Temple, Eric Eve, Dannii Willis, Ron Newcomb, Juhana Leinonen, Mark Musante and Justin de Vesine.

ooooh yes.

Great news! Thanks to all involved!

And now, updating Kerkerkruip for the new version…

Yay!

Many thanks! :laughing:

Sounds pretty cool.

-Wade

Hurrah!

EDIT: Is this working for anyone else? It keeps throwing errors from the Standard Rules (“mapping up” is not a valid relation).
It also doesn’t seem to like “usually”: it says my statements are in the past tense.

EDIT2: Found the problem, it was reading my old Standard Rules file.

I get an error with the extensions Glulx text effects :

I’m reading through the full change log, and this is so good. No more indexed text! A much more powerful verb substitution system right out of the box! A hand-made index!

Hooray! Thank you to everyone involved!

As Graham says, it’s a disruptive release. If you have an existing project or extension it’s likely that you need to make changes.

I suggest people start separate threads for individual issues instead of asking here in the announcement thread.

This is awesome. I can’t wait to get home and try this stuff out.

Do share how this goes!

Hey, could someone send me a zipped copy? Once again, the school’s computers don’t allow me to download .exe’s.

Email it to : masemauno@gmail.com

Ironically, I just released a new version of one of my test frameworks that essentially breaks the API of everything I had people doing before. Yet it was the right thing to do. So I can relate to the notion that sometimes disruptive releases are the best thing you can do to make your path forward that much better.

Maybe this release will finally spur me on to write that interactive fiction work I keep telling myself I should do.

Congratulations on the new release. It looks to be comprehensive and well worth the wait.

Before I open the box:

Thank. You.

You all gave us a lifetime of happiness. Never quit, please.

(“Ode”, stanza 6)

I’ve sent you it.

Hooray!