Skip to main content

Raw SML Bindings to the Soar Cognitive Architecture

Project description

Soar

Build/Test

This is the code base for Soar, a cognitive architecture for developing systems that exhibit intelligent behavior. For more information about this project, please visit:

Note that the readme included with the Soar distribution for end-users is in the Release-Support repository.

Soar Builds

For binary builds of Soar you can get them in two places:

  • Official Releases
  • Latest Successful Development Build: click the latest run and scroll down to "Artifacts".
    • If the download for your platform isn't there, the build failed. You'll need to download the result of an earlier build.
    • GitHub cannot build for ARM64 (M-series Macs), so you'll need to build from source or use the release version instead.

Soar Performance

Some performance statistics are calculated automatically using the Factorization Stress Tests. You can see performance on a commit-by-commit basis either in Performance.md or here. The raw data used to generate the graphs for each build can be found here.

Disclaimer: These are worst case tests. Average performance is probably much higher. In addition, these show that even in worst case, Soar beats its goal of 50 msec reactivity (in these tests, the max is ~30msec per decision).

Development

The Soar project builds with scons, see build with scons, but an alternative build based on CMake, see CMake section, is under development.

The following table provides a comparison of supported build features for Soar between both build systems.

Feature Scons CMake
Soar dynamic lib
Soar static lib
Soar CLI
Unit tests
Performance tests
Exnternal lib test
SVS
SWIG
Python package soar-sml
Generate compile commands
Release
Debug
Debug with address sanitizer
Conan package manager integration
MacOS
Linux
Windows
Java builds (Debugger)

Prerequisites

The instructions below are cursory and may be out of date; the most up-to-date instructions for compiling Soar from source will always be the CI build scripts. You can find them here.

To compile Soar, you will need the dependencies listed below. Note that the installation commands are not complete, e.g. missing instructions for Mac do not mean that the dependency is not needed on Mac, etc.:

  • C/C++ compiler
    • Mac: xcode-select --install
    • Linux: sudo apt-get install build-essential
  • Python
    • Mac: brew install python
  • Java
    • We recommend using SDKMan. The debugger, etc. require Java 11 at a minimum, but it's best to install the latest LTS. Temurin is recommended.

To compile the extra SML wrapper libs, you will need the following:

  • pkg-config
    • Mac: brew install pkg-config
    • Linux: sudo apt install pkgconf
  • SWIG
    • Mac: brew install swig
    • Linux: sudo apt install swig
  • Python development headers (only needed for Python wrapper)
    • Linux: sudo apt install python3-dev
  • C# compiler (csc) (only needed for C# wrapper)
    • Mac: brew install mono
  • Tcl (only needed for Tcl wrapper and TclSoarlib)
    • Mac: brew install tcl-tk

Build with Scons

The project supports generating compile_commands.json, which can be used by e.g. VSCode with the C/C++ plugin to provide IntelliSense. To generate this file, run scons with the cdb target:

   python3 scons/scons.py --scu --opt --verbose cdb

Note for M-series Mac users: you'll want to make sure you're compiling for ARM64, not x86_64. Sometimes users have Python installed in compatibility mode, leading to compiles for the wrong architecture. You can check which architecture your Python is built for using this:

import sysconfig
>>> print(sysconfig.get_config_vars())

You can also check your clang's default compile target using clang --version.

To compile everything for local development, you can use the following command:

   python3 scons/scons.py --scu --dbg --verbose all

Debug mode enables debugging, but also activates assertions, which are important for catching bugs early. --scu (single compilation unit) simplifies the debugging experience.

If you want an optimized build instead:

    python3 scons/scons.py --opt --verbose all

Build with CMake

The following prerequisites must be available:

  • CMake
  • Python3, including pip for the conan package manager.

Once the dependencies are set up, the project can be built with the build.sh script.

The VS Code extension for CMake should also work for triggering build and install commands, adding build problems to the warnings.

The CMake build system for Soar includes a set of build presets setting defaults for several build options. See CMakePrestes.json for options. Using these presets requires the installation of debug and release dependencies by Conan, due to the resolution of dependencies via CMake toolchains:

conan install . --build=missing
conan install . --build=missing -s build_type=Debug

