From e1220db84b5b00c83bc71bd2c6c13b31bd52891f Mon Sep 17 00:00:00 2001
From: vindarel Emacs is the modern open source Lisp IDE. Its history and quirks extend back to the Lisp machines and early editors such as TECO. It is considered difficult to initially learn, and often disparaged due to the antiquated interface, but is generally thought the best open source free IDE for Common Lisp. In order to use emacs, there are two variants; XEmacs and GNU Emacs. I usually use GNU emacs, so I’ll talk about it here. In order to get it, you can obtain it from the GNU. Windows, Linux, and OSX versions are available. It’s also available via most Linux distributions package repositories. The most recent version is 24; 23 is also recent and works well with the Superior Lisp Interaction Mode for Emacs, a.k.a SLIME. New users can find many resources online for Emacs, including a well-written help system! An emacs tutorial can be found here, and the GNU FAQ is also available Emacs is the modern open source Lisp IDE. Its history and
+quirks extend back to the Lisp machines and early editors such as
+TECO. It is considered difficult to initially learn, and often disparaged
+due to the antiquated interface, but is generally thought the best
+open source free IDE for Common Lisp. In order to use emacs, there are two variants; XEmacs and GNU
+Emacs. I usually use GNU emacs, so I’ll talk about it here. In order to get it, you can obtain it from
+the GNU. Windows,
+Linux, and OSX versions are available. It’s also available via
+most Linux distributions package repositories. The most recent version
+is 24; 23 is also recent and works well with the Superior Lisp
+Interaction Mode for Emacs, a.k.a SLIME. New users can find many resources online for Emacs, including a
+well-written help system! An emacs tutorial can be
+found here,
+and the GNU FAQ is
+also available Usually you want to get SLIME installed for your development. If you’re using emacs23, SLIME can be found here. Emacs24 has it in its package manager ( I like to use the following elisp to configure SLIME: When you load a Lisp file and want to engage SLIME, Paredit is a popular Lisp editing mode that the engaged student will hear about. The author recommends getting comfortable with emacs and SLIME before using Paredit, it provides several automatic s-expression editing features that surprised him on first use. When you have configured your SLIME in a This provides an interactive view into Common Lisp. You can evaluate functions you are writing in the source file and immediately use them in the REPL. This provides a very fast “code and test” facility. When you load a Lisp file and want to engage SLIME, Paredit is a popular Lisp editing mode that the engaged student
+will hear about. The author recommends getting comfortable with emacs
+and SLIME before using Paredit, it provides several automatic
+ s-expression editing features that surprised him on first use. When you have configured your SLIME in a This provides an interactive view into Common Lisp. You can
+evaluate functions you are writing in the source file and immediately
+use them in the REPL. This provides a very fast “code and
+test” facility. The canonical free IDE is undoubtably emacs, but it is difficult for newbies. The author has had good experience with messing around on LispWorks. Portacle - a portable and multiplatform Common Lisp development environment. It packages SBCL, Emacs25, Slime, Quicklisp and Git altogether. No installation needed. emacs/SLIME - Maintained. Articulate-Lisp emacs article vim/SLIME - Maintained. McClide (OSX) - Maintained.Emacs
M-x package-list-packages
).
+
(require 'cl)
(setq inferior-lisp-program "/usr/local/bin/sbcl") ;modify to taste
(require 'slime)
@@ -29,9 +51,22 @@
Emacs
(require 'paren)
(show-paren-mode t)
Once you are set up…
-M-x slime
will do the trick.fancy
fashion, you will find a SLIME REPL (Read Evaluate Print Loop) buffer created in your Emacs window.
+
+M-x
+ slime
will do the trick.fancy
+fashion, you will find a SLIME REPL (Read Evaluate Print Loop) buffer
+ created in your Emacs window.
From 722e74a9f917cf589dadb88437d18c3c0e99f40f Mon Sep 17 00:00:00 2001
From: vindarel IDE Selection
Open Source
+
Emacs
due to the antiquated interface, but is generally thought the best
open source free IDE for Common Lisp.
In order to use emacs, there are two variants; XEmacs and GNU Emacs. I usually use GNU emacs, so I’ll talk about it here.
@@ -29,6 +40,8 @@Usually you want to get SLIME installed for your development.
If you’re using emacs23, SLIME can be found here.
From b526e4aa4c64cc2be6d422a7425ebd5dfd7f9e40 Mon Sep 17 00:00:00 2001 From: vindarelNew users can find many resources online for Emacs, including a @@ -45,7 +45,8 @@
Usually you want to get SLIME installed for your development.
If you’re using emacs23, SLIME can be found here.
-Emacs24 has it in its package manager (M-x package-list-packages
).
Emacs24 and onwards has it in its package manager (M-x package-list-packages
).
I like to use the following elisp to configure SLIME:
From bb7289913c9b886cf88a88ff00f296076b87aa32 Mon Sep 17 00:00:00 2001 From: vindarelIn general, Lisp systems are designed around a front end to do development with. However, without an IDE, usually the best usability is to use a system with working arrow keys in the terminal. The author has investigated the CCL and SBCL systems using a plugin called Linedit; this should provide a ramp-up experience.
Using emacs as an IDE and SBCL (Steel Bank Common Lisp) is the most popular choice at this point in time for open source development. Other common systems are CCL (Clozure Common Lisp), CLISP, ABCL (Armed Bear Common Lisp) and ECL (Embeddable Common Lisp). Less common systems exist. This author recommends SBCL or CCL for beginners who are comfortable on the command line, but would like to point out that each Lisp system provides value within the general Common Lisp ecosystem.
+ +Note that you can get SBCL packaged with Emacs, Slime, Quicklisp and +Git with Portacle, +a portable and multiplatform Common Lisp development environment. +LispWorks and Allegro Common Lisp are the currently maintained commercial implementations with IDEs. They provide free limited-functionality personal editions. This author has had good experiences with LispWorks Personal Edition; it has limitations on its use, however.
Mobile developers may find mocl a very interesting product in this space; it is a recently (2013) released Common Lisp system designed for interoperation with the base systems.
From 96eecb671f7b57774d035f9deb94ba72bd3d5c73 Mon Sep 17 00:00:00 2001 From: vindarelAlexandria - a library of standard common functions.
bordeaux-threads - a os threading library.
drakma - http client
dexador - http client
cl-ppcre - regular expression library
yason - a json reader
closer-mop - a library for managing metaobjects
Some of these packages are community-recognized standards; others are simply the best the author has found. All are available on Quicklisp..
Alexandria - a library of standard common functions.
Alexandria - a library of standard common functions.
bordeaux-threads - a os threading library.
dexador - http client
dexador - http client
cl-ppcre - regular expression library
yason - a json reader
yason - a json reader
closer-mop - a library for managing metaobjects
metabang-bind - a more sophisticated LET
anaphora - standard package of exotic macros
anaphora - standard package of exotic macros
babel - management of text encodings
osicat - operating-system interface routines
external-program - runs external programs.
iterate - a “more lispy” loop facility.
log5 - a log facility
parenscript - a CL -> javascript emitter
parenscript - a CL -> javascript emitter
lparallel - a library for parallel programming
usocket - TCP socket library
Typically the Lisp forms such as LET
, DEFUN
, and MULTIPLE-VALUE-BIND
contain something known as an “implicit progn”. The implicit progn denotes a list of commands in a block structure (see PROGN for details). However, IF
does not have this, which routinely is a gotcha to the author.
Common Lisp contains a macro facility - DEFMACRO
. Generally, newbies are not advised to write their own macros, as they are powerful and can cause unexpected results.
When setting a variable, use SETF, not SETQ or SET. Those commands operate at a lower level of abstraction and are not designed for everyday use.
+Some of these packages are community-recognized standards; others are simply the best the author has found. All are available on Quicklisp..
+ +Some of these packages are community-recognized standards; others are simply the best the author has found. All are available on Quicklisp.
+ +See also the Awesome Common Lisp list and the State of the Common Lisp ecosystem article.
+Alexandria - a library of standard common functions.
bordeaux-threads - a os threading library.
in no particular order
In order to use emacs, there are two variants; XEmacs and GNU -Emacs. I usually use GNU emacs, so I’ll talk about it here.
+In order to get it, you can obtain it from -the GNU. Windows, + its home page. Windows, Linux, and OSX versions are available. It’s also available via most Linux distributions package repositories. The most recent version is 25; 23 still works well with the Superior Lisp Interaction Mode for Emacs, a.k.a SLIME.
New users can find many resources online for Emacs, including a -well-written help system! An emacs tutorial can be -found here, -and the GNU FAQ is -also available
+well-written help system! An emacs tutorial + can be found here, +and the GNU Emacs FAQ is +also available.McClide (OSX) - Maintained.
Cusp/Eclipse - Unmaintained. Articulate-Lisp cusp article
Ufasoft (Windows) - Unmaintained.
Atom-SLIME - Maintained. Integrates SLIME with Atom! This package allows you to interactively develop Common Lisp code, helping turn Atom into a full-featured Lisp IDE.
One of the key problems in onboarding developers to use modern Common Lisp is the vertical wall of difficulty. Things that are routinely problematic: