Got the NES sound chip emulator working in pure #CommonLisp tonight
Also, as you can see, the port of Benben is coming along nicely. But uhh, ignore the typo I made at first l
Got the NES sound chip emulator working in pure #CommonLisp tonight
Also, as you can see, the port of Benben is coming along nicely. But uhh, ignore the typo I made at first l
Having packages/modules be defined as single files is a fundamental programming language design error. #Python, but also #Erlang, #Scheme, the misguided package-inferred-system extension for #CommonLisp… Because no one wants a 10k lines file mixing dozens of concepts, you end up with a multitude of small packages for no good reason.
At least in Erlang you can just use whatever was loaded without manually importing every single module you need everywhere, but Python is as usual the worst.
Quite happy with myself. Recreated the ubiquitious #supercollider fork function in #commonlisp with this neat little macro:
(defmacro fork (&rest func)
`(bt:make-thread
(lambda ()
,@func
(force-output))))
It is very well known that
log -1 / √-1 = π
(Euler's equality).
Does the left-hand side evaluate to 3.14... or to 3.14...+0.0i in your computing environment of choice?
In Common Lisp terms:
(/ (log -1) (sqrt -1)) => 3.14... or #C(3.14... 0.0)?
This gives a very very #emacs -y experience in the browser: https://lisperator.net/blog/slip-a-lisp-system-in-your-browser/
> This is a #Lisp implementation (#CommonLisp wannabe, but oh well, we're still far from that) that runs in a #JavaScript VM.
Very much inspired by Common Lisp and Emacs/SLIME.
There's a "crazy clock demo" that runs in a canvas window.
Impressing.
tfw your Common Lisp program is using less CPU than your designed-the-same equivalent Crystal program...
I have my CPU in powersave mode, capped to about 1.9 GHz. It's using 5-10% less CPU decoding and resampling a FLAC file with the sinc-best resampler.
Either SBCL is just that good of a compiler, SIMD just helps that much, or a bit of both. Probably a bit of both.
#CommonLisp
#LispyGopherClimate #lisp #ai #peertube
https://communitymedia.video/w/7KpDL8dmSMN7zH6TxEgQbb
Resurrected Sandewall's #softwareIndividuals from 2014.
This episode is dedicated to general purpose interaction in the software individual / #CAISOR paradigm.
Next will be porting the dynamicwindows zetalisp zwei to McCLIM #commonlisp.
@prahou #unix_surrealism next #openbsd release art??
Also @pesco and @dougmerritt on IPE '84
co guest and join in on #lambdaMOO as always!
The Barium experiment. ~ Tom Szilagyi. https://tomscii.sig7.se/2025/04/The-Barium-Experiment #CommonLisp
Periodic reminder that #commonlisp is awesome! Delving more and more into the loop construct. It's amazing what is possible to do with it...
@pedromj seeing your iterative and recursive ones helped me see what I was /meant/ to do with series (which should be lazy and declarative):
``` #commonLisp #series
(defun better-fibs
(n &optional (x-1 0) (x-0 1))
(let* ((range (scan-range))
(fibonacci-series
(#M(lambda (n)
(declare (ignore n))
(psetq x-1 x-0
x-0 (+ x-1 x-0))
(values x-0))
range)))
(collect-nth n fibonacci-series)))
```
CL-USER> (better-fibs 4)
8
(Edit: (scan-range) on its own is just 𝗡)
@amoroso #clos #commonlisp #oop #lisp there was still a choice between various proposals then...
But the actual CLOS was not far away - the standard proposal was published in September 1988: https://dl.acm.org/toc/sigplan/1988/23/SI
Available above as a PDF. The final version was then published with the ANSI CL standard.
As installments of the ARTIFICIAL INTELLIGENCE column by Ernest Tello, in 1987 Dr. Dobb's Journal published a series of articles on OOP and object-oriented extensions for Common Lisp and Scheme. Back then CLOS was not yet on the radar but the Common Lisp extensions the articles covered already contained the main ideas of CLOS.
https://archive.org/details/1987-03-dr-dobbs-journal/page/126/mode/2up?view=theater
https://archive.org/details/1987-04-dr-dobbs-journal/page/146/mode/2up?view=theater
https://archive.org/details/1987-05-dr-dobbs-journal/page/132/mode/2up?view=theater
https://codeberg.org/tfw/pawn-75#headline-13
#Sandewall #SoftwareIndividuals
creating a knowledgebase, setting it as active, creating a file and
Minimally defining
- an entity that provides a #lisp function in the host #commonLisp
- an entity that provides a new CLE verb in the host #commonLisp
baby steps
I realized that I should have two #slime repls open, one running a Sandewallian software individual clisp-repl and one McCLIM running ecl-repl (or what have you) and things are getting weird.
This is because the software individual with a beliefbase about using McCLIM is /not/ the McCLIM lisp image itself, it is a separate lisp image that contains beliefs and actions for using McCLIM in another image. Which is trivial in #emacs with slime. #commonLisp #notThatCommonThoughTeeBeeAitch
Made myself a tiny little package to control the best #daw in the world #reaper with the finest programming language available #commonlisp :-D
@me I believe that I live in the Real World, though I cannot prove it. And I use #CommonLisp, for personal projects and for computational science.
@me You can find here 2 interviews of small teams using CL. One "secretly", one in a great open-source product:
"questions to Alex Nygren of Kina Knowledge, using Common Lisp extensively in their document processing stack"
https://lisp-journey.gitlab.io/blog/lisp-interview-kina/
"Arnold Noronha of Screenshotbot: from Facebook and Java to Common Lisp."
https://lisp-journey.gitlab.io/blog/lisp-interview-screenshotbot/
@me Personally, as a solo developer, I use CL more and more in my stack, ditching Python the more I can. I wrote about it: https://lisp-journey.gitlab.io/blog/running-my-4th-lisp-script-in-production/
Instead of extending a Python software I write independent modules in CL. It works well for standalone scripts too (read a DB, process data, send everything to a FTP, to a web service, by email…) It's such a joy.
On Discord, we see some are in big tech©, wrote their personal tool in CL and now it's part of the team's stack.
Me encanta programar en #Lisp en mi tiempo libre. La programación funcional fomenta la abstracción y me permite construir sistemas complejos a partir de funciones simples. El REPL me abre la puerta a jugar en tiempo real con el código sin tener que reiniciar constantemente el software o forzarme a lanzar un programa de depuración. Para mi es una herramienta poderosa para afinar mis habilidades de programador, probar nuevas ideas, patrones y un espacio para la creatividad. Además tienes sabores en cualquier lugar: #Clojure para JVM, #ClojureScript para #JavaScript, #Emacs Lisp para Emacs, #CommonLisp y #Racket para ejecutar en el equipo... Aunque yo te recomiendo que te quedes en un solo lenguaje y lo domines. No es necesario aprender todos los dialectos de Lisp, pero si es bueno conocerlos para entender sus diferencias y similitudes.
Si quieres aprender más sobre #Lisp, te recomiendo uno de mis libros favoritos: "Land of Lisp" de Conrad Barski. Es un libro divertido que te enseña a programar en Lisp mientras creas juegos y aplicaciones gráficas. También puedes encontrar muchos recursos en línea, por supuesto.