Updating extensions in the GitHub repo for Inform7 v10

I’ve updated and reorganized the 10.1 Extension status wiki page to reflect recent discussion here, and to say that I’ll claim updating Consolidated Multiple Actions by John Clemens (“claiming” is just letting people know someone’s working on it).

So far as I know, of authors with unported/unclaimed extensions, these are people who aren’t actively maintaining their own extensions anymore: Emily Short, Eric Eve, Erik Temple, Jon Ingold, Ron Newcomb. Does anyone know whether I’m mistaken about any of those, or whether there are others who should be there?

1 Like

I have Indefinite Article Substitution Fix working (and working on Z-machine, and I’ve fixed at least one obscure bug which might hit non-English languages, and it’s cleaner code than before), but it lacks functionality possible in Print Stage Detection. Working on figuring out how to shoehorn that in.

What I really want to do is to be able to call out to an activity which can be optionally programmed by the game author, which looks at a text and decides on the article based on the text. And if the activity hasn’t been programmed or its rulebook returns whatever-value-is-appropriate-to-mean-didn’t-interfere, the default implementation will happen. I can’t figure out how to do the callback from I6.


If I ever finish this, I might take a crack at Disambiguation Control, which I have frequently wanted, but I’m not sure I’ll get to it right away.


Blech. I’m realizing that what I really want to do for the indefintie artilce issue is to create a text from I6 code, and initialize it with the output which has been printed to an array in memory. (The key issue is reentrancy: we really want a new buffer for each call, dynamically allocated; but we also want to give I7 code a chance to intervene, so it ought to be a text.) I have no clue how to do this. I’m poking around in BasicInformKit but the situation remains non-obvious.

1 Like

This is the use case for which activities were designed, really.

I haven’t tried to build one in a long time, but it roughly looks like

if (ForActivity(WHATEVER) == false) {
    ! do default stuff
}
2 Likes

So I’ve finally made some progress on the Glk ecosystem for Inform.

Glulx Entry Points was removed from the built in extensions in Inform 10.1. Instead of basing most of the Glk extensions on this extension, we are planning to incorporate most of it into the core of Inform. This weekend I’ve written up a formal proposal document, and done a rough implementation of the new Glk Kit.

The one part that I’m not planning on incorporating into GlkKit is the command replacement part of GEP. So my first set of questions to the community are about command replacements:

  1. How have you used Glulx Entry Point’s command replacements in the past?
  2. Is there any part of it that is awkward to use as an author?
  3. Is there anything you wish you could do, but haven’t been able to?

Second, I am thinking it would be helpful to add a minimal Glk windows implementation into GlkKit. This would not be the full Flexible Windows sytem (though perhaps in the future we may decide it too should be incorporated.) Instead it would just be a minimal definition of a Glk window kind that would allow all Glk extensions to be multi-window aware. For example, Flexible Windows largely reimplements Glulx Text Effects within itself, because the original extension can’t be simply made to work with multiple windows. By adding a Glk window kind, extensions like Glulx Text Effects can be designed to work whether or not Flexible Windows is used.

The idea is that there would be a Glk window kind with a few essential properties, and the standard built in windows would also be defined. Opening new windows would not be included, that would still be part of FW.

  1. Which properties do you think would be helpful to include in the minimal Glk window kind? At the moment I’m thinking rock number, reference number, and type. Maybe a pending input property, as it could be helpful to track that.
3 Likes

Sounds like a great idea to push some basic subset of Flexible Windows further down the stack, but I’ll have to think more to have an opinion about what. :smiley: Thanks, Dannii – it’s fantastic to hear of progress on the Glk front.

1 Like

When I was implementing the Hyperlinks extension I needed some form of command replacement, but the one in GEP didn’t work for me, so I made my own, which also fixes some fundamental problems with the current event model. It would be nice if this were incorporated into the basic event system rather than having to hack around it.

1 Like

After playing around a little with hyperlinks in GlkKit, I had suggested to Dannii that at least Glk Input Suspending-ish cancellation of existing waits stuff get baked in at a low level.

1 Like