Inform 7 6L38 Third Party Extension Compatibility List

I mean “do not visit that URL, Jim.”

Inline Hyperlinks by Erik Temple - Version 2/101030

It compiles, but the links are not numbered correctly. Take this example:

Intfiction is a room. The description is "[link]First link[end link]. [link]Second link[end link]. [link]Third link[end link]. [link]Fourth link[end link]. [link]Fifth link[end link]."
All of these links, when clicked, behave as the fifth link rather than being unique.

The other problem has to do with using the [as] tag in the links:

Intfiction is a room. The description is "[link]I must go north at once[as]north[end link]!"
This should create a link with the text “I must go north at once” which will initiate an action to go north when clicked on. However, it erroneously uses “north” in both places.

Flexible Windows by Jon Ingold - Version 13/130803

Inform informs me that the temporary variable p2 is created within an if or otherwise statement, and it doesn’t like that at all. I modified the extension to appease the compiler’s demands and saw progress.

However, I am having additional issues which may indicate further required work for this extension.

My current project uses Flexible Windows and compiles without issue in 6G60. But in 6L02, it fails at the inform 6 compiling phase with a “code 1”. My project compiles correctly if I remove flexible windows from it. Flexible windows itself compiles successfully if I run it on a small test project. There’s some combination of both which seems to be causing this failure. Despite my attempts to comment out batches of code to single out the issue, I’ve failed to get to the bottom of it.

Maybe it’s just an odd mistake on my part. I wish I could give more details, but my problem solving skills with the deep innards of Inform are not so grand.

EDIT: Okay, I goofed around and managed to get a little more error information on the Inform 6 side. When compiling with Flexible Windows, I get “Array reference is out-of-bounds” problems in regards to properties. When I eliminate the listed property and try to recompile, it lists ANOTHER ONE in the same array error. I can repeat the cycle all I want but it keeps finding other properties to complain about.

Could it be that I’ve surpassed some limitations? I notice the statistical output seems to say so on these things:
234 global vars (maximum 233)
49 attributes (maximum 48)

EDIT 2: Using the flexible windows I modified (by fixing the issue with the temporary variable) I tried to make a small game and see how many properties I could create before compilation failed. I was only able to make NINE properties. Ten or more was enough to make it go down in flames. Yikes.

I’ll fix Flexible Windows, but it will take a bit of time. That makes it look like Inform isn’t automatically increasing those settings like it used to though.

If the I6 compiler crashes (“code 1” etc) that’s always worth filing, irrespective of what else is going on.

Added Conditional Undo and Record-Replay to the fatal list as reported in this thread.

If there’s somewhere I can post them, I’m more than willing to share my fixes – I’m mostly trying to get the examples to compile and run.

Action Queuing by Jesse McGrew Version 3 (Uploaded 2009-04-23)
Status: Fatal (Major)

  • Z8: ?
  • Glulx: ?

Requires I6 fixes related to the ‘deleted’ annotation.
Probably obsolete since actions can now be stored.


AI Moving by Sebastian Rahn (Uploaded 2009-04-23)
Status : Fatal (Major)

  • Z8 : N/A (unsupported)
  • Glulx: ? (untested)

Extends the very broken Rooms & Dimensions by Sebastian Rahn


Armed by David Ratliff Version 3 (Uploaded 2009-04-23)
Status : Fatal (Minor)

  • Z8: OK
  • Glulx: OK

Fixes:

  • Moderate amount of adaptive text to be added.
  • Replace ‘change’ phrases with ‘now’ phrases.
  • Replace ‘end the game’ with ‘end the story’
  • Fix the ““can’t take it with you rule”” which used procedural rules :
    The can’t take people’s possessions rule does nothing when the current action is taking and the noun is a thing and the holder of the noun is a dead person.

Assumed Conversers by Michael Martin Version 2 (Uploaded 2009-04-23)
Status: Fatal (Minor)

  • Z8: OK
  • Glulx: OK

Fixes:

  • Replace ‘change’ phrases with ‘now’ phrases.
  • Trivial amount of adaptive text to be added.
  • Note that the extension as written does not handle locations with multiple NPCs.

Atmospheric Effects by Mikael Segercrantz Version 6/080508 (Uploaded 2009-04-23)
Status: Fatal (Minor)

  • Z8: OK
  • Glulx: OK

