Soar Changelog

What's new in Soar 9.3.2

Apr 16, 2013
  • 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.
  • 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 the 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.

New in Soar 9.3.0 (Apr 23, 2010)

  • 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.

New in Soar 9.2.0 (Dec 28, 2009)

  • 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.

New in Soar 9.0.1 (Jun 15, 2009)

  • Soar-RL reward link is now limited to reward-link.reward.value instead of
  • reward-link..value, see documentation.
  • 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.

New in Soar 9.1.0 Beta (Sep 5, 2008)

  • 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.
  • Several other minor fixes.

New in Soar 9.0.0 (Sep 5, 2008)

  • 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.
  • Output link supports circular structures.
  • Duplicate productions no longer cause sourcing to stop.
  • Various memory leaks fixed.
  • Several other minor fixes.
  • 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).