I am glad to get my last phost's offline distaste out of my
mouth and begin my quest into the mcclim backend of clim2.
This is what I think I am doing, anyway.

CLIM's premise is that the only way to talk to common lisp
defined by the standard is READing streams, such as standard
input or file streams. CLIM changes this to event streams,
implicitly from graphical applications.

The CLIM2 standard is then implemented by the McCLIM example
backend which is the SWANK server frome gnu emacs slime for
communicating to lisp streams, and every other lisp package
(basically for MMAPed graphics and every file format under the
sun). I feel like it could be easier to not load dependencies
I don't want.

I was a bit confused by

simply include :clim and :clim-lisp in your :use list

since this did not appear to end up loading the required mcclim
backend dependency of my new asdf package. Anyway, here is how
I started:

```~/common-lisp/eg/eg.asd
(defsystem "eg"
:class :package-inferred-system
:serial t
:depends-on (:mcclim "eg/src/all"))

(register-system-packages "eg/src/all" '(:eg))
```
(I wasn't sure where I was going to end up)
```~/common-lisp/eg/src/all.lisp
(uiop:define-package :eg
(:mix :clim :clim-lisp :cl))

(in-package :eg)

(defclass hello-world-pane (clim-stream-pane) ())

(define-application-frame hello-world ()
((greeting :initform "Hello_World" :accessor :greeting))
(:pane (make-pane 'hello-world-pane)))
```

In the guided tour, the class named hello-world-pane is
forward referenced.

Anyway, this was sufficient for

```sh
$ rlwrap ecl
> (require :eg)
> (in-package :eG)
EG> (run-frame-top-level (make-application-frame 'hello-world))
```
to pop up a window, completing the hello world example.

I'm not entirely sure why :pane is put in the same place as
:documentation or :default-initargs yet, given it looks a lot
like a slot to me naievely.

I just tried this on a linux vm to start with. Hopefully :mcclim
has been implemented on openbsd as well.