1;;; Guile Emacs Lisp 2 3;; Copyright (C) 2001, 2009, 2010, 2018 Free Software Foundation, Inc. 4 5;;;; This library is free software; you can redistribute it and/or 6;;;; modify it under the terms of the GNU Lesser General Public 7;;;; License as published by the Free Software Foundation; either 8;;;; version 3 of the License, or (at your option) any later version. 9;;;; 10;;;; This library is distributed in the hope that it will be useful, 11;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of 12;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13;;;; Lesser General Public License for more details. 14;;;; 15;;;; You should have received a copy of the GNU Lesser General Public 16;;;; License along with this library; if not, write to the Free Software 17;;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 19;;; Code: 20 21(define-module (language elisp spec) 22 #:use-module (language elisp compile-tree-il) 23 #:use-module (language elisp parser) 24 #:use-module (system base language) 25 #:use-module (system base compile) 26 #:use-module (system base target) 27 #:export (elisp)) 28 29(define-language elisp 30 #:title "Emacs Lisp" 31 #:reader (lambda (port env) (read-elisp port)) 32 #:printer write 33 #:compilers `((tree-il . ,compile-tree-il))) 34 35;; Compile and load the Elisp boot code for the native host 36;; architecture. We must specifically ask for native compilation here, 37;; because this module might be loaded in a dynamic environment where 38;; cross-compilation has been requested using 'with-target'. For 39;; example, this happens when cross-compiling Guile itself. 40(with-native-target 41 (lambda () 42 (compile-and-load (%search-load-path "language/elisp/boot.el") 43 #:from 'elisp))) 44