This document is a collection of all release notes from Soar 8.5.0 to 8.6.4 in reverse chronological order. [CODE]This document is a collection of all release notes from Soar 8.5.0 to 8.6.4 in reverse chronological order.
Code:
========================
Soar 8.6.4 Release Notes
========================
This release of Soar includes reinforcement learning code (Soar-RL).

Soar-RL is the architectural integration of reinforcement learning
(RL) with Soar.  The RL mechanism will automatically learn value
functions as a Soar agent executes.  These value functions represent,
for a given working memory state and proposed operator, the expected
sum of future rewards the agent will receive if it selects that
operator.

Note: in the final version of Soar-RL, all Soar impasses will be
treated identically.  In the case of an impasse other than
operator no-change, the time period at the superstate during
which no operator is selected will be treated as a gap in rule
coverage, and perceived reward will be discounted with respect to
decision cycles passed.

This release also includes an important bug fix regarding shared ids,
see bugzilla bug number 1027 for details.

The 8.6.4 release notes follow.

Soar 8.6.4 Release Notes
========================
Soar-8.6.4 includes all source code, many demo programs, and a
number of applications that serve as examples of how to interface
Soar to an external Environment.  There is support for integrating
Soar with C++, Java, Tcl, Python and C# applications.  Many Tools
that aid in development of Soar programs are also included.

These Release Notes describe the primary changes in this
latest release.  More detailed information can be obtained at
http://winter.eecs.umich.edu/soarwiki
This release was generated for Windows, Linux, and OSX systems.
Windows XP and Vista are supported.

Soar 8.6.4 can be downloaded from the Soar homepage at:

    http://sitemaker.umich.edu/soar
Installation Requirements
=========================
* On Windows, the 19MB download file expands to ~45MB when extracted.
  Linux and OSX disk requirements are similar.

* Java 1.5.0 or newer is required to use the Java applications,
  including the debugger (Java must be available in the path). Get it
  at http://java.sun.com/. Most operating systems probably already have
  Java installed. NOTE: Java 1.4.2 is no longer supported.

* If you want to run Tcl applications on Linux, Tcl 8.4.x or later is
  required (note that the tutorial applications are now available in
  Java).  Also note that we do not currently support threaded builds
  of Tcl (e.g. ActiveTcl 8.4.11.2 or later).

* The included Python libraries support Python 2.4.  Python 2.5 support
  requires a rebuild of the ClientSMLPython project.

Build Requirements
==================
* On all platforms, SWIG 1.3.31 is required for cross-language support
  (e.g. to use the Java debugger).
* On Windows, Visual Studio 2005 SP1 is required.
* On Linux/Unix/OS X, Python, SCons, gcc 3.3 or later required.

Components of Soar 8.6.4
========================
* Pre-built libraries and executables for Windows (SoarLibrary/bin)
* all source code, config files, and OS tools for automated Soar builds
* SoarJavaDebugger * VisualSoar * JavaEaters, JavaTankSoar, TclEaters * Test and Demo programs
* Documentation

New in 8.6.4
============
* Components and Capabilities added
  -- Eaters and TankSoar have been rewritten and are now part of the
  Soar2D framework. This includes many enhancements.
  -- New command: load-library. See manual for details.
  -- Extended preferences command to print wme support (see the Soar
  wiki for details).
  -- Extended print command to support printing tree structures (see
  manual for details).
  -- Added IsRemoteConnection() to client Kernel interface.
  -- Modified StringEventCallback to return a string.
  -- Now generate proper Java enums for SML Java interface.
  -- Major refactoring of portability support (e.g. portability.h)
  -- Other minor enhancements.

* Bug fixes
  -- Lots of TankSoar and Eaters bugfixes
  -- Fixed command-to-file command
  -- Fixed more memory leaks.
  -- Fixed stats bug.
  -- Fixed print depth/indentation bug.
  -- Several other minor fixes

