HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
Clozure
ccl
Common Lisp2017–2025
Clozure / ccl

ccl

Clozure Common Lisp

12Distinct people
17Mentions
0Explicit recommenders
969GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Clozure Common Lisp

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year17 dated mentions

Observed mentions: 2017-04-12 17:40:39 UTC to 2025-02-16 22:48:28 UTC.

0123452017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments20172018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2025

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC110
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC202
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC202
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC000
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC000
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC211
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC312
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC505
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC202

What Hacker News says

17 sources
> The ability to evaluate code interactively without recompilation SBCL and other implementations compile code to machine code then execute it. That is to say, when a form is submitted to the REPL, the form is not interpreted, but first compiled then executed. The reason execution finishes quickly is because compilation finishes quickly. There are some implementations, like CCL, with a special interpreter mode exclusively for REPL-usage.[1] However, at least SBCL and ECL will compile code, not interpret. [1] https://github.com/Clozure/ccl/blob/v1.13/level-1/l1-readloo...
In Porting SBCL to the Nintendo Switch
> I assume this was some toy compiler I dont know the definition of "toy compiler", but compare the following (x86 backend vs arm64 backend) https://github.com/Clozure/ccl/blob/d960a0e/compiler/X86/x86... https://github.com/Clozure/ccl/blob/d960a0e/compiler/ARM64/a... I would argue the former is a lot more complex compared to the functional equivalent in arm64 The specific extension to allow e.g. minss would look something like this (def-x86-opcode minss ((:regxmm :insert-xmm-rm) (:regxmm :insert-xmm-reg)) #x0f5d #o300 #x0 #xf3) Now try doing the same for e.g. movsxd, and you will have to be careful with the ModR/M byte, due to the VEX prefix changing semantics.
In ARM or x86? ISA Doesn't Matter (2021)
Lisp must be read outside->in to understand what it is saying. Given (foo (a) (b c)), if you don't know what foo is and just start reading (b c), which is inside, hoping that later you can work out what is foo, you could be going down a blind alley. foo could be a macro or special operator which entirely controls what (b c) means, and so if you have no idea what foo is, it follows that your guess about what (b c) means could be completely wrong. To understand what is calculated in Lisp, given that you understand what the syntax means, the evaluation is inside->out (that is, if the syntax is an ordinary expression made of nested function calls, and not something with a custom evaluation order). That's no different from math. In any languages that have math-like nested expressions with bracketing, you have inside-out evaluation. The alterna
Read the rest
tive are catenative languages and such, which have never been mainstream. There are assembly languages which go line by line. Imperative languages with statements and expressions tend to have small expressions where evaluation is followed inside-out; the rest of the control flow is just top down, with some forward and backward skips. Lisp has all of the above in it. Lisp can be assembly language. For instance, in this source file from Clozure Common Lisp: https://github.com/Clozure/ccl/blob/master/level-0/ARM/arm-h... (defarmlapfunction fast-mod-3 ((number arg_x) (divisor arg_y) (recip arg_z)) (mov imm0 (:lsr number (:$ arm::fixnumshift))) (smull imm2 imm1 imm0 recip) (mul imm0 imm1 divisor) (sub number number imm0) (sub number number divisor) (mov imm0 (:asr number (:$ (1- arm::nbits-in-word)))) (and divisor divisor imm0) (add arg_z number divisor) (bx lr)) It's just ARM code, ending in a "bx lr" and everything. The Lisp can be anything requires a jump in intellectual maturity and mental flexibility. You have to approach everything you might see in an unfamiliar Lisp project with an open mind, prepared for anything. Now that's true in any large system --- but not in a way where it is rolled into one unifying syntax. If a non-Lisp project has ARM assembly in it, it might just be conventional syntax. So you are hit on the head with a hammer: "this is obviously not the Foo language; it looks totally different". Suppose you are some newbie and don't know what ARM assembly language is; you still know that the files are something special and different. If you're a newbie not knowing what ARM assembly is and see that in Lisp code, you just think that it's just more indecipherable Lisp weirdness. You just barely learned car and cdr and now you have (bx lr) and smull. Man, Lisp is weird!
In The Hidden Origins of Lisp (2015)

