On Mar 23, 2004, at 8:16 AM, Brian Mastenbrook wrote:
Greetings all,
This list has been dead for a while, so I'm wondering where everyone is? As I recall people were working on a few cool things: Clotho, McCLIM/Cocoa, and SBCL/PPC callbacks for Carbon. I'd love to know how people have been doing on these!
Paul Lathrop got cvs access to Clotho and has added several small enhancements.
I got Hamilton Link's express permission to include his inspector in Clotho, and to adapt it however we see fit.
I wrote a syntax-coloring algorithm which seems acceptably fast, but needs some further debugging. I've had a little discussion with Gary and Randall about possible improvements to the Cocoa bridge, the goal being to solve the present problem that applications built with the bridge are tied to specific OS versions (for example, the recent release of OS X 10.3.3 required a recompile of Bosco-based apps; this seems a rather large inconvenience for anyone who wants to deliver an application based on the bridge).
I spent a little time experimenting with various approaches to hooking OSX's event and threading frameworks at a lower level than Cocoa; next I plan to experiment with building SLIME's swank server into Bosco. The goal is to make it easier to control and augment Bosco-based apps (including Clotho and McCLIM.app) from an Emacs session.
Duncan Rose and I merged McCLIM code and he made some further improvements to rendering (and fixed a bug I introduced in event-handling). I'm told I have commit privileges on the repository, but haven't yet checked in our code.
I haven't advanced either of these projects in a couple of weeks because I've spent too much time on other things (notably, on writing code for the people who pay my salary). That will change soon, but I feel like I owe some time to the Hansa project, so I'm working on its game server right now. When I get to a stopping place on that, I need to spend a little time on Kenny Tilton's Cello, to see how hard it is to get it to build with OpenMCL.
Then I mean to return to McCLIM and Clotho. I have in mind to debug and merge in Clotho's syntax-coloring code and then move on to a list of things that I think need to be done. I encourage any interested readers of this list to pitch in.
Here's the list I sent to Paul Lathrop a little while back, with a few annotations. Paul's interested inn working on at least some of these.
BUGS ----
- the application occasionally hangs or crashes; the cause of these anomalies needs investigation
[this one seems to be fixed in the latest cvs version]
- the build breaks at SAVE-APPLICATION about half the time, dropping into the Lisp kernel debugger. Continuing results in a good build, but it's very annoying. The likely cause is known, but we haven't figured out a better workaround than continuing from the kernel debugger. A better fix would be a great contribution.
[this is a little better in recent cvs versions of OpenMCL]
ADD-ONS -------
- a recent addition is Hamilton Link's Cocoa inspector. It has a fine windowing UI, but there is no UI to invoke it. Invention and construction of UI to inspect arbitrary text would be nice. So would extensions to (and of course bug-hunting in) the inspector itself.
- Gary Byers has made a partial port of Portable Hemlock to Cocoa. Completing that port and integrating it with Clotho would be a great improvement.
- I'd like to use Albert or something similar to generate documentation from the project. Albert does not presently work with the Clotho codebase. It would be great if someone could either teach Albert how to read Clotho's code or, in the worst case, write another tool that could do the job.
- integrating any level of in-app support for Apple's OpenGL implementation would be nice.
- trolling for and integrating other third-party extensions would be very useful.
CODE BEAUTIFICATION -------------------
- the code for the listener and inspector are minimally changed from the Cocoa example code. Someone needs to read through it, look for opportunities to refactor, improve package organization, look for dead code, document undocumented code, check for unexported symbols that need to be exported and vice versa, move generally useful utilities into more generally-accessible places in the build, and just generally make the code prettier and better factored wherever that can be done.
TESTS -----
- It would be awfully nice to get a unit-testing framework set up and build some suitable unit and integration tests for the various parts of Clotho. Clotho's pretty simple right now, but it won't be long before I'm going to want to see test results before deciding to release new versions.
[I've used the xptest package in other projects; I think it would be fine for use in Clotho]
NEW FEATURES ------------
There are a zillion that I think would be a good idea, but here are the short-term highlights, things I'd like to see getting implemented soon:
- a nibfile reader/writer I'd like some Lisp code that can read and write nibfiles, to form the basis of Lisp-based tools to help build UIs with Clotho.
[A few weeks back I hacked up a very simple reader; it was pretty easy. I think this would be a good starter project for someone with at least a little familiarity with either Lisp or Cocoa or both.]
- a template-based Application bundle builder I want some tools that can construct a properly formed application bundle and put the Info.plist and other resource files in the right place, and fill in the contents from templates. The idea is that I want you to be able to pick "New Project" from a menu and have Clotho build the application bundle with the right names and version numbers and copyright info and all the rest, gathered from a dialog with the user.
[This one should be pretty straightforward grunt work.]
- version-control client code I'd like Clotho to be able to work with some suitable version control system (probably CVS, but I'd be open to discussing something like Arch) in a nice, integrated fashion
[I have recent sources for metacvs and have promised to see if I can get OpenMCL to build it. If I can, then it might be interesting to integrate it with Clotho.]
- syntax coloring I've got some syntax-coloring code partly built that is pretty fast (though as-yet unoptimized), but really doing it well is tricky. I wouldn't mind help with it if someone is very clever about it and willing to fuss will all the hairy edge cases, and get it integrated with the UI.
[This is mostly done; there are two bugs to fix, one in handling strings in certain funny cases (e.g. when some form contains a literal #"), and one in the interaction between the TextView and LayoutManager when applying the styles.]
- documentation support Besides generating documentation, I'd like to get some support for nicely-integrated documentation readers, so that people can search the Common Lisp Hyperspec from within Clotho, with a keystroke, and so that you can quickly and easily search Clotho-specific and project-specific documentation.
- browsing tools Class browsers, cross-referencers, change-managers; I'd like to see all these get built in.
- debugger Decent integration between the GUI and the OpenMCL debugger would be a big win, and fairly tricky to implement.
- Cocoa preferences support Clotho needs to write several user preferences to disk and read them on launch. Obvious first things to support are font and syntax-color preferences, init file name, and starting image.