Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site isucs1.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxj!houxm!ihnp4!stolaf!umn-cs!isucs1!notes From: notes@isucs1.UUCP Newsgroups: net.lang.prolog Subject: Prolog-86 bug. Message-ID: <217@isucs1.UUCP> Date: Sat, 8-Dec-84 02:01:56 EST Article-I.D.: isucs1.217 Posted: Sat Dec 8 02:01:56 1984 Date-Received: Mon, 10-Dec-84 03:17:25 EST Sender: notes@isucs1.UUCP Organization: Iowa State University Lines: 32 Nf-ID: #N:isucs1:22300001:000:1197 Nf-From: isucs1!scheer Dec 7 01:50:00 1984 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