r/lisp • • Jun 10 '26

RacketCon 2026: call for presentations

18 Upvotes

RacketCon 2026: call for presentations

The (sixteenth RacketCon) will be in Oakland, CA on October 3-4 (Sat-Sun).

We are looking for speakers

We need you!

Calling racketeers new or experienced, we want to hear from you.

Are you unsure or just new to presenting? let us know - con-organizers@racket-lang.org - and we will do our best to help you.

Continuing with tradition, we'll also allow Racketeers to nominate speakers. Nominated speakers will be considered by the committee and contacted.

We will also accept nominations for a potential keynote speaker.

Talks will be 20-25 minutes long with 5 minutes for questions at the end. Speakers' registration fees will be waived, but we are unable to cover transportation and lodging expenses.

The deadline for proposals is July 15th. Selected speakers will be notified by August 1st.

RacketCon is a public gathering dedicated to fostering a vibrant, innovative, and inclusive community around the Racket programming language. We aim to create an exciting and enjoyable conference open to anyone interested in Racket, filled with inspiring content, reaching and engaging both the Racket community and the wider programming world.


Any questions, comments, or concerns? Please contact us at con-organizers@racket-lang.org.


r/lisp • • May 25 '26

New CL VSCode extension: OLIVE

Thumbnail marketplace.visualstudio.com
42 Upvotes

Also on Open VSX Registry (for VSCodium): https://open-vsx.org/extension/kchanqvq/olive

Why another VSCode extension? VSCode is important for getting newcomers nowadays. I have some very smart people at work who use VSCode, like everyone else. Selling Lisp and Emacs at the same time is ε2 harder, so I told them to use Alive, and start hacking on my super-duper research code. The result was shocking -- they come back reporting "unproductive" because "small problems here and there like REPL freezing". And they refuse to try Lisp again, because first impression matters, what a tragedy!

I have lived in our Emacs bubble comfortably for too long, and blundered recommending something I never used. I should have tried Alive at least once before recommending it!!! So I installed VSCode and Alive to see what's going on. I come to the conclusion that while Alive is a nobel experiment, some basic design choices make it very hard to get stable enough for a daily driver:

  • the author wants to compile Lisp file in the background "the VSCode way" and ditched SWANK because it's too "Emacs centric" to support that. However IMHO this is rather a Lisp problem and not an Emacs problem at all! compile-file runs arbitrary code and running it at arbitrary moment is not good for health. One reason for ditching SWANK is "debugger pops up at any moment" when they do so and they want to suppress it. Ummm debugger popups because the Lisp needs help?
    • IMHO most design choices in SWANK are Lisp-specific instead of Emacs-specific. There are lots of success using SWANK in other editors: SLIMA, SLIMV, LEM uses a simplified verion, etc.
  • REPL starts new thread for every evaluation. Why? Now good old (READ) and nested REPL don't work.
  • The LSP server is no where near as stable and complete as Swank. This is immediately obvious after 1 minute of use.

So I decide to fix it. Here is a VSCode extension that uses good old SWANK, and as the primary goal tries to get as good as Emacs as possible. Please ask people to use it (and learn Lisp)! Working with VSCode was really torturous, I hope I did not suffer in vain.


r/lisp • • 1d ago

Lisp Made a spell crafting IDE that uses Lisp as the syntax.

179 Upvotes

Finally posting after lurking here for a long time. Friends don't care too much about this sort of thing.

This is written in Odin, with my own small Lisp interpreter from over 5 years ago. Lisp was the easy choice, primarily because paren's are easier to parse into pretty circles, but also it is much lighter than including Lua.

Using Raylib for the rendering.

There are tons of things I want to implement, but I finally got it into a state that I'm happy sharing something about it. Like one thing I want to change is that spells shouldn't define the cost, but functions like `move-toward` should consume MP as they are called.

There are other spell effects not demoed: shield, heal, buff, debuff, damage, status, teleport, etc.

As for the window decor, a Windows 7 skin for KDE Plasma.


r/lisp • • 1d ago

Tell me about an interesting program you wrote or maintained

31 Upvotes

Hi all,

Younger dev here I’ve been reading the SICP book and also blog posts about Common Lisp and Emacs Lisp and I’m fascinated by the culture during its heyday (e.g. Symbolics era). But I didn't find more anecdotes besides the one here about how in the 1990s a piece of Germany’s air traffic control software ran on Emacs.

