Inform 10.1.2 / inform-ide bug: "for use with" does not work with unusual author names

While trying to set up some extensions, I recently discovered a bug, either in the Linux inform7-ide v2.0.0 or in Inform v10.1.2. It seems that author names involving one word and more than one capital letter (such as FLACRabbit) disrupt the “for use with” functionality (see WWI 27.9). Simply including those extensions continues to function as normal, but even if both are successfully included, “for use with” sections will decide that the extension in question is not present. When the name is changed to the standard format of two capitalized words, the system works as intended.

Try this example:

Broken example

Minimal Reproducible Example.inform in ~/Inform/Projects, source text:

"Minimal Reproducible Example" by "FLACRabbit"

Include Base Extension by FLACRabbit.
Include Conditional Extension by FLACRabbit.

Place is a room.

Base Extension.i7x in ~/Inform/Extensions/FLACRabbit:

Base Extension by FLACRabbit begins here.

When play begins:
	say "Base extension is included."

Base Extension ends here.

Conditional Extension.i7x in ~/Inform/Extensions/FLACRabbit:

Conditional Extension by FLACRabbit begins here.

When play begins:
	say "Conditional extension is included."
	
Section A (for use with Base Extension by FLACRabbit)

When play begins:
	say "Conditional extension sees that Base Extension is being used."
	
Section B (for use without Base Extension by FLACRabbit)

When play begins:
	say "Conditional extension sees that Base Extension is NOT being used."

Conditional Extension ends here.

This produces the following (incorrect) output:

Base extension is included.

Conditional extension is included.

Conditional extension sees that Base Extension is NOT being used.

Minimal Reproducible Example
An Interactive Fiction by FLACRabbit
Release 1 / Serial number 230827 / Inform 7 v10.1.2 / D

Place

>

When the following changes are made, the system functions properly:

Functional example

Minimal Reproducible Example.inform in ~/Inform/Projects, source text:

"Minimal Reproducible Example" by "FLACRabbit"

Include Base Extension by Flac Rabbit.
Include Conditional Extension by FLACRabbit.

Place is a room.

Base Extension.i7x in ~/Inform/Extensions/Flac Rabbit:

Base Extension by Flac Rabbit begins here.

When play begins:
	say "Base extension is included."

Base Extension ends here.

Conditional Extension.i7x in ~/Inform/Extensions/FLACRabbit:

Conditional Extension by FLACRabbit begins here.

When play begins:
	say "Conditional extension is included."
	
Section A (for use with Base Extension by Flac Rabbit)

When play begins:
	say "Conditional extension sees that Base Extension is being used."
	
Section B (for use without Base Extension by Flac Rabbit)

When play begins:
	say "Conditional extension sees that Base Extension is NOT being used."

Conditional Extension ends here.

This produces the following (correct) output:

Base extension is included.

Conditional extension is included.

Conditional extension sees that Base Extension is being used.

Minimal Reproducible Example
An Interactive Fiction by FLACRabbit
Release 1 / Serial number 230827 / Inform 7 v10.1.2

Place

> 

Note that the author name only has to be changed for Base Extension.

Has anyone else seen this bug? If so, has it been reported or fixed in newer versions of the software?

This sounds like the Inform compiler rather than the IDE at first glance, but I wouldn’t rule out the IDE 100%. Either way, I’d suggest reporting it along with your thorough test case (nice work, by the way!) at the bug tracker, inform7.atlassian.net.

1 Like

There were other similar problems in the original 10.1 prior to 10.1.2. Linux filesystems are really case sensitive and apparently Windows and Mac OS are just faking it. And Graham does his development on a Mac and doesn’t experience some of the same things Linux users do.

Windows and MacOS are not case-sensitive at all. Haven’t been for decades.

I concur with Zed: I use Linux, and I never write extensions, and I have no issues with my default auth name (whose is my monogram: PGdE)

Best regards from Italy,
dott. Piergiorgio.

reported as I7-2420.

2 Likes

