PyCLIPS Python Module / News: Recent posts

Started working on PyCLIPS 2.0


there is a small Christmas present for those who use PyCLIPS: I finally started working on a 2.0 release. I preferred to start a major version switch because the 2.0 release will generally be *incompatible* with the previous one. The relevant change is that PyCLIPS 2.0 will *not* support most of the top-level functions and classes, and every "engine" will have to be run in a specifically created environment (the Environment class). While this may seem very drastic at first sight, in my opinion this will not have such an impact. Let's see why:... read more

Posted by Francesco Garosi 2008-12-23

Small site issues


since the details for providing web contents for projects hosted on have slightly changed, there can be some small issues with the PyCLIPS web site (for instance, images are not correctly displayed). I have to find a way to restore the full site functionality. Until then, please do not use the feedback form provided on the web site. You can still use the tracker and forum services for any issues or requests.... read more

Posted by Francesco Garosi 2008-11-24

PyCLIPS Compatible with Python 2.6

Good news for those who like to use cutting-edge technology: as Python 2.6 has been released, PyCLIPS compiles out-of-the-box in the new environment and successfully passes the test suite. Only the latest PyCLIPS release has been tested, that is, version

Posted by Francesco Garosi 2008-10-03

New PyCLIPS File Release (release 1.0.7)

This release introduces type checking and enforcement (cast) for some calls, in order to allow such things as degradation from unicode objects to strings where possible. In order to allow the use of decorators to implement this feature, support for Python 2.3 had to be dropped.

A long standing bug has been fixed together with a more recently discovered one, see the release notes for details.

PyCLIPS is now actively developed and tested with Python version 2.5 and 2.4.... read more

Posted by Francesco Garosi 2008-03-10

Important fixes in svn297

The upcoming release, which will be based on svn297 (actually, I consider this as the release candidate, which will probably appear as build 345) introduces a couple of important fixes, that is the two bugs that were left open. Also, it introduces some new features, such as type checking and enforcement where needed, thus disallowing ambiguous behaviours that could lead to "semantic"errors.... read more

Posted by Francesco Garosi 2008-02-22

Package: PyCLIPS/wxPython Examples

A new package has been created in the File Download Area, containing three PyCLIPS examples. These examples are the translations of Gary Riley's CLIPSJNI sample applications, that Johan Lindberg has ported to Python+wxPython+PyCLIPS. They give an idea of PyCLIPS capabilities and offer an opportunity to compare the two approaches respectively based on Python and Java.

Please download the ZIP file located at... read more

Posted by Francesco Garosi 2008-01-24

New PyCLIPS Web Site

In order to ease the development process and to add more valuable content for the users of PyCLIPS, a brand new site has been set up. It's based on the powerful Drupal CMS ( for more information) and should allow a better organization of the material related to the module. The site is still experimental yet fairly complete and ready to be tested at the following address: read more

Posted by Francesco Garosi 2008-01-18

New PyCLIPS File Release (release 1.0.6)

This release implements the possibility to retrieve Facts and Instances (as well as lists of such objects) from the CLIPS subsystem as a result of functions that can provide values of different types, such as Eval(). The opposite is also possible: in most cases, where values of undefined types can be accepted by CLIPS, these values can also be Facts or Instances. This will allow the upcoming examples to be ported (thank you again, Johan) from the ClipsJNI example suite to PyCLIPS with almost no substantial modification in the CLIPS code.... read more

Posted by Francesco Garosi 2008-01-13

New PyCLIPS File Release (release 1.0.5)

This release tries to address some of the major issues found in the 1.0.4 version, issues that have been reported by many users. In particular, the major issue that should be resolved is the actual impossibility to use more than two environments at a time (bug 1669794). Also, at the cost of some performance, a mechanism has been implemented to avoid garbage collection over non asserted facts (bug 1575151) in situations where it would be triggered and corrupt slots (this happens in CLIPS by design: see for details).... read more

Posted by Francesco Garosi 2007-04-06

