Wow. It appears to work without modification on Ubuntu 23.04. It looks like Mutter has implemented all the wayland protocols the wayland FFI backend expects since I last attempted this.
When you experience weird pain and utter joy at the same time while programming in a language and still go on with it, would that classify as a fetish? :commonlisp:
@zyd Yeah, that's SBCL sb-kernel::dynamic-usage. The whole index is basically in memory on my machine and is growing really fast 😜
I've almost forgotten how joyful programming in #commonlisp is. You fire up a SLIME repl and just hack away. I've not restarted the repl once since I started yesterday.
Inspired by @mms - tonight I've written a Gopher crawler in Common Lisp with little more than 100 lines (only dep: usocket).
Using a single host for bootstrapping (gopher.icu), recursively indexing all directories (type 1), it found 1000+ gophermaps in less than 10 minutes and is still running.
Perhaps I'll have something ready for the next Lispy Gopher Climate Show if that of interest @screwtape
the biggest missing piece of #SmallWeb is PEOPLE SHARING LINKS. It's cool that we can use RSS to get new articles, but we need the meat-suitted algorithm of recommendations for new sites.
I ran the Medley Interlisp TextModules tool to import into the residential environment some Common Lisp source files, an example program from Peter Seibel's book "Practical Common Lisp". I posted some notes on how to do it:
An unexpected problem with event-based IO in #CommonLisp is that it breaks the condition/restart system. E.g. you upload a file using HTTP and a non-blocking client. The state machine to handle the flow (send request, read HTTP 100 response, send body, read reponse, execute callback) is running in the IO thread. If anything signals a condition, it has to be handled in the IO thread, completely decorrelated from the code that initiated the HTTP request.
Extrapolate that to a server running multiple complex IO flows in parallel. This is really not good, the language just does not match the problem.
It appears to be an #emacs-ish program that uses #commonlisp for customization.
Apparently there have been other emacs clones based on #go and #rust and I guess those are called #emacsen ?
Without going too into my personal details, I’m not a professional programmer and most of my experience is with a modern programming language, #swift, and a high level programming language, #python.
I’ve tried learning #elisp several times by completing various programming exercises and I end up quitting because something obnoxious comes up that, from my minimal programming experience, appears to be due to elisp‘s age. Again, I’m not a pro, so this is just my amateur take.
I did a some programming challenges with #clojure which was hugely fun (mostly because of how fun it feels in emacs 😁) so I don’t think it’s the #lisp part of emacs I have a distaste for.
I’ll probably give it a serious go within the next week here and possibly report back, but I can’t imagine an emacs clone without #magit#orgroam and ChatGPT-shell will really ever become my daily driver 🙃
🥳 Celebrating 1001 learners on my Common Lisp course, thank you very much for your support!
Starting with CL was honestly not easy. The first thing I did was writing the "data structures" page on the Cookbook, bewildered that it didn't exist yet. A few years and a few projects later, this course allows me to share more, learn more, have fun, and have some rewards to keep the motivation up.
In 1984, 40 years ago, Digital Press published the book "Common LISP: Reference Manual" by Guy L. Steele Jr. and others, more widely known as the first edition of "Common Lisp: The Language" or CLtL1. It was an early major milestone of a Lisp standardization process completed a decade later.
@amoroso#commonlisp#lisp#cltl#cltl1#lispm#symbolics In Symbolics Genera we can switch the language in the REPL/Listener to CLtL. It then also advertizes only this in the features. We can then create a rough overview of the available symbols.
Using the File Manager and taking advantage of the residential environment of Medley Interlisp is the most effective way of developing Lisp on the system.
But, if you do want to manually manage Common Lisp sources on Medley as in traditional file based implementations, here I explained how to do it: