1 (define-module (lang elisp base)
3 ;; Be pure. Nothing in this module requires symbols that map to the
4 ;; standard Guile builtins, and it creates a problem if this module
5 ;; has access to them, as @bind can dynamically change their values.
6 ;; Transformer output always uses the values of builtin procedures
7 ;; and macros directly.
12 ;; In other words, Scheme definitions of elisp primitives. This
13 ;; should (ultimately) include everything that Emacs defines in C.
14 #:use-module (lang elisp primitives buffers)
15 #:use-module (lang elisp primitives char-table)
16 #:use-module (lang elisp primitives features)
17 #:use-module (lang elisp primitives format)
18 #:use-module (lang elisp primitives fns)
19 #:use-module (lang elisp primitives guile)
20 #:use-module (lang elisp primitives keymaps)
21 #:use-module (lang elisp primitives lists)
22 #:use-module (lang elisp primitives load)
23 #:use-module (lang elisp primitives match)
24 #:use-module (lang elisp primitives numbers)
25 #:use-module (lang elisp primitives pure)
26 #:use-module (lang elisp primitives read)
27 #:use-module (lang elisp primitives signal)
28 #:use-module (lang elisp primitives strings)
29 #:use-module (lang elisp primitives symprop)
30 #:use-module (lang elisp primitives syntax)
31 #:use-module (lang elisp primitives system)
32 #:use-module (lang elisp primitives time)
34 ;; Now switch into Emacs Lisp syntax.
35 #:use-syntax (lang elisp transform))
37 ;;; Everything below here is written in Elisp.
39 (defun load-emacs (&optional new-load-path debug)
40 (if debug (message "load-path: %s" load-path))
42 (message "Setting load-path to: %s" new-load-path)
43 (setq load-path new-load-path)))
44 (if debug (message "load-path: %s" load-path))
45 (scheme (read-set! keywords 'prefix))
46 (message "Calling loadup.el to clothe the bare Emacs...")
48 (message "Guile Emacs now fully clothed"))