File: SET-COMPILE-FNS.html

package info (click to toggle)
acl2 3.1-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 36,712 kB
  • ctags: 38,396
  • sloc: lisp: 464,023; makefile: 5,470; sh: 86; csh: 47; cpp: 25; ansic: 22
file content (59 lines) | stat: -rw-r--r-- 3,091 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<html>
<head><title>SET-COMPILE-FNS.html  --  ACL2 Version 3.1</title></head>
<body text=#000000 bgcolor="#FFFFFF">
<h2>SET-COMPILE-FNS</h2>have each function compiled as you go along.
<pre>Major Section:  <a href="EVENTS.html">EVENTS</a>
</pre><p>


<pre>
Example Forms:
(set-compile-fns t)    ; new functions compiled after DEFUN
(set-compile-fns nil)  ; new functions not compiled after DEFUN
</pre>

Note: This is an event!  It does not print the usual event summary
but nevertheless changes the ACL2 logical <a href="WORLD.html">world</a> and is so recorded.<p>

Also see <a href="COMP.html">comp</a>, because it may be more efficient in some Common
Lisps to compile many functions at once rather than to compile each
one as you go along.
<p>

<pre>
General Form:
(set-compile-fns term)
</pre>

where <code>term</code> is a variable-free term that evaluates to <code>t</code> or <code>nil</code>.
This macro is equivalent to

<pre>
(table acl2-defaults-table :compile-fns term)
</pre>

and hence is <code><a href="LOCAL.html">local</a></code> to any <a href="BOOKS.html">books</a> and <code><a href="ENCAPSULATE.html">encapsulate</a></code> <a href="EVENTS.html">events</a>
in which it occurs; see <a href="ACL2-DEFAULTS-TABLE.html">acl2-defaults-table</a>.  However, unlike the above
simple call of the <code><a href="TABLE.html">table</a></code> event function (see <a href="TABLE.html">table</a>), no output results
from a <code>set-compile-fns</code> event.<p>

<code>Set-compile-fns</code> may be thought of as an event that merely sets a
flag to <code>t</code> or <code>nil</code>.  The flag's effect is felt when functions
are defined, as with <code><a href="DEFUN.html">defun</a></code>.  If the flag is <code>t</code>, functions are
automatically compiled after they are defined, as are their
executable counterparts (see <a href="EXECUTABLE-COUNTERPART.html">executable-counterpart</a>).
Otherwise, functions are not automatically compiled.  Because
<code>set-compile-fns</code> is an event, the old value of the flag is
restored when a <code>set-compile-fns</code> event is undone.<p>

Even when <code>:set-compile-fns t</code> has been executed, functions are not
individually compiled when processing an <code><a href="INCLUDE-BOOK.html">include-book</a></code> event.  If
you wish to include a book of compiled functions, we suggest that
you first certify it with the <a href="COMPILATION.html">compilation</a> flag set
(see <a href="CERTIFY-BOOK.html">certify-book</a>) or else compile the book by supplying the appropriate
<code>load-compiled-file</code> argument to <code><a href="INCLUDE-BOOK.html">include-book</a></code>.  More generally,
<a href="COMPILATION.html">compilation</a> via <code>set-compile-fns</code> is suppressed when the <a href="STATE.html">state</a>
global variable <code><a href="LD-SKIP-PROOFSP.html">ld-skip-proofsp</a></code> has value <code>'</code><code><a href="INCLUDE-BOOK.html">include-book</a></code>.
<br><br><br><a href="acl2-doc.html"><img src="llogo.gif"></a> <a href="acl2-doc-index.html"><img src="index.gif"></a>
</body>
</html>