# McCLIM: A GUI toolkit for Common Lisp

**URL:** <https://forum.malleable.systems/t/mcclim-a-gui-toolkit-for-common-lisp/172>\
**Category:** Projects\
**Tags:** clim, lisp\
**Created:** [21 February 2024 07:15 UTC](https://forum.malleable.systems/t/mcclim-a-gui-toolkit-for-common-lisp/172 "2024-02-21T07:15:25Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![jackdaniel](https://forum-cdn.malleable.systems/user_avatar/forum.malleable.systems/jackdaniel/32/161_2.png) [@jackdaniel](https://forum.malleable.systems/u/jackdaniel)\
**Post date:** [21 February 2024 07:15 UTC](https://forum.malleable.systems/t/mcclim-a-gui-toolkit-for-common-lisp/172/1 "2024-02-21T07:15:26Z")

</div>

[https://mcclim.common-lisp.dev/](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](http://turtleware.eu/posts/A-tale-of-two-abstractions.html)](A tale of two abstractions)

---

<div class="post-metadata">

**Author:** ![khinsen](https://forum-cdn.malleable.systems/user_avatar/forum.malleable.systems/khinsen/32/45_2.png) [@khinsen](https://forum.malleable.systems/u/khinsen)\
**Post date:** [23 February 2024 07:50 UTC](https://forum.malleable.systems/t/mcclim-a-gui-toolkit-for-common-lisp/172/2 "2024-02-23T07:50:33Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![jackdaniel](https://forum-cdn.malleable.systems/user_avatar/forum.malleable.systems/jackdaniel/32/161_2.png) [@jackdaniel](https://forum.malleable.systems/u/jackdaniel)\
**Post date:** [23 February 2024 07:59 UTC](https://forum.malleable.systems/t/mcclim-a-gui-toolkit-for-common-lisp/172/3 "2024-02-23T07:59:43Z")

</div>

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](https://functional.cafe/system/media_attachments/files/111/862/460/605/882/360/original/c7874f7079898801.mp4)

---

<div class="post-metadata">

**Author:** ![khinsen](https://forum-cdn.malleable.systems/user_avatar/forum.malleable.systems/khinsen/32/45_2.png) [@khinsen](https://forum.malleable.systems/u/khinsen)\
**Post date:** [23 February 2024 14:02 UTC](https://forum.malleable.systems/t/mcclim-a-gui-toolkit-for-common-lisp/172/4 "2024-02-23T14:02:40Z")

</div>

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.
