clipsmm

clipsmm is a C++ library that provides an
interface to the CLIPS library. CLIPS provides a C
environment for the construction of rule- and/or
object-based expert systems used by NASA, branches
of the military, numerous federal bureaus,
government contractors, universities, and many
companies. Several areas in which clipsmm extends
the CLIPS interface are templated function
callbacks using sigc++ slots, and encapsulated
CLIPS execution environments.

Recent releases

Release Notes: This is primarily a cleanup release. Several checks have been added for CLIPS function context support, which is required whether you are using clips 6.30 or a patched 6.24. The docs have been restructured a bit and are now distributed as their own package because of their size. The primary clipsmm.h header has also been moved into a higher level directory.

Release Notes: This release adds a run_threaded() method to the Environment class, which creates a separate thread and initiates execution of the number of rules specified in a parameter, similar to the run() method. Also added are other thread support methods such as join_run_thread(), et. al. Although an environment is restricted to execution in a single thread, this allows multiple environments to execute in parallel in multiple threads. As a result, a new CLIPS::init() method has been added to initialize the Glib threading system which must be called before any clipsmm objects are instantiated.

Release Notes: This is primarily a bugfix release. The handling
of the smart pointers with regard to boost versus
tr1 has been improved, and there have been some
minor bugfixes to several methods in CLIPS::Value.

Release Notes: This release has a few changes that should make it
easier to build clipsmm on platforms other Fedora
Core 5, and perhaps even now including Windows. In
the Environment class, assert() has been changed
to assert_fact() to avoid stepping on the assert
macro, which is problematic in some compilers.
Also, the requirement for support of tr1 smart
pointers has been relaxed, and if they aren't
found, autoconf will look for boost smart
pointers. Additionally, all the clips.h includes
have been wrapped in extern "C".