* Other updates
  -- Updated to SWT 3.3

Known issues:
=============
* Remote connections on Linux can be slow.
* status complete appears on the output-link immediately instead
  of during the next input phase.
* The Soar 7 mode implementation currently relies on an ugly hack. If
  you experience problems in this mode, please let us know.
* In TankSoar, the obscure-bot sometimes generates a scary-looking
  kernel error message.  It appears to be safe to ignore.
* Many other minor issues (see bugzilla for details).

If any other issues or bugs are found, please send mail to:

soar-sml-list@lists.sourceforge.net (preferred)
-or-
soar-group@lists.sourceforge.netv

8.6.3
Soar 8.6.3 Release Notes
========================
Soar-8.6.3 includes all source code, many demo programs, and a
number of applications that serve as examples of how to interface
Soar to an external Environment.  There is support for integrating
Soar with C++, Java, Tcl, Python and C# applications.  Many Tools
that aid in development of Soar programs are also included.

These Release Notes describe the primary changes in this
latest release.  More detailed information can be obtained at
http://winter.eecs.umich.edu/soarwiki
This release was generated for Windows and Linux systems.
OS X support is pending a volunteer willing to work on it.

Soar 8.6.3 can be downloaded from the Soar homepage at:

    http://sitemaker.umich.edu/soar
Installation Requirements
=========================
* On Windows, the 19MB download file expands to ~46MB when installed. 
  Linux disk requirements are similar.

* Java 1.4.2 or newer is required to use the SoarJavaDebugger, which is
  required for most of the demos and applications.  (java must be
  available in the path). Get it at http://java.sun.com/. Most operating
  systems probably already have Java installed.

* If you want to run Tcl applications on Linux, Tcl 8.4.x or later is
  required (note that the tutorial applications are now available in
  Java).  Also note that we do not currently support threaded builds
  of Tcl (e.g. ActiveTcl 8.4.11.2 or later).

* The included Python libraries support Python 2.4.  Python 2.5 support
  requires a rebuild of the ClientSMLPython project.

Components of Soar 8.6.3
========================* pre-built libraries and executables for Windows (SoarLibrary/bin)
* all source code, config files, and OS tools for automated Soar builds
* SoarJavaDebugger
* VisualSoar * JavaEaters, JavaTankSoar, TclEaters * Test and Demo programs
* Documentation

New in 8.6.3
============
* Components and Capabilities added
  -- Added support for multiple clients modifying different parts of the
  input link
  -- Added Python support
  -- Requires use of --enable-python configure flag on Linux
  -- Added CheckForIncomingEvents to help single-threaded applications
  -- Matches command can now generate XML output
  -- Added max-memory-usage command (not yet functional)
  -- Watching wmes (level 4 and higher) now reports GDS changes
  -- Added "after halted" event
  -- Improved output of the "preferences" command for Soar8.  New arg
  "--objects" added.  Invoke "help preferences" for usage
  -- New alias "support" added for "preferences --object"
  -- Right-clicking on identifiers and attributes in debugger allows
     "preferences" and "preferences --object" to be selected
  -- added TestSMLPerformance project
  -- Added ^status error support to TankSoar  
  -- TankSoar can now be configured to stop after a specified number of
  updates
  -- Reset in TankSoar/Eaters now returns agents to starting locations
  if specified

* Bug fixes
  -- Lots of TankSoar and Eaters bugfixes
  -- Fixed command-to-file command
  -- Fixed alias command for adding flags to aliases; previously the
  flags were sometimes interpreted as flags for the alias command
  itself rather than the command for which an alias was being
  created.  "alias" no longer takes any flags.  use "unalias" to
  remove defined aliases.
  -- An empty string can now be returned by a client message handler
  -- Fixed handling of comments by sp
  -- Fixed lots of memory leaks (including some very old ones in the
  kernel)
  -- Debugger bug fixes
  -- properly handle right-clicks in horizontally-scrolled window
  -- recognize identifiers in preferences command output for
     right-click purposes
  -- fixed up logging example apps (LoggerCWin, LoggerJava)
  -- Several other minor fixes

