Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Announcing Inform 6.03

0 views
Skip to first unread message

Graham Nelson

unread,
May 13, 1996, 3:00:00 AM5/13/96
to

Third release of Inform 6
=========================

The "beta release" of Inform 6 is only a fortnight old, but here is a third
attempt at it.

This is still very much a test release, and I intend to make such updates
frequently if necessary to minimise the extent to which the porters duplicate
each other's work. The source code of v6.03 is slightly cleaner than that of
v6.02, and several quite important bugs in v6.02 itself have been removed.

The full list of changes is given below.


The files which make up this release are all now at the

incoming/if-archive

directory at ftp.gmd.de, pending proper archiving. The library 6/1 is not
being updated, only the source code to Inform and its technical manual
(and that only slightly). Specifically, there is a tar archive:

inform603_source.tar

containing the 21 files

arrays asm bpatch directs errors expressc
expressp files inform lexer linker memory
objects states symbols syntax tables text
veneer verbs header

plus a file called "README" containing the text of this post.

Of these, "header" is an include file and should probably be unpacked as
a file called "header.h"; the rest should probably be unpacked as
"whatever.c".

and a slightly modified (mostly to contain the modification history below)
Technical Manual file

inform603_technical_manual.txt [in plain ASCII text; including
instructions on how to port the code]


In addition, in my other capacity as the Acorn RISC OS porter of Inform, I've
made fresh versions of:

inform603_riscos_port.spk [the Acorn RISC OS port of Inform 6, set
up and ready for use, including the
library; this needs only an interpreter
to be provided.
The file is a SparkFS archive, readable
with the public-domain utility SparkPlug.]
inform603_riscos_source.spk [an Acorn SparkFS archive of the source]


Better luck this time!


Graham Nelson
May 10th 1996

-----------------------------------------------------------------------------
List of changes since v6.02

Feature added:
The on/off command-line switches can now be prefixed with ~ to turn them off.
(This is useful only in ICL, to undo the effect of previous lines.)

Bugs fixed:
The "my parent is Class" value in modules changed from 0xffff to 0x7fff to
make it valid in type int (rather than int32)
The "spaces" statement not being parsed correctly (bug in syntax analyser)
Arrays declared using Global rather than Array don't work (this is fixed,
but also now causes an obsolete usage warning)
Fclose applied to null file handle (effectively, the same file closed twice)
"for (::p++)" misinterpreted due to "::" being recognised as an operator
Some -> -> object initialisations getting the structure wrong
Table of property names wrongly compiled (resulting in garbled run-time error
messages)
Serious failure of individual property inheritance from a class when both
inheritor and class define individual property values
Messages sent to a property whose value is NULL now do nothing and reply 0
(as if the property value were 0)
Action switches not working in properties called via messages (well, not
really a bug: but it's better that they should work, as this makes it
possible to call "before"/"after" as messages)
The "children" inlined routine leaving redundant values on the stack (which
resulted in complex expressions containing uses of children()
mis-evaluating)
Actions in the form <A x> and <A x y> using a call opcode improperly (with
possibly regrettable results -- though they worked on my interpreter!)
ICL files not working (due to a bug gratuitously introduced in v6.02), and
not understanding tab characters as spaces, and generally being poorly
implemented (I found print "Err..."; in the code, to my alarm): generally
tidied up now
Negative constants not working as switch() case values
Slightly better reporting of bad statement errors, and slightly better
recovery

Source code cleaning:
Calls to get_next_char() replaced with (*get_next_char)() which is equivalent
to a modern ANSI compiler, but inequivalent to a pre-ANSI one
Logically redundant "break" statements added to parse_routine() to prevent
either "unreachable code" or "no return from non-void function" warnings
being produced
parse_given_directive() has its unnecessary parameter removed
uchar types used for characters as read in by the lexer before filtering takes
place to, e.g., strip off any set top bits


Many thanks to the following informers:

Torbj|rn Andersson, Evan Day, Stephen van Egmond, Roy Fellows,
David Fletcher, Sam Hulick, Brad Jones, Matt Kimball, Kirk Klobe,
Bonni Mierzejewska, Bob Newell, Matthew Russotto, Miron Schmidt.

-----------------------------------------------------------------------------

0 new messages