9.3.2
Soar 9.3.2 Release Notes, April 2012
===================================This release of Soar continues the 9.3 line which includes modules for
reinforcement learning (RL), episodic memory (EpMem), and semantic
memory (SMem), as well as everything from previous versions of Soar. It
includes a new "forgetting" mechanism, several bug fixes, a new distribution
structure, and a simplification of how libraries are built in Soar. All
learning mechanisms are disabled by default.
Soar can be downloaded from the Soar home page at:
http://sitemaker.umich.edu/soar
Soar releases include source code, 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, and Python applications. Many tools that aid in development of
Soar programs are also available. The newly expanded download section
of the wiki allows you to browse and download all of the different
distributions, tools and agents.
[Help and Contact information]
Please do not hesitate to contact the Soar group by sending mail to:
For general Soar-related discussion and announcements:
soar-group@lists.sourceforge.net
For more technical developer discussion:
soar-sml-list@lists.sourceforge.net
Please do not hesitate to file bugs on our issue tracker (search for
duplicates first):
http://code.google.com/p/soar/issues/list
[Important Changes for 9.3.2]
Soar's build process has undergone significant modifications, and as a result
several things have changed in the binary release:
1. Instead of separate libraries for ClientSML, ConnectionSML, ElementXML,
KernelSML, and the Soar Kernel, there is now only a single Soar library. On
Windows this is Soar.dll, on Linux libSoar.so, and on OSX libSoar.dylib. This
means that when you are building SML clients, you only need to link to that
single library. The SML header files have not changed: you still need to include
sml_Client.h.
2. Due to the library merge, SML clients no longer have to locate the KernelSML
library at run time. Therefore, all references to the location and name of that
library, such as DefaultLibraryLocation, have been removed from the SML API.
Specifically:
- The set-library-location CLI command has been removed
- The following functions have been removed:
sml::Kernel::GetDefaultLibraryName sml::Kernel::GetLibraryLocation
- The library location argument has been removed from the signatures of the
following functions:
sml::Agent::SpawnDebugger (see below)
sml::Kernel::CreateKernelInCurrentThread sml::Kernel::CreateKernelInNewThread sml::Kernel::CreateEmbeddedConnection
3. The sml::Agent::SpawnDebugger function no longer uses the KernelSML library
location to find SoarJavaDebugger.jar. Instead,
1. If the path of the jar (not of the containing directory) is provided as
an explicit argument, it is used.
2. Otherwise, if SoarJavaDebugger.jar is in the current working directory,
then that jar is used.
2. Otherwise, if the environment variable SOAR_HOME is defined and points
to the directory that contains SoarJavaDebugger.jar, then that jar is used.
3. Otherwise the search fails and the function returns false.
4. Due to the reduction in the number of files, we have merged the lib directory
into the bin directory. The Soar library and the SWIG wrapper libraries now
reside in the same directory as the executables. This makes life easier for
Windows users running programs such as TestCLI or the Java debugger, because
Windows searches the current directory for library dependencies by default.
5. Linux and OSX users no longer need to set LD_LIBRARY_PATH and
DYLD_LIBRARY_PATH to point to the bin directory when running the native
executables in the distribution, such as TestCLI or TestSoarPerformance. The
relative location of the library has been hard-coded into those executables
using the rpath and install_name mechanisms in Linux and OSX, respectively.
However, those environment variables must still be set for running the java
debugger, as required by the JVM.
6. SoarSuite is now extremely streamlined. It is intended for users
who want to either (1) just run Soar or (2) plug-in the latest version
of Soar into their current work. It only contains the Soar kernel, the
Soar Java Debugger, Visual Soar, the Soar Manual, the default rules,
unit test programs and the Soar header files.
7. The Soar Tutorial now has its own download. It contains the Soar kernel,
the Java Debugger, Eaters, TankSoar, the Soar Manual, the Soar Tutorial,
VisualSoar, and all the introductory agents.
8. Nearly everything we provide now has stand-alone versions, including TankSoar and Eaters. All agents, tools and environments now have their own wiki pages
with thorough descriptions and individual downloads. We highly encourage
people to make their own work available on the Soar wiki.
9. The Soar SVN repository has went through major restructuring and clean up
to support these changes.
10. When a tie impasse occurs, the substate is augmented with two new WME
classes, which document operators that do not have numeric-indifferent
preferences associated with them. These augmentations are
"non-numeric" and "non-numeric-count" and operate analogously to the
existing "item" and "item-count" augmentations.
11. We have added a new forgetting mechanism to Soar to automatically
excise chunks via the base-level decay model. It is controlled via the
"rl" command using the "apoptosis" parameters. This functionality
helps develop learning agents that can persist for long periods of
time, accumulating a large amount of procedural knowledge while
bounding memory consumption. Version 9.3.1 of Soar included forgetting
of WMEs via the "wma" command, which served to bound procedural
matching and episodic reconstruction. WME forgetting worked well with
automatic semantic encoding via the "mirroring" parameter of the
"smem" command. Together, these forgetting policies facilitate the
development of long-living, learning agents that remain reactive in
real-time environments.
A more comprehensive list of changes is below.
DETAILED CHANGELIST
===================
The scons build process now works in Windows and is the preferred way to build
Soar on all three supported platforms.
The old Visual Studio project and solution files have been removed from the
distribution. Scons can generate those files to make it easier for Windows users
to debug the kernel. Scons is now also included in all source distributions to
simplify building Soar.
Ant is no longer needed to build the Java debugger.
Soar-specific environment variables are no longer needed to compile Soar on
Linux and OSX.
Improved documentation and completely restructured Soar web page and wiki.
A lot of outdated information has been updated or removed.
Demo agents have been removed from the Java debugger and SoarSuite. They are now
simply packaged in the Agents directory of the SoarTutorial. They are also
available for individual download.
New chapters have been added to the tutorial for episodic and semantic memory.
VisualSoar has been removed from Soar core but can still be downloaded from its
own wiki page.
SoarSuite now only includes the Soar kernel, the Soar Java Debugger, Visual
Soar, the Soar Manual, the default rules, unit test programs and the Soar
header files.
Added a new download specifically for the SoarTutorial. It includes the
Soar kernel, the Java Debugger, Eaters, TankSoar, the Soar Manual, the
Soar Tutorial documents, VisualSoar, and all the introductory agents.
There are now stand-alone versions of TankSoar and Eaters. They include
self-contained copies of the Soar kernel and the debugger and can be run from
any directory.
A large variety of agents are now available for individual download. They
each have their own wiki page with a complete description.
Default rules updated for Soar 9.
Soar now works with the OpenJava JDK, which is what is installed by default on
Ubuntu linux.
All releases for the various platforms now have identical naming and directory
structures. This should make things much more consistent and less brittle.
Issue 78: The selection probabilities outputted by the "pref" command now
make sense for all exploration strategies, not just softmax.
Issue 92: Removed the "run forever" command. "run" without any arguments will
achieve teh same thing.
Issue 93: Alias command now adheres to the documentation. First argument is
once again the alias name.
Issue 95: Certain types of comments on the RHS of productions no longer
produces an error in the parser.
Issue 98: Soar will no longer automatically change the indifference-selection
policy to episilon-greedy when turning reinforcement learning on. This may
break the expected behavior of some agents, so users should make sure to set
the policy the want explicitly. All of the agents in our repository have been
updated to explicitly set it to epsilon-greedy after they turn RL on.
Issue 98: To increase performance, Soar will no longer discount updates over
subgoals as though they were gaps, i.e. HRL-Discount is now off by default.
Issue 98: By default, Soar will no longer create a chunk that only differs
from another rule in the value of the numeric indifferent preference, i.e.
Chunk-Stop is now on by default.
Issue 102: CLI now strips out comments at the end of the line properly.
Issue 103: Watch-wmes command now works again. You can now set up arbitrary
filters on which wmes are printed out.
9.3.1
Soar 9.3.1 Release Notes, June 2011
===================================This release of Soar continues the 9.3 line which includes modules for
reinforcement learning (RL), episodic memory (EpMem), and semantic
memory (SMem), as well as everything from previous versions of Soar. It
includes many bugfixes, a major reworking of working memory activation,
and under-the-hood improvements to support very long agent runs. All
learning mechanisms are disabled by default.
Soar can be downloaded from the Soar home page at:
http://sitemaker.umich.edu/soar
Soar releases include source code, 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, and Python applications. Many tools that aid in development of
Soar programs are also included.
[Help and Contact information]
Please do not hesitate to contact the Soar group by sending mail to:
For general Soar-related discussion and announcements:
soar-group@lists.sourceforge.net
For more technical developer discussion:
soar-sml-list@lists.sourceforge.net
Please do not hesitate to file bugs on our issue tracker (search for
duplicates first):
http://code.google.com/p/soar/issues/list
[Important Changes for 9.3.1]
Inequality comparisons on string constants and identifiers are now
evaluated lexically rather than always returning false. Watch out--we
found that this changed the behavior on some agents that relied on the
old, broken behavior.
Improvements in stability and performance for the learning modules that
rely on databases (EpMem and SMem). Sqlite, the backing database, has
been upgraded to 3.7.4. Database schemas have been changed breaking
backwards compatibility.
The Soar kernel and SML interface now uses 64-bit integers for things
like WME values, timetags, stats, counters, and rete data structures.
Motivation for these changes is current research involving long-running
agents that were rolling over 32-bit integers in some instances. The
client interface is mostly backwards compatible but some errors or
warnings (because of loss of precision) may be encountered.
Working memory activation based forgetting is now stable and
efficient. However, parameters controlling its behavior are still
under experimentation and will likely change in the future.
The command line interface has been updated to behave much more like it
behaved before 8.6.0. The parsing is simplified and follows most of the
rules of the Tcl language and its behavior is now much easier to
validate (and many tests have been added). This should be mostly
transparent to the end user.
The help command now displays command documentation text directly
in the terminal again, similar to the pre-9.0 behavior. The help
text can now be automatically pulled from the wiki pages, making
it much easier to keep up to date. See Core/CLI/gen_cli_help.sh for
more details.
The Soar manual has been revised significantly. New sections
describing reinforcement learning, episodic memory, and semantic
memory have been added, and other sections have been updated to
reflect recent kernel changes.
A more comprehensive list of changes is below.
Prerequisites
=============
[Platforms]
Officially supported platforms are:
* Windows XP (32 bit), Vista & 7 32/64 bit
* Ubuntu Linux 10/11 32/64 bit
* Mac OS X 10.6 64 bit
Other platforms may work but have not specifically been tested, you can
try binaries or compile from source:
http://code.google.com/p/soar/wiki/Build
Due to path length limits on some versions of Windows, you may need to
extract Soar to C:\ -- watch for errors during the extraction process.
[Java]
Java is required to use the Java applications distributed with Soar,
including the debugger. Java must be available in the path. Some
operating systems already have Java installed, but be aware that we only
develop and test our applications using the Sun Java runtime environment
6 and other JVMs (such as GCJ) may not work:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
IMPORTANT NOTE ABOUT 64-BIT BINARIES: 32-bit Java virtual machines
cannot load 64-bit shared libraries. Please download appropriate
binaries for your installed virtual machine. Attempting to open tools
such as the Soar Java Debugger with the wrong JVM can cause the java
process to hang on Windows (use task manager to terminate it).
OS X USERS CAN CHECK/SELECT WHAT JVM THEY ARE USING WITH A UTILITY: Use
spotlight or look for the utility application "Java Preferences". More
information:
http://developer.apple.com/java/faq/
[Python]
The included Python libraries support Python versions 2.6. Your
installed Python architecture (32- or 64-bit) must be the same as the
binaries you download.
DETAILED CHANGELIST
===================
Bugfixes
--------
Issue 65: chunks being built despite justifications in backtrace when
creating result on super-superstate.
Issue 70: Weird printing for strings that look like identifiers
Issue 75: Incorrect id printed in GDS removal messages
Issue 77: Lots of duplicate code in sml_KernelHelpers.cpp
Issue 79: Print command now works as documented.
GDS trace output now reports state number instead of internal level.
Connecting to a remote kernel via process number overflows a short.
Major performance fix in semantic memory when validating long-term
identifiers on rules with lots of actions.
vsnprintf_with_symbols was not null-terminating strings converted from
ids causing overruns.
Client SML identifier symbol bug fixed that was causing crashes
(r12087).
Crash caused by disabling output link change tracking.
Memory leak caused during chunking (r12151).
GDS issue where multiple references to removed states weren't all
getting cleared.
Segfault when storing a wme in epmem whose value was an identifier and
id a long-term identifier that had never been stored in epmem.
Segfault that would occur when a wme is added and removed in the same
phase
Major bugfix in interaction between epmem and smem. (r12411)
WMA bug wherein preferences in an i-supported wme's cached o-set were
getting deallocated.
Code cleanup and maintenance fixes throughout the code.
Episodic & Semantic Memory Changes
----------------------------------
Semantic and episodic memory retrievals can now produce chunks as
opposed to only justifications.
Various experimental activation behaviors added to semantic memory.
Activation is now represented as a real number. As a result, the
database schema was changed, breaking backwards compatibility. A
frequency-based activation mode is introduced.
An experimental merge parameter added to semantic and episodic
memories allowing modification of long-term identifiers in working
memory.
An experimental parameter added to episodic memory that controls how
cue wmes are ordered during graph matching.
Command Line Interface Changes
------------------------------
-g/--gds flag added to the watch command for watching only GDS
messages.
Printing productions with print command now displays name of file
production was sourced from.
It is now possible to disable per-cycle stat tracking.
-d flag added to stat which makes it print only the current decision
count.
The TestCLI program has been rewritten, is much cleaner and a good
example of a lightweight debugger.
Added check to prevent crash when disconnecting Java debugger from
remote Soar when not connected.
Added new max-dc-time command to interrupt kernel execution after a
long decision cycle.
New SML Applications
--------------------
RLCLI: a simple debugger for RL experiments.
SoarQNA: facilitates agent access to external knowledge stores via the
IO system.
Liar's Dice probability calculator.
Miscellaneous Changes
---------------------
Visual Studio 2010 migration started, not officially supported yet.
New features and fixes in SMLJava library.
Experimental JMX API interface added for debugger for Soar IDE
integration. Not officially supported.
Support for swig 2 added.
Build procedure cleanup, some stuff wasn't getting built or cleaned
correctly. Some issues still exist but can be worked around by make
clean && make.
Jars all target Java 1.5 for better compatibility.
Output-link change tracking is now disabled by default until the
output-link identifier is requested unless the user explicitly enables
it.
GDS stats added to stats xml output.
Lots of changes to stats reporting especially with respect to timers
and time per decision cycle. Precision increased in many places.
Configurable at runtime using timers command.
Experimental support to discard learned chunks that are duplicates of
existing RL rules modulo numeric preference value.
9.3.0
Soar 9.3.0 Release Notes, March, 2010
=====================================This release of Soar includes modules for reinforcement learning
(introduced in 9.0), episodic memory (introduced in 9.1), and semantic
memory (introduced in 9.2), along with many new features and stability
updates. All learning mechanisms are now disabled by default.
Soar can be downloaded from the Soar home page at:
http://sitemaker.umich.edu/soar
Soar releases include source code, 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, and
Python applications. Many tools that aid in development of Soar programs
are also included.
[Reinforcement Learning (RL)]
RL is the architectural integration of reinforcement learning with Soar.
The RL mechanism will automatically tune the values of numeric-indifferent
preference rules based on reward generated while a Soar agent executes.
These values represent the expected discounted sum of future rewards the
agent will receive if it selects that operator for states matched by the
condition of the rule. See the RL manual and tutorial in Documentation.
To see RL in action right away, try the Water Jug RL demo (it can be loaded
from the Demos->Water Jug menu in the Java Debugger). To see the effects of
RL, run it to completion, then init-soar and run it again. Repeat 4-5
times to see it reach optimal behavior. (Note: the agent may occasionally
perform non-optimal behavior even after it has converged because of its
exploration policy. See the RL manual and tutorial for details).
[Episodic Memory (EpMem)]
EpMem is a task-independent, architectural integration of an artificial
episodic memory with Soar. The EpMem mechanism will automatically record
episodes as a Soar agent executes. These episodes can later be queried and
retrieved in order to improve performance on future tasks. See the EpMem manual for details.
[Semantic Memory (SMem)]
SMem is a task-independent, architectural integration of an artificial
semantic memory with Soar. The SMem mechanism facilitates deliberate
recording and querying of semantic chunks as a Soar agent executes.
[Help and Contact information]
Please do not hesitate to contact the Soar group by sending mail to:
For general Soar-related discussion and announcements:
soar-group@lists.sourceforge.net
For more technical developer discussion:
soar-sml-list@lists.sourceforge.net
Please do not hesitate to file bugs on our issue tracker (search for
duplicates first):
http://code.google.com/p/soar/issues/list
[Important Changes]
There have been performance, correctness, and stability improvements across
the board, especially with the learning mechanisms, which are all disabled
by default.
Long-term identifiers are now integrated in all symbolic memory systems.
More information on long-term identifiers can be found in section 4.2 of
the Soar-SMem manual in the documentation folder.
The allocate command has been added to Soar to allow agents to set aside
memory before starting a run so that the cost of allocation is not incurred
during the run.
The probability of selection for proposed operators is now included in the
preferences command output, helpful for debugging agents using indifferent
selection or RL, or agents that have complex operator preference semantics.
SML tracks changes on the Soar output-link in order for a number of useful
functions to perform correctly. This change tracking comes at a cost and
may now be disabled for a significant increase in performance -- even for
agents that do not use the output-link. See the new output link guide for
more information ("Examine in Detail" is the only option when disabling
change tracking):
http://code.google.com/p/soar/wiki/SMLOutputLinkGuide
SML often opens ports when a Kernel is created. This behavior has been
extended so that it can bind to any available port, and to use local
sockets or local pipes with names based on the process id, fixing a lot of
issues people were having. Complete documentation is included in the
ClientKernel header file.
A more comprehensive list of changes is below.
Prerequisites
=============
[Platforms]
Officially supported platforms include 32- and 64-bit versions of these
systems:
* Windows XP, Vista, 7
* Ubuntu Linux 9.10
* Mac OS X 10.5, 10.6
Other platforms may work but have not specifically been tested, you can try
binaries or attempt to compile from source:
http://code.google.com/p/soar/wiki/Build
Due to path length limits on some versions of Windows, you may need to
extract Soar to C:\ -- watch for errors during the extraction process.
[Java]
Java is required to use the Java applications distributed with Soar,
including the debugger. Java must be available in the PATH. Some operating
systems already have Java installed, but be aware that we only develop and
test our applications using the Sun Java runtime environment 6 and other
JVMs (such as GCJ) may not work:
http://developers.sun.com/downloads/top.jsp
IMPORTANT NOTE ABOUT 64-BIT BINARIES: 32-bit Java virtual machines cannot
load 64-bit shared libraries. Please download appropriate binaries for your
installed virtual machine. Attempting to open tools such as the Soar Java
Debugger with the wrong JVM can cause the java process to hang on Windows
(use task manager to terminate it).
OS X USERS CAN CHECK/SELECT WHAT JVM THEY ARE USING WITH A UTILITY: Use
spotlight or look for the utility application "Java Preferences". More
information:
http://developer.apple.com/java/faq/
[Python]
The included Python libraries support Python 2.6. Your installed Python
architecture (32- or 64-bit) must be the same as the binaries you download.
Changes for 9.3.0
=================
We have moved some of our development hosting over to Google Code,
including the wiki and issue tracker. Please check it out at
http://soar.googlecode.com
Much more documentation and example code is on the Google Code wiki.
A new "smem --init" command has been introduced for reinitialization of all
symbolic memory systems.
RL: Greatly improved template performance.
RL: Added ability to disable hierarchical discounting.
Working Memory Activation (WMA): Rewritten from scratch for performance (no
more ring) and correctness (including no more need for top-level ref
counts), many fewer parameters.
WMA: Printing working memory with the "internal" flag shows activation
value.
EpMem: Added ability to output visualization of episodes in Graphviz.
Epmem: Removal of lots of legacy code (including "tree" mode).
Epmem: Status WME (success/failure) refers to the initiating command.
SMem: Added ability to output visualization of semantic store in Graphviz.
SMem: Storage occurs at the end of every phase.
SMem: Greatly improved retrieval performance.
SMem: Status WME (success/failure) refers to the initiating command.
The build procedure has changed dramatically and is detailed on the Google
Code wiki.
Issue 31: Kernel timers for performance tuning have been updated to use
code from stlsoft.org, addressing many timer issues.
Issue 16: rand command and rand rhs functions implemented. This was
erroneously included in the previous release's change log.
Issue 60, 42: Invalid select command crash, other select command fixes.
Issue 61: Non-single compiliation units work now.
Issue 57: Many changes related to output-link change tracking including a
new method to disable output-link change tracking for a significant
performance increase if not using specific SML methods. See Wiki:
SMLOutputLinkGuide and method documentation for ClientAgent for much more
information.
Issue 62: KernelSML is no longer a singleton per process. Multiple Kernels
can now be created (and deleted) which have distinct sets of agents.
Issue 59: Added an RL parameter to turn off discounting during gaps.
Issue 53: Capture input string quoting problem fixed.
Issue 27: Listener port semantics extended to allow random listener ports
and process-specific local sockets/pipes.
Issue 40: Java Debugger layout file issues.
Issue 51: Run command extended with a new option to interrupt when a goal
retracts.
Issue 39: Memory leaks fixed.
Issue 36: Increased callback performance in SML (affects agents not using
any callbacks).
Issue 7: Memory pool preallocation command added.
Issue 18: preferences command extended to include probability that current
operators may be selected.
9.2.0
Soar 9.0.1, 9.1.1, 9.2.0 Release Notes
======================================This release of Soar continues the 9.x series of releases during which we
expect to introduce several new mechanisms.
Soar can be downloaded from the Soar homepage at:
http://sitemaker.umich.edu/soar
These Soar releases include 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.
Soar 9.0.1 (Soar-RL)
====================
Soar 9.0 includes reinforcement learning code (Soar-RL), which was first
released alongside the 8.6.4 beta. Soar 9.0.1 is primarily a maintenance
release, although many bugs have been fixed and minor features added.
Soar-RL is the architectural integration of reinforcement learning (RL) with
Soar. The RL mechanism will automatically tune the values of
numeric-indifferent preference rules based on reward generated while a Soar
agent executes. These values represent the expected discounted sum of future
rewards the agent will receive if it selects that operator for states matched
by the condition of the rule. See the RL manual and tutorial in Documentation.
To see Soar-RL in action right away, try the Water Jug RL demo (it can be
loaded from the Demos->Water Jug menu in the Java Debugger). To see the effects
of RL, run it to completion, then init-soar and run it again. Repeat 4-5 times
to see it reach optimal behavior. (Note: the agent may occasionally perform
non-optimal behavior even after it has converged because of its exploration
policy. See the RL manual and tutorial for details).
Soar 9.1.1 (Episodic Memory)
============================
Soar 9.1 includes an Episodic Memory module, which was first released as Soar
9.1.0. Soar 9.1.1 is primarily a maintenance release with bugs fixed and minor
features added. 9.1 also includes all of the features from 9.0 (Soar-RL).
Soar-EpMem is a task-independent, architectural integration of an artificial
episodic memory (EpMem) with Soar. The EpMem mechanism will automatically
record episodes as a Soar agent executes. These episodes can later be queried
and retrieved in order to improve performance on future tasks. See the EpMem manual for details.
Soar 9.2.0 (Semantic Memory)
============================
Soar 9.2 includes a Semantic Memory module, and this release of Soar 9.2.0 is
the first official release of Soar with semantic memory capabilities. 9.2 also
includes all features from 9.1 (EpMem) and 9.0 (Soar-RL).
Soar-SMem is a task-independent, architectural integration of an artificial
semantic memory (SMem) with Soar. The SMem mechanism facilitates deliberate
recording and querying of semantic chunks as a Soar agent executes.
Installation Requirements
=========================
These releases are generated for Windows, Linux, and OSX systems. Windows XP
and Vista are supported, as well as 32- and 64-bit architectures.
* IMPORTANT NOTE ABOUT 64-BIT BINARIES: To use the 64-bit Soar tools with Java
(such as the Java debugger) you must be using the 64-bit JVM. Attempting to
start 64-bit Soar programs with the 32-bit JVM on Windows will cause a
javaw.exe process to hang open (terminate it using task manager). Also note:
attempting to start 32-bit Java tools, such as those included in previous
distributions of Soar, with a 64-bit JVM will also result in the hanging
javaw.exe process.
* Sun Java 1.5 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.
* The Soar Suite needs under 100 MB for regular use, but closer to 1 GB of disk
space for object and debugging files if rebuilding all projects.
* Due to path length limits on some versions of Windows, it is recommended
to extract Soar to the C:\ root or similar. Some parts of the Soar Suite
directory structure are deep, so users wishing to put Soar in a deep location
on their machines (such as
C:\Documents and Settings\username\My Documents\Visual Studio Projects) may
run into issues.
* Tcl version 8.4 is required for the Tcl SML interface. Threaded Tcl builds
are not supported. Windows 64-bit does not include the Tcl SML interface.
Your installed Tcl architecture must be the same (32 or 64 bit) as the Soar
binaries for the Tcl SML interface to load correctly.
* The included Python libraries support Python 2.5. Python 2.6 and 3 support
requires a rebuild of the ClientSMLPython project. Your installed Python
architecture must be the same (32 or 64 bit) as the Soar binaries for the
Python SML interface to load correctly.
Build Requirements
==================
Binaries are released for Windows/Linux/OS X, so building is not required. For
those on other platforms or developers:
* Compilers: Windows: Visual Studio 2005 SP1 or 2008, Linux/OS X: GCC 3.3
or later
* SWIG 1.3.31 or later is required to build with cross-language support (e.g.
to use the Java debugger).
* Apache ant is required to build Java projects.
* Only the Sun JDK will work, 1.5 or newer.
* On Linux/OS X: Scons, Python 2.5 or newer, Tcl 8.4
* Please see detailed build instructions available on http://msoar.org
New in 9.0.1, 9.1.1, 9.2.0
==========================
* Native 64-bit platform support for Windows, Linux, OSX (bugs 1139,
1064, 1036, 531) resulting in different, usually better performance
on these platforms, and definite ease of compilation and integration
with tools such as Java and Python.
* Visual Studio 2008 is now supported and its use is recommended.
Visual Studio 2005 support will likely be dropped with the next
release.
* Soar 7 mode has been completely removed.
* Preference semantics regarding the generation of operator conflict
impasses have changed, see appendix D in the Soar Manual for details.
* Apache ant is now used to build java projects. This results in much
faster and reliable Java builds.
Detailed fixes:
* Bug 873: Match-time interrupt with :interrupt production tag re- enabled.
* Bug 234: Preference semantics changed regarding operator conflicts.
* Bug 1145: dont-learn/force-learn RHS actions fixed.
* Bug 1144: Crash bug related to chunking caveat mentioned in manual section
4.6.5 fixed, helpful error message displayed instead.
* Bug 1011: Impasses that existed in a superstate were not getting regenerated
if the sub-state was removed due to the GDS, this has been fixed.
* Bug 878: With verbose enabled, the general reason states are getting removed
is printed when the state is removed.
* Bug 510: Chunking bug fixed when trying to chunk over negated, conjuntive
conditions.
* Bug 1121: RL template production (:template) bug fixed that was failing to
correctly generate productions if variables starting with "o" were used.
* Bug 882: Changing trace filters in the Soar Java Debugger no longer collapses
the whole trace.
* Bug 1143: Direct I/O functions for WMEs in SML were acting in the wrong phase
(usually the output phase instead of the input phase), changed these
functions to instead buffer their actions for later execution in the input
phase.
* Bug 866: Optimization settings with Visual Studio tweaked.
* Bug 517: Fixed a bug where an unbound variable included in a negated
condition where a bound variable was required would crash Soar.
* Bug 1138: Fixed FindByAttribute bug not handling piped strings correctly and,
as a result, made it impossible to find some WMEs created on the kernel side.
* Bug 867: Extended SML Identifier interface adding a number of methods that
don't have the redundant Agent pointer in their argument list.
* Bug 1049: Fixed io_header_output memory leak.
* Bug 1060: CreateSharedIdWME now explicitly fails if an existing WME is
specified, violating the working memory set restriction.
* Bug 987, 1013: Echo command now ignores braces, pipes and other Soar
characters so that better ascii art is possible.
* Bug 1084, 1124, 1141: gp command extended with better error messages, maximum
rule threshold, VisualSoar support, newline indifference.
* Bug 1057: Many buffers replaced with growable, safer containers such as
std::string and std::stringstream in performance-indifferent code.
* Bug 776: New random command implemented and random right hand side functions
implemented for random numbers on command.
* Bug 1106: New print --exact flag added to avoid printing unnecessary copies
of objects with multi-valued attributes.
* Bug 927: Command line interface made more reentrant to avoid weird "true"
results output with multiple clients connected to the agent.
* Bug 952: New agents can now be created on the fly, during a run.
* Bug 1104: Fixed TestCLI hang if exited during run.
* Bug 1033: CreateKernelInNewThread error message fixed.
* Bug 794: edit-production now reports failure if visual soar is not connected.
* Bug 1043: Added SML Agent methods to launch the debugger.
* Bug 1140: RHS halt does not cancel multiple Soar2D runs.
* Bug 1099: Find function in Soar Java Debugger scrolls window to result now.
* Bug 638: Tutorials updated.
* Bug 931: Multiple productions can be pasted in to debugger at same time now.
* Bug 1012: Unterminated strings in productions fail at parse-time now.
* Bug 1025: GetOutputLink() no longer returns null.
* Bug 1042: Debugger command line options fixed.
* Bug 1045: Status complete was getting added twice on output link commands.
* Bug 1056: Kernel changed to use const char more.
* Bug 627: Help command lists folder instead of using command-names file,
allowing arbitrary help topics to be easily added.
* Bug 1105: Capture/replay input implemented.
* Large Soar production file parsing speed improvements.
* Soar2d rewritten, faster, easier to configure.
* Various memory leaks fixed, some major.
* Console logging fixed (clog command).
* Build procedure streamlined on all platforms.
* Removed all build warnings.
* Added many regression tests.
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
9.1.1
Soar 9.0.1, 9.1.1, 9.2.0 Release Notes
======================================This release of Soar continues the 9.x series of releases during which we
expect to introduce several new mechanisms.
Soar can be downloaded from the Soar homepage at:
http://sitemaker.umich.edu/soar
These Soar releases include 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.
Soar 9.0.1 (Soar-RL)
====================
Soar 9.0 includes reinforcement learning code (Soar-RL), which was first
released alongside the 8.6.4 beta. Soar 9.0.1 is primarily a maintenance
release, although many bugs have been fixed and minor features added.
Soar-RL is the architectural integration of reinforcement learning (RL) with
Soar. The RL mechanism will automatically tune the values of
numeric-indifferent preference rules based on reward generated while a Soar
agent executes. These values represent the expected discounted sum of future
rewards the agent will receive if it selects that operator for states matched
by the condition of the rule. See the RL manual and tutorial in Documentation.
To see Soar-RL in action right away, try the Water Jug RL demo (it can be
loaded from the Demos->Water Jug menu in the Java Debugger). To see the effects
of RL, run it to completion, then init-soar and run it again. Repeat 4-5 times
to see it reach optimal behavior. (Note: the agent may occasionally perform
non-optimal behavior even after it has converged because of its exploration
policy. See the RL manual and tutorial for details).
Soar 9.1.1 (Episodic Memory)
============================
Soar 9.1 includes an Episodic Memory module, which was first released as Soar
9.1.0. Soar 9.1.1 is primarily a maintenance release with bugs fixed and minor
features added. 9.1 also includes all of the features from 9.0 (Soar-RL).
Soar-EpMem is a task-independent, architectural integration of an artificial
episodic memory (EpMem) with Soar. The EpMem mechanism will automatically
record episodes as a Soar agent executes. These episodes can later be queried
and retrieved in order to improve performance on future tasks. See the EpMem manual for details.
Soar 9.2.0 (Semantic Memory)
============================
Soar 9.2 includes a Semantic Memory module, and this release of Soar 9.2.0 is
the first official release of Soar with semantic memory capabilities. 9.2 also
includes all features from 9.1 (EpMem) and 9.0 (Soar-RL).
Soar-SMem is a task-independent, architectural integration of an artificial
semantic memory (SMem) with Soar. The SMem mechanism facilitates deliberate
recording and querying of semantic chunks as a Soar agent executes.
Installation Requirements
=========================
These releases are generated for Windows, Linux, and OSX systems. Windows XP
and Vista are supported, as well as 32- and 64-bit architectures.
* IMPORTANT NOTE ABOUT 64-BIT BINARIES: To use the 64-bit Soar tools with Java
(such as the Java debugger) you must be using the 64-bit JVM. Attempting to
start 64-bit Soar programs with the 32-bit JVM on Windows will cause a
javaw.exe process to hang open (terminate it using task manager). Also note:
attempting to start 32-bit Java tools, such as those included in previous
distributions of Soar, with a 64-bit JVM will also result in the hanging
javaw.exe process.
* Sun Java 1.5 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.
* The Soar Suite needs under 100 MB for regular use, but closer to 1 GB of disk
space for object and debugging files if rebuilding all projects.
* Due to path length limits on some versions of Windows, it is recommended
to extract Soar to the C:\ root or similar. Some parts of the Soar Suite
directory structure are deep, so users wishing to put Soar in a deep location
on their machines (such as
C:\Documents and Settings\username\My Documents\Visual Studio Projects) may
run into issues.
* Tcl version 8.4 is required for the Tcl SML interface. Threaded Tcl builds
are not supported. Windows 64-bit does not include the Tcl SML interface.
Your installed Tcl architecture must be the same (32 or 64 bit) as the Soar
binaries for the Tcl SML interface to load correctly.
* The included Python libraries support Python 2.5. Python 2.6 and 3 support
requires a rebuild of the ClientSMLPython project. Your installed Python
architecture must be the same (32 or 64 bit) as the Soar binaries for the
Python SML interface to load correctly.
Build Requirements
==================
Binaries are released for Windows/Linux/OS X, so building is not required. For
those on other platforms or developers:
* Compilers: Windows: Visual Studio 2005 SP1 or 2008, Linux/OS X: GCC 3.3
or later
* SWIG 1.3.31 or later is required to build with cross-language support (e.g.
to use the Java debugger).
* Apache ant is required to build Java projects.
* Only the Sun JDK will work, 1.5 or newer.
* On Linux/OS X: Scons, Python 2.5 or newer, Tcl 8.4
* Please see detailed build instructions available on http://msoar.org
New in 9.0.1, 9.1.1, 9.2.0
==========================
* Native 64-bit platform support for Windows, Linux, OSX (bugs 1139,
1064, 1036, 531) resulting in different, usually better performance
on these platforms, and definite ease of compilation and integration
with tools such as Java and Python.
* Visual Studio 2008 is now supported and its use is recommended.
Visual Studio 2005 support will likely be dropped with the next
release.
* Soar 7 mode has been completely removed.
* Preference semantics regarding the generation of operator conflict
impasses have changed, see appendix D in the Soar Manual for details.
* Apache ant is now used to build java projects. This results in much
faster and reliable Java builds.
Detailed fixes:
* Bug 873: Match-time interrupt with :interrupt production tag re- enabled.
* Bug 234: Preference semantics changed regarding operator conflicts.
* Bug 1145: dont-learn/force-learn RHS actions fixed.
* Bug 1144: Crash bug related to chunking caveat mentioned in manual section
4.6.5 fixed, helpful error message displayed instead.
* Bug 1011: Impasses that existed in a superstate were not getting regenerated
if the sub-state was removed due to the GDS, this has been fixed.
* Bug 878: With verbose enabled, the general reason states are getting removed
is printed when the state is removed.
* Bug 510: Chunking bug fixed when trying to chunk over negated, conjuntive
conditions.
* Bug 1121: RL template production (:template) bug fixed that was failing to
correctly generate productions if variables starting with "o" were used.
* Bug 882: Changing trace filters in the Soar Java Debugger no longer collapses
the whole trace.
* Bug 1143: Direct I/O functions for WMEs in SML were acting in the wrong phase
(usually the output phase instead of the input phase), changed these
functions to instead buffer their actions for later execution in the input
phase.
* Bug 866: Optimization settings with Visual Studio tweaked.
* Bug 517: Fixed a bug where an unbound variable included in a negated
condition where a bound variable was required would crash Soar.
* Bug 1138: Fixed FindByAttribute bug not handling piped strings correctly and,
as a result, made it impossible to find some WMEs created on the kernel side.
* Bug 867: Extended SML Identifier interface adding a number of methods that
don't have the redundant Agent pointer in their argument list.
* Bug 1049: Fixed io_header_output memory leak.
* Bug 1060: CreateSharedIdWME now explicitly fails if an existing WME is
specified, violating the working memory set restriction.
* Bug 987, 1013: Echo command now ignores braces, pipes and other Soar
characters so that better ascii art is possible.
* Bug 1084, 1124, 1141: gp command extended with better error messages, maximum
rule threshold, VisualSoar support, newline indifference.
* Bug 1057: Many buffers replaced with growable, safer containers such as
std::string and std::stringstream in performance-indifferent code.
* Bug 776: New random command implemented and random right hand side functions
implemented for random numbers on command.
* Bug 1106: New print --exact flag added to avoid printing unnecessary copies
of objects with multi-valued attributes.
* Bug 927: Command line interface made more reentrant to avoid weird "true"
results output with multiple clients connected to the agent.
* Bug 952: New agents can now be created on the fly, during a run.
* Bug 1104: Fixed TestCLI hang if exited during run.
* Bug 1033: CreateKernelInNewThread error message fixed.
* Bug 794: edit-production now reports failure if visual soar is not connected.
* Bug 1043: Added SML Agent methods to launch the debugger.
* Bug 1140: RHS halt does not cancel multiple Soar2D runs.
* Bug 1099: Find function in Soar Java Debugger scrolls window to result now.
* Bug 638: Tutorials updated.
* Bug 931: Multiple productions can be pasted in to debugger at same time now.
* Bug 1012: Unterminated strings in productions fail at parse-time now.
* Bug 1025: GetOutputLink() no longer returns null.
* Bug 1042: Debugger command line options fixed.
* Bug 1045: Status complete was getting added twice on output link commands.
* Bug 1056: Kernel changed to use const char more.
* Bug 627: Help command lists folder instead of using command-names file,
allowing arbitrary help topics to be easily added.
* Bug 1105: Capture/replay input implemented.
* Large Soar production file parsing speed improvements.
* Soar2d rewritten, faster, easier to configure.
* Various memory leaks fixed, some major.
* Console logging fixed (clog command).
* Build procedure streamlined on all platforms.
* Removed all build warnings.
* Added many regression tests.
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
9.1.0
Soar 9.1.0-beta Release Notes
=============================This release of Soar continues the 9.x series of releases during which we
expect to introduce several new mechanisms. 9.0.0 included reinforcement
learning code (Soar-RL), which was first released alongside the 8.6.4
beta. 9.0.0 was also the first release to include the SML interface
without gSKI. 9.1.0-beta includes episodic memory (Soar-EpMem) and Working
Memory Activation (WMA).
Soar-EpMem is a task-independent, architectural integration of an artificial
episodic memory (EpMem) with Soar. The EpMem mechanism will automatically
record episodes as a Soar agent executes. These episodes can later be queried
and retrieved in order to improve performance on future tasks. See the EpMem
manual in Documentation.
This release of Soar-EpMem does not include a tutorial. To see examples
of using Soar-EpMem with a Soar agent, see the "kb" agent in the Demos
directory. This agent will run a series of EpMem "unit tests," exploring
all forms of the Soar-EpMem agent API.
Soar 9.1.0-beta 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 9.1.0-beta 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. Note that Windows has
a 255 character path length limit; some parts of the directory
structure are deep, so users wishing to put Soar in a deep location
on their machines may run into issues.
* 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
==================Binaries are released for Windows/Linux/OS X, so building is not required.
For those on other platforms or developers:
* On all platforms, SWIG 1.3.31 or later is required to build with
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.
Soar-EpMem & SQLite
===================Soar-EpMem requires both statically and dynamically linked SQLite components.
The former is provided in source. The latter, at this time, is a manual process
(SQLite uses make scripts for their compile). EpMem includes pre-built binaries
for Windows, Linux (tested on Ubuntu) and OS X Leopard. If your install works with
these components, you can skip this section. Otherwise, the following process
documents how to build the required components.
First, download the source tarball from the SQLite homepage (http://www.sqlite.org/download.html).
To be clear, you want the non-amalgamated source code tarball
(probably named sqlite-A.B.C.tar.gz, for version A.B.C). Next, extract the contents,
change to the directory, and run ./configure followed by make at the command line.
These commands will create the required libraries for your system. The final step
is to copy the required components from the SQLite directory to your EpMem
directory. The only file of interest is named libsqliteA.B.C.D.ext
(ext is dylib on Mac, so for Linux; A.B.C.D will vary on the version) and is
located in the .libs folder of your SQLite directory. You will want to copy this
file out of .libs and into the SoarLibrary/lib folder of your EpMem install.
Furthermore, SQLite requires that this file exist under two additional names:
libqsliteA.ext and libsqliteA.B.ext. To accommodate, you can either create a symbolic
link under these two names or duplicate the file (it makes no difference, except
for added/saved disk space). Once you have these components in the appropriate directory,
your EpMem build (and subsequent runs) should work fine.
Components of Soar 9.1.0-beta
=============================* Pre-built libraries and executables (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 9.1.0-beta
=================
* Components and Capabilities added
-- EpMem commands and documentation added (see EpMem manual in
Documentation directory).
-- WMA commands and documentation added (see EpMem manual in
Documentation directory).
-- Other minor enhancements.
* Bug fixes
-- Several other minor fixes.
Known issues:
=============
* No EpMem tutorial
* EpMem "provenance" parameter is unimplemented
* 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.
* 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
9.0.1
Soar 9.0.1, 9.1.1, 9.2.0 Release Notes
======================================This release of Soar continues the 9.x series of releases during which we
expect to introduce several new mechanisms.
Soar can be downloaded from the Soar homepage at:
http://sitemaker.umich.edu/soar
These Soar releases include 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.
Soar 9.0.1 (Soar-RL)
====================
Soar 9.0 includes reinforcement learning code (Soar-RL), which was first
released alongside the 8.6.4 beta. Soar 9.0.1 is primarily a maintenance
release, although many bugs have been fixed and minor features added.
Soar-RL is the architectural integration of reinforcement learning (RL) with
Soar. The RL mechanism will automatically tune the values of
numeric-indifferent preference rules based on reward generated while a Soar
agent executes. These values represent the expected discounted sum of future
rewards the agent will receive if it selects that operator for states matched
by the condition of the rule. See the RL manual and tutorial in Documentation.
To see Soar-RL in action right away, try the Water Jug RL demo (it can be
loaded from the Demos->Water Jug menu in the Java Debugger). To see the effects
of RL, run it to completion, then init-soar and run it again. Repeat 4-5 times
to see it reach optimal behavior. (Note: the agent may occasionally perform
non-optimal behavior even after it has converged because of its exploration
policy. See the RL manual and tutorial for details).
Soar 9.1.1 (Episodic Memory)
============================
Soar 9.1 includes an Episodic Memory module, which was first released as Soar
9.1.0. Soar 9.1.1 is primarily a maintenance release with bugs fixed and minor
features added. 9.1 also includes all of the features from 9.0 (Soar-RL).
Soar-EpMem is a task-independent, architectural integration of an artificial
episodic memory (EpMem) with Soar. The EpMem mechanism will automatically
record episodes as a Soar agent executes. These episodes can later be queried
and retrieved in order to improve performance on future tasks. See the EpMem manual for details.
Soar 9.2.0 (Semantic Memory)
============================
Soar 9.2 includes a Semantic Memory module, and this release of Soar 9.2.0 is
the first official release of Soar with semantic memory capabilities. 9.2 also
includes all features from 9.1 (EpMem) and 9.0 (Soar-RL).
Soar-SMem is a task-independent, architectural integration of an artificial
semantic memory (SMem) with Soar. The SMem mechanism facilitates deliberate
recording and querying of semantic chunks as a Soar agent executes.
Installation Requirements
=========================
These releases are generated for Windows, Linux, and OSX systems. Windows XP
and Vista are supported, as well as 32- and 64-bit architectures.
* IMPORTANT NOTE ABOUT 64-BIT BINARIES: To use the 64-bit Soar tools with Java
(such as the Java debugger) you must be using the 64-bit JVM. Attempting to
start 64-bit Soar programs with the 32-bit JVM on Windows will cause a
javaw.exe process to hang open (terminate it using task manager). Also note:
attempting to start 32-bit Java tools, such as those included in previous
distributions of Soar, with a 64-bit JVM will also result in the hanging
javaw.exe process.
* Sun Java 1.5 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.
* The Soar Suite needs under 100 MB for regular use, but closer to 1 GB of disk
space for object and debugging files if rebuilding all projects.
* Due to path length limits on some versions of Windows, it is recommended
to extract Soar to the C:\ root or similar. Some parts of the Soar Suite
directory structure are deep, so users wishing to put Soar in a deep location
on their machines (such as
C:\Documents and Settings\username\My Documents\Visual Studio Projects) may
run into issues.
* Tcl version 8.4 is required for the Tcl SML interface. Threaded Tcl builds
are not supported. Windows 64-bit does not include the Tcl SML interface.
Your installed Tcl architecture must be the same (32 or 64 bit) as the Soar
binaries for the Tcl SML interface to load correctly.
* The included Python libraries support Python 2.5. Python 2.6 and 3 support
requires a rebuild of the ClientSMLPython project. Your installed Python
architecture must be the same (32 or 64 bit) as the Soar binaries for the
Python SML interface to load correctly.
Build Requirements
==================
Binaries are released for Windows/Linux/OS X, so building is not required. For
those on other platforms or developers:
* Compilers: Windows: Visual Studio 2005 SP1 or 2008, Linux/OS X: GCC 3.3
or later
* SWIG 1.3.31 or later is required to build with cross-language support (e.g.
to use the Java debugger).
* Apache ant is required to build Java projects.
* Only the Sun JDK will work, 1.5 or newer.
* On Linux/OS X: Scons, Python 2.5 or newer, Tcl 8.4
* Please see detailed build instructions available on http://msoar.org
New in 9.0.1, 9.1.1, 9.2.0
==========================
* Native 64-bit platform support for Windows, Linux, OSX (bugs 1139,
1064, 1036, 531) resulting in different, usually better performance
on these platforms, and definite ease of compilation and integration
with tools such as Java and Python.
* Visual Studio 2008 is now supported and its use is recommended.
Visual Studio 2005 support will likely be dropped with the next
release.
* Soar 7 mode has been completely removed.
* Preference semantics regarding the generation of operator conflict
impasses have changed, see appendix D in the Soar Manual for details.
* Apache ant is now used to build java projects. This results in much
faster and reliable Java builds.
Detailed fixes:
* Bug 873: Match-time interrupt with :interrupt production tag re- enabled.
* Bug 234: Preference semantics changed regarding operator conflicts.
* Bug 1145: dont-learn/force-learn RHS actions fixed.
* Bug 1144: Crash bug related to chunking caveat mentioned in manual section
4.6.5 fixed, helpful error message displayed instead.
* Bug 1011: Impasses that existed in a superstate were not getting regenerated
if the sub-state was removed due to the GDS, this has been fixed.
* Bug 878: With verbose enabled, the general reason states are getting removed
is printed when the state is removed.
* Bug 510: Chunking bug fixed when trying to chunk over negated, conjuntive
conditions.
* Bug 1121: RL template production (:template) bug fixed that was failing to
correctly generate productions if variables starting with "o" were used.
* Bug 882: Changing trace filters in the Soar Java Debugger no longer collapses
the whole trace.
* Bug 1143: Direct I/O functions for WMEs in SML were acting in the wrong phase
(usually the output phase instead of the input phase), changed these
functions to instead buffer their actions for later execution in the input
phase.
* Bug 866: Optimization settings with Visual Studio tweaked.
* Bug 517: Fixed a bug where an unbound variable included in a negated
condition where a bound variable was required would crash Soar.
* Bug 1138: Fixed FindByAttribute bug not handling piped strings correctly and,
as a result, made it impossible to find some WMEs created on the kernel side.
* Bug 867: Extended SML Identifier interface adding a number of methods that
don't have the redundant Agent pointer in their argument list.
* Bug 1049: Fixed io_header_output memory leak.
* Bug 1060: CreateSharedIdWME now explicitly fails if an existing WME is
specified, violating the working memory set restriction.
* Bug 987, 1013: Echo command now ignores braces, pipes and other Soar
characters so that better ascii art is possible.
* Bug 1084, 1124, 1141: gp command extended with better error messages, maximum
rule threshold, VisualSoar support, newline indifference.
* Bug 1057: Many buffers replaced with growable, safer containers such as
std::string and std::stringstream in performance-indifferent code.
* Bug 776: New random command implemented and random right hand side functions
implemented for random numbers on command.
* Bug 1106: New print --exact flag added to avoid printing unnecessary copies
of objects with multi-valued attributes.
* Bug 927: Command line interface made more reentrant to avoid weird "true"
results output with multiple clients connected to the agent.
* Bug 952: New agents can now be created on the fly, during a run.
* Bug 1104: Fixed TestCLI hang if exited during run.
* Bug 1033: CreateKernelInNewThread error message fixed.
* Bug 794: edit-production now reports failure if visual soar is not connected.
* Bug 1043: Added SML Agent methods to launch the debugger.
* Bug 1140: RHS halt does not cancel multiple Soar2D runs.
* Bug 1099: Find function in Soar Java Debugger scrolls window to result now.
* Bug 638: Tutorials updated.
* Bug 931: Multiple productions can be pasted in to debugger at same time now.
* Bug 1012: Unterminated strings in productions fail at parse-time now.
* Bug 1025: GetOutputLink() no longer returns null.
* Bug 1042: Debugger command line options fixed.
* Bug 1045: Status complete was getting added twice on output link commands.
* Bug 1056: Kernel changed to use const char more.
* Bug 627: Help command lists folder instead of using command-names file,
allowing arbitrary help topics to be easily added.
* Bug 1105: Capture/replay input implemented.
* Large Soar production file parsing speed improvements.
* Soar2d rewritten, faster, easier to configure.
* Various memory leaks fixed, some major.
* Console logging fixed (clog command).
* Build procedure streamlined on all platforms.
* Removed all build warnings.
* Added many regression tests.
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
9.0.0
Soar 9.0.0 Release Notes
========================This release of Soar begins the 9.x series of releases during which we
expect to introduce several new mechanisms. 9.0.0 includes reinforcement
learning code (Soar-RL), which was first released alongside the 8.6.4
beta. 9.0.0 is also the first release to include the SML interface
without gSKI.
Soar-RL is the architectural integration of reinforcement learning (RL) with
Soar. The RL mechanism will automatically tune the values of
numeric-indifferent preference rules based on reward generated while a Soar
agent executes. These values represent the expected discounted sum of
future rewards the agent will receive if it selects that operator for states
matched by the condition of the rule. See the RL manual and tutorial in
Documentation.
To see Soar-RL in action right away, try the Water Jug RL demo (it can be
loaded from the Demos->Water Jug menu in the Java Debugger). To see the effects
of RL, run it to completion, then init-soar and run it again. Repeat 4-5 times
to see it reach optimal behavior. (Note: the agent may occasionally perform
non-optimal behavior even after it has converged because of its exploration
policy. See the RL manual and tutorial for details).
Soar-9.0.0 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 9.0.0 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. Note that Windows has
a 255 character path length limit; some parts of the directory
structure are deep, so users wishing to put Soar in a deep location
on their machines may run into issues.
* 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
==================Binaries are released for Windows/Linux/OS X, so building is not required.
For those on other platforms or developers:
* On all platforms, SWIG 1.3.31 or later is required to build with
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 9.0.0
========================* 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 9.0.0
============
* Components and Capabilities added
-- RL commands and documentation added (see RL manual and tutorial
in Documentation directory).
-- indifferent-selection command updated to support options primarily
intended for (but not limited to) RL.
-- select and predict commands added to control operator selection
(essentially replaces defunct indifferent-selection --ask functionality).
-- New "gp" command added. Generates rules based on simple patterns
(intended for use with RL).
-- Added iterative deepening support to selection space. To see this
in action, load the Water Jug Look-Ahead demo, then source
selection-iterative-deepening.soar (in SoarLibrary/Demos/default)
and run. Init-soar and run again. Iterative deepening is guaranteed
to find the path with the fewest steps.
-- Added options to learn command to turn chunking through local negations
on or off (on by default for backwards compatibility). If off, a message
will be generated if "watch --learning print" is enabled that says a chunk
was not created because of local negations, and what those negations were.
-- Updated selection space to remove local negations (for compatibility with
new --disable-through-local-negations chunking mode).
-- In a tie impasse, an item-count WME containing the number of tied operators
is now architecturally generated.
-- Depth at which productions are firing is reported at watch 5.
-- Multiple rules can be loaded via the Java debugger's Edit Production
widget, scratch pad, and by pasting into the trace window. This is the
result of an underlying change to SML in which arguments to
ExecuteCommandLine are passed through logic associated with the source
command, and thus multiple commands can be given at once.
-- Command boxes in the Java debugger have been enhanced so that history
browsing with the up/down arrows works on all platforms.
-- New "single compilation unit" build configurations (greatly speeds build time).
-- Unit test suite added.
-- Other minor enhancements.
* Bug fixes
-- Output link supports circular structures.
-- Duplicate productions no longer cause sourcing to stop.
-- Various memory leaks fixed.
-- Several other minor fixes.
* Other updates
-- Removed gSKI (10-30% speed increase in simple benchmarking).
-- The Soar Java Debugger now uses its default layout the first time
it is run with a new version of Soar. Old layouts are preserved
and can be loaded if desired (which makes them the default).
Known issues:
=============
* 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.
* 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.4
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.
8.5.2
We are pleased to announce that Soar Suite 8.5.2 is ready for the Windows and
Linux platforms! Download it here:
--> http://sitemaker.umich.edu/soar/soar_software_downloads
We expect this to be the last 8.5.x release. Soar Suite 8.6.0, expected fall
2004, will be the next release and will include gSKI/TgD.
*** Components included in this release: Soar Kernel 8.5.2, VisualSoar 4.5.3,
Eaters 3.0.8, TankSoar 3.0.8, DMGen 1.0.0, SoarDoc 0.9.3, SGIO 1.1.2,
Documentation (including Soar manual and tutorial).
*** Almost every component has been updated for this release, some
significantly. Please check out the release notes (available with the installer
and on the web page).
*** All necessary Tcl/Tk files are included with the Windows version. Linux
users will have to install Tcl/Tk, see installation notes for details.
*** Mac OSX is currently not available but will be soon.
*** Visit the Soar home page for news, documentation, and updates:
--> http://sitemaker.umich.edu/soar/
*** Report all Soar suite bugs using the Soar Bugzilla bug tracking system.
Please do not use the trackers on SourceForge.net.
--> http://winter.eecs.umich.edu/soar-bugzilla/
*** Thank you to all who helped make this release possible!
Summary of changes between SoarSuite 8.5.1 and SoarSuite 8.5.2
July, 2004
A summary of changes in SoarSuite 8.5.2 is listed immediately below. For more
details, including changes not mentioned in the summary and a list of known
issues see the Details section after the summary.
======================New Windows Installer:
======================
The Windows installer is now built with a different technology which
is much easier for us and results in a much smaller package.
=========================Several kernel bug fixes:
=========================
Almost all known bugs fixed, including all known crash bugs. See the
details section below for more information.
==================New TankSoar Bots:
==================
TankSoar now comes with two new bots. Mapping-bot demonstrates how a
tank might build up an internal map of the level. Obscure-bot is a challenge bot
for people to test their own bots against. The code is provided in an obfuscated
binary. See obscure-bot.txt in the TankSoar agents directory for details.
==========================SoarDoc and DMGen updated:
==========================
These changes were actually in the the 8.5.1 release, but we failed
to note them.
SoarDoc:
- Fixed special character handling when UseExistingComments is used.
- Added ShowProdSourceInline which shows production source code
inline in the production documentation
- Ability disable datamap node coloring
- Fixed case-sensitivity issues for production names and list sorting.
DMGen:
- Fixed handling of mixed-case production names.
======================Documentation Updated:
======================
The tutorials have had some typo fixes and screenshot updates, and also
explain substates better.
==================Tcl Soar Debugger:
==================
The TSDebugger has several bug fixes which may have affected some
users.
===================VisualSoar Updated:
===================
VisualSoar has several small bug fixes.
======================Critical SGIO bug fix:
======================
Our fix for bug 254 in the last release actually caused serious
problems. This has been fixed for real now.
==================================================================== Details
====================================================================
Below is a fairly complete list of enhancements, changes, bug fixes, and known
issues, with bug numbers for reference. For more information and up to date list
of what's been fixed please visit the Soar bugzilla server at:
https://winter.eecs.umich.edu/soar-bugzilla/.
New bug submissions and enhancement requests are welcome!
Soar-8.5.2
==========
Bug Fixes
---------353 stats command keeps recording between runs
389 missing error handling for set_watch_prod_group_setting
Enhancements
------------358 change soar8 command error message
Known Issues
------------312 agent structure isn't cleaned up properly
356 All matches get same support as last processed match
TSDebugger 4.0.1
================
Bug Fixes
---------365 rules that contain a capital letter break productions tab
376 stop button doesn't work with Eaters, TankSoar 396 error when closing group from task bar
398 extra 0 gets printed when soar connected to environments
Known Issues
------------336 negated conditions don't print properly in the console window
397 grouping bar in production tab not always right
SGIO 1.1.2
==========
Bug Fixes
---------254 Some special characters in StringWME's do not transfer to Soar
Eaters 3.0.8
============
Bug Fixes
---------391 garbage printed to debugger output when Stop After Decision Phase is on
TankSoar 3.0.8
==============
Bug Fixes
---------map loading menu now defaults to maps directory
188 Selecting Map->Random Map causes error message when agent present on
current map
392 garbage printed to debugger output when Stop After Decision Phase is on
393 command 'run 1' generates 'invalid command step' error
Enhancements
------------new challenge bot (obscure-bot) and mapping bot provided
Known Issues
------------
399 can't use reset tank command in tank control panel tanks menu
Documentation
=============
Bug Fixes
---------349 tutorial images need to be updated
375 typo in tutorial part 1: move-north
386 typos in tutorial part 1 (search control)
Enhancements
------------Added information to tutorial about substates.
Known Issues
------------380 typo in section 5.6.3
381 o-support-mode command missing newest support modes
VisualSoar 4.5.3
================
Bug Fixes
---------361 adding a dir that doesn't exist to agent path on file->new project fails with no warning
362 initial rules in a project are not justified correctly
363 if project loaded then create new project, title bar does not change
364 file with same name as datamap have same window names
366 Initialize-<task> Operator not in datamap
368 dragging node onto itself makes node disappear
372 fails to detect extra whitespace after :
Known Issues
------------Too many to list. See bugzilla for details.
8.5.1
Summary of changes between SoarSuite 8.5.0 and SoarSuite 8.5.1
June, 2004
A summary of changes in SoarSuite 8.5.1 is listed immediately below. For more
details, including changes not mentioned in the summary and a list of known
issues see the Details section after the summary.
==================Several bug fixes:
==================
Almost all known bugs fixed, including all known crash bugs. See the details
section below for more information.
======================Documentation Updated:
======================
The manual has been updated to include appendices on the BNF grammar
for Soar's syntax, the calculation of O Support, the resolution of preferences
and the Goal Dependency Set, as well as many other small changes. The manual
is also now searchable, and the table of contents has links to the associated
sections. Finally, the tutorial has been reorganized.
==================================New Tcl Soar Debugger (TSI 4.0.0):
==================================
The Tcl debugger, TSI, has undergone a major revision, improving its
intuitiveness and presentation of information dramatically. For more details,
see the TSI 4 Tour documentation.
=======================Updated Version of Tcl:
=======================
The system has been tested with the latest version of Tcl, 8.4.6, and
the Windows distribution ships with this version included.
========================Learning Off by Default:
========================
In previous versions of Soar, learning was turned on by default. This
could be a source of confusion and frustration since most users do not intend to
have learning on. Thus, starting with Soar 8.5.1, learning is turned off.
====================================O Support Mode 4 is now the Default:
====================================
O Support Mode 4 was introduced in Soar 8.5.0, and starting with Soar
8.5.1 it is now the default mode. Those requiring other modes (i.e. for
compatibility) can switch to them using the o-support-mode command.
O Support Mode 3 (the default mode in Soar 8.3 - 8.5.0) is meant to
give I-Support to elaborations of the operator. At certain times,
these elaborations were not detected as such, and received O-Support.
Soar 8.5's O Support Mode 4 can overcome these problems by detecting
more operator elaborations. However, it also makes the following change
from O-Support Mode 3:
mixed productions (i.e. operator applications + operator elaborations)
now receive i-support instead of o-support. Running with 'warnings -on'
will print messages when any such productions fire. You should try
to be careful not to build any such mixed productions when using
o-support mode 4
While O Support Mode 3 remains the default for this release, this is
for backwards compatibility only. It is recommended that O Support Mode 4 is
used from now on; in a future release, O Support Mode 4 will be the default.
======================New Interrupt Command:
======================
Soar 8.5.1 now allows matchtime interrupts to be turned on and off at
runtime. Matchtime interrupts were introduced in Soar 8.5.0 (see immediately
below for details). The syntax for the interrupt command is:
interrupt [-on|-off] [production name]
If the -on or -off switch is used without a production name, then the
list of all productions with interrupts turned on or off is given. If the
production name is used without the -on or -off switch, then the interrupt
status of the production is given.
Soar 8.5.0 introducted support for interrupting execution at production
match-time in addition to interrupts when a production matches. This new
capability makes it possible to examine Soar's state before the production
fires, and even makes it possible to excise the production that matches before
its effects are realized. To use the matchtime interrupt feature, productions
must add the ':interrupt' directive as in the following example production:
sp { interrupt*on*application
:interrupt
(state <s> ^operator.name stop)
-->
(write (crlf) |I've already Halted|)}
Note that supporting this feature adds a small amount of computational overhead
to the match phase. If you desire a maximally streamlined version of Soar,
recompile /without/ the MATCHTIME_INTERRUPT flag in soarBuildOptions.h
===================VisualSoar Updated:
===================
VisualSoar has undergone several usability improvements for this development
iteration. Key among these are:
- highlighting code for the user that has been identified
as the cause of a syntax error, datamap error or text search.
- improvements to window focus, size and positioning. In the past,
VisualSoar has been a little too "bullheaded" about enforcing the
default display type of tile mode. Users who maximize windows or
cascade them will find VS easier to manage.
- some additional search capabilities. In particular, it's easy to
find code corresponding to entries in the datamap and also easy to
find the datamap that goes with particular code. You can also
limit your text searches to specific operator subtrees.
- Finally, VisualSoar has been made compatible with MacOS.
==================================================================== Details
====================================================================
Below is a fairly complete list of enhancements, changes, bug fixes, and known
issues, with bug numbers for reference. For more information and up to date list
of what's been fixed please visit the Soar bugzilla server at:
https://winter.eecs.umich.edu/soar-bugzilla/.
New bug submissions and enhancement requests are welcome!
Soar-8.5.1
==========
Enhancements
------------186 New interrupt command
Changes
-------338 turn off learning by default
339 default o-support-mode changed from 3 to 4
351 some demos need to be updated
Bug Fixes
---------139 Soar crashes when it spends some time in a state no-change substate
204 Soar crashes when multiple agents are running and one of them halts or
reaches an interrupt
213 GDS crashes when backtracing through result WMEs
214 fixed behavior of "monitor -delete" command
274 operator treated as keyword even when not attached to a state
154 Print message explaining that can't save RETE when justifications are
present.
311 extra newline in Soar output
278 o-support mode 3 & 4 do not correctly identify mixed
elaboration-application productions
194 warnings when running demos in O Support Mode 4
357 o-support determination fails to recognize operator elaboration
355 New GDS bug
Known Issues
------------312 agent structure isn't cleaned up properly
353 stats command keeps recording between runs
356 All matches get same support as last processed match
TSI 4.0.0
=========
Enhancements
------------Too many to list -- really rewritten to a large extent.
Bug Fixes
---------215 Learn settings printed in log when stepping
206, 211, 212 The output of some commands wasn't redirectable, causing problems
in the TSI
192 wish.exe process doesn't go away sometimes
Known Issues
------------327 bottom of phase graphic is cut off in non-minimal views
336 negated conditions don't print properly in the console window
SGIO 1.1.1
==========
Bug Fixes
---------254 Spaces and $'s in StringWME's do not transfer to Soar
Eaters 3.0.7
============
Bug Fixes
---------197 Eaters sets TSI version number
TankSoar 3.0.7
==============
Enhancements
------------352 updates to default agent
Bug Fixes
---------196 TankSoar sets TSI version number
Known Issues
------------
188 Selecting Map->Random Map causes error message when agent present on
current map
151 Can't use run <n> command in TankSoar
Documentation
=============
Enhancements
------------343 Make manual searchable
344 Make table of contents into links
350 reorganize tutorials
341 Preference resolution appendix needs updating
345 section 1.3: "contacting the Soar group" is outdated
348 need GDS description
340 BNF grammar appendix needs to be updated
342 o-support appendix needs to be updated
Known Issues
------------349 tutorial images need to be updated
VisualSoar 4.5.2
================
Enhancements
------------3 Expand datamap as it is being generated.
37 Document all shortcut and key bindings.
48 Search / replace should highlight the line found
53 VS doesn't display new windows in size/position that is intuitive
91 Parse error should highlight offending line.
92 Remove parse error pop up dialog and place all errors in feedback pane
93 Allow separate syntax and datamap checks.
100 Change template default from "01" to Op1" to reduce confusion
159 The save operation should always save the entire project
171 agent name in title bar
222 Better tab-formatting for multiple values on separate lines
225 Allow searching within a specific operator subtree
255 IO Error message fails to specify filename that caused the error
263 Syntax error should not popup dialog when checking productions
265 Find productions that use a particular datamap WME
333 Should be able to generate datamap for just one file
Bug Fixes
---------90 Undo should move the cursor (and display) to what is being undone
106 Better tab-formatting after a comment and after a condition
122 If you close an editor window another window does not become active
128 The neon green color used in data map verification is very annoying
131 Opening a new project should close old
133 Close project menu options don't invoke same dialog as close button
153 VisualSoar broken on Mac OS X
177 Fix spelling and capitalization errors in VS menu
199 The KnownIssues.txt file should be removed from the CVS archive
200 VS contains deprecated function calls
205 Runtime menu should be deactivated when the library is absent
220 New file windows should receive focus
228 Syntax coloring is incorrect for ".{"
250 Syntax coloring is incorrect for { ... } { ... }
262 Operator with a non-enumeration named "name" causes crash
Known Issues
------------Too many to list. See bugzilla for details.
8.5.0
Soar 8.5.0 is now available for Windows platforms and Linux! Mac OSX support is forthcoming. Download the installer (Win32) or tarball (Linux) and get installation instructions here: http://sitemaker.umich.edu/soar/soar_software_downloads
Release notes for Soar Suite 8.5
- For the Win32 platform, all Soar components are hosted on SourceForge.Net in one installer. A Linux tarball is also available at the same URL. http://sourceforge.net/projects/soar/
- The Soar web site has been redesigned and moved to a new location. Links to the old site should redirect to the new site. http://sitemaker.umich.edu/soar/
- VisualSoar has been updated for this release with many bug fixes and is available for the Win32 platform (VisualSoar support for Linux and Mac OSX is forthcoming).
- The Soar manual has been updated and is included in the installer.
- Per a renewed commitment to bug fixing in Soar, the Soar project now uses Bugzilla for bug tracking and feature requests. All bug tracking and feature requests should be posted using the new Soar Bugzilla and not with SourceForge.Net's trackers. http://winter.eecs.umich.edu/soar-bugzilla
- New SoarDoc and DataMap Generator tools from Soar Technology are included with this Soar 8.5.0 release http://www.eecs.umich.edu/~soar/sitemaker/projects/soardoc/soardoc.html
- Major changes for Soar 8.5.0:
- All known crashes fixed.
- Numeric indifference preferences added.
- 8.3.5 and 8.4.5 have been merged, only one version of Soar is needed now.
- All Soar components have been combined into one installer.
- Updated for latest version of Tcl/Tk (8.4.4).
- Various bug fixes, see CHANGES for details
- This release was made possible by: Mazin Assanie, Karen Coulter, John Laird, Bob Mariner, Shelley Nason, Andrew Nuxoll, David Ray, Jonathan Voigt, Robert Wray and Soar Technology.
Summary of changes between Soar 8.4.5 and Soar 8.5. Scott Wallace August, 2003
The change from Soar8.4.5 to Soar8.5 introduces some new features, and bug fixes. Below is a brief summary of the salient changes (all modifications have been verified with the soar-8.5-test-suite which is released independently from this source code).
Operator No Changes
In Soar 8.4.5, Operator No Changes were identified agressively by the architecture. This meant that they could be created before the end of the decision cycle. In some situations, this led to odd behavior, notably within some of the tutorial lessions. As a result, this behavior has now become a compile-time option and is no longer included in the deafult-builds. If you desire Soar with aggressive no changes, simply add the AGRESSIVE_ONC flag to soarBuildOptions.h and recompile.
MatchTime Interrupt
Soar 8.5 now supports interrupting execution at production match-time in addition to interrupts when a production matches. This new capability makes it possible to examine Soar's state before the production fires, and even makes it possible to excise the production that matches before its effects are realized. To use the matchtime interrupt feature, productions must add the :interrupt directive as in the following example production:
sp { interrupt*on*application
:interrupt
(state <s> ^operator.name stop)
-->
(write (crlf) |I've already Halted|)
}
Note that supporting this feature adds a small amount of computational overhead to the match phase. If you desire a maximally streamlined version of Soar, recompile /without/ the MATCHTIME_INTERRUPT flag in soarBuildOptions.h
Reject Preferences
Earlier versions of Soar processed all reject preferences after acceptable preferences. One of the unintuitive side effects of this is that when a user wants to change the value of a wme, they typically need to test that its current value is not equal to the new value. As a first attempt to alleviate this artifact, by default Soar 8.5 changes the order in which preferences are evaluated by examining O-Supported Reject preferences first thus (cheese-type cheddar - chedder +) will result in the wme (... cheese-type cheddar) remaining in working-memory. Note that this may have some unanticipated consequences, and can be turned off be undefining the O_REJECTS_FIRST flag in soarBuildOptions.h and recompiling.
Cmdline Interface Parser
Now appropriately parses strings containing the '#' character.
Run Till Output
In Soar 8.3 - 8.4.5, if an output command was issued in the first decision-cycle, it would not be appropriately detected. As a result, if Soar was instructed to run until output, and output occured on the 1st decision cycle, Soar would continue running for 15 decision cycles before returning control to the user. This bug was most often noticed using simple agents in TankSoar, and is now fixed in Soar 8.5.
O Support Mode 4
O Support Mode 3 (the default mode in Soar 8.3 - 8.5.0) is meant to give I-Support to elaborations of the operator. At certain times, these elaborations were not detected as such, and received O-Support. Soar 8.5's O Support Mode 4 can overcome these problems by detecting more operator elaborations. However, it also makes the following change from O-Support Mode 3:
mixed productions (i.e. operator applications + operator elaborations) now receive i-support instead of o-support. Running with 'warnings -on' will print messages when any such productions fire. You should try to be careful not to build any such mixed productions when using o-support mode 4
While O Support Mode 3 remains the default for this release, this is for backwards compatibility only. It is recommended that O Support Mode 4 is used from now on; in a future release, O Support Mode 4 will be the default.
Numeric Indifference Preferences
Soar 8.5 has better capabilities to support behavioral diversity than previous versions of Soar. The difference stems from Soar 8.5 numeric indifferent preferences that allow operators to be assigned weights along with the '=' preference. In the event of a tie, the indifference selection mechanism is invoked. In previous versions of Soar, the probability of selecting any of the tied operators was distributed evenly among the candidates (assuming the indifferent-selection mode was 'random'). Soar 8.5's numeric indifferent preferences allow the programmer to skew this distribution such that certain operators are chosen more or less frequently. Preferences are specified simply by adding an integer or float value following an operator's '=' preference. As in the example below:
sp { example
(state <s> superstate nil -initialized true)
-->
(<s> ^operator <o> + = 30)
(<o> ^name initialize-a)
}
Two algorithms are available via a run-time switch:
numeric-indifferent-mode -avg
Here, we calculate the 'average' preference value associated with a particular operator. Thus, if preference A for operator X has value 30 while preference B for operator X has value 60, the average will be 45. Once this value has been calculated for all competeing operators, we sum their average preferences and select a random number between 0 and this sum. Each operator is associated with a range on this scal equal to its average numeric preference. Thus, the randomly selected number can simply be mapped back to an operator that then becomes for 'selected' operator for the current decison. In average mode, indifferent preferences without a numeric value are given the default value of 50 for selection purposes. For programmers, we expect that this mode of numeric-indifferent selection will be most intuitive. Note however, that this scheme doesn't make a lot of sense for preferences are less than zero. If an operator's average value is ever below zero, Soar will print a warning indicating this situation. As an initial recommendation, we suggest using values between 0.0 and 100.0 for your operators.
numeric-indifferent-mode -sum
Here, the preferences for each operator are first summed. Thus, if preference A for operator X has value 30 while preference B for operator X has value 70.5 the sum will be 100.5. This sum is calculated for all competing operators. Next, we calculate: e ^ (preference_sum / agent_temperature) where agent_temperature is a compile time constant currently set at 25.0 We'll call this value the operator's final numeric preference. Finally, we sum all the competing operator's final numeric preferences and select a random number between 0 and this sum. Each operator is associated with a range on this scale equal to the size of its final numeric preference. Thus, the randomly selected number can simply be mapped back to an operator that then becomes the 'selected' operator for the current decision. In the sum mode, indifferent preferences without a numeric value are given the default value 0.0 for the selection purposes. Note it does make sense to use this methodology even if the numeric preferences are negative, however, because the numeric preference are used in exponientation, their values should be somewhat limited so floating-point overflow does not become a problem. We expect this sum mode to be more useful for future reinforcement-learning methods, and have included it here mainly for experimental purposes.
Timer Warnings
Timer warnings are not displayed unless the following are true:
- Soar was compiled with the WARN_IF_TIMERS_REPORT_ZERO flag
- at runtime, the 'warnings' sysparam is set to TRUE (as with the 'warnings -on' command
Other changes for Soar 8.5 made after the above document was written:
- Removal of many depricated Tcl/Tk functions, upgrading them to Tcl/Tk 8.4.4.
- Various stability enhancements, including:
- Kernel now uses snprintf() instead of sprintf() whenever possible.
- Kernel now uses strncpy() instead of strcpy() whenever possible.
- Kernel now uses strncat() instead of strcat() whenever possible.
- 'verbose' command bug fix, it was not working as documented when multiple agents were active.
- 'init-soar' kernel crash fixed in both Eaters and TankSoar.
- MSVC and GCC warning levels moved to maximum, all warnings silenced.
- Logging bug fixed, did not work properly with multiple active agents.
- 'indifferent-selection -ask' command fixed.
- Decision cycle bug fix.
- All demos are in VisualSoar format now.
- Fixed a kernel crash related to justifications.