Fixes:

  • Fix table column type declarations.
  • Replace ‘change’ phrases with ‘now’ phrases.
  • A few code fixes:
    [list]
    [*] if in the loci entry -> if the loci entry is the location
  • if in r -> if the player is regionally in r
  • if using the serial comma option -> if the serial comma option is active
  • Remove the use of ‘e’ as a temporary variable as it is now Euler’s constant.
    [/*:m][/list:u]

Room & Dimension (for Glulx only) by Sebastian Rahn (Uploaded 2009-04-23)
Status: Fatal (Major)

  • Z8: N/A
  • Glulx: ?

Fixes:

  • Replace most ‘change’ phrases with ‘now’ phrases.
  • Huge mess of room vs. thing type mismatches that will take some time to work out.
  • Probably more…

Automap by Mark Tilford Version 4 (Uploaded 2010-11-01)
Status: Good* Z8: OK ? Small glitch - The map does not disappear immediately when using ‘zoom away’, but does when the next command is processed.

  • Glulx: OK

Fixes* Minor fixes to ‘the demonstration’ example (semicolons, change / now)


Automated Testing (for Glulx only) by Roger Carbol Version 1/090116 (Uploaded 2010-10-27)
Status: Fatal (Major)* Z8: N/A

  • Glulx: Code 1 - auto.inf(12428): Error: No such constant as “GL__M”

Fixes (partial)* Change ‘response’ property of Testcontroller to ‘output’,

  • Replace ‘change’ phrases with ‘now’ phrases,
    except for “change the text of the player’s command to the Glulx replacement command”
  • Fix table column type declarations.
  • I6 fix required - the examples compile and the second one appear to run if the function is commented out
[I suspect this is a horrible hack; sorry.]
To reboot: (- glk_request_timer_events(0); GL__M(##Restart, 1);
@restart; GL__M(##Restart, 2); -).

Automated Verb Phrases by Ron Newcomb Version 1/110416 (Uploaded 2011-04-17)
Status: Mostly replaced by adaptive text and responses, although it did provide some additional tokens for, e.g. continuous tenses, present/past perfect, etc.


Basic Characters by ShadowChaser Version 1 (Uploaded 2010-03-30)
Status: Fatal (Minor)* Z8: OK

  • Glulx: OK

Fixes:

  • Remove dependency on Plurality by Emily Short.
  • Add some adaptive text
  • Replace ‘end the game’ with ‘end the story’
  • Fix option testing syntax
  • Fix comparisons to avoid a run-time problem if an health/magic/sanity is beyond its normal maximum.

Basic Help by David Cornelson Version 1 (Uploaded 2010-01-27)
Status: Broken

  • Z8: OK
  • Glulx: OK

Fixes:

  • Bug fix : make the ‘help command’ kind privately-named so that ‘help commands’ isn’t parsed as trying to get help about multiple commands.

Basic Help Menu by Wade Clarke Version 2/131208 (Uploaded) 2014-05-05
Status: Good - Only needs fixes to Menus by Wade Clarke.

  • Z8: OK
  • Glulx: OK

Basic Hyperlinks (for Glulx only) by Emily Short Version 3 (Uploaded 2010-07-04)
Status: Fatal (Minor)

  • Z8: N/A
  • Glulx: OK

Fixes:

  • Fix table column type declarations.

Basic IF Help by Andrew Plotkin Version 1 (Uploaded 2012-03-20)
Status: Good - Works right out of the box


Menus by Wade Clarke Version 2/131208 (Uploaded 2014-05-05)
Status: Fatal (Minor)
Status: Fatal (Minor)

  • Z8: OK
  • Glulx: OK

Fixes:

  • Replace ‘consider’ phrases with ‘follow’ phrases

I anticipate that it will take me a week or two to fix Flexible Windows. I’ve decided to take this opportunity to change how a number of things are done. It will probably not be completely backwards compatible, but hopefully you’ll decide that’s worth it at the end.

Dynamic Objects by Jesse McGrew throws fatal I6 errors (on “BlkFree”, “Blk_Heap”, “BlkAllocate”, and “INDEXED_TEXT_TY”.)

I think I fixed this. (Though Jesse should probably look at it in a bit more detail to see if I’m right.) Open up the extensions (Dynamic Objects and Dynamic Tables) and make these replacements:

As far as I can see, all of this is just Inform 6 stuff that has been renamed. The amended extension compiles, and the example game works.

Does anyone know what ‘GL__M’ is for (token-pasting ?) and what it has been replaced with, if anything ?

I have found several glulx-only extensions that do not compile because they use it.

GL__M() was the entry point for printing a library message. There is no single replacement.

For some messages (responses that issue from template-level I6 code), you call a built-in I6 function: QUIT_THE_GAME_RM(), ANNOUNCE_SCORE_RM(), LIST_WRITER_INTERNAL_RM(), etc. The argument is a letter, but you have to look at the new template code to figure out which is needed.

For messages defined in the Standard Rules (I7 code), you invoke the “issuing the response text” activity with the appropriate response value.

Someone who has been updating this sort of extension can probably say more.

Thanks, I can try to work by difference between the 6G60 and 6L02 templates. :slight_smile:

Basic Plans by Nate Cull Version 3/080503 (Uploaded on 2009-04-23)
Status: Fatal (Minor)

  • Z8: OK
  • Glulx: OK

Fixes:

  • Fix Planner by Nate Cull (see below)
  • Fix example:[list]
    [*] Replace use of procedural rules ( -> rule XX does nothing when …)
  • Replace ‘change’ phrases with ‘now’ phrases
  • Replace ‘end the game’ with ‘end the story’
  • Replace ‘remove item from play’ with ‘now item is nowhere’
    [/*:m][/list:u]

Basic Real Time (for Glulx only) by Sarah Morayati Version 2 (Uploaded on 2009-05-17)
Status: Fatal (Minor)

  • Z8: N/A
  • Glulx: OK

Fixes:

  • Fix a property declaration in the example (‘it’ -> ‘green button’)
  • Change ‘now the next action’ to ‘now the next real-time action’
  • Add an I7 phrase to trigger ““the action fires”” because the code does not compile if it is only ever triggered from I6 code.
  • Update the modified SAVE_THE_GAME_R function to match the response code changes in Glulx.i6t

Benchmarking (for Glulx only) by Dannii Willis Version 1/130803 (Uploaded on 2013-08-04)
Status: Fatal (Major):

  • Z8: N/A
  • Glulx: KO

Fixes (partial):

  • Remove definition of real numbers.
  • Assign ‘plus infinity’ to mean time.
  • There remain I6 errors related to the ‘pointer-to’ annotation… and probably more.

Bitwise Operators by Bart Massey (Uploaded on 2012-04-17)
Status: Good - Works right out of the box

  • Z8: OK
  • Glulx: OK

Command Prompt on Cue by Ron Newcomb Version 3 (Uploaded on 2010-06-28)
Status: Fatal (Minor):

  • Z8: OK
  • Glulx: OK

Fixes:

  • I6 code changes regarding variable definition and initialization.
  • I6 code changes regarding text variable printing.

Planner by Nate Cull Version 2/080503 (Uploaded on 2009-04-23)
Status: Fatal (Minor)

  • Z8: OK
  • Glulx: OK

Fixes:

  • Replace ‘change’ phrases with ‘now’ phrases.
  • Replace ‘consider’ phrase with ‘follow’ phrase.

Three extensions have been brought up to date and submitted to the old extensions library:

Conditional Undo by Jesse McGrew - Updated to version 4
Patrollers by Michael Callaghan - Updated to version 12
Questions by Michael Callaghan - Updated to version 5

I’ve pushed compatibility updates to the extension repository for the following extensions:

  • Achievements by Mikael Segercrantz
  • Advanced Help Menu by John W Kennedy
  • Adventure Book by Edward Griffiths
  • Armed by David Ratliff
  • Assumed Conversers by Michael Martin
  • Atmospheric Effects by Mikael Segercrantz
  • Automap by Mark Tilford
  • Basic Characters by ShadowChaser
  • Basic Help by David Cornelson
  • Basic Hyperlinks by Emily Short
  • Basic Plans by Nate Cull
  • Basic Real Time by Sarah Morayati
  • Command Prompt on Cue by Ron Newcomb
  • Menus by Wade Clarke
  • Planner by Nate Cull

I have now updated the list to reflect the updates and included a link to the github address.

Any idea about Disambiguation Control by Jon Ingold? Unsurprisingly, it fails on the I6 compiler; it seems likely that it would be hard to bring back, because I believe it rewrites a decent chunk of the parser, but it would be great if someone took it on because I’ve had much better luck with it than with Does the player mean rules.

Any specific way you have to send in updates? I send updated versions of Room & Dimension and the AI extension to i7extensions@smallwhitehouse.org about a week ago but haven’t gotten any responses as of yet.