Python 2.5 (stable) binaries available

I have uploaded binary files for Python 2.5 (stable version). These binaries are compiled, as the other Win32 ones, with Mingw32. PyCLIPS compiles OOTB against Python 2.5, and passes all the tests successully.

The files are available as usual at the following address:

Posted by Francesco Garosi 2006-09-20

New PyCLIPS File Release (release 1.0.4)

After more than one year, this release fixes (or provides workarounds for) many major and minor bugs. Moreover, it introduces support for the latest CLIPS release, that is, version 6.24, along with the related enhancements. Users of PyCLIPS are highly encouraged to switch to this release in order to avoid unexpected behaviours.

This release also introduces some new features in the setup process, as well as in the way the package is distributed: now it is possible to install PyCLIPS using setuptools (see for details), and the module is distributed in binary form also in ".egg" format. To better support this type of distribution, the version numbers have been changed to something more standard. If you decide to build PyCLIPS yourself and do not provide a CLIPS source package, the setup script will try to automatically download the most recent supported one from the PyCLIPS web site.... read more

Posted by Francesco Garosi 2006-07-15

Support for older Python and CLIPS to be dropped

Since Python 2.3 and CLIPS 6.23 have been around for years now, I finally decided to drop support for versions of the two interpreters below the above mentioned ones. This is part of a major reorganization of the low-level module (the one coded in C) as well as the result of some considerations, including the availability of patches that address particular issues only for the most recent versions of CLIPS. CLIPS version 6.23 also introduces some new features that PyCLIPS enables.... read more

Posted by Francesco Garosi 2006-05-29

Added Subversion Repository


As I said in a message in the 'Open Discussion' forum, I switched the development version control system to Subversion (SVN). This will probably allow me to keep the repository on and my own one more consistent.

The latest changes (actually, some modifications to the setup script) as well as all the previous ones, are present in the new repository. I'll keep the CVS repository accessible for a short while, but in some days it will be removed, in order to avoid confusion.... read more

Posted by Francesco Garosi 2006-05-10

New PyCLIPS File Release (release 1.0_R3)

This release fixes a minor bug that could lead to a segmentation fault, an prevents a possible issue due to an illegal operation in CLIPS.

You can find the documentation for this release at this address:

You can download this release at the following address:

Posted by Francesco Garosi 2005-06-09

New PyCLIPS File Release (release 1.0_R2)

PyCLIPS is a Python module to interface the CLIPS expert system shell library.

This release fixes a really annoying bug which caused the module to be excessively memory expensive and prone to memory leaks. Memory usage is now considerably more efficient, and as a side effect PyCLIPS has also gained something in performance. There are no API changes or new features, except for an upper limit for the number of usable environments which is set to 256 by default.... read more

Posted by Francesco Garosi 2005-05-27

New PyCLIPS File Release (release 1.0_R1)

PyCLIPS is a Python module to interface the CLIPS expert system shell library.

The PyCLIPS module has finally changed status to "Production/Stable" after several months of work and testing. Not much has changed since the previous file release: the only changes since release 1.0_10 are in the documentation, to reflect the newly supported platforms and new build procedures. The status change does not mean that the release is completely free from errors, but no new problems have been found for months and I think that this means that the module has reached its final state.... read more

Posted by Francesco Garosi 2005-04-09

New PyCLIPS File Release (release candidate 1.0_10)

PyCLIPS is a Python module to interface the CLIPS expert system shell library.

After a lot of code cleanup and more low-level testing and inspection, and after substantially freezing the feature set for a long time, the module has finally reached an almost stable state. This release has a more clean build system and adds more control on how memory is used. Moreover, a quick patch system for optional CLIPS source code patches has been added: see the README file for details. Thanks to the help of other developers and to the SF.NET crew for offering access to various platforms, PyCLIPS now works correctly also on x86_64 platforms (using one of the provided "quick" CLIPS patch sets).... read more

