1 |
(define-module (lang elisp base) |
(define-module (lang elisp base) |
2 |
|
|
3 |
;; Be pure. Nothing in this module requires most of the standard |
;; Be pure. Nothing in this module requires symbols that map to the |
4 |
;; Guile builtins, and it creates a problem if this module has |
;; standard Guile builtins, and it creates a problem if this module |
5 |
;; access to them, as @bind can dynamically change their values. |
;; 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. |
8 |
#:pure |
#:pure |
9 |
|
|
|
;; But we do need a few builtins - import them here. |
|
|
#:use-module ((guile) #:select (@fop @bind nil-cond)) |
|
|
|
|
10 |
;; {Elisp Primitives} |
;; {Elisp Primitives} |
11 |
;; |
;; |
12 |
;; In other words, Scheme definitions of elisp primitives. This |
;; In other words, Scheme definitions of elisp primitives. This |
33 |
;; Now switch into Emacs Lisp syntax. |
;; Now switch into Emacs Lisp syntax. |
34 |
#:use-syntax (lang elisp transform)) |
#:use-syntax (lang elisp transform)) |
35 |
|
|
|
;(use-modules (lang elisp transform)) |
|
|
;(read-set! keywords 'prefix) |
|
|
;(set-module-transformer! (current-module) transformer) |
|
|
|
|
36 |
;;; Everything below here is written in Elisp. |
;;; Everything below here is written in Elisp. |
37 |
|
|
38 |
(defun load-emacs () |
(defun load-emacs () |
39 |
|
(scheme (read-set! keywords 'prefix)) |
40 |
(message "Calling loadup.el to clothe the bare Emacs...") |
(message "Calling loadup.el to clothe the bare Emacs...") |
41 |
(load "loadup.el") |
(load "loadup.el") |
42 |
(message "Guile Emacs now fully clothed")) |
(message "Guile Emacs now fully clothed")) |