Difference between revisions of "Common Lisp Environment Configuration"

From copec
Jump to: navigation, search
Line 8: Line 8:
 
=== SBCL installed via package manager ===
 
=== SBCL installed via package manager ===
  
=== Initial ~/.emacs.d/init.el ===
+
=== Initial Emacs Configuration ===
 +
 
 +
====~/.emacs.d/init.el ====
 
<pre>
 
<pre>
 
;; ~/.emacs.d/init.el
 
;; ~/.emacs.d/init.el
Line 24: Line 26:
 
<pre>M-x package-install RET slime RET</pre>
 
<pre>M-x package-install RET slime RET</pre>
  
=== Append ~/.emacs.d/init.el ===
+
=== Append Emacs Configuration ===
 +
==== ~/.emacs.d/init.el ===
 
<pre>
 
<pre>
 
;; Setup load-path, autoloads and your lisp system
 
;; Setup load-path, autoloads and your lisp system
Line 61: Line 64:
 
   (when (probe-file quicklisp-init)
 
   (when (probe-file quicklisp-init)
 
     (load quicklisp-init)))
 
     (load quicklisp-init)))
 +
</pre>
 +
 +
=== Allow Quicklisp/ASDF to find my source ===
 +
==== ~/.config/common-lisp/source-registry.conf.d/projects.conf ====
 +
<pre>
 +
(:tree (:home "org.unaen.dev.src/lisp/"))
 
</pre>
 
</pre>

Revision as of 13:57, 18 August 2016

Overview

Development environment for CL including an IDE (Emacs+SLIME), implementation (SBCL), and library management (Quicklisp+ASDF)

Configuration (Steps)

Emacs installed via package manager

SBCL installed via package manager

Initial Emacs Configuration

~/.emacs.d/init.el

;; ~/.emacs.d/init.el
(require 'cl)
(require 'package) ;; You might already have this line
(add-to-list 'package-archives
             '("melpa" . "http://melpa.org/packages/") t)
(when (< emacs-major-version 24)
  ;; For important compatibility libraries like cl-lib
  (add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/")))
(package-initialize) ;; You might already have this line

Install SLIME

M-x package-install RET slime RET

Append Emacs Configuration

= ~/.emacs.d/init.el

;; Setup load-path, autoloads and your lisp system
;; Not needed if you install SLIME via MELPA
;;(add-to-list 'load-path "/usr/share/emacs/site-lisp/slime")
(require 'slime-autoloads)
(setq inferior-lisp-program "/usr/bin/sbcl")

(slime-setup '(slime-fancy slime-xref-browser slime-asdf slime-banner slime-repl slime-indentation slime-fuzzy slime-autodoc slime-presentations slime-presentation-streams))

(setq backup-directory-alist `(("." . "~/.saves")))
(setq backup-by-copying t)

Install Quicklisp

The only requirement for Quicklisp is that SBCL is installed (SBCL includes a sufficient ASDF version).

 $ curl -O https://beta.quicklisp.org/quicklisp.lisp

 $ sbcl --load quicklisp.lisp

 * (quicklisp-quickstart:install)

 * (ql:add-to-init-file)

 * (quit)

~/.sbclrc

;;; The following lines added by ql:add-to-init-file:
#-quicklisp
(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"
                                       (user-homedir-pathname))))
  (when (probe-file quicklisp-init)
    (load quicklisp-init)))

Allow Quicklisp/ASDF to find my source

~/.config/common-lisp/source-registry.conf.d/projects.conf

(:tree (:home "org.unaen.dev.src/lisp/"))