https://mcclim.common-lisp.dev/
McCLIM (Mike McDonald’s Common Lisp Interface Manager) is a FOSS implementation of the CLIM II specification. CLIM descends from Genera’s Dynamic Windows, a graphical interface used on Lisp Machines.
It is more a building clay than a graphical toolkit as it implements interfaces on different abstraction levels[1]. The project started in 1998 and had a few breaks in development, it is still actively improved.
[1] [TurtleWare](A tale of two abstractions)
2 Likes
What devices/OS/GUI platforms are supported by McCLIM? It works on my machine, so X-Windows is one answer. But I can’t find documentation on that topic. In particular, are there any plans to make McCLIM work on mobile devices?
Thanks for asking! Currently it can produce output targeting: X11, raster images (png, jpg, …), SVG, PDF and PostScript. I’m often using it to produce graphics.
-
As you have guessed, X11 is the primary interactive platform at the moment. Since X11 can run on Unices, OSX and Windows, it is an acceptable default for someone motivated.
-
I’m working on SDL2 backend (at first - software renderer, after that something faster) - my guess is that it should be ready for inclusion in a few months. Either way SDL2 will cover most popular platforms.
-
Another (perhaps goofy) target I’m working on is the terminal[1], but it is experimental. The primary goal is to stress test assumptions about the device granularity.
-
There’s a person who works on Wayland backend but I don’t have any estimates for that. They have basic I/O working.
Regarding mobile support – perhaps after SDL2 backend is complete we will be able to tackle this topic. From mobile-related things I have plans to add touch gestures (currently these are treated as a pointer gestures). I’ve also recently ported ECL to Emscripten, so perhaps SDL2 backend running in the browser is not that of a stretch.
[1] https://functional.cafe/system/media_attachments/files/111/862/460/605/882/360/original/c7874f7079898801.mp4
Thanks for all those details!
SDL2 sounds promising indeed, and since it’s supported on Android, it’s a step towards mobile.
ECL + Emscripten sounds promising as well, though it’s a bit too much infrastructure for my minimalist taste.
1 Like