Galaxy Communicator Documentation:
Release Notes for Version 1.x
This document briefly lists all the changes
from one Galaxy Communicator distribution to the next for versions 1.x.
Version 1.x is not the current version
of Galaxy Communicator. For the current distribution, you can find a list
of new features here. You can find a detailed
description of the steps required or recommend to upgrade existing features
of Galaxy Communicator here.
August 17, 1999: Version 1.3
All reported bugs have been fixed.
Galaxy
Communicator 1.3
-
MIT has deprecated the functions Gal_GetValue,
Gal_Value, Gal_ValueWarn, Gal_ValueWarnWithKey, Gal_ValueSilent, and Gal_UnwrapValue.
They will be removed in a subsequent release.
-
Incompatible change: To support appropriate
manipulation of audio output, the brokering mechanism now maintains a queue
of brokering objects. Each object in the queue must now be made active
in order to work correctly. Also, the function to be called when all the
data has been written to a broker connection has changed from GalIO_BrokerDataDone
to GalIO_BrokerDataOutDone.
See the brokering documentation.
-
MIT has provided significant improvements
to the program file parsing, including a verification
program. All previously reported program file parsing bugs have been
fixed. A number of changes in the program file syntax have been introduced:
-
Incompatible change: all multi-token
string values of toplevel declarations now require double quotes, as in
the value of INITIAL_REPLY:.
-
The #include
directive now permits quotes around its value.
-
The backslash character (\) can now be used
to escape linebreaks.
-
Incompatible change: The order of declarations
in the program file is now more restrictive. While global declarations
can still appear anywhere, servers must be defined before programs.
-
Logging information may now appear in included
files.
-
Incompatible change: the comparisons
":foo EXISTS", ":foo X", and ":foo -" no longer count as existence tests
for the key :foo in rule
conditions. The comparison ":foo NULL" no longer counts as a nonexistence
test. The comparison ":foo #5" no longer counts as an integer identity
test.
-
The comparison ":foo ^ bar" is a new substring
comparison in rule
conditions. MIT intends to deprecate the % comparison.
-
The connectives "&&" and "||" now
work as well as "&" and "|".
-
Incompatible change: the HOST:
directive no longer permits server IP addresses without delimited double
quotes.
-
The spacing rules in rule
conditions are now more liberal; whitespace is now permitted between
the comparison and its value, and between the negation and the comparison
it precedes.
-
It is no longer necessary to delimit the opening
and closing brackes of frame
and list representations with whitespace.
-
It is now possible to group clauses explicitly
using parentheses. The default "closest binding" for disjunction remains
in effect in the absence of explicitly grouping.
-
Incompatible change: keywords in program
files must now begin with a colon (:), except in rule conditions, where
a colon will be prepended if one is missing.
-
MIT has introduced a new method of generating
headers for its servers
and dialogue
control which use the C preprocessor and are thus portable to platforms
like Windows NT which
do not typically use GNU make.
We strongly recommend updating to this new method, since we are deprecating
the old method and may not support it in the future.
-
As a side effect of program file parsing,
MIT has added the Gal_Boolean type, with values GAL_TRUE and GAL_FALSE.
-
Incompatible change: MIT has changed
the argument order of sls_pp_frame to render it consistent with other functions.
-
MIT has updated its audio server to incorporate
most of the functionality from the MITRE version. MITRE has made some slight
modifications to the result in order to eliminate the MITRE audio server
altogether.
-
It is no longer necessary to define a program
named main in the Hub program
file.
-
MIT has rationalized the behavior of destroy!
and none! so that both now respect SET:
and DEL: directives in rules; previously, only destroy! did so.
-
Incompatible change: the following
functions have been removed: Gal_PatternMatches, Gal_FillConditions.
-
Incompatible change: the following
functions have changed their signatures, in addition to sls_pp_frame: Gal_ReadObject,
Gal_ReadFrame,
Gal_HashListNext,
GalIO_BrokerSetFinalizer.
-
MIT has changed the printed encoding of floats
in the print representation of frames from %f (e.g., 56.78) to %e (e.g.,
5.678000e+01). All language bindings now reflect this change. The frame
reader should still recognize both formats, though, so if you have frames
saved to files which you parse using the Galaxy utilities, and these frames
have floats in them, you should not have any problems with the data.
-
MIT has introduced a new C preprocessor directive
-DREPLACE_PRINTF which will cause all calls to printf() to be replaced
with calls to sls_pinfo1().
-
MIT has made significant updates to its batchmode
and nl servers. However, due to the large volume of changes, the MITRE
documentation is now rather incomplete.
-
Incompatible change: MIT has updated
the administrative information keys in its frames from tidx
and ridx to :tidx
and :ridx. This change should
be invisible to anyone who wasn't trying to do anything complicated. However,
tools which rely on data which stores frames from the Hub may need to be
updated if these tools rely on the identities of these administrative information
keys.
-
MITRE has introduced a distinction between
the 32- and 64- bit Irix architectures, following a suggestion by AT&T.
MITRE support 1.3
-
MITRE has finally documented session
keys in the Hub.
-
Incompatible change: in conjunction
with MIT's change to incoming brokering, the MITRE function
MGal_AddIncomingBrokering
now takes an additional activate argument.
-
MITRE has updated Python, ACL and Java language
bindings to be consistent with MIT's use of %e instead of %f encoding for
floats in frames.
-
MITRE has provided a Python utility for updating
to the new method of generating server headers.
-
MITRE has finally documented its push-to-talk
server. Incompatible change: this server has been moved from
MITRE/examples/speech_explore to MITRE/servers/bin.
-
MITRE has successfully compiled the Allegro
bindings with Allegro 5.0, but there is a bug in brokering in 5.0 which
we have not yet had time to track down.
-
The MITRE audio server is no more. MIT has
incorporated the relevant functionality into their audio server.
July 15, 1999: Version 1.2
Almost all reported bugs have been fixed (but
see the list of known bugs). Some program file parsing bugs have been fixed
in the latest MIT distribution, which we will make available in mid-August.
Galaxy Communicator 1.2
-
MIT has fixed a bug where the environment
variables ARCH, OS and ARCHOS were sometimes clashing with local shell
configurations. See the installation instructions
and templates/init.make.in
-
MIT has resolved collisions between its STOP
constant in the libgalaxy library and the Perl STOP constant.
-
MIT has improved automatic generation of lib
and include links. This fix has necessitated a modification of the installation
procedure.
-
MIT has added a GUI server and necessary support
files (Web directory, Java client applet, icons, etc.) to this distribution.
Documentation will follow in MITRE support 1.2.1.
-
MIT has improved logging capabilities.
-
MIT has improved x86-linux audio support
-
In previous releases, the only way to access
the value of the utterance ID was by calling the dispatch function builtin.increment_utterance.
The utterance ID is now always available for access in :hub_session_utterance_id.
-
New dispatch function builtin.dispatch_token
allows tokens to move from one program to another, not just to main.
-
Logging now writes keys to the log file when
they are encountered, not when builtin.increment_utterance
is called.
-
Mapping IN: keywords will now remap
keys previously set by PARAM: and RETRIEVE:.
-
STORE: now searches
"unmapped" key names in the OUT: keys if the named keys are not found
directly.
-
The MIT audio playbox now sets levels automatically
by sampling line noise.
-
It is now possible to use SFUNC.H
in the MIT Makefile to customize the name of the operations header file,
normally named server.h. This
will allow multiple servers in the same directory.
-
A couple of subtle bugs discovered by AT&T
in the timed tasks loop have been fixed.
-
Thanks in part to AT&T and CMU, MITRE
and MIT have made the core Communicator functionality available
on Windows NT.
-
It is now possible to specify
values for the initial token on the command line.
-
LOG_ALL:, LOG_FIRST: and LOG_LAST: have been
superseded by LOG_IN: and LOG_OUT:. See the logging
documentation.
-
A bug reported by CMU which involves memory
management problems in logging timestamps has been fixed.
-
A bug reported by CSLU where the audio server
seg faults on long utterances has been fixed.
Known bugs
-
If the MIT audio playbox receives two broker
output requests, it will output the audio which it receives first, not
necessarily in the order it received the broker requests. This bug has
been fixed in the MITRE version of the MIT audio playbox, and will be fixed
in the next MIT distribution.
-
A string consisting of a single space as a
key value in the program file will cause the Hub to seg fault. This bug
will be fixed in the next MIT distribution.
-
A server name which contains a dash will cause
the Hub to do the wrong thing when the server name is used explicitly in
the consequent of a program file rule (e.g., --> foo-server.bar).
This bug should be fixed in the next MIT distribution.
-
There may still be some infelicities in the
IRIX support which will be resolved with the next MIT release.
MITRE support 1.2
-
Local MITRE change: removed support for devel
in MITRE/install.
-
A fatal bug discovered by SRI in the MITRE
example for using external main loops has been fixed.
-
A memory error in the hub stream utility which
caused a seg fault on Linux has been fixed.
-
A bug discovered by SRI in the frame parsing
for the Allegro
Common Lisp bindings has been fixed.
-
A bug in the frame printing for the Python
bindings and the Allegro
Common Lisp bindings has been fixed.
-
MITRE has finally documented the frame
syntax.
-
The multiple connection server utilities now
work correctly when no server data is passed to frame writing functions.
-
MITRE now provides the process monitor which
was developed for the MITRE training course. The process monitor is currently
used in some (but not all) of the MITRE examples.
-
The frame
documentation and the documentation on adding
a new server now include information on memory management.
-
The new SFUNC.H
customization has been incorporated into all MITRE examples.
-
The documentation of the Galaxy Communicator
system is now up-to-date.
-
MITRE has added a number of servers, including
a general-purpose dispatch server (not yet documented), a Festival server
(provided by Alan Black; not yet documented), a MITRE version of the MIT
audio playbox, an audio replay server (not yet documented), a frame transducer
(not yet documented), and a PostGres DB server (not yet documented).
-
MITRE has added new tools, including a set
of scoring and log manipulation tools (not yet documented), a unit
tester, server
scripts and a process
monitor. The process monitor was developed for the MITRE training course,
and is currently used in some (but not all) of the MITRE examples.
Known bugs
-
There is a string quoting bug in the frame
encoding process in the Python bindings which has not been fixed. We will
hold off on fixing this bug until we incorporate the string quoting bug
fixes from the MIT July distribution.
March 26, 1999
MITRE support 1.1.2
-
Added expanded usage instructions to all server
pages.
-
Ensured that every dispatch function in the
MITRE servers returns a frame, as recommended in the training course.
-
Fixed some dead links in the documentation
for the language bindings.
-
Corrected some errors in the documentation.
-
Fixed a buffer flushing problem in the speech
monitor server.
January 29, 1999: Version 1.1.1
Galaxy Communicator 1.1.1
-
Added new rule-based logging keys LOG_IN:,
LOG_OUT:. Documentation to follow.
-
Added new global program file key INITIAL_TOKEN:.
Documentation to follow.
-
Fixed typo in ComputerFone library.
-
Added Makefile dependencies to force recompilation
of clean_headers.pl in the appropriate circumstances.
-
Added i586 as an architecture.
-
Fixed a bug in the Hub in which type mismatches
between tokens and program file values caused a segmentation fault.
-
Fixed a bug in the Hub in which empty rule
conditions were occasionally being read incorrectly.
MITRE support 1.1.1
-
Fixed bug where Java subdirectories were not
being appropriately ignored when Java was not enabled.
-
Changed Java API slightly. See the change
log.
-
Added to FAQ.
-
Enhanced logging
documentation. Fixed documentation errors: PARAM, DB
server API
-
Fixed flaw in TrueTalk
server relating to how session IDs are passed around.
-
Documented MGal_GetStdinPollData
and MGal_SetStdinPollData.
Following a recommendation from CMU, modified the stdin polling utility
to allow immediate restarts and to allow the prompt to be changed.
January 15, 1999: Version 1.1
Galaxy Communicator 1.1
-
The binary data frame printout problem has
been fixed.
-
MIT has made improvements to their Makefiles.
-
MIT has enhanced the Communicator API: GalIO_AddTimedTaskWithIO.
-
Linux support is now included.
MITRE support 1.1
-
We have added Allegro Common Lisp bindings.
These bindings currently lack the functionality of the MITRE utilities
library.
-
We have significantly improved the Python
bindings, and revised their API to conform as closely as possible with
the C libraries. These bindings are incompatible with 1.0.1.
-
We have added a number of MITRE servers to
the distribution.
-
We have added two demos to the distribution.
-
We have included support for PPC Linux and
SGI Irix.
November 6, 1998: Version 1.0.1
Galaxy Communicator 1.0.1
-
We have fixed a significant bug in audio brokering,
which will cause audio brokering to fail.
-
We have fixed a number of bugs in preparation
for distributing the Pegasus Lite demo. We believe that all that we're
missing is the documentation about how to run the demo, although we have
not yet tested the audio version.
-
We are aware of an infelicity in the printing
of binary data in frames, due to a poor implementation of the encoding
algorithm. This will be fixed in the next release.
MITRE support 1.0.1
-
We have improved the layout of the example
documentation.
-
We have added Python bindings and examples
of Python servers. Documentation is somewhat spare; it will be improved
soon.
November 1, 1998: Version 1.0
Galaxy Communicator 1.0
-
We have not yet had a chance to learn about
and document a number of features of the Galaxy Communicator system:
-
The BIANCA turn management tools
-
Logging in the Hub script
-
Dispatch servers
We will document these as soon as we can.
-
Some of the MIT servers may have public functions
whose names are too "generic" and lead to symbol clashes with other libraries.
We will be working with them to fix these problems when they arise.
MITRE support 1.0
-
We have not yet had a chance to update and
bulletproof the Java bindings. These will be forthcoming soon.
Please send comments and suggestions to:
bugs-darpacomm@linus.mitre.org
Last modified September 28, 2001
Copyright (c) 1998 - 2001
The MITRE
Corporation
ALL RIGHTS RESERVED