* Other updates
  -- Minor performance improvements (~5%)
  -- Windows builds now done with Visual Studio 2005
  -- Now use Microsoft C library dlls
  -- VS2003 solution/project files still available
  -- Cleaned up Java build batch files on Windows
  -- Cleaned up Linux builds somewhat
  -- Updated to SWT 3.2.0

Known issues:
=============
* TankSoar and Eaters have some redraw issues (forcing a redraw, e.g. by
  moving the window, fixes this).
* Remote connections on Linux can be slow.
* status complete appears on the output-link immediately instead
  of during the next input phase.
* The Soar 7 mode implementation currently relies on an ugly hack. If
  you experience problems in this mode, please let us know.
* In TankSoar, the obscure-bot sometimes generates a scary-looking
  kernel error message.  It appears to be safe to ignore.
* Many other minor issues (see bugzilla for details).

If any other issues or bugs are found, please send mail to:

soar-sml-list@umich.edu (preferred)
-or-
soar-group@lists.sourceforge.net

8.6.2
Soar 8.6.2 Release Notes
========================
Soar-8.6.2 includes all source code, many demo programs, and a
number of applications that serve as examples of how to interface
Soar to an external Environment.  There is support for integrating
Soar with C++, Java, Tcl and C# applications.  Many Tools that aid
in development of Soar programs are also included.

These Release Notes describe the primary changes in this
latest release.  More detailed information can be obtained at
http://winter.eecs.umich.edu/soarwiki
This release was generated for Windows and Linux systems (OS X
forthcoming).

Soar 8.6.2 can be downloaded from the Soar homepage at:

    http://sitemaker.umich.edu/soar
Installation Requirements
=========================
* On Windows, the 19MB download file expands to ~46MB when installed. 
  Linux disk requirements are similar.

* Java 1.4.2 or newer is required to use the SoarJavaDebugger, which is
  required for most of the demos and applications.  (java must be
  available in the path). Get it at http://java.sun.com/. Most operating
  systems probably already have Java installed.

* If you want to run Tcl applications on Linux, Tcl 8.4.x or later is
  required (note that the tutorial applications are now available in
  Java).  Also note that we do not currently support threaded builds
  of Tcl (e.g. ActiveTcl 8.4.11.2 or later).

Components of Soar 8.6.2
========================* pre-built libraries and executables for Windows (SoarLibrary/bin)
* all source code, config files, and OS tools for automated Soar builds
* SoarJavaDebugger
* VisualSoar * JavaEaters, JavaTankSoar, TclEaters * Test and Demo programs
* Documentation

New in 8.6.2
============
* Components and Capabilities added:
  -- C# added to list of supported languages (now C++, Java, Tcl, C#).
  -- Java versions of Eaters and TankSoar 
  -- Support for arbitrary communication from one client to
  another (not just to/from the kernel)
  -- Tcl commands can now be used from the SoarJavaDebugger by running
  a separate Tcl filter alongside the debugger
  (this is a preliminary version in this release).
  -- Support for filtering of command line input in any supported
language
  Filtering can be chained. 
  -- Support for logging output in SoarJavaDebugger on a
window-by-window basis
  -- Support for arbitrary logging of Soar execution through custom
logging
  applications.  Sample programs included in Tools directory.
  -- Added new SML tutorial for developers (in Environments/JavaTOH)
  -- Ability to unregister an event during its callback execution
  -- Support for setting a "stop-point" before any phase in Soar's
  execution cycle. Upon interrupt, or when stepping, agents will
  stop at this location.  By default Soar will stop after the
  decision phase so users can examine the match set.
  -- "run 0" (zero) will move agents to the stop-point location,
  unless already there.  (mechanism for synching agents easily)
  -- Applications can interleave the execution of multiple agents by
  any increment supported in SoarKernel: elaboration, phase, decision
  or output-generation. 
  -- Phase-specific event generation  (e.g. BEFORE_PROPOSE_PHAE &
  AFTER_PROPOSE_PHASE etc)
  -- Input wmes are now automatically committed by default removing the
