source: trunk/source/cocoa-ide/README @ 13711

Last change on this file since 13711 was 7804, checked in by gb, 12 years ago

sync with trunk

File size: 3.5 KB
Line 
1November 20, 2007
2
3This directory contains sources and other resources needed to build
4a Cocoa-based IDE for Clozure CL on OSX.
5
6The IDE uses the ObjC bridge (in ccl/objc-bridge/) to communicate
7with the ObjC runtime.
8
9The "./ide-contents" directory contains nib files, icons and other
10resources used by the IDE.  These are copied to the application bundle
11by the build process.
12
13The "./hemlock" directory contains a hacked up version of Portable
14Hemlock (forked from the main Portable Hemlock tree some years ago.)
15Hemlock is public domain Emacs-like editor that comes with CMUCL;
16Portable Hemlock is an attempt to "free Hemlock from its CMUCL prison"
17(e.g., remove dependencies on CMUCL).  Hemlock (and Portable Hemlock)
18were designed to use CLX for display and event processing; the version
19distributed here uses the Cocoa text system for that functionality.
20Much of the initial work on Portable Hemlock was done by Gilbert Baumann.
21
22To run the IDE from within a ccl command-line session (a shell, Emacs shell
23buffer, under SLIME or ILisp or ...), do:
24
25? (require "COCOA")
26
27The first time this is run, it'll compile the sources, generating lots
28of compiler warnings.  You'll also see messages noting that various
29new ObjC-callable methods are being defined.  When the loading process
30completes, it creates a temporary application bundle in "ccl:temp
31bundle.app" and activates it.  You should see a new menubar, a
32listener window, and a Clozure CL icon in the Dock. The non-GUI
33listener process from which the REQUIRE was issued will remain active;
34you may see warning/diagnostic/error messages from the IDE directed to
35the standard output/error streams associated with that listener.
36(Under SLIME, these messages might appear in the *inferior lisp*
37buffer.)
38
39It's also possible to save the loaded IDE in a populated bundle,
40effectively making it a double-clickable application.  To do this, you
41can do:
42
43? (require "COCOA-APPLICATION")
44
45which will create an application bundle in "ccl:Clozure CL.app"
46and save an executable lisp image inside it. Double-clicking on
47that bundle in the Finder will launch the IDE; any diagnostic
48messages/warnings/etc. will be written to the system log, which
49can be examined with the Console application.
50
51The IDE depends on functionality introduced in OSX 10.4 (Tiger).
52
53
54
55*Note: CCL directory and IDE Preferences
56
57Normally, the IDE assumes it is located at the top level of the "CCL"
58directory.  It uses the CCL directory to enable Meta-. to find the
59system source files and require'd modules, among other things.  If you
60want to move the IDE somewhere else, e.g. to put it in the
61Applications folder, but still want to be able to Meta-. and require
62stuff from the CCL directory, you can set the "CCL Directory" entry in
63the "Paths" pane of the Preferences dialog to the absolute path of the
64directory containing the system sources.
65
66The values of changed application preferences are stored in
67"~/Library/Preferences/com.clozure.Clozure CL.plist"; if you have
68an old version of this file, it might be desirable to delete it
69before invoking the IDE for the first time.
70
71
72*Note: Interface files
73
74The standalone IDE bundle contains a copy of the FFI/ObjC interface
75definition databases (i.e. the .cdb files) for its target platform in
76Clozure CL.app/Contents/Resources/xxx-headers.  If you create
77additional databases that you want the IDE to access, you can just
78copy them into the bundle.  Conversely, if you'd rather use the
79interface definitions in the CCL directory, just delete the ones in
80the bundle.
Note: See TracBrowser for help on using the repository browser.