Afterwards, different presets can be built with

cmake --preset Debug-test
cmake --build --preset Debug-test

or predefined workflows can be run with the following command, running configure, build and test stages:

cmake --workflow --preset Debug-test-workflow

The default options are covered through presets conan-release and conan-debug provided by Conan. Extensions, like VS Code CMake tools, integrate well with these presets. A list of all presets is availble via cmake --list-presets or for workflows with cmake --workflow --list-presets.

License

Soar is available under the following LICENSE. This license is BSD

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

soar_sml-9.6.4-cp35-abi3-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.5+Windows x86-64

soar_sml-9.6.4-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.5+manylinux: glibc 2.17+ x86-64

soar_sml-9.6.4-cp35-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (2.6 MB view details)

Uploaded CPython 3.5+manylinux: glibc 2.17+ i686

soar_sml-9.6.4-cp35-abi3-macosx_11_0_arm64.whl (1.9 MB view details)

Uploaded CPython 3.5+macOS 11.0+ ARM64

soar_sml-9.6.4-cp35-abi3-macosx_10_9_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.5+macOS 10.9+ x86-64

File details

Details for the file soar_sml-9.6.4-cp35-abi3-win_amd64.whl.

File metadata

  • Download URL: soar_sml-9.6.4-cp35-abi3-win_amd64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.5+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for soar_sml-9.6.4-cp35-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c0639f6567f72171ceea3196b67fbe11bf468f7ee5364684ae5103ec373e70ad
MD5 5e5f22ddcf52003dcd4e7d9c59c72b37
BLAKE2b-256 e9fb6cc030169ea3d7bc4c037e4fe463523cc4070373cc60fb5b16df446c9f40

See more details on using hashes here.

Provenance

The following attestation bundles were made for soar_sml-9.6.4-cp35-abi3-win_amd64.whl:

Publisher: build.yml on SoarGroup/Soar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file soar_sml-9.6.4-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for soar_sml-9.6.4-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d48f0711896f2de75382cc4e81f149acec962c60f6f5f2b6a97fd8572225bb1c
MD5 00d28444a862bc590ba4d36495b710b0
BLAKE2b-256 ac210557bea4bbc036738cfa5c1339c0f601fca207114ce059b2461eab816ec0

See more details on using hashes here.

Provenance

The following attestation bundles were made for soar_sml-9.6.4-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on SoarGroup/Soar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file soar_sml-9.6.4-cp35-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for soar_sml-9.6.4-cp35-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 612f35f39824d48f6e3ef914c44c4a71d8df7dd6d870cc34ac8aa91b9b441d75
MD5 e20d46cd957a4b3eabbcb7fffb7853e2
BLAKE2b-256 c26243ee218a2759df632d1dcd6b4d0814043338d4f6cb5944d484bd2e85801d

See more details on using hashes here.

Provenance

The following attestation bundles were made for soar_sml-9.6.4-cp35-abi3-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: build.yml on SoarGroup/Soar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file soar_sml-9.6.4-cp35-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for soar_sml-9.6.4-cp35-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 19cae923176088438d08a4e8bbc4716363871379361644a2a2cf594ccc679625
MD5 7c7d0a596acf43e2a04a62cdd9a578d5
BLAKE2b-256 1ff01f7b482322aac44bb374a6bbd7dfc1c083c7d049352522e2edb847285d77

See more details on using hashes here.

Provenance

The following attestation bundles were made for soar_sml-9.6.4-cp35-abi3-macosx_11_0_arm64.whl:

Publisher: build.yml on SoarGroup/Soar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file soar_sml-9.6.4-cp35-abi3-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for soar_sml-9.6.4-cp35-abi3-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5610168e46f0156bda90abf58545548c8acd69ddc4eec2ae6ad9e39f7190cb26
MD5 fa82964dffc47e4a39935c1cad07ea5a
BLAKE2b-256 106014a0a9000004294f2fdb5f7f016668ac098ab7e03fbc88a9dddaa6c6a378

See more details on using hashes here.

Provenance

The following attestation bundles were made for soar_sml-9.6.4-cp35-abi3-macosx_10_9_x86_64.whl:

Publisher: build.yml on SoarGroup/Soar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page