need
  to manually call commit().

* Performance improvements:
  -- Windows performance improved (> 30% faster in Towers of Hanoi SML).
  -- Vastly improved Linux performance (~20x in some cases).
  -- Java versions of Eaters and TankSoar are many times faster than
  their Tcl equivalents.

* Updates and code fixes
  -- New algorithm in SoarKernel supports more efficient garbage
  collection, won't blow callstack when lots of work done in subgoal,

 and  supports undefining DO_TOP_LEVEL_REF_CTS which inherently
  leaks memory at the top state
  -- Fixed logic for checking quiescence in Propose phase.  For some
  applications using I/O, could result in fewer SNCs in substates 
  -- Reorganized directory structure to be more intuitive.
  -- Static libraries required for building SML applications are now
  distributed in SoarLibrary/lib.
  -- Many memory leaks fixed in SoarKernel, gSKI and SML.
  -- RunEvents generated directly in SoarKernel rather than by gSKI.
  -- SML RunScheduler rewritten.  Order of RunEvents guaranteed for all
agents.
  -- init-soar support works much better for all clients.
  -- Updated Java apps to SWT 3.1.2.
  -- Java 5.0 supported.
  -- Visual Studio 2005 supported.
  -- Java Debugger now uses GTK interface by default in Linux (fixes
  many motif-specific bugs).
  -- Lots of SML changes to improve correctness and functionality.
  -- Registering for callbacks in Java now uses interfaces.
  -- Several Soar7-mode commands added back in.
  -- Soar kernel now uses a new random number generator.
  -- Improved portability and removed legacy files from SoarKernel.
  -- Lots of documentation updates.
  -- Many, many other changes (see bugzilla for details).
  -- more details posted at
  http://winter.eecs.umich.edu/soarwiki/Items_for_Consortium_Review
Known issues:
=============
* TankSoar and Eaters have some redraw issues (forcing a redraw, e.g. by
  moving the window, fixes this).
* Remote connections on Linux can be slow.
* status complete appears on the output-link immediately instead
  of during the next input phase.
* The Soar 7 mode implementation currently relies on an ugly hack. If
you
  experience problems in this mode, please let us know.
* In TankSoar, the obscure-bot sometimes generates a scary-looking
kernel
  error message.  It appears to be safe to ignore.
* Many other minor issues (see bugzilla for details).

If any other issues or bugs are found, please send mail to:

soar-sml-list@lists.sourceforge.net (preferred)
-or-
soar-group@lists.sourceforge.net

8.6.1
Announcing Soar 8.6.1!
======================
This announcement describes the primary changes in this latest release.
It also
includes the 8.6.0 announcement for reference (read that first if you
didn't
download 8.6.0).

Soar 8.6.1 can be downloaded from the Soar homepage at:

http://sitemaker.umich.edu/soar
Requirements
============
* Java 1.4.2 or later required to use the Java debugger (java should be
  available in the path). Get it at http://java.sun.com/. Most machines
  probably already have this installed.

* Tcl 8.4.x or later required to run Eaters on linux and OS X 10.3 (wish
  should be available in the path). Get it at http://www.tcl.tk/. OS X
10.4
  comes with this pre-installed, and the Windows installer includes it.

New in this release
===================
* Capabilities added:
  -- Linux and Mac support
  -- Soar 7 mode now works.  Some Soar7 demos are included as well.
  -- Tcl Eaters is included.  Tcl Eaters uses the familiar Eaters
Control Panel,
  but the default Agent window is the new SoarJavaDebugger.  The TSI
is only
  partially converted to the new SML interface to Soar, and the
