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.
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
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 "&"
- 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
- 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
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
- 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:
- Incompatible change: the following functions have changed their
signatures, in addition to sls_pp_frame: Gal_ReadObject, Gal_ReadFrame, Gal_HashListNext,
- 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
- 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
- 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
- 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
- The MIT audio playbox now sets levels automatically by sampling line
- 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.
- 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
- 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,
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.
- 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
- Added new global program file key INITIAL_TOKEN:. Documentation to
- 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
- 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
- Documented MGal_GetStdinPollData
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:
We will document these as soon as we can.
- The BIANCA turn management tools
- Logging in the Hub script
- Dispatch servers
- 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.
Last modified September 28, 2001