Ask HN: My experience with Common Lisp. Is there a better way?

I'm posting my experience hoping someone will tell me I'm doing it wrong and tell me a better way. I'm aware that I could use Racket or Clojure but I really wanted to try Common Lisp as a historically important language. 2 days ago I posted a link that looked really interesting as a fun way to learn Common Lisp. See https://news.ycombinator.com/item?id=29856110 or Sketch https://github.com/vydd/sketch Turns out it was previously posted and got good feedback so I decided to try it. I use Windows. There were several Common Lisp installations to choose from. I choose Clozure because it appeared to be developed by Mac users, so I thought it might to have features I liked. Clozure installation on Windows was fine. However, I ran into problems installing sketch because I had to build Simple Direct Media components https://www.libsdl.org/ and it
Read the rest
wasn't clear ahead of time which ones. I didn't have MinGW, MSYS2 or Cygwin setup so instead I rooted around until I found SDL2.dll and libtiff.dll. Unfortunately, I couldn't find libffi.dll so had to build it. I installed MSYS2 but failed. Cygwin same thing. This is my fault as I never learned how to do this. I installed Steel Bank Common Lisp without problem hoping it might have what Sketch needs but it doesn't I gave up on Windows proper and installed WSL2 because I'm on a developers preview of Windows 11 and had read that it does graphics now. I installed Ubuntu 20 into it, but couldn't get it to work. I had the same problem building SDL. I switched to my VMWare installation of Ubuntu 20 and failed there too, but I suspected there might be a conflict, so I installed a fresh copy of Ubuntu 20 in a new virtual machine. It worked! Very nice. I can do graphics with Common Lisp. I prefer not using VMWare so I am currently learning the difference between MSYS2, MinGW, Cygwin, and GnuMake32. I expect to have a Windows version working by the end of the day. I wondering if I should do a Docker image or maybe there is something better now? Last time I used Docker it seemed more difficult than it need to be. // These are the steps I took to make it work on Ubuntu. I don't use Linux that often so I'm sure there is a better way like combining some of these commands // Install dev tools sudo apt-get update -y sudo apt install build-essential -y sudo apt-get install -y m4 sudo apt-get install -y git sudo apt-get install -y libsdl2-dev sudo apt-get install -y libsdl2-image-dev sudo apt-get install -y libsdl2-ttf-dev sudo apt-get install -y curl // install Clozure git clone https://github.com/Clozure/ccl.git ccl-dev curl -L -O https://github.com/Clozure/ccl/releases/download/v1.12.1/linu xx86.tar.gz cd ccl-dev tar xf ../linuxx86.tar.gz sudo cp ./scripts/ccl64 /usr/local/bin cd /usr/local/bin sudo chmod +rwx ccl64 sudo chown mike ccl64 sudo chgrp mike ccl64 sudo mv ccl64 ccl code . // start vscode put path to home ccl in var CCL_DEFAULT_DIRECTORY=/home/mike/ccl-dev cd ~/ccl-dev ccl to start REPL (rebuild-ccl :full t) (quit) // install quicklisp into ccl-dev curl -O https://beta.quicklisp.org/quicklisp.lisp ccl --load quicklisp.lisp (quicklisp-quickstart:install) (ql:add-to-init-file) (quit) // start sketch cd to ccl-dev directory type 'ccl' to start Clozure REPL (load "quicklisp.lisp") (ql:quickload :sketch) (ql:quickload :sketch-examples) (make-instance 'sketch-examples:hello-world) (make-instance 'sketch-examples:sinewave) (make-instance 'sketch-examples:brownian) (make-instance 'sketch-examples:life)
1 points · Open discussion
I am coming to realize that ARMv5 and earlier are “dying” in the many projects are slowly removing support for them (e.g. node.js), or weren’t initially supported and the line in the sand is drawn at ARMv6 or later (likely due to the popularity of the early raspberry pi’s), for example with clozure Common Lisp: https://github.com/Clozure/ccl/issues/190#issuecomment-46068... Perhaps I can use something like this to port the ARMv6 assembly backwards to ARMv5?
In RetDec: open-source machine-code decompiler based on LLVM

Showing the 15 most recent of 17 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.