My favorites | Sign in
Project Home Downloads Wiki Issues
Updated Jun 12, 2014 by

The Soar suite has several individually buildable targets. This document describes each component. See the SCons Script documentation for information on how to build individual components.

The Soar Kernel Library

This includes core Soar functionality as well as the Soar Markup Language (SML) interface. SML is the standard interface for hooking Soar up to external or virtual environments. The Java debugger and command line tools also rely on SML.

  • Windows: Soar.dll, Soar.lib
  • Linux:
  • OSX: libSoar.dylib

SWIG Wrapper Libraries

These contain language-specific wrappers automatically generated by SWIG to allow languages other than C++ to interface with SML. The primary languages we use this for are Java, Tcl and Python, although an interface also exist for C#, but has not been tested for a while.

  • Common: (Python), sml.jar (Java)
  • Windows: _Python_sml_ClientInterface.pyd, Java_sml_ClientInterface.dll
  • Linux:,
  • OSX: _Python_sml_ClientInterface.dylib, libJava_sml_ClientInterface.dylib

Java Debugger

This is the primary way for users to run Soar and debug agents.

  • Common: SoarJavaDebugger.jar, soar-debugger.jar

Command Line Interfaces

TestCLI: A multi-threaded command-line interface with history and several other features. CLI: A minimalistic command-line interface which is more suitable for using in scripts or for low-level kernel debugging. mCLI: A minimalistic, multi-agent command-line interface with ANSI-colored text.

  • Linux, OSX: testcli, cli, mcli
  • Windows: Same, with .exe suffixes


This includes a program that runs many unit tests and other programs that run performance tests. The unit test program also requires a number of agent files that will be copied into your install directory.

  • Common: Many soar files under the TestAgents subdirectory
  • Linux, OSX: UnitTests, TestSoarPerformance, !TestSMLPerformance, !TestSMLEvents
  • Windows: Same, with .exe suffixes

SML Headers

C++ header files needed by programs that use SML. "Building" these just involves copying the headers from various points in the source tree into a single directory. Note that Java and Python SML programs DO NOT need these headers, as the SWIG wrapper classes incorporate the definitions contained in them. A user who only wants to run Soar but not create new environments should build the kernel library, Java SWIG wrapper, and the Java debugger. Users who want to write new environments with SML will also need, depending on their language choice, the SML C++ headers, Java SWIG wrapper, or Python SWIG wrapper. The test and command line interface programs are mainly for internal development.

Sign in to add a comment
Powered by Google Project Hosting