SoarJavaDebugger      is more capable and better integrated.
  -- Java Missionaries and Cannibals is included.
  -- Added ability to filter trace output in debugger after a trace has
been created
  -- Added ability to stop scrolling trace window in debugger
  -- Added partial command matching for command line.
  -- Introduced new event-driven simulation support, removing the need
for
  "start-system" command (see "SML Quick Start Guide" for details).
  -- Clients can now determine when other clients are connected and
ready
  -- sml.jar now included in soar-library for Java developers.
  -- TestSMLEvents application added: provides a rudimentary command
line interface
  so the users can test the events and view examples of each.

* Performance further improved:
  -- Improved and extended kernel XML generation resulting in
performance boost
  for those applications which use it (i.e. the Java debugger)
  -- Better use of threads in Java debugger resulting in massive
performance boost
  -- Replaced tree trace window in debugger with faster version
  -- New threading model in SML for better performace with multiple
applications

* Updates and fixes
  -- Running by phases and elaborations now works properly: Propose and
Apply run
  to full quiescence when running by Phase; when running by
Elaboration, Soar
  will always run one round of production firings, which might
require that
  Input, Decide or Output phases be executed as well.
  -- Manual updated
  -- Tutorials for new debugger updated
  -- Added lots of aliases that existed in older versions of Soar
  -- Rewrote command line parsing code to avoid potential licensing
issues
  -- Numerous other smaller bug fixes.

Clarification regarding the "tcl" RHS function:
===============================================
While we are no longer providing a built-in "tcl" RHS function, there is nothing
to prevent someone from registering the old "tcl" RHS function which does the
same thing. Those needing to support legacy code should do this.  Those
applications will then require that Tcl is always part of the build.
For new applications,  "exec" provides the same functionality in a
language-independent way.

Known issues:
=============
* VisualSoar seems to have intermittent issues on some OS X machines.
This appears to be a bug in Java on that platform.
* Log command only works properly from Java debugger if in text mode (as
opposed to tree mode).
* Tanksoar is not yet available.
* Soar seems to "stutter" under Mac OS 10.4 (but it does work properly).
* Sometimes the trace output can fall behind actual execution, making
  the debugger appear unresponsive (it's really just trying to catch up).
* Some rare warning messages may not appear fully in the Java debugger's
tree view (but they appear fine in the text view). If you find specific
cases of this, please let us know.
* Pausing trace window in debugger causes the text to flicker on Windows
and Linux and doesn't work well on OS X (these are os and SWT issues; we can't
fix them).
* VisualSoar can only connect to kernel using default values for
port/ip.
* When running Eaters on Linux with a debugger connected, the debugger
seems to "steal" the focus while Soar is running.
* For Soar7 mode, the commands attribute-preferences-mode and
input-period  are not yet implemented. 
* Also in Soar 7 mode, a potential crash from tentative-retractions of
  justifications, that has existed since 8.5.2 and possibly earlier,
  is avoided with an ugly hack;  please contact us if you suspect you are
  running into problems related to this issue.

If any other issues or bugs are found, please send mail to:

soar-group@lists.sourceforge.net

8.6.0
Announcing Soar 8.6.0!
======================
This announcement describes the primary changes in this latest release.
Among
them are:

* Limitations in this release
* SML: A new XML-based API for interfacing with Soar
* A new Soar debugger written in Java
* Command line changes

Soar 8.6.0 can be downloaded from the Soar homepage at:

http://sitemaker.umich.edu/soar
Limitations in this release
===========================
* 8.6.0 is a Windows-only release.
* The manual needs more work (but it is included).
* Soar7 mode (i.e. soar8 --off) does not work yet.
* The tutorial needs to be updated so it is not included.
* Eaters and TankSoar are not included.
* The Java components have only been tested on Java 1.4.2. There may be
problems
  if used with Java 1.5.
* The "Soar Runtime" menu in VisualSoar is not functional.

