]> git.donarmstrong.com Git - lilypond.git/blobdiff - guile18/lang/elisp/base.scm
Import guile-1.8 as multiple upstream tarball component
[lilypond.git] / guile18 / lang / elisp / base.scm
diff --git a/guile18/lang/elisp/base.scm b/guile18/lang/elisp/base.scm
new file mode 100644 (file)
index 0000000..6c785cb
--- /dev/null
@@ -0,0 +1,48 @@
+(define-module (lang elisp base)
+
+  ;; Be pure.  Nothing in this module requires symbols that map to the
+  ;; standard Guile builtins, and it creates a problem if this module
+  ;; has access to them, as @bind can dynamically change their values.
+  ;; Transformer output always uses the values of builtin procedures
+  ;; and macros directly.
+  #:pure
+
+  ;; {Elisp Primitives}
+  ;;
+  ;; In other words, Scheme definitions of elisp primitives.  This
+  ;; should (ultimately) include everything that Emacs defines in C.
+  #:use-module (lang elisp primitives buffers)
+  #:use-module (lang elisp primitives char-table)
+  #:use-module (lang elisp primitives features)
+  #:use-module (lang elisp primitives format)
+  #:use-module (lang elisp primitives fns)
+  #:use-module (lang elisp primitives guile)
+  #:use-module (lang elisp primitives keymaps)
+  #:use-module (lang elisp primitives lists)
+  #:use-module (lang elisp primitives load)
+  #:use-module (lang elisp primitives match)
+  #:use-module (lang elisp primitives numbers)
+  #:use-module (lang elisp primitives pure)
+  #:use-module (lang elisp primitives read)
+  #:use-module (lang elisp primitives signal)
+  #:use-module (lang elisp primitives strings)
+  #:use-module (lang elisp primitives symprop)
+  #:use-module (lang elisp primitives syntax)
+  #:use-module (lang elisp primitives system)
+  #:use-module (lang elisp primitives time)
+
+  ;; Now switch into Emacs Lisp syntax.
+  #:use-syntax (lang elisp transform))
+
+;;; Everything below here is written in Elisp.
+
+(defun load-emacs (&optional new-load-path debug)
+  (if debug (message "load-path: %s" load-path))
+  (cond (new-load-path
+         (message "Setting load-path to: %s" new-load-path)
+         (setq load-path new-load-path)))
+  (if debug (message "load-path: %s" load-path))
+  (scheme (read-set! keywords 'prefix))
+  (message "Calling loadup.el to clothe the bare Emacs...")
+  (load "loadup.el")
+  (message "Guile Emacs now fully clothed"))