TIL: Function designators in Common Lisp:
(funcall 'foo 0)
(funcall #'foo 0)
Both work, however, if there is a function named FOO in the lexical environment (i.e. via FLET/LABELS), #' (= FUNCTION) will use that while ' (= QUOTE) will always ignore the lexical environment.
It's now available the paper of the Medley talk Andrew Sengul gave at the European Lisp Symposium 2024. It outlines the history of Interlisp, introduces the Medley revival project, and presents the main features and facilities of the environment.
@amoroso#lisp#interlisp#commonlisp
Thanks for the pointer! That's a very well written paper giving an excellent overview of the Interlisp revival project.
Petalisp is an attempt to generate high performance code for parallel computers by JIT-compiling array definitions. It is not a full blown programming language, but rather a carefully crafted extension of Common Lisp that allows for extreme optimization and parallelization.
Exciting news for SBCL users. A coroutine proof-of-concept was created during ELS after-hours in a pub :-) I for once hope, what happened in Vienna, doesn't stay in Vienna.
I'm really digging this pattern in CLOS of extending a class and using :use-reexport in the new package definition to pull in the base class.
It makes code growth and juggling easier. I can extend a class by just changing an import statement, and then if I want to fold that new class code into the base class I can do that, and go back to the old import stanza.
The code that is dealing with the class (base or child) instance can stay untouched.
I have a favor to ask you. Please tell the Lispers there if any of them writes a Common Lisp book I'll be more than happy to buy it, back a kickstarter, spread the voice, and support the author any way I can.
This is just one data point but my hunch is many Lispers are like me.
A few years ago I have created a visual overview of (mostly) Common Lisp related books... Good thing: even the older ones can be useful, given that the core language hasn't changed that much over the last years.
Common Lisp Quick Reference is a nicely designed, comprehensive, and handy Common Lisp cheatsheet. It's available in different PDF versions for printing as a booklet or online browsing, as well as LaTeX source.
@louis
(#veilid is a rust lib that creates a veilid node per application which participates in a network, and gets messages 'to you' to you from the greater network. You publish properties on 'your' node, or it has a torrenting form for larger media items). https://veilid.com
"Being a veilid node" is one page of rust
-> compile to .a
-> put in C
-> #CommonLisp cffi
What do you think about this unconventional private internetworking? I think "the #lisp community" should capture this.
Uncommon opinion (but not necessarily unpopular): I love languages with large standard libraries. I enjoy flipping through the language documentation, scouting for interesting functions or classes that may eventually come in handy.
My favorite large library language is Common Lisp but of course there are many others such as Smalltalk, Python, and Java.
After discovering a little more about the render backend in #McCLIM , I decided to take a detour to see how difficult it would be to implement a naive render-to-textured-quad with the WIP Wayland backend... It wasn't too bad and it looks much better!
My laptop fans cranks up so it's obviously inefficient but it's pointed out some boundaries that I think would behoove me to refactor to mixins. #CommonLisp
I was playing again with my #CommonLisp HTTP implementation and I've made my peace with its blocking nature. It is irrelevant with a buffering reverse proxy (HAProxy or NGINX), performances are excellent and the code of the server stays simple.
Here, 210k+ req/s on 64 connection handling threads with 390µs P90 latency and sub-ms P99 (Linux amd64, SBCL 2.4.1).
Of course I can't use the same approach for my SMTP server (too many parallel connections that stay alive and no buffering proxy possible), but not all software have to use the same language.
"Scheme and Common Lisp differ mostly in the communities they cater to. Scheme programmers like to talk about how great it is to have a short specification; Common Lisp programmers like to write programs."
Yesterday session to bring quicklisp/ultralisp/git together with #nix for #commonlisp development and deployments with NixOS was very fruitful.
One of the main problems with #sbcl deployments is that you need a matching SBCL version and glib version for them to work. Nix can be a solution to that but it has a very sad story for common lisp dependency management.
Maybe something will come out of it. Currently I have an autogenerated flake with all of ultralisp and a lispDerivation function that creates a derivation and pre-compiles the fasls given the lisp implementation you wanna use.