1
0
Fork
You've already forked McCLIM
0
forked from McCLIM/McCLIM
An implementation of the Common Lisp Interface Manager, version II.
  • Common Lisp 97%
  • NewLisp 1.4%
  • Emacs Lisp 1.3%
  • C 0.3%
Find a file
凉凉 5734be7de2 core: use dedicated operators to intern symbols from strings
Replace calls to (FORMAT NIL "~A-~A" X Y) -like forms with dedicated operators
for interning and concatenating strings SYMBOL-CONCAT and STRING-CONCAT.
This conincidentally also fixes loading McCLIM on systems with non-standard
printer io settings, like *PRINT-CASE* :DOWNCASE, although readning McCLIM with
non standard io settings is not genrally supported.
Utilities functions:
+ `literal-string`: like `string` but support `package-name`
+ `string-concat`: use `write-string` for performance
+ `symbol-concat`: use `string-concat` for readbility
+ `string-join`: support a list of things joined with seperator string
 (used in `make-command-function-name`)
 `make-command-function-name` is called with more than one suffix
 for example, in `make-command-translators`:
 L180:
 (loop for arg in args
 for (name ptype . options) = arg
 for gesture = (getf options :gesture)
 for tr-name = (make-command-function-name command-name ':translate name)
 ...
 so `string-join` is introduced
Style modification:
single whitespace with no align
2026年02月22日 22:50:47 +01:00
.github/workflows Revert back to 3b fork of roswell 2021年03月04日 16:11:05 +05:30
Apps core: use dedicated operators to intern symbols from strings 2026年02月22日 22:50:47 +01:00
Backends core: use dedicated operators to intern symbols from strings 2026年02月22日 22:50:47 +01:00
Core core: use dedicated operators to intern symbols from strings 2026年02月22日 22:50:47 +01:00
data/icons clouseau: add application icon 2021年04月19日 22:25:35 +02:00
Documentation Add 0.9.9 announcement to historical-documents in the repository 2025年03月11日 09:48:24 +01:00
Examples threads: rehabilitate single-threaded builds 2025年11月26日 14:10:53 +01:00
Experimental Move slider experiment to be a slider demo 2025年10月27日 14:20:52 -05:00
Extensions Improve some FTYPE declarations. 2026年01月31日 15:41:23 -05:00
Libraries core: use dedicated operators to intern symbols from strings 2026年02月22日 22:50:47 +01:00
Tests ps/pdf tests: don't call directly replay 2026年02月02日 11:21:21 +01:00
Tools hyperclim.el: extend exceptions for specification symbol highlighting 2021年04月09日 18:56:57 +02:00
.gitignore manual: cleanup: remove latex version 2021年04月21日 11:28:36 +02:00
clim-lisp.asd system: modify clim-lisp.asd to keep up with changes 2022年08月08日 08:16:00 +02:00
Copyright Initial check-in 2000年06月08日 22:01:12 +00:00
default-icons.lisp pathnames: be more compatible with MS Windows 2022年05月19日 14:31:17 +02:00
mcclim.asd Update version in the repository 2025年03月10日 14:35:46 +01:00
NEWS news: update news file 2026年02月02日 13:06:45 +01:00
README.md Update version in the repository 2025年03月10日 14:35:46 +01:00
TODO update 2006年03月23日 16:59:18 +00:00

logo

McCLIM Version 0.9.9 "Ostara"

McCLIM, an implementation of the "Common Lisp Interface Manager CLIM II Specification", is a portable and high-level user interface management system toolkit for Common Lisp. It has a powerful presentation model which allows us to directly link the visual representation of an object to its semantics. It has several high-level programming capabilities that enable us to develop a user interface conveniently; including formatted output, graphics, windowing and commands that are invoked by typing text, keyboard shortcuts or clicking a mouse button.

McCLIM works with Allegro CL, Clozure CL, CLISP, CMUCL, Embeddable CL, the Scieneer CL Common-lisp, SBCL and the LispWorks implementations. Right now the only backend supported by McCLIM is CLX, which ties it to the Xserver on the host system. Any platform capable of running Xserver may run McCLIM applications.

Installing McCLIM

McCLIM is available on Quicklisp. Make sure you have installed a supported Common Lisp implementation and Quicklisp is configured correctly. Then, McCLIM can be installed by entering the following in your REPL:

(ql:quickload "mcclim")

To see if McCLIM works on your host you may load the system with examples and run the example browser application:

(ql:quickload "clim-examples") ; Load the system with examples.
(clim-demo:demodemo) ; Run the example browser application.

An Example

  1. Quickload McCLIM by running (ql:quickload "mcclim").
  2. Put the following code in a file example.lisp.
    (in-package :common-lisp-user)
    (defpackage "APP"
     (:use :clim :clim-lisp)
     (:export "APP-MAIN"))
    (in-package :app)
    ;;; Define a application-frame (a.k.a. application window in traditional GUI's).
    (define-application-frame superapp ()
     ()
     ;; :panes section describes different parts of the
     ;; application-frame. This application has only one pane.
     (:panes
     (int :interactor :height 400 :width 600))
     ;; :layouts section describes how the panes are layed out.
     ;; This application has one layout named "default" which has a single pane.
     (:layouts
     (default int)))
    ;;; Following function launches an instance of "superapp" application-frame.
    (defun app-main ()
     (run-frame-top-level (make-application-frame 'superapp)))
    
  3. Load the file and run:
    (app:app-main)
    
    example.lisp

Documentation

You can access the McCLIM manual draft in HTML and PDF formats if you want, but it's still a work in progress. Several other CLIM 2 resources are listed on CLiki and McCLIM homepage.

Subdirectory Overview

  • Apps - sample applications. This includes:
    • Apps/Clouseau - A powerful inspector for Lisp objects.
    • Apps/Listener - Andy Hefner's Lisp Listener.
    • Apps/Debugger - Peter Mechleborg's debugger (similar to Slime's).
    • Apps/Functional-Geometry - Frank Buss and Rainer Joswig's functional geometry package for drawing "Escher" tiles.
  • Documentation - Contains available documentation such as Documentation for Libraries Drei and ESA, A Guided Tour of CLIM, Specification in LATEX source and Manual in texinfo sources.
  • Examples - Sources for the examples in clim-examples. These are of varying quality and style; many of them date from when McCLIM was quite incomplete.
  • Extensions - Contains several extensions to CLIM 2 spec, such as fonts, extra layouts, images etc. Most of them are loaded automatically with McCLIM.
  • Libraries - Contains Drei and ESA Libraries. See Documentation for details.