We anticipate an 8.6.1 release before the Soar workshop which should
include
Linux and Mac releases, support for Soar7 mode, and will possibly
address some
of these other issues as well.

If any other issues or bugs are found, please send mail to:

soar-sml-list@lists.sourceforge.net

SML: A new XML-based API for interfacing with Soar
==================================================
Interfacing to Soar has always been something of a challenge.  Initially
we were
limited to building interfaces in the Soar implementation language (LISP
then
C/C++).  We extended this to allow the use of Tcl but the extension
ended up
requiring Tcl for all Soar systems.  SGIO opened up support for having a
simulation running either with Soar embedded or as a separate process
but it was
limited to sending just I/O information which prevented debugging of
embedded
processes.  gSKI provided a clean interface into the kernel but support
for
other languages, debugging or remote I/O has yet to be implemented.

With this 8.6 release we are providing an alternative approach for
interfacing
into Soar called SML (Soar Markup Language). This interface:

* supports multiple languages (Java, C++ and Tcl currently) while
removing any
requirement on Tcl

* supports a uniform method for building I/O interfaces (for
simulations) as
well as command interfaces (for debugging)

* supports embedding Soar kernels within a simulation or debugger and
communicating remotely between the two

* supports multiple clients (debuggers, simulations, other tools)
connecting
to a single kernel instance

* supports dynamic connection and disconnection of tools (esp debuggers)
from a running kernel

* provides a uniform, high level and data-driven model for the interface
while
retaining high performance

* moves command line support out of the kernel, while providing
universal
access to it from any client

* includes a new, cleaned up command line syntax

* in many cases the interface is faster (sometimes an order of magnitude
faster) than our 8.5.2 interfaces

* includes gSKI in the main Soar Consortium kernel for the first time

* follows the SGIO interface model in many ways, making converting
existing
simulations easier

Through these changes, the kernel itself has been largely unchanged so
sets of
productions from 8.5.2 should run identically in 8.6 although some
command line
arguments (e.g. "learning -off") have changed slightly so they will
require
updating.  Details on that below.

The Soar Java debugger
======================A preliminary new debugger in Java is provided which interfaces with
Soar via SML.
This new debugger:

* has much higher performance than the TSI for detailed traces
* already offers a structured view of high watch traces
* can be dynamically attached to and detached from remote Soar instances
* is designed to be highly customizable by each user
* employs a plug-in architecture to allow for modular extensions in the
future

At this point the debugger should be considered a beta version.

Command Line Changes
====================
One of the major changes in Soar 8.6 is syntax changes for the commands. The
syntax was changed to increase consistency across commands and greatly increase
ease of parsing of commands (making adding new commands much easier).
Unfortunately, this means that some common commands used in Soar source files
need to be changed before those files will load in Soar 8.6.

Options now require two dashes before the unabbreviated name (e.g. run
--decision 3)
and a single dash before the abbreviated name (e.g. run -d 3).

For complete documentation on the current syntax of the commands, use
the "help"
command, read the manual, or read the documentation online at:
http://winter.eecs.umich.edu/soarwiki/Soar_Command_Line_Interface.

For your convenience, here are some of the most common changes that are
required
to allow existing source files to load:

* learn -on => learn --on
* set warnings off => warnings --off

RHS function changes:

* "tcl" is no longer supported.  It has been replaced by "exec" (for
user-provided
functions) and "cmd" to execute standard command-line commands.
User-provided
functions must be registered with the Soar kernel via a call to
Kernel::AddRhsFunction.

* Built-in RHS functions like "write" and the math functionality are
unchanged.

* See sections 3.3.6.6 to 3.3.6.12 (especially 3.3.6.11) for more
information on RHS
functions.

These common commands have NOT changed:

* multi-attributes
* pushd
* popd
* sp

To learn more about SML, the debugger or how to build a simulation using
the new
interface please see the documentation included with the release.