Posted by Francesco Garosi 2005-03-10

New PyCLIPS File Release (beta 1.0_09)

PyCLIPS is a Python module to interface the CLIPS expert system shell library.

This release adds support for the most recent version of CLIPS (version 6.23) and access to its new features. Compatibility with the previous version of CLIPS has been kept, but will be dropped in the future. The code has been reviewed and cleaned up, and part of the build process is now clearer.

You can find the documentation for this release at this address: ... read more

Posted by Francesco Garosi 2005-02-05

CLIPS 6.23 is available

The latest version of CLIPS is now 6.23, it fixes some bugs and introduces one new API function as well as some new "runtime" functions which might be really useful in "everyday's production systems": in fact I would have appreciated some of them a couple of months ago.

Anyway, PyCLIPS will support CLIPS v6.23 ASAP (probably in days). For now the support for CLIPS v6.22 will be kept, although I see no use in using the older version: actually, PyCLIPS compiles its CLIPS engine from scratch so it could be worth to download the new source code for CLIPS...... read more

Posted by Francesco Garosi 2005-02-04

New PyCLIPS File Release (beta 1.0_08)

PyCLIPS is a Python module to interface the CLIPS expert system shell library.

This release does not introduce any new features nor fixes any bug: it is intended to be a "code cleanup release". The low-level code now is more clear and maintainable as many experimental chunks (which were disabled by default) have been removed. This could be the last beta release for version 1.0, as the module now seems to be quite stable in applications where it has been used.... read more

Posted by Francesco Garosi 2005-01-23

New PyCLIPS File Release (beta 1.0_07)

PyCLIPS is a Python module to interface the CLIPS expert system shell library.

The new PyCLIPS release fixes many (mostly minor) bugs, and finally completes the test suite. Actually current tests mainly "just invoke" almost all exported functions, but they could be a good starting point for a more functional test set.

There are also some enhancements: almost no one of these should cause any code breakage, and the semantics of some objects are now probably more complete (eg. Generic and Function objects are now callables in Python).... read more

Posted by Francesco Garosi 2004-11-29

New PyCLIPS File Release (beta 1.0_06)

PyCLIPS is a Python module to interface the CLIPS expert system shell library. This new release contains many fixes and enhancements, as the test suite is becoming more complete and users give their feedback about the module. An upgrade is suggested for everyone who regularly uses PyCLIPS since many serious errors have been corrected.

I have also decided to remove older versions (in their binary form, at least) from the distribution site. They are retained however in source form (mainly for historical reasons), under the package named pyclips-old.... read more

Posted by Francesco Garosi 2004-11-18

More enhancements and fixes in CVS tree

While the test suite is becoming more complete, obviously more bugs come to light. When the module was first released it was generally usable for many purposes, but it also was subject to bugs that in some cases could difficult to find. I think that PyCLIPS has improved and is by far more stable since then. However the suite is still not complete and thus there can still be even serious bugs that might show up later.... read more

Posted by Francesco Garosi 2004-11-12

PyCLIPS installs on MAC OS X

A PyCLIPS user reports that the module also works on Mac OS X (darwin). I don't know much about this platform, so the only thing I can do for now is to say what he did to get it working.

Brad reports that, just changing line 984 in so that it reads

elif sys.platform[:5] in ['linux', 'sunos', 'posix', 'cygwi', 'darwi']:

and extracting the Macintosh CLIPS source code (distributed as clipssrc.sit, maybe with a different distribution of capital letters) in the clipssrc directory - probably also modifies the setup.h file in this case - the compilation and installation ends successfully.... read more

Posted by Francesco Garosi 2004-10-24

Bug in beta release 1.0_05

Although there has been a lot of bug hunting and cleanup, a recent test added to the test suite showed a bug in the Call() function: see bug 1052697 for the details.

A workaround can be using Eval() instead of Call(), however the next CVS commit will include, among other changes, appropriate corrections to the C code.

Posted by Francesco Garosi 2004-10-23