I've verified the bug with a smaller example. CLIPS> (defglobal ?*rv* = TRUE) CLIPS> (deffunction alternating-test () (bind ?rv ?*rv*) (bind ?*rv* (not ?*rv*)) (return ?rv)) CLIPS> (deffacts initial (G "000")) CLIPS> (defrule variant-bug (exists (G ?v) (or (test (eq ?v "F48")) (test (eq ?v "F53")))) (test (alternating-test)) => (println "BUG HIT")) CLIPS> (reset) CLIPS> (agenda) 0 variant-bug: * For a total of 1 activation. CLIPS>
70x Documentation: Updated APG
63x Added with-open-file function from 64x branch
70x BPG and test suite updates
No.
70x Basic Programming Guide Updates
Section 8 of the Advanced Programming Guide has ten examples of adding UDFs. Here's the first one: 8.4.1 Euler’s Number This example demonstrates returning a mathematical constant, Euler’s number, from a user defined function. The AddUDF function call required in UserFunctions specifies that the CLIPS function name is e; the return value type is a float; the UDF does not expect any arguments; and the C implementation of the UDF is the function EulersNumber. void UserFunctions( Environment *env) {...
70x BPG updates