[CM] CMN what happened to the non-Postscript backends?

Bill Schottstaedt bil@ccrma.Stanford.EDU
Wed, 22 Nov 2006 10:33:33 -0800

> i just had a look at the cmn code (after a long time of just using it) 
> and saw that all of the non-Postscript backend stuff got removed. The 
> only thing I could find was a notice in the changelog: 
> 15-Mar: removed nxtcmn.c, sgicmn.c, xcmnw.c, cmn-mcl-utils.lisp, 
> cmn-mcl.lisp, 
>          cmn-excl.lisp, cmn-scroll.lisp.  Removed all FFI, 
>          quickdraw, and Braille stuff. 
> What was the reason for this? I wanted to look at the code to find out 
> how much work would be required to add other backends (Cairo/CLIM/PDF). 
> From what understand looking at the current code all drawing operations 
> are functions and not generic methods - hard to specialize on the 
> backend. 

The FFI stuff was removed because it wasn't needed (it provided an optimization
of format), and it added a lot of complexity to the build process, constantly
causing trouble.

The Quickdraw stuff was removed because Quickdraw no longer exists.

The Braille support was removed because, as far as I could tell, no one was
using it; the person who asked me for it disappeared -- it probably never

The previewer was removed because I thought I was going to find time to
write a better one using technology invented after World War 2, but I haven't.

The output functions never were generic -- cmn-grfx.lisp has most of them;
they are very simple.  To add a new backend, use the output-type field of the
score object, and a lowly case statement; or change everything to methods,
if you want.

I believe a CLIM backend would be easy, and Cairo not so bad but it would need
FFI support; I don't know anything about pdf.