macOS can be case sensitive, it depends on the file systems options when the FS is made. Many things will break if the system drive is case sensitive, but it can be useful for external volumes or interoperating with other Unix systems.

“You can make it case-sensitive but it doesn’t work” is not a strong disagreement with my statement. :)

Well yeah, I think, the OS works, but lots of other things don’t (like MS Office, IIRC). :slight_smile:

It’s handy to be able to make a disk image that is case sensitive for extracting tarballs which have files that differ only by case. I can’t remember now what it was, but some fairly common package I was trying to build had that problem. Something Haskell-related, I think.

ETA: I should say “the OS worked”, I haven’t tried it since Lion or somewhere around there.

I seem to have experienced this bug on a Mac, and I’m not even using a case-sensitive filesystem (it is HFS+ rather than APFS though, if that makes any difference). The pseudonym I’m using is “Stefan O’Halloran”, and a for use with clause was not functioning when referencing one extension from another. After writing the H in lowercase in the referenced extension, it worked (even with the other extension still referencing it as an uppercase H).

I see it was reported as an issue, is there any progress on it yet?

There should be nothing stopping you from editing an extension to make an author name match correctly for your personal purposes.

Extension authors are intended to be names and not handles, though this probably does not matter unless you’re wanting it to appear in the Public library.

27:4 - Authorship

Extensions are identified by author and by name, so that a given author can produce his or her own range of extensions, and need only ensure that these are named differently from each other. If John Smith and Mary Brown each want to write an extension called “Following People”, there is no conflict.

The name of an extension, and of an author, should be written in Sentence Capitalisation: that is, upper case for the first letter in each word. (Inform uses this to minimise problems on machines where filenames are read with case sensitivity.) It is permitted for author names to include upper-case letters within words, as with the “G” in “Jesse McGrew”. In general it is best to avoid accented or unusual letters in titles and author names, but the standard ISO Latin-1 characters should be allowed - for instance,

Étude Pour La Fênetre by Françoise Gauß begins here.

The author name must not start with “The”, nor contain the words “by”, “and” or “version”, or contain punctuation, as in “John X. Doe”; the title similarly, except that “and” is permitted. Name and author’s name must each be no more than 50 characters long, including any spaces between words.

Authors are asked to use real names rather than cryptic handles like “ifguy”, and to use genteel, plausible pseudonyms like “Emily Short” rather than, say, “Drooling Zombie” or “Team Inform”. Authors are also asked to use the same author’s name for all their own extensions, and (it should go without saying) not to masquerade as anybody else.

Sometimes authorship is complicated. What if Mary Brown finds some Inform 6 code written by John Smith in the mid-90s, and puts an I7 gloss on it to make an I7 extension, but then Pierre Dupont translates it into French: who’s the author of the result? The rule is that the person making the current, latest version is the author listed in the titling line, so we end up with

… by Pierre Dupont begins here.

But Mary and John deserve their credits too: see the next section for how to give them.

I have to say this is out of step with how we interact on the forums and even on repositories like GitHub.

3 Likes

Sure, but while the original poster’s “FLACRabbit” is not typical of a name, my pseudonym “Stefan O’Halloran” is a perfectly normal name.

I did, of course, edit my other extension to make the H lowercase, but obviously I would prefer not to do that, especially since I’ve been considering distributing that extension publicly.

It’s possible that the problem in my case is slightly different from the original poster’s, I suppose. Maybe an apostrophe in the name triggers a different variation of the bug. But if that’s case then it’s even more important for me to note that it happened to me.

2 Likes

Especially since the author name in an extension is displayed in the game credits. It’s important for people to be able to be credited properly.

2 Likes

I have boosted the bug’s priority, for what that’s worth; certainly it’s reasonable to expect that "Stefan O’Halloran” shouldn’t create problems.

2 Likes

As my name points, I have a punctuation issue, but I solved this using my monogram (PGdE), albeit I think that I place my full name elsewhere for prods intended for the IFComp and other comps (I prefer publicily entering competitions)

Best regards from Italy,
dott. Piergiorgio.