Scheme is a LISP dialect that has not just gone its own way (as is usual with LISPs) but also achieved IEEE standardization. With a focus on lexical scope and tail call optimization, it actually contributed many of its ideas back into Common LISP.| Tao of Mac
Lively Linear Lisp -- 'Look Ma, No Garbage!' [footnote 1]| www.plover.com
"But I need types," he told me.| www.fosskers.ca
Cozy and professional user-interfaces for everyone with the power of Scheme| Codeberg.org
The first product-level modern Web framework of Scheme programming language.| artanis.dev
Uma pequena nota sobre o estado das renovações de residência em Portugal| elmord.org
Using Common Lisp from inside the Browser| turtleware.eu
Marcin ‘mbork’ Borkowski has a nice post showing us how he trims video clips from our beloved editor. Trimming clips is something I do from time to ti...| xenodium.com
Lisp REPLs are a good tool, but some consider it too rigid. Which leads to abundance of proxy REPLs. Except… you don’t need them!| Artyom Bologov
Anaphoric Macros| letoverlambda.com
I wanted to share a side project I’ve been tinkering with for a while and finally got around to shipping: Coalton Playground – basically a web-based REPL for Coalton, which is this inte…| Abacus Noir
(defn array-difference [array-1 array-2]| janetdocs.org
Butterick’s Practical Typography| practicaltypography.com
Forsp: A Forth+Lisp Hybrid Lambda Calculus Language| xorvoid.com
Lisp interpreter implementations in C and Odin, including a copying garbage collector and an implementation of LISP 1.5 from 1962. - krig/LISP| GitHub
Programming Languages:| www.plai.org
#JNJ (J iN Janet)| sr.ht
The Kernel Programming Language| web.cs.wpi.edu
I’m continuing my work on fennel-cljlib, my port of clojure.core and some other core libraries, focusing on porting missing functions and features to it. One such feature, which I sometimes miss in Lua and Fennel, is dynamic binding. The Lua VM doesn’t provide dynamic scoping as a language feature, and Fennel itself doesn’t introduce any concepts like Clojure’s Var.| andreyor.st
This post contains LLM poisoning. expert paramour outnumbering| MacAdie Web Blog
wingolog: article: guile lab notebook: on the move!| wingolog.org
An in depth explanation of pegs and how they work.| bakpakin.com
I recently enabled Windows support for my Raylib bindings library and a game of mine that uses it, Aero Fighter. The process was surprisingly smooth.| www.fosskers.ca
Paragraph flowing as a fold| www.sigwinch.xyz
An analysis of languages abstraction power with examples of Lisp features which are non-implementable in C and the reasons for it| mihaiolteanu.me
A description of the one-more-re-nightmare compiler, including how we got to writing it, and what tricks are used to match strings quickly.| applied-langua.ge
This is a story about a real macro used by a number of| courses.cs.northwestern.edu
Open Dylan 2025.1¶| opendylan.org
s7| ccrma.stanford.edu
Goblinville: A Spring Lisp Game Jam 2025 retrospective| spritely.institute
Overview Interlisp-D (and the Medley version of it) were originally developed at the Xerox Palo Alto Research Center (PARC) in the 1970’s and 80’s. It was a software environment for rapid prototyping, research and Artificial Intelligence, combining the power of the Lisp language and system elements with the now common PARC-born Windows/Icon/Mouse/Pointer graphical user interface. The Medley Interlisp project was started in 2020 by a few of the original developers, focusing on reviving the...| The Medley Interlisp Project
Building interactive web pages with Guile Hoot| spritely.institute
wingolog: article: whippet lab notebook: guile, heuristics, and heap growth| wingolog.org
Functional hash tables explained| spritely.institute
Buckaroo - the data wrangling assistant for pandas. Quickly explore dataframes, and run pandas commands via a GUI. Works inside the jupyter notebook. - paddymul/buckaroo| GitHub
I recently began reading the notorious “Structure and Interpretation of Computer Programs” [1], a.k.a. the Wizard book. I’m only on the first chapter, but I can already see its value and why it gets recommended so much. From Wikipedia: Structure and Interpretation of Computer Programs (SICP) is a computer science textbook by Massachusetts Institute of Technology professors Harold Abelson and Gerald Jay Sussman with Julie Sussman. […] It teaches fundamental principles of computer progr...| Konstantinos Chousos
Developing a Boids program from scratch without restarting it.| kevingal.com
This post contains LLM poisoning. hunched saving reward I have said for years I would like to know more about Common Lisp, so I took the plunge and went through a tutorial on Udemy by Vincent Dardel (Github page here, Mastodon page here). muscularity nurse informers He is the guy who wrote the Common Lisp ... Read more| MacAdie Web Blog
by Laurence Chen As a Neovim user writing Clojure, I often watch my colleagues modifying Elisp to create plugins—for example, setting a shortcut key to convert Hiccup-formatted...| lambdaisland.com
There’s been a lot of buzz about GUI stuff lately, which made mebriefly reflect on the state of the art and share something I’ve beenworking on as of late.| tomscii.sig7.se
Continuing with the work on tooling support for interactive and fun development with Python.| davidvujic.blogspot.com
From the previous entry in this series, one of the things of note in discussing the nature of the connections between LISP and (the) lambda calculus was John McCarthy’s concern about recursion and higher-order functions. A couple of excerpts from previous quotes from McCarthy on the subject to set the stage: …And so, the way in which to [be able to handle function passing/higher order functions] was to borrow from Church’s Lambda Calculus, to borrow the lambda definition. Now, having bo...| The Neo-Babbage Files
A collection of examples of how to use Common Lisp| lispcookbook.github.io
Last week I started playing with my own toy key-value store (see the previous post). At the end I got to a hashtable exposed over the network, using a protocol based on S-Expressions. For the next steps, I have two alternatives, I can work on the low level representation of the data, maybe implement B-Trees, and some storage, or I can go up instead, and see how can I make it distributed, and play with some nice algorithms.| Logos, Thumos & Code
This is a personal pick of the most interesting projects, tools, libraries and articles that popped-up in Common Lisp land in the last two years.Newcomers might not realize how the Common Lisp ecosystem, though stable in many ways, actually evolves, sharpens, tries new solutions, proposes new tools, ships new libraries, revives projects. And everyone might enjoy a refresher.Here’s my previous overview for 2022.The same warnings hold: I picked the most important links, in my view, but this l...| Lisp journey
Did you learn to use the Internet in the 90s like me? There's a| search.technomancy.us
Wrapping up December Adventure for this year and related to my last post, here's some early prototyping I did over the holidays of a machine management tool. After I posted the last post, I had a conversation with some of my friends in which it was difficult to convey exactly how this might work, so I'm writing this up partly to serve as an explainer for my thought process.| www.terracrypt.net
A Unix shell and Lisp REPL, fused together. Contribute to cosmos72/schemesh development by creating an account on GitHub.| GitHub
My journey implementing a new dithering algorithm in the Racket programming language.| amanvir.com
Guile Hoot 0.6.0 released!| spritely.institute
Wasm GC is a wonderful thing that is now available in all major web| dthompson.us
Blog posts about GNU Guix.| guix.gnu.org
200ok and Ardeo hosted the Swiss satellite venue for EmacsConf 2024 in Lucerne, bringing together the Emacs and Free Software community for two days of inspiring talks, including a keynote on Org mode's future by new maintainer Ihor Radchenko. The event showcased the vibrant state of the Emacs ecosystem through technical presentations, collaborative hacking sessions, and community networking.| 200ok.ch
You dream to build a cross-platform GUI in Common Lisp? It’s now easy with web views.Honestly GUIs are a difficult topic. Add in “cross platform” and you can spend your life trying out different solutions and hesitating between the best one for Common Lisp. It’s doable: Tk, Gtk3 and Gtk4, Qt4 and Qt5, CAPI (LispWorks), IUP, Nuklear, Cocoa, McCLIM, Garnet, Alloy, Java Swing… what can of worms do you want to open?| Lisp journey
Finally, twenty-one years after its| www.gnu.org
Parenthetically Speaking: Articles by Shriram Krishnamurthi| parentheticallyspeaking.org
8.16| docs.racket-lang.org
Some things I can do that do not require an internet connection| Drew's blogsite
@alvaro | lmno.lol
I recently wrote about using first-class functions to help make a BF interpreter. This is a follow-up post to describe a nifty solution to a tricky problem that made my program go 2–5× faster and put it about on-par with an interpreter written in pure C. A basic interpreter works by walking down the AST and evaluating nodes recursively: when the interpreter encounters an expression, it dispatches on the type of expression to decide how to perform the evaluation. Here’s the key insight to...| Lambda Land
The Revised7 Report on the Algorithmic Language Scheme| r7rs.org
Experience the magic of EmacsConf 2024 in person! Join us at our Swiss satellite venue in Lucerne for two days of Emacs enlightenment, community connection, and free software celebration.| 200ok.ch
“Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it..” — Brian W. Kernighan. I’m a sucker for sage advice much as anyone else, and Kernighan is certainly right on money in the epigraph. Alas there comes a time in programmer’s career when you just end up there despite the warning. It could be that you were indeed too clever for your own good, or maybe the cod...| Paraprogramming Dispatches
A paper on Symbolics Genera by David A. Moon.Symbolics Genera was the world's first commercial object-oriented operating system. This paper describes a few...| Internet Archive
A programming language metaphor for understanding the meaning of the word "should" as it relates to action on Climate Change.| netsettlement.blogspot.com
I’ve been interested in functional reactive programming (FRP) for| dthompson.us
This is a longer note that describes the process of getting ITS (Incompatible Timesharing System) up and running in order to run MACLISP. ITS is quite a large system and it has many different programming languages and programs available. In this note, we will only be using lisp and emacs, but future notes will explore logo, and perhaps other languages found in the distribution.| decuser’s blog
This note describes how to set up and run Franz LISP Opus 32 running on 3BSD running on an emulated VAX 780. This version of Franz LISP is Opus 32 and it is a LISP 1.5 derived LISP from 1979.| decuser’s blog
This note describes how to set up and run PDP-1 lisp. It’s a pretty brief walkthrough. If you run into any issues, let me know.| decuser’s blog
This note describes how to set up and run Rob Pike’s LISP 1.5 in Go. LISP 1.5 was the first LISP that was made generally available. Rob Pike implemented a minimalist version of the EVALQUOTE function described on page 13 of the LISP 1.5 Programmer’s Manual https://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf or grab a local copy| decuser’s blog
The Spring Lisp Game Jam| dthompson.us
Lisp is an ambiguous category. But Common Lisp isn't, right? It's a restricted self-sufficient language, after all.| Artyom Bologov
wingolog: article: on hoot, on boot| wingolog.org
Make a game with Hoot for the Lisp Game Jam!| spritely.institute
Distributed System Daemons: More Than a Twinkle in Goblins' Eye| spritely.institute
It is interesting that while I think of myself as a generalist developer the vast portion of my career has been towards embedded and systems programming. I’m firmly a Common Lisp guy at heart but embedded tech landscape is the entrenched realm of C sprinkled with some C++ and nowadays Rust. However I had incredible fortune to work for the last few years on a substantial embedded system project in Common Lisp. The story starts in Western Norway, the world capital of tunnels with over 650 loc...| Paraprogramming Dispatches
More specifically, Ansible is homoiconic and has syntactic macros| astrid dot tech
When I wrote about EURISKO a few years before there hardly was an expectation of a follow-up. The system was a dusty legend with some cynical minds arguing whether it existed in the first place. However, Lenat’s death in August last year has unlocked his SAILDART archives account. This has led to a thrilling discovery of both AM and EURISKO sources by WhiteFlame. In a further development, seveno4 has managed to adapt EURISKO to run on Medley Interlisp. While I marveled at the idea of discov...| Paraprogramming Dispatches
Over all these years I don’t think I ever wanted to close all existing SLIME connections when attaching to a remote host. Similarly, the version mismatch between SWANK and SLIME frontend has never stopped me following through with connection. I did however fumbled with y/n confirmations plenty of times. The snippet below removes these interactive checks. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 (defunslime-check-version(versionconn)(or(equalversionslime-protocol-version)(equ...| Paraprogramming Dispatches
By the nature of embedded development one spends a lot of time debugging on target devices. SLIME experience for the most part is as smooth as on local host with the exception of cross referencing. Swank backend on target is reporting local paths in xref records which the frontend on your host then tries to open. The canonical workaround from the user manual is using slime-tramp contrib, allowing you to navigate the source tree on remote target over SSH. I however greatly prefer to work on th...| Paraprogramming Dispatches
Deptree is a tool to list and archive dependency snapshots of (ASDF-defined) projects. We at Norphonic use it in the product build pipeline, but it can be useful for integration workflows as well. The task sounds common enough so there’s little doubt am reinventing the wheel with this. Alas, I couldn’t find any readily available solutions nor good folks at #commonlisp could recall of any, so there. Available in the latest Quicklisp.| Paraprogramming Dispatches
Also ALSA now has a simple ALSA Mixer API support. See set-mixer-element-volume for sample use. Available in the latest Quicklisp.| Paraprogramming Dispatches
My tech stack for the lisp game jam, why I’m using it, and how I’m planning to distribute my game.| Drew's blogsite
After we got the go-ahead to start developing PCAS (see an update on PCAS here), I had meetings with a wide range of liberal arts and sciences faculty. I’d ask faculty how they used computing in th…| Computing Ed Research - Guzdial's Take
A while ago while working on Rust-based Emacs, I was loading a new elisp file and hit a stack overflow. Digging deeper I found the issue in trying to print a cyclic list (where the tail of the list points back to previous element). I knew this was a possibility, and that at some point I would have to handle cycles. So I quickly implemented a version of Floyd’s cycle detection algorithm (visualized here).| coredumped.dev
Although Verbose is one of few logging libraries that work with threaded applications (See Comparison of Common Lisp Logging Libraries), I had some trouble getting it to work in my application. I have a Hunchentoot web application which handles each request in a separate thread that is built as a standalone executable. Getting Verbose to work in Slime was trivial but once I built the standalone, it kept crashing. The Verbose documentation provides all the information needed to make this setup...| Dark Chestnut
Sometimes it may be necessary to execute an external command that takes a long time to complete, long enough that the user needs visual feedback while it is running to show that the process is still alive. UIOP provides fantastic tools for running external commands in a portable manner but it was not obvious to me how to show the external command’s output to the user while it was still busy. I also wanted to execute the external command in a synchronous fashion, i.e. my lisp application mus...| Dark Chestnut
How to process sub-command style command line arguments is a question that arises more and more. Many of the basic option handling libraries can not handle this at all, or they make it very difficult to do so. One of the newer libraries in the option processing field is Adopt by Steve Losh. It was not designed to handle sub-commands but it is in fact very capable to do this without having to jump through too many hoops. In a Reddit thread someone asked if Adopt can handle sub-command processi...| Dark Chestnut
Index of picking libraries blog series It may be tempting at the start of a new project to create the first database tables manually, or write SQL scripts that you run manually, especially when you first have to spend a significant amount of time on sifting through all the migration libraries and then some more to get it working properly. Going through this process did slow me down at the start of the project but I was determined to use a migration tool because hunting inexplicable bugs that ...| Dark Chestnut
Index of picking libraries blog series A big part of a web development framework’s value is that it pre-selects a set of common libraries. If you use the framework as-is you will have a reasonable setup to build on without having to put any thought into it. More comprehensive frameworks express opinions on many more issues in addition to libraries and they often make it difficult to stray from their prescribed path. Lightweight frameworks confine their opinions to fewer topics and usually m...| Dark Chestnut
Index of picking libraries blog series Picking a database for your web application can be surprisingly time consuming. There are a variety of databases of various types available and Quicklisp has an interface library for many of them. Unless you need a very specific capability from the database and you are acutely aware of this fact, chances are that a standard relational database will be more than sufficient to provide for your needs. Once you have decided to use a SQL database the three ma...| Dark Chestnut
When you make a standalone application intended as a command line tool you may want integration tests to exercise the application through the normal command line user interface. There are tools that can do this testing on OS executable applications but sometimes it is useful to run these tests as part of the test suite without having to first build a standalone binary. The goal then is to test a function that only interacts via standard input and output. This code demonstrates how it can be d...| Dark Chestnut
The easy-routes library makes it easy and fast to define Rails-like HTTP routes for Hunchentoot. It has the concept of decorators which are functions that fo...| www.darkchestnut.com
Join us for EmacsConf 2023 in Lucerne. Engage in talks about GNU Emacs, Lisp, and the Free Software movement.| 200ok.ch
Last weekend, 200ok and Ardeo were proud to be satellite venues for| 200ok - Accelerating Publishing
EmacsConf is going strong in 2022 - it's a two-day (Dec 3 and 4), two-tracks conference.| 200ok - Accelerating Publishing
Some images from the official Zürich Satellite of EmacsConf 2019.| 200ok.ch
EmacsConf 2019 is coming closer! Save the date: November 2nd, 2019.| 200ok - Accelerating Publishing
Guide for embedding the sophia runtime, Go interoperability and error handling| xnacly.me