Working with Common Lisp under Windows

I usually use SBCL, slime and, emacs on Windows 11 OS. Compiling SBCL from source using the msys2 system has worked for years. Today, monthly source releases of SBCL typically include compiled Windows MSI.

The release of quicklisp, in 2010, has made finding the source for Common Lisp packages much easier. Zach Beane's quicklisp distribution of Common Lisp source software has made the difference. The ultralisp distribution allows work to be done between quicklisp monthly releases.

[Read More]

What is it about LISP?

LISP, Little Insignificant Stupid Parentheses.

LISP has been jokingly maligned for much of my life. Others write praises and dub it Alien Technology or a Secret Weapon.

LISP is a customizable compiler/interpreter where the source code modifies the compiler at run time.

Generally, the model a compiler/interpreter in these four phases:

  • Lexical analysis - scan for token
  • Syntax analysis - build Abstract Syntax Tree, the AST.
  • Optimization - analyze and refine the AST
  • Machine Coding - Excutute the AST or encode the AST for later execution.

In LISP the syntax is simple paren encoded lists called s-expressions. LISP source code is a paren encoded AST. The lexical READER strips away the parens under control of LISP functions and macros and a LISP data form, an s-expression, is produced. Because this data form is an AST of the program the AST can be optimized before it is converted to executable code. The data form is evaluated under LISP rules which are in many places customized by LISP function and macros from the LISP program source. The LISP PRINTER adds the parens format to output result form where necessary under the control of LISP functions and macros.

[Read More]

CL+SSL has cross platform method of specifiation of external binaries.

CL+SSL allows the user to directly specify the external binaries that is will use.

I propose the general adoption of two methods of foreign library location currently implemented by CL+SSL. Most .dll or .so files are located by heuristics, which are guesses. CL+SSL added a static feature check and a method for users to specify other binaries.

CL+SSL/src/reload.lisp has complex heuristics to define libssl and libcrypto.

Statically linked feature.

The recent post Distributing binaries with Common Lisp and foreign libraries illustrates how static linking with feature declaration is used.

[Read More]

SBCL on Windows, where is chocolatey package?

There is no current Chocolatey package from SBCL!

SBCL 2.0.0 on 12/29/2019 which include a windows installer. There is a homebrew package for SBCL (see https://formulae.brew.sh/formula/sbcl#default ) so MacOS has a current SBCL. When you check for Chocolatey package from SBCL (see https://chocolatey.org/packages/sbcl ) you find a package had a error 5 years ago.

The old chocolatey package is not maintained.

A new chocolatey package should be created and a maintence procedure should be created. The best strategy is to introduce a script chocolatey release script into the SBCL release code in the SBCL build source code.

[Read More]