[I6] New inform 6.33beta1

A beta version of Inform6 is available on ifarchive.org/indexes/if-arc … ource.html

  • Is it possible to use it for pure Inform6 projects?
  • The new license (artistic license) is 100% compatible with the Gnu GPL and approved by the OSI, so it means the license integrists on distributions like Debian will maybe accept Inform 6 outside their “non-free” repositories.
  • Some files such as parserm.h or verblibm.h were modified, but their version and date weren’t upgraded in the header. On my Inform6 project, it will lead to some extra errors during compilation:

"/usr/local/share/inform/6.33b1/module/parserm.h", line 5072: Error: No such constant as "Epilogue" "/usr/local/share/inform/6.33b1/module/parserm.h", line 6600: Error: No such constant as "UpperCase" "/usr/local/share/inform/6.33b1/module/parserm.h", line 6601: Error: No such constant as "LowerCase" "/usr/local/share/inform/6.33b1/module/verblibm.h", line 1019: Error: No such constant as "non_floating" "/usr/local/share/inform/6.33b1/module/verblibm.h", line 1587: Error: No such constant as "ObjectDoesNotFit" Compiled with 5 errors and 4 warnings

Also I get errors during the game:

  • There is a -Cu switch to allow to use utf8 source. Yet it doesn’t seem to work as expected:
!% -Cu
!% -v8

!Source : Encoding UTF-8 No Mark

!ReleaseNotes.html : A new command line switch -Cu can be used to specify that the source file character set is UTF-8, allowing source files to contain Unicode characters beyond those defined in ISO 8859-1 to 8859-9.

Zcharacter table + '@{a9}'; !!!?

[ main key;
   print "Test écriture utf8";
   @read_char 1 ->key;

it compiles fine, but will display “Test é©criture utf8” instead of “Test écriture utf8”

That file is not an official I6 beta. It’s actually two things: (1) an image of the Inform 6.33 compiler work branch from several months ago; (2) an image of the unreleased 6/12 library work branch. Those are separate projects.

(The compiler is included because the 6/12 library requires its features.)

I can only speak to the compiler issue, because that’s all I’ve looked at. The library is being worked on by David Griffith (frotz on this forum). You’ll have to ask him about the header constants. (And if you find that the 6/12 library isn’t stable, you can use the 6.33 compiler code with the old (6/11) library. That should be stable.)

This leaves the “non-attribute” errors, and the -Cu thing. I will take a look at the -Cu issue in a moment. I can’t tell what’s going on with the errors.

Other points:

  • The I6 compiler should always be usable for pure I6 projects. This is true of the 6.32 and (unreleased) 6.33 versions.
  • The 6.32 release is also available under the Perl Artistic License, even though the code doesn’t say so. See: inform7.com/sources/i6n/
  • The I6 compiler work branch is at github.com/DavidKinder/Inform6

I can reproduce the Zcharacter table problem. (Note that the character é is $E9, not $A9. The compiler is calling for the wrong Zcharacter entry in the first place.)

I’ve filed this and will look at the code today.

EDIT-ADD: Also note that this stuff works correctly in Glulx. It’s purely a problem with the Z-machine’s wacky character encoding system. Dunno if that’s helpful.

thank you for testing this.

I can confirm the 6.33 compiler seems to work fine as long as I still use the libraries from 6.31 (library 6/11)

The Zcharacter problem turned out to be a simple fix. You can get the current version from my github workspace:


You’re the best Andrew!