-
Notifications
You must be signed in to change notification settings - Fork 0
/
build-allegro-exe.cl
92 lines (69 loc) · 3.26 KB
/
build-allegro-exe.cl
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
; NOTE: An Allegro CL dynamic runtime license is needed in order for this to
; create an Allegro CL ACL2 application acl2.exe in the bin/ directory.
; See target allegro-app in GNUmakefile.
#|
Execute the following form from the ACL2 sources directory, setting the
variable *acl2-application-distributed-books-dir* if necessary as shown below
(probably not necessary).
echo '(generate-application "acl2.exe" (or (sys::getenv "ACL2_BIN_DIR") "app/") (quote ("../build-image.cl")) :runtime :dynamic :include-compiler t)' \
| lisp >& generate-application.log&
Then look at generate-application.log and see if it's OK, especially near the end.
|# ; |
; The file our-develenv.cl will not be distributed with ACL2. It is obtained
; from a path such as <path-to-allegro>/AllegroCL-7.0/acl70/develenv.cl, then
; commenting out those not allowed in runtime images, as suggested in the above
; file.
(load "our-develenv.cl")
(load "init.lisp")
(in-package "ACL2")
; The sources had better already be compiled! The following form just informs
; ACL2 of that fact.
(note-compile-ok)
; We are attempting to replicate the effects of this form from the Makefile:
; (acl2::save-acl2 (quote (acl2::initialize-acl2 (quote acl2::include-book) acl2::*acl2-pass-2-files* t)) "${PREFIXsaved_acl2}")
; From save-acl2
(load-acl2)
(setq *saved-build-date* (saved-build-date-string))
; It is legal to replace nil below by, e.g., "/u/acl2/v2-9/acl2-sources/books/".
(defconstant *acl2-application-distributed-books-dir* nil)
(initialize-acl2 (quote include-book) *acl2-pass-2-files* *acl2-application-distributed-books-dir*)
; Adapted from save-acl2-in-allegro
(setq *saved-mode*
(quote (initialize-acl2 (quote include-book)
*acl2-pass-2-files*
*acl2-application-distributed-books-dir*)))
(tpl:setq-default *PACKAGE* (find-package "ACL2"))
(setq EXCL:*RESTART-INIT-FUNCTION* 'acl2-default-restart)
(load "allegro-acl2-trace.lisp")
; Copied exactly from acl2-init.lisp:
(defvar *acl2-default-restart-complete* nil)
; Copied exactly from acl2-init.lisp:
(defun acl2-default-restart ()
(if *acl2-default-restart-complete*
(return-from acl2-default-restart nil))
(format t *saved-string*
*copy-of-acl2-version*
*saved-build-date*
(cond (*saved-mode*
(format nil "~% Initialized with ~a." *saved-mode*))
(t ""))
(eval '(latest-release-note-string)) ; avoid possible warning
)
(maybe-load-acl2-init)
(in-package "ACL2")
; The following two lines follow the recommendation in Allegro CL's
; documentation file doc/delivery.htm.
#+allegro (tpl:setq-default *package* (find-package "ACL2"))
#+allegro (rplacd (assoc 'tpl::*saved-package*
tpl:*default-lisp-listener-bindings*)
'common-lisp:*package*)
#+allegro (lp)
#+openmcl (eval '(lp)) ; using eval to avoid compiler warning
; See the comment in save-acl2-in-lispworks for why we need the following call.
#+lispworks (mp:initialize-multiprocessing)
;;Lispworks 4.2.0 no longer recognizes the following:
;;#+lispworks (lw::extend-current-stack 1000)
(setq *acl2-default-restart-complete* t)
nil)
; Now optionally include some books.
;(load "/home/kaufmann/foo.fasl")