This document is a collection of all release notes from Soar 9.0.0 to 9.3.1 in reverse chronological order.
Code:
  
===================================  
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.
   [HR][/HR]
  [B]9.3.0[/B]

 
  
 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