[I7] Glulx Text Effects By Emily Short (& other?) ix7 issues

I’ve been thinking about resurrecting an old I7 project of mine for IntroComp but am running into some extension troubles. I’m using the latest OSX I7 build.

Current error:

Problem. You wrote 'Include version 5/150123 of Glulx Text Effects by Emily Short'  : but my copy of Glulx Text Effects by Emily Short is only version 5/140516.

I’m not sure where to find this more recent version?

Also, just some background on how I got to here. I need the following extensions in for this project to work and have installed:
Glimmer Bitmap Font (Erik Temple)
Glimmer Canvas-Based Drawing (Erik Temple)
Glimmer Drawing Commands (Erik Temple)
Glimmer Graphic Hyperlinks (Erik Temple)
Flexible Windows (Jon Ingold)

So far I’ve also installed the following as the extensions above complained of needing requirements:
Alternative Startup Rules (Dannii Willis)
Glk Events (Dannii Willis)
Glk Object Recovery (Dannii Willis)
Glulx Definitions (Dannii Willis)

I grabbed the newest versions I could find from https://github.com/i7/extensions of all of those as I remember last time Inform7 was updated, one of Erik’s extensions broke. Also, a new thing was installing the new extensions by Dannii it started requesting after putting a few more extensions in and re-trying. It was one of the latest Dannii extensions that complained about wanting a newer version of Glulx Text Effects.

I don’t know about the other stuff, but that version of Glulx Text Effects is here: github.com/i7/extensions/blob/m … ffects.i7x

Thanks for the reply. Strangely, I still get the same error when I paste the contents of that file into the one sitting in my inform7/extensions directory. :neutral_face:

I’ve recently downloaded the latest Inform7 6M62 for OS/X and I’ve got a similar error, referencing Glulx Text Effects Version 5/140516 from Keyword Interface version 9 by Aaron Reed. I tried using the more recent version of Glulx Text Effects from Github, but I get a compile-time error:

Telephones by George Tryfonas is also failing. I suspect more pain and suffering just to get this old project to compile.

If anyone has suggestions or offers of help, I’m all ears…

Get the updated version of Keyword Interface from github.com/i7/extensions/blob/m … erface.i7x

I don’t know if you can just replace the text in an existing extension. I think the actual install process reads the version number - even if you’ve updated the actual extension contents, it’s in a file that Inform thinks is the older one.

Make the contents a text file with the extension .i7x and then try opening it and pressing the install button that pops up, or go to “install extension” in the IDE under file. That should make Inform read the extension properly.

Ahhh…! Super, thanks for that tip. The new version compiles!

Now I get an error on the startup code used by the extension Telephones by George Tryfonas:

Problem. The phrase or rule definition 'Setting action variables for dialling (this is the set up dialling rule)'   is written using the 'colon and indentation' syntax for its 'if's, 'repeat's and 'while's, where blocks of phrases grouped together are indented one tab step inward from the 'if ...:' or similar phrase to which they belong. But the phrase 'if the calling number of the item is the number understood'  , which ought to begin a block, is immediately followed by 'now the line dialled is the item'  at the same or a lower indentation, so the block seems to be empty - this must mean there has been a mistake in indenting the phrases.

on the code:

Setting action variables for dialling (this is the set up dialling rule): repeat with item running through the list of telephones: if the calling number of the item is the number understood, now the line dialled is the item.
I am assuming this is some change to the Inform language over the last couple of years. The version of Telephones by George Tryfonas appears unchanged since version 1 Sat, 10 May 2008.

Ah, that’s an easy fix, just replace the comma with a colon and then indent the next line:

if the calling number of the item is the number understood: now the line dialled is the item.

Thanks! I appreciate your help on this. I think a lot of my code must be using out-of-date if statements and now incorrect indentation. So I’ve gone and fixed a bunch of similar statements in Telephones and in my code.

However, I still get the error message:

Problem. You wrote 'repeat with item running through the list of telephones'  : but this describes a collection of values which can't be repeated through, because the possible range is too large (or has no sensible ordering). For instance, you can 'repeat with D running through doors' because there are only a small number of doors and they can be put in order of creation. But you can't 'repeat with N running through numbers' because numbers are without end.
 See the manual: 11.11 > 11.11. Repeat running through

on the second line:

Setting action variables for dialling (this is the set up dialling rule):
	repeat with item running through the list of telephones:
		if the calling number of the item is the number understood:
			now the line dialled is the item.

and also

Problem. In the sentence 'now the line dialled is the item'  , it looks as if you intend 'the line dialled is the item' to be a condition, but that would mean comparing two kinds of value which cannot mix - an object and a list of telephones - so this must be incorrect.

And looks like similar messages on Measured Liquid by Emily Short and Assumed Conversers by Michael Martin. Are there newer versions of those?

