notes@isucs1.UUCP (12/08/84)
While working on a recent research project in Prolog-86 the following bug was discovered: After a RETRACT statement has been executed, any ASSERTs (or ASSERTZs, etc) that are encountered are ignored. If you use the trace facility, it will look like the ASSERT worked, but upon examination of the database, you will note that the ASSERT in fact did not work. This is a pretty major bug. Since there are different companies offering Prolog-86, I don't know if all versions of Prolog-86 are corrupted. The following predicate could be used to determine if your version is operating correctly: a :- assertz(tic) , assertz(tac) , retract(tac) , assertz(toe). The database should contain 'tic' and 'toe'. If only 'tic' is present, then you have a corrupted version. If anybody has come across any other Prolog-86 bugs, or knows if this particular bug has been corrected in newer versions, I would appreciate hearing from you. -- Jon Scheer USENET: isucs1!scheer CSNET: scheer@iowa-state