These are just some idle questions.
Is the source from Hemlock at all useful as far as editing functions for porting over to a proper Carbon based application for an Aqua compliant IDE?
Are there any other independent projects besides Clotho in this area?
Is the goal of this list to work on an implementation portable IDE (OpenMCL, SBCL, etc), or is a particular implementation favored?
What about integration with Interface Builder?
This is a very quiet list. Could it be that many people think Emacs + SLIME (or some other non-Aqua solution) is "good enough" for now?
SLIME has done some clever stuff to support a wide variety of Lisp implementations. The techniques used in that project may be applicable for a portable implementation. How much extra work is that compared to just supporting a single implementation?
Is there a current wish list / spec for this project?
On Thu, 22 Jul 2004, David Steuber wrote:
These are just some idle questions.
Is the source from Hemlock at all useful as far as editing functions for porting over to a proper Carbon based application for an Aqua compliant IDE?
I had made some progress in integrating Portable Hemlock and Cocoa; I'd hoped to be able to release that a few months ago, but haven't had time to do much of anything OpenMCL- or mac-lisp-ide- related since.
I don't know how useful this would be to someone determined to use Carbon.
Hemlock is strongly oriented towards a model where a single "frame" (in the Emacs sense; this means something like "window" to the rest of the world) displays multiple buffers. I had tried to get things to fit better into the Mac "document" paradigm: so that there'd be roughly a 1:1 correspondence between a Hemlock buffer and a Mac document (and generally a single document per window.) I'd managed to nudge a lot of Hemlock towards the Mac paradigm, but there was still a lot of nudging to do (some Hemlock commands/functions still think that it's involved in redisplay and layout, and don't behave correctly under Cocoa.)
I think that it's fair to say that Hemlock's not very thread-aware, and some of the things that I did to try to make it behave better in a multi-window, multi-threaded environment are incredibly ugly. I suspect that many things have to be at least fairly ugly: "modal" things (like M-X and incremental search) want to block for input, but you don't really want the whole IDE to freeze because some window is waiting for the next incremental search character ...
As far as Hemlock itself goes ... I still think that it's easier than writing an editor core would have been, and it provides lots of support for S-expression-based navigation out-of-the-box. Aside from the whole "who's in charge of event-processing and redisplay" issues, the biggest piece of missing functionality that I can think of in the Hemlock code base is support for pattern-based searching (e.g., to be able to have M-. find a DEFUN or DEFMETHOD pattern without getting confused by case-sensitivity, whitespace, and other details.)
I think that most of the functionality that Hemlock provides is reasonable (if a bit spartan), and that the major difficulties with using Hemlock in a modern Aqua environment would be shared most other starting points (e.g., if you re-wrote [X]Emacs in CL, you'd still have to think about document/buffer/frame issues and threading and modality and ...).
If anyone wants to volunteer to fix up/finish the Hemlock/Cocoa stuff I started, I can help some; I hope to be able to work on it more in the near future, but every prediction I've made so far about how "near" has proven wildly optimistic.
On Jul 22, 2004, at 4:13 PM, Gary Byers wrote:
On Thu, 22 Jul 2004, David Steuber wrote:
These are just some idle questions.
Is the source from Hemlock at all useful as far as editing functions for porting over to a proper Carbon based application for an Aqua compliant IDE?
I had made some progress in integrating Portable Hemlock and Cocoa; I'd hoped to be able to release that a few months ago, but haven't had time to do much of anything OpenMCL- or mac-lisp-ide- related since.
I don't know how useful this would be to someone determined to use Carbon.
[...]
If anyone wants to volunteer to fix up/finish the Hemlock/Cocoa stuff I started, I can help some; I hope to be able to work on it more in the near future, but every prediction I've made so far about how "near" has proven wildly optimistic.
I have a new version of Clotho on the table, based on a new version of Bosco that I did a month or so ago, and I plan sometime 'soon' to try merging your Hemlock sources into it.
But I'm kind of in the same boat as you regarding time to do it. If people are patient enough, I'll eventually get it done. If they aren't, well, I'm always glad for other people to do the work I was going to do.
--me
On Jul 22, 2004, at 11:52 PM, mikel evins wrote:
I have a new version of Clotho on the table, based on a new version of Bosco that I did a month or so ago, and I plan sometime 'soon' to try merging your Hemlock sources into it.
But I'm kind of in the same boat as you regarding time to do it. If people are patient enough, I'll eventually get it done. If they aren't, well, I'm always glad for other people to do the work I was going to do.
Well, my present status is that I am beginning to work through "Learning Carbon" with Xcode and Interface Builder 2.4.2 (from Xcode 1.2 CD). I'm as far along as chapter 9 in Keene's CLOS book without having actually tried any CLOS out.
I was under the impression that OpenMCL's Cocoa support was in flux. What is the status of that? I'm mainly going for Carbon because it seems more stable. Also, I plan to try and incorporate OpenGL and QuickTime in my programming (some time in the future) and they both have C APIs as Carbon does. Otherwise, Cocoa is not a problem for me. I have a tutorial book on that also that I have not worked through. Like Learning Carbon, it assumes Project Builder rather than Xcode and an older version of Interface Builder.
So I am in a catch up mode for some indefinite period of time. I was fairly sure that someone would be using Hemlock code in part as part of a Mac Lisp IDE. Doing an editor from scratch seems hard.
I also still have to learn about Lisp's error handling system. Other than that, I am confident that I can handle CS 101 sort of stuff in Lisp.
If there is no wish list yet, can I add integration with Interface Builder near the top? I think for its part, Xcode does necessary code generation and Interface Builder is simply another program that it starts up. I'm not aware of any IPC going on. Anyway, wrapping Interface Builder Services with the appropriate reusable code seems like the clear way to go. It could even be used in the IDE.