New releases: Inform library 6/10
=================================

This is a "maintenance release" of the Inform library, fixing
a number of known and fairly minor (if annoying) problems with
library 6/9.  I was greatly helped in all this by Adam Cadre's
"Inform Library Patch Page", at

   http://www.adamcadre.ac/inform.html

where bugs are both reported and solved.  If Adam can spare the
time to keep this page going, and if people are willing to
report library mistakes to it, this excellent arrangement should
mean that designers won't have to wait for the next maintenance
release (often months away) for small problems to be worked out.
It also saves me from duplicating the work of a lot of people
who know Inform's insides rather better than I do.

In particular all bugs currently reported on that page are
fixed, or should be, in library 6/10 (with the exception that
I reluctantly disagreed with Gunther Schmidl about the ideal
behaviour of "it").

286. The largest modification is that a new parser disambiguation 
algorithm replaces the old one, which many people disliked and
which made some rum choices sometimes.  (This new algorithm is
the same one which was available as a test release in September.)
Basically, "all" works better (particularly "take all"), the
assumptions made in choosing a noun for a verb like "sit" are
more realistic, and ChooseObjects is returned "to its former
utility and glory" (Neil Cerutti) by re-acquiring power to
override almost everything else in disambiguation.  This is
helpful if, like Ethan Dicks, you have an object representing
the eastern wall which isn't the same as the compass object
responding to the same name.

Some miscellaneous smaller modifications, and their requesters:

287. ParseToken() no longer returning bogus values which led
   indirectly to vile zero errors.  (Neil Cerutti)
288. The YesOrNo() routine no longer crashes if called from early on
   in a game's Initialise() routine.  (Peter Killworth)
289. Digits are now allowed as well as wordy numbers when typing
   something like "take three coins", i.e., "take 3 coins"
   is now allowed.  (Irene Callaci)
290. The "successful save" message is no longer printed in response
   to a successful restore: instead a quite different message,
   which just so happens to have identical wording, is printed.
   (Trust me -- this matters to Torbjorn Andersson.)
291. The response to an impossible "enter" (That's not something you
   can enter.) is adjusted to better match what was typed, so
   that it can become "That's not something you can stand on."
   and so forth.  (Andy Fischer)
292. If both are given, the after rule for Remove takes precedence
   over the after rule for Take on a successful Remove action.
   (Previously the precedence was the other way round, and this
   change is arcane but sensible.  Adam Cadre's doing)
293. "action_to_be" not set to ##Go on an implicit request to go
   somewhere, that is, on typing "north" rather than "go north".
   (Adam Cadre)
294. An empty text now fails parsing against "topic".  (Me)
295. The variable "real_location" now always, in all cases and at all
   times, holds the location of the player.  That is, it is equal
   to "location" unless the player is in darkness, in which case
   "location" is equal to "thedark" and "real_location" holds
   what "location" would be, if there were light to see by.  (Me.
   Previously its contents were undefined in the light, which was
   unhelpful, because it meant that tests like
   
      if (real_location == Hall_of_Mists) ...

   didn't work.  Now they do work, i.e., this test is passed
   exactly when the player is in the Hall of Mists, whether there
   is light or not.)
296. Full stop and comma not parsing properly in Infix mode.  (Everyone
   reported this one.)
297. An "each_turn" rule can now be killed by setting it to 0 or NULL;
   either will do.  (Me; for consistency with other such rules.)

I'm not sure whether to be pleased or not that we haven't reached
the 300th library bug-fix.  Over a period of six years, this suggests
that I commit on average one bug per week...  Library 6/10 is at:

   ftp://ftp.gmd.de/incoming/if-archive/lib610.zip

On some machines, these files will also need ".h" attached.
(Volker and David normally expand this archive for the benefit
of those uncomfortable with zips when it is put into its
permanent position.)


                                             Graham Nelson
                                             6 November 1999
