[net.lang.prolog] Prolog-86 bug.

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