I can’t find a working version of Measured Liquid online, but it’s a one-word change–just change “value” to “liquid” in the line that throws the error. So this:

Last setting action variables for pouring something into something when the mixed liquids option is active (this is the establish mixture rule): if the noun is not a fluid container: make no decision; if the second noun is not a fluid container: make no decision; if the liquid poured is not the liquid of the second noun: if amount poured is greater than null volume and the second noun is non-empty: let L be the value produced by the liquid-mixing rules for the amount poured; now the resulting liquid is L.

becomes

Last setting action variables for pouring something into something when the mixed liquids option is active (this is the establish mixture rule): if the noun is not a fluid container: make no decision; if the second noun is not a fluid container: make no decision; if the liquid poured is not the liquid of the second noun: if amount poured is greater than null volume and the second noun is non-empty: let L be the liquid produced by the liquid-mixing rules for the amount poured; now the resulting liquid is L.

(If someone wants to make this change and upload it to the new extension site, that would be great–I tried to attach a copy but am having trouble remembering where Inform stores extensions on my computer.)

Thanks Matt! That fixed Measured Liquid. Still getting errors with Telephones and Assumed Conversers.

I don’t have those installed, but from the error message you printed I’d guess you need to change “the list of telephones” to “telephones.” This throws basically the same error:

[code]Lab is a room.

When play begins:
repeat with item running through the list of things:
say “[Item] is a thing.”[/code]

but this doesn’t"

[code]Lab is a room.

When play begins:
repeat with item running through things:
say “[Item] is a thing.”[/code]

So my guess is that you can’t repeat through “the list of” anymore. (This may be a bug–“repeat with item running through L” is OK where L is a list, and “the list of things” is a list, so Inform perhaps should be able to figure out what “repeat with item running through the list of things” means.)

…OK, I checked out Assumed Conversers, and the error was that you needed to add “the topic understood” in two places; I’m a little surprised that the original code ever worked. Also, I updated the extension on Github.

Matt, thanks so much! I finally got everything to compile with the latest 6M62 release. It’s been a few years since I’ve looked at any of this code, and I have a lot of work ahead of me. But at least now I’ve got the extensions working and I can just focus on my own code. :wink:

I think I see why I was confused earlier that it didn’t seem to be recognizing an extension. When I remove the Glulx Text Effects extension from my extensions folder, I get:

Problem. You wrote 'Include version 10/160919 of Glulx Entry Points by Emily Short'  : but my copy of Glulx Entry Points by Emily Short is only version 10/140425.
Problem. You wrote 'Include version 5/150123 of Glulx Text Effects by Emily Short'  : but my copy of Glulx Text Effects by Emily Short is only version 5/140516.

Now I’m really confused. It looks like I have 2 extensions requesting 2 different versions of Glulx Text Effects and somehow 2 versions of Glulx Text Effects are already installed somewhere?

(FWIW, one of those error messages is Glulx Entry Points, not Glulx Text Effects. I think you know this, but I just wanted to be clear.)

This looks like something that might have happened if you hand-edited a built-in extension like Glulx Text Effects… which you just did at the beginning of the thread, I think? When I modified a built-in extension, my modified extension wound up in a different place, and the modified version preempted the built-in extension in later versions of Inform.* Looking around, it seems like the filepath for the modified version was ~/Library/Inform/Extensions, so you might want to look there… or maybe in the Materials folder for your project, or anywhere you think an outdated version of Glulx Text Effects might be.

As far as requesting two different versions of an extension goes, I don’t think that should be a problem, because a request for a particular version of an extension is supposed to work with any higher versions too. As it is, the ones you have seem like they differ only by the date component, not the actual version number, for whatever that’s worth.

*Which is good behavior, or otherwise it would be impossible to modify the built-in extensions and have Inform recognize the modified version. But it can be confusing. This was particularly an issue because much older versions of Inform used to mistakenly prompt you to install the built-ins, and if you did that would create a spurious copy.

Curiouser and curiouser–I took a look at the Glulx Text Effects built in to my copy of Inform and it’s the same version you have. That doesn’t seem like it should happen, but maybe someone fixed some bugs?

Anyway, the version of Glulx Text effects that’s being requested is on github here, so maybe getting that will work.

Also, it looks like Jack Welch (dhakajack) is maintaining Glimmr now, so he might be able to walk us through this.

Thanks Matt W.

2 things…

  1. I did NOT realize that error referred to two different extensions because the names are so similar! Thanks for pointing that out. I pulled the other extension from here https://raw.githubusercontent.com/i7/extensions/master/Emily%20Short/Glulx%20Entry%20Points.i7x

  2. After placing that and Glulx Text Effects you linked, I no longer have glaring extension errors. I’m not sure what the problem was… perhaps I had something named incorrectly or something.

Now I have errors which look like they are due to the canvas drawing stuff itself. I’ll create a separate thread for that.