Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sun-barr!newstop!sun!quintus!dave From: dave@quintus.UUCP (David Bowen) Newsgroups: comp.lang.prolog Subject: Re: Deterministic predicate question Message-ID: <1420@quintus.UUCP> Date: 28 Aug 90 18:53:41 GMT References: <90239.224751F0O@psuvm.psu.edu> <3631@goanna.cs.rmit.oz.au> Reply-To: dave@quintus.UUCP (David Bowen) Organization: Quintus Computer Systems, Inc. Lines: 18 In article <3631@goanna.cs.rmit.oz.au> Richard A. O'Keefe writes: >Many Prolog compilers operate a clause at a time (in some, such as ALS >Prolog and QP3.0, assert _is_ "compile"), so won't spot this. It is not correct that `assert is "compile"' in Quintus Prolog Release 3.0. Dynamic code in Quintus Prolog continues to be represented in a form that is optimized for speed of assert/retract rather than for speed of execution. The change that may have misled Richard is that we no longer distinguish between "compile" and "consult"; that is, there is no special way that you have to load your code in order to be able to debug it - all code is debuggable. Since release 2.5, it is possible to access the clause-compiler via a built-in predicate called multifile_assertz which compiles a clause and adds it to the end of a predicate. There is no corresponding retract operation (only abolish). Also, multifile_assertz is not available in runtime systems, since the built-in compiler is not included in those systems.