I’d love to hear about the programs you used to deal with and overall what tasks you think Lisp excelled in.

Thank you!


r/lisp • • 1d ago

Rebuilding the Maiko Interlisp VM from scratch

14 Upvotes

As the legacy C implementation of the Interlisp-D VM (https://github.com/Interlisp/maiko.git) is rather dated, I started off rewriting it from scratch (in Rust). It reached enough maturity to be my daily driver without issues (so far), but there are still many aspects that need further testing and validation.

The implementation is image and "command-line compatible" with the C version, i.e. there is no need to modify any of the Medley scripts to build sysouts or run them, and sysouts generated with the legacy C version work (i.e. images generated with either version are identical). Legacy platform has been silently dropped (lacking any means of testing them), but otherwise most everything in the legacy C version is implemented (not everything is thoroughly tested yet, though).

Main differences:

  • some bugs squashed (e.g. Common Lisp stack issues I had with the C version).
  • most notably for the casual user: the GUI is implemented in SDL3 (no X-only variant): the window is resizable and its contents scale accordingly (maintaining aspect ratio); this removes the problem of having to choose between too tiny or too large as it is with the legacy --pixelscale option and also makes it suitable for full-screen display and tiled window managers. On MacOS and Linux Wayland, the desktop zoom settings are taken into account, not so on plain X (contents are still zoomed, though, thus a mostly academic distinction).
  • test support (headless, instruction trace, scripting, etc.)

The implementation is a single, dependency-free binary (covers lde, ldeinit, and ldex transparently). SDL3 is compiled through cargo and linked statically, thus there should be no need to install any external run-time dependencies (they may be needed for compilation, though).

Tested on MacOS 27/M4 and Fedora 44/AMD64 (with Wayland) so far. As I lack an adequate Windows machine, no attempt has been made in that direction (the main parts should be fine, not so sure about system interfaces). It is a pure desktop application, no extra support is provided (or planned) for running it in a browser, direct VNC, or such.

As it is not thoroughly tested, I haven't published any of it yet, but let me know if you are interested in taking part in the effort.


r/lisp • • 2d ago

Scheme Interview with CHICKEN Scheme Maintainer Sjamaan/Peter Bex

Thumbnail alexalejandre.com
47 Upvotes

r/lisp • • 2d ago

BLEG: A Facelift for common-lisp.net

Thumbnail common-lisp.net
14 Upvotes

r/lisp • • 3d ago

UPDATE 2: CL-OBJC is reborn!

Thumbnail
10 Upvotes

r/lisp • • 4d ago

No nonsense project management: Lucidplan v1.6.7 ✨ - powered by Lisp: now with native drag and drop in Backlog and Kanban - FLOSS Trello/Jira style software that is fast and easy to learn, self-host and privacy friendly

Post image
72 Upvotes

Hi community. It's been now a bit more than 2 years since I started to work on this "project management project", with many ideas and with a good vision of how to improve and be better than certain bespoke commercial tooling out there. I am happy to announce version v1.6.7 with a lot of polished aspects and new features that make it a joy to use (even if I say so myself)

LucidPlan is a simple, hackable, free and open source project management software that you can easily self-host, you only need something that runs Guile Scheme and a SQLite database. (Guix is recommended, not mandatory)

I spent years using things like Jira, Trello, Asana, GitHub projects and eventually became frustrated with how much complexity gets piled onto what should essentially be:

projects → tickets → priorities → workflow → done

I decided to build my own as a challenge, but also to create something blazingly fast and simple, that people can quickly learn (even applicable to non-tech projects). Also I aimed for ease of self-hosting, no SPA frameworks and no dependency on proprietary clouds or software.

LucidPlan is licensed under the GNU AGPLv3 or later. Source code:

https://codeberg.org/jjba23/lucidplan

You can also look at my running instance:

https://lucidplan.jointhefreeworld.org/

The project leverages the power of Lisp (Guile Scheme) by using SXML for front-end aspects, clean controllers with Artanis and a powerful repository pattern abstraction.

What does it do?

  • Manages your project backlogs with ticket priorities
  • Native drag-and-drop ticket reordering (priority)
  • Kanban boards with drag-and-drop status changes
  • Global/project search (still more work to be done)
  • Users, assignees and fine-grained permissions
  • Light/dark mode
  • Keyboard-accessible ticket and project lists
  • Org-mode syntax in ticket titles and descriptions
  • Org links and rich Org content rendered to HTML
  • Hackable/customizable with Scheme
  • Lightweight, and mobile-friendly
  • SQLite backend
  • Lightweight vanilla JavaScript on the frontend for some interactive enhancements

The Org-mode integration is particularly fun: you can write ticket descriptions using Org syntax and LucidPlan renders the result as HTML.

For example, your ticket can contain things like:

* Investigate weird bug

The problem seems to happen when [[https://example.org][this thing]] is enabled.

- Check configuration
- Reproduce the problem
- Fix it

…and LucidPlan renders that into the ticket as pretty styled HTML. (see orgwebalchemy post: https://www.reddit.com/r/lisp/comments/1wox8h4/parsing_org_mode_with_parsing_expression_grammars/ ).

There is still plenty to improve, and I'd genuinely love feedback from people who actually use project-management software daily. I think you'll find LucidPlan as a refreshing take.

Especially interested in hearing from the community:

  • What do you hate about existing project-management tools?
  • What features do you consider essential?
  • Would you use a Lisp/Guile-based project-management system?
  • What would make LucidPlan useful for your own projects? What killer feature can I work next?

Happy hacking :-)


r/lisp • • 5d ago

DummyScheme now supports R5RS, and also has hash-table series functions which is implemented as a hybird of array+hash like lua's table

Thumbnail github.com
9 Upvotes

r/lisp • • 6d ago

What makes Lisp difficult to read?

Thumbnail paultm.nl
39 Upvotes

r/lisp • • 7d ago

Common Lisp Moonli Update v0.0.10 - September 2026

Thumbnail moonli-lang.github.io
13 Upvotes

r/lisp • • 8d ago

Scheme language is good enough for products

Thumbnail nalaginrut.com
91 Upvotes

r/lisp • • 8d ago

SBCL: New in version 2.6.9

Thumbnail sbcl.org
34 Upvotes

r/lisp • • 8d ago

Lisp Machine style Listener for Python

Thumbnail youtu.be
27 Upvotes

r/lisp • • 9d ago

Common Lisp Old X11 Apps in pure Common Lisp on top of XCB bindings

Thumbnail imgur.com
18 Upvotes

r/lisp • • 10d ago

Scheme Parsing Org mode with Parsing Expression Grammars in Guile Scheme (ice-9 peg) and converting to HTML (via SXML): OrgWebAlchemy

Thumbnail gallery
23 Upvotes

Hi everyone. I wanted to share something with you all that I've been working on for a while. It all started with some naive regular expressions to parse Org mode content, but I pretty quickly realized I needed something smarter than that to get to where I want to. It's taken a while but I am finally more knowledgeable of what Parsing Expression Grammars can do, thanks to GNU's great (ice-9 peg) module and tutorials.

I thought it might be interesting to people here who enjoy Lisp, Scheme, parsing, Org mode, or the general idea of meta-meta-meta-programming as I like to call it. Disclosure, AI has helped me get a grip of PEG and debug some things, but development of OrgWebAlchemy is "my own spaghetti" and the unit tests and manual verification (and lots of pretty printing the AST) has guided me towards quite a nice implementation (if I may say so myself).

OrgWebAlchemy is a Guile Scheme library for parsing Org-mode documents into an AST and rendering them to HTML. My main use-case is to export Org to HTML without needing Emacs, and to integrate this feature into some projects of mine, allowing me to write Org mode and have it pretty rendered.

Project's source code @ Codeberg: https://codeberg.org/jjba23/orgwebalchemy

The basic idea is pretty simple:

(use-modules (orgwebalchemy html))

(org->html "This is ~test~ code.")

becomes something like:

This is <code>test</code> code.

But the interesting part is what happens in between.

             Org document
                  |
                  v
          Parsing Expression
              Grammar
                  |
                  v
                AST
                  |
                  v
             SXML -> HTML

Of course Org mode is a huge piece of (great) software, so I am far from supporting all features, but some core important constructs are there:

  • Headings (lines starting by n *)
  • Paragraphs (any "non-special" text)
  • Unordered, Ordered and Description lists (with any level of nesting)
  • Italic, Bold, Inline Code
  • Links with and without description (with nested parsing)
  • Horizontal separators (--------) five or more dashes
  • Tables
  • #+begin_src
  • #+begin_example
  • #+begin_quote (with nested parsing)
  • #+begin_export html : Org syntax is parsed by your PEG grammar, but raw HTML export blocks bypass the Org inline parser and are emitted as trusted literal output.

- See wikipedia page on PEG: https://en.wikipedia.org/wiki/Parsing_expression_grammar

- See the tutorial by GNU/for Emacs Lisp (is also a good learning source): https://www.gnu.org/software/emacs/manual/html_node/elisp/Parsing-Expression-Grammars.html

- See the tutorial by GNU/for Guile: https://doc.guix.gnu.org/guile/3.0.9/en/html_node/PEG-Parsing.html

Why PEG instead of a mountain of regexes?

Org-mode looks simple until you actually try to parse it. Headings are easy. A paragraph is easy. A list is easy (wait actually no, this has made me sweat).

And then suddenly you have:

  • nested lists
  • ordered, unordered and description lists
  • different indentation levels
  • inline markup
  • links containing descriptions
  • source blocks
  • example blocks
  • quote blocks
  • tables
  • escaping
  • constructs which must stop consuming input at exactly the right place

At this point, the usual approach of adding another regular expression starts to become somewhat... adventurous. :-)

You end up with things like:

match this,
unless that follows it,
except inside this block,
unless it is a description,
but don't consume the newline,
unless the previous line was a list item...

That is not really describing a language anymore. It is describing the history of your parser's bugs.

So OrgWebAlchemy uses Parsing Expression Grammars (PEGs) through Guile's excellent (ice-9 peg) module. e.g.

(define-peg-pattern element body
  (or empty-line
      heading
      separator
      table
      src-block
      quote-block
      example-block
      export-html-block
      description-list
      unordered-list
      ordered-list
      paragraph))

This is rather nice because the grammar itself starts looking like documentation for the language.

And Guile lets us express PEGs directly as S-expressions (alternatively you can also use the more traditional syntax if you don't like it), which makes the Lisper in me very happy.

One thing I particularly like about this approach is that we have loose coupling and the detail of generating SXML and then rendering HTML is a "presentation concern". this opens possibilities to later exporting to Markdown or other formats.

For example:

- name :: Josep
- project :: orgwebalchemy
- language :: Scheme

can become an AST along the lines of:

(description-list
 (unordered-item
  (desc-key "name")
  (line-content "Josep"))
 ...)

I'm still busy with the exact representation and getting it all right. But as of now v1.0 has some stability :-) I would really love feedback on the project from the great smart people that hang out around here.

YAY recursive lists

One of the fun parts has been getting nested Org lists right.

Something like:

- Item 1
  - Item 1.1
  - Item 1.2
- Item 2

should become a quasi-tree

The parser initially produces the flat sequence of list items, and the AST processing phase turns indentation into nested structure.

The HTML renderer can then naturally produce:

<ul>
  <li>
    Item 1
    <ul>
      <li>Item 1.1</li>
      <li>Item 1.2</li>
    </ul>
  </li>
  <li>Item 2</li>
</ul>

I do still have a small issue here, and that is about the mixing of different list types in nested way. Hopefully it's a subtle bug to fix.

The HTML side uses SXML, because if we're already writing Lisp, we might as well represent our HTML as Lisp data too. :-) that really helps a lot and makes building the markup tree so much nicer

I've taken care to allow full customization to the output HTML (via Guile parameters) so that the renderer isn't hard-coded to one particular website's idea of what HTML ought to look like.Most of them are plain list of classes, but per-heading-level customization is a bit more flexible:

(heading-classes
 (lambda (level)
   (case level
     ((1) '("text-4xl" "font-bold"))
     ((2) '("text-2xl" "font-semibold"))
     (else '("text-base")))))

Why am I making this?

Partly because I wanted it, I like a challenge, and it's super fun to work with parsing, ASTs and the lot... I could just use Emacs to do this job as there is no better implementation of Org.

The way it's coming together though, I like the idea of having a small, hackable, free-software Org parser written in Lisp that other people can extend and customize (perhaps add more renderers, or Org features).

Free software

OrgWebAlchemy is licensed under the GNU LGPL v3 or later.

The project is intended to soon be packaged for GNU Guix as:

guile-orgwebalchemy

There is also a test suite in the repository which is already proving to be a good safety net and showcase of what the parser can do.

I'd be really happy to hear your thoughts, especially about the grammar, AST design, parser architecture, or interesting Org constructs that I have not handled yet.

Happy hacking! ✨


r/lisp • • 10d ago

Varhammer 1.1.8 "Midnight"

10 Upvotes

Hi, hope it helps:

Portable Common Lisp for Windows

Emacs 30.2 + SBCL 2.6.0 + SLIME 2.32 + Quicklisp

https://github.com/varhammer/varhammer/releases/tag/v1.1.8

No installation — just extract and run.

Works from USB flash drive.

C-c t Toggle theme (varhammer ↔ spolsky)

r/lisp • • 11d ago

Mugs for the lisp-machine romantics

Post image
62 Upvotes

I have two UK Symbolics mugs, which I can't remember where I got them although I worked with them a couple of times. Photo above.

If anyone, in the UK only, wants them you need to guess my mail address and send me a mail and I'll post them. Don't comment here as I don't read reddit very often. It may take me a while to respond. If I get more than one request I'll send one to each.

Notice how carefully I have avoided the obvious play on words.


r/lisp • • 11d ago

Curry scheme - what's happened in the last few months

25 Upvotes

Hi All,

Curry Scheme has grown up quite a lot since I last posted about it.

What is Curry?

Curry is an R7RS Scheme implementation with practical R6RS compatibility, a numeric tower extending through the hypercomplex numbers into Clifford algebra, a built-in computer algebra system, quantum superposition values, first-class matrices, tensors, and spinors, a CL-style condition system with restarts, a general C FFI, STM and CSP channels alongside the actor-model concurrency system, a modular C extension interface, and a built-in LLM client that can talk to Claude, GPT-4o, Ollama, or any OpenAI-compatible endpoint — with multi-turn conversation, tool use, and a full agentic loop.

What are the new capabilities that may be of interest?

* Curry is no longer "interpreter-only" - it can compile to curry VM, and ultimately to execute on an LLVM back-end - so long as one incorporate it into your build scripts.

* Text-to-speech using Piper
* MCP and LLM capabilities
* A far richer numeric stack
* A Jupyter kernel so that curry can be used in Jupyter notebooks, with easy build options for macOS.
* Early support for raspberry pi (and related boards) - including GPIO support and such.

I'd love some feedback! Tho, I'm not as interest in "but you used AI...." type comments - yes I did -t allows me to realise things that I'm thinking about quickly..

On the other hand, I'm interested in constructive critique and thoughts about curry as it stands, as well as what could be considered/added to be more useful

Check it out here: https://github.com/deconstructo/curry


r/lisp • • 12d ago

Lisp-to-Go transpiler in 500 lines of code

Thumbnail blog.bilus.dev
33 Upvotes

r/lisp • • 13d ago

Searching for printed manuals [Lisp Machine, Symbolics]

19 Upvotes

Would anyone know where I could purchase printed Lisp Machine and/or Symbolics manuals? I did a couple of searches that turned up nothing.

I know they're available online; I am building a library of physical books.


r/lisp • • 14d ago

Polars Dataframe bindings for Racket

Thumbnail
12 Upvotes

r/lisp • • 14d ago

integer->char anecdote

2 Upvotes

Given: If (and (integer? NUMBER) (exact? NUMBER)) then (integer->char NUMBER) should give us CHAR? Right? R7 report saying something other: Given an exact integer that is the value returned by a character when char->integer is applied to it, integer->char returns that character.

So for the numbers like 65.0 which of course Exact and Integer in ASCII range

CSI, GSI, Chez, Guile, MIT, STKlos, Gauche, Racket at (integer->char ) give error condition, more or less dum. So report saying between words silently: NUMBER to the (integer->char ) should be pleease Fixnum within a particular Range.

But I found the Scheme that works

TinyScheme 1.42
ts> (integer? 65.0)
#t
ts> (integer->char 65.0)
#\A

So maybe its time to legalize Fixnum and Range numbers in RnRS? Or strictly use a Lisp numerical tower, maybe.


r/lisp • • 15d ago

Lisp "The lispy guys seem to be the most cheerful people." - Dobiasd/programming-language-subreddits-and-their-choice-of-words

Thumbnail github.com
105 Upvotes