Merge from emacs--rel--22
[bpt/emacs.git] / nextstep / README
1 Copyright (C) 2008 Free Software Foundation, Inc.
2 See the end of the file for license conditions.
3
4 Emacs.app
5 =========
6
7 This file introduces the NeXTstep-based port of GNU Emacs, known as
8 Emacs.app, which runs on on many POSIX systems and possibly W32 using
9 the GNUstep libraries and on MacOS X systems using the Cocoa
10 libraries. The directory "nextstep" and its subdirectories "Cocoa"
11 and "GNUstep" contain files relevant to building and running on these
12 systems.
13
14 Those primarily responsible for the port (in chronological order) were:
15
16 Michael Brouwer
17 Carl Edman
18 Christian Limpach
19 Scott Bender
20 Christophe de Dinechin
21 Adrian Robert
22
23 See AUTHORS file and "Release History" below for more information.
24
25 GNU Emacs is due to Richard Stallman and company.
26
27 The GNUstep port was made possible through the assistance of Adam Fedor, Fred
28 Kiefer, M. Uli Klusterer, Alexander Malmberg, Jonas Matton, and Riccardo
29 Mottola.
30
31 Peter Dyballa assisted in a variety of ways to improve text rendering and
32 keyboard handling. Adam Ratcliffe documented the Preferences panel. David
33 M. Cooke contributed fixes to XPM handling. Carsten Bormann helped get dired
34 working for non-ASCII filenames.
35
36
37 Requirements
38 ------------
39 MacOS X 10.3 or later
40 - or -
41 GNUstep "Startup 0.13" or later
42 Tested on linux, should work on other systems, perhaps with minor build
43 tweaking.
44
45
46 Compilation
47 -----------
48
49 See INSTALL.
50
51
52 Usage
53 -----
54
55 Please use the first entry under the help menu within Emacs.app, do
56 "M-x info-ns-emacs".
57
58
59 Background
60 ----------
61
62 Internally to emacs, the port and its code are referred to using the term
63 "NeXTstep", despite the fact that no system or API has been released under
64 this name in more than 10 years. Here's some background on why..
65
66 NeXT, Inc. introduced the NeXTstep API with its computer and operating system
67 in the late 1980's. Later on in collaboration with Sun, this API was
68 published as a specification called OpenStep. The GNUstep project started in
69 the early 1990's to provide a free implementation of this API. Later on,
70 Apple bought NeXT (some would say "NeXT bought Apple") and made OpenStep the
71 basis of OS X, calling the API "Cocoa". Since then, Cocoa has evolved beyond
72 the OpenStep specification, and GNUstep has followed it.
73
74 Thus, calling this port "OpenStep" is not technically accurate, and in the
75 absence of any other determinant, we are using the term "NeXTstep", both
76 because it signifies the original inspiration that created these APIs, and
77 because all of the classes and functions still begin with the letters "NS".
78
79 (See http://en.wikipedia.org/wiki/Nextstep)
80
81 This Emacs port was first released in the early 1990's on the NeXT computer,
82 and was successively updated to OpenStep, Rhapsody, OS X, and then finally
83 GNUstep, tracking GNU emacs core releases in the meantime.
84
85
86
87 Release History
88 ---------------
89
90 1990-1992 1.0-3.0 (?) Michael Brouwer's socket/terminal communication
91 based version (GUI ran as a separate process.)
92
93 1993/10/25 3.0.1 Last (?) release of Brouwer version. Supports
94 NeXTstep 3.x and below.
95
96 1994/04/24 4.0 Carl Edman's version using direct API following
97 the X-Windows port. NeXTstep 3.x only.
98
99 1995/06/15 4.1 Second (and last) Carl Edman release, based on
100 Emacs 19.28.
101
102 1996/07/28 4.2 First Christian Limpach release, based on
103 Emacs 19.29.
104
105 ?? 5.0 ??
106
107 1997/12/?? 6.0b1 Ported to OpenStep by Scott Bender. Updated
108 to Emacs 20.2.
109
110 ?? 6.0b2 (?) Scott Bender: ported to Rhapsody.
111
112 1999/05/?? 6.0b3 Scott Bender: "OS X Server", Emacs 20.3.
113
114 2001/06/25 7.0 Ported to MacOS X (10.1) by Christophe de
115 Dinechin. Release based on Emacs 20.7. Hosting
116 moved to SourceForge.
117
118 2002/01/03 7.0.1 Bug fixes.
119
120 2002/08/27 7.0.2 Jaguar (OS X 10.2) support. Added an autoconf
121 option for sys_nerr being in stdio. Added
122 libncurses to the build libraries. Fixed a
123 problem with ns-alternate-is-meta. Changed the
124 icon color to blue, since Jaguar is yellow.
125
126 2004/10/07 8.0-pre1 Ported to GNUstep by Adrian Robert.
127
128 2004/11/04 8.0-pre2 Restored functionality on OS X (menu code
129 cleanup). Improved scrollbar handling and
130 paste from other applications. File icons
131 obtained properly from NSWorkspace. Dropped
132 Gorm and Nib files. Background refresh bug
133 fixed (in GNUstep). Various small fixes and
134 code cleanups. Now starts up under Art.
135
136 2005/01/27 8.0-pre3 Bold and italic faces supported. Cursor and
137 mouse highlighting rendering bugs
138 fixed. Drag/drop and cut/paste interaction
139 w/external apps fixed. File load/save panels
140 available. Stability and rendering speed
141 improvements. Some ObjC and VC mode bugs fixed.
142
143 2005/02/27 8.0-rc1 Dynamic path detection at startup so Emacs.app
144 can be moved anywhere. Added binary packages
145 and simplified source installation to running
146 two scripts. Thorough cleanup of menu code;
147 now fully functional. Fixed all detected
148 memory leaks. Minor frame focus and title
149 bugs fixed.
150
151 2005/03/30 8.0-rc2 "Configure" info directory now uses dynamic
152 path setting, so info files can go under .app.
153 Improved select() handling and PTY fixes so
154 shell mode and tramp run smoothly.
155 Significant rendering optimizations under
156 GNUstep, and now works under Art backend.
157 Non-Latin text rendering works (but not
158 fontsets), and LEIM is bundled. UTF8 is used
159 for clipboard interaction.
160 Arrow cursor now used on scrollbar.
161 objc-mode and tramp now bundled in site-lisp.
162
163 2005/05/30 8.0-rc3 Fixed bug with parsing of "easymenu" menus.
164 Many problems with modes such as SLIME, MatLab,
165 and Planner go away. Improved scrollbar
166 handling and rendering speed. Color panel
167 and other bug fixes. mac-fix-env utility.
168 Font handling improvements (OS X 10.3, 10.4):
169 - heed 'GSFontAntiAlias' default
170 - heed system antialiasing threshold
171 - added 'UseQuickdrawSmoothing' default to
172 invoke less heavy antialiasing
173
174 2005/07/05 8.0-rc4 Added a Preferences panel. Cleaned up
175 rendering for synthetic italic fonts. Further
176 improved menu parsing. Use system highlight
177 color. Added previous- and next-mark history
178 navigation commmands bound to M-p,M-n.
179 Miscellaneous bug fixes.
180
181 2005/08/04 8.0-rc5 All internal string handling changed to UTF-8.
182 This means menu items, color and color list
183 names, and a few other things will now display
184 properly. It does NOT mean UTF-8 filenames
185 are displayed correctly in the minibuffer.
186 Also relating to UTF-8, contents of files
187 using this coding can now be displayed (though
188 not auto-recognized; add extensions to your
189 default coding alist). Limited mac-roman
190 support was also added (also sans recognition).
191 Certain characters are not displayed properly
192 due to a translation problem. (UTF-8 based on
193 work by Otfried Cheong; mac-roman from
194 emacs-21.) Partial support for "dead-key"
195 handling now added. Transparency (e.g., M-x
196 set-background-color ARGB88FFFFFF) improved:
197 only the background is made transparent.
198 Cursor drawing glitches fixed. Preferences
199 handling improved. Fixed some portability
200 problems on Tiger and Puma.
201
202 2005/09/12 8.0 Bundled ispell on OS X. Minor bug fixes and
203 stability improvements. Compiles under gcc-4.
204
205 2005/09/26 8.0.1 Correct clipped rendering for synthetic
206 italics. Include the info directory.
207 Fix grabenv. Bundle whitespace package.
208
209 2005/10/27 8.0.2 Correct rendering for wide characters during
210 cursor movement. Fix bungled hack in ispell
211 bundling.
212
213 2005/11/05 9.0-pre1 Updated to latest Emacs CVS code on unicode-2
214 branch (proposed to be released 2006/2007 as
215 Emacs 23).
216
217 2005/11/11 9.0-pre2 Fix crashes for deiconifying and loading
218 certain images. Improve vertical font metrics
219 (fixes inaccurate page up/down, window size,
220 and partial lines). Support better remapping
221 of Alt/Opt and remapping of Command. More
222 insistent defaulting of scrollbar to right.
223 Modest improvements to build process.
224
225 2006/04/22 9.0-pre2a Stopgap interim release to sync w/latest
226 unicode-2 CVS. Includes XPM and partial
227 toolbar support.
228
229 2006/06/08 9.0-pre3 Major upgrade to keyboard handling:
230 system-selected compositional input methods
231 should now work, as well as more keys /
232 keyboards. XPM, toolbar, and tooltip support.
233 Some improvements to scrollbars, zoom, italic
234 rendering, pasting, Color panel. Added function
235 ns-set-background-alpha to work around
236 inability to customize with numeric colors.
237
238 2006/12/24 9.0-rc1 Reworked font handling and text rendering to
239 use Kenichi Handa's new font back-end system.
240 Font sets are now supported and automatically
241 created when a font is selected. Added recent
242 X11 colors to Emacs.clr (remove
243 ~/Library/Colors/Emacs.clr to pick up). Added
244 ns-option-modifier, ns-control-modifier,
245 ns-function-modifier customization variables.
246 Update menus to Emacs 21+ conventions. Right
247 mouse button now generates mouse-3 events.
248 Various bug fixes and rendering improvements.
249
250 2007/09/10 9.0-rc2 Improve menubar, popup menu, and scrollbar
251 behavior, let accented char entry work in
252 isearch, follow system keymap for shortcut
253 keys, fix border and box drawing, remove
254 glitches in modeline drawing, support
255 overstrike for unavailable bold fonts, fix XPM
256 related crasher bugs. Incremental font
257 metrics caching and other performance
258 improvements. Shared-lisp builds now possible.
259
260 2007/09/20 9.0-rc2a Interim release. New features: composed
261 character display, colored fringe bitmaps,
262 colored relief drawing, dynamic resizing,
263 Bug fixes: popup menu position and selection,
264 font width calculation, face color adaptation
265 to background, submenu keyboard navigation.
266 NOT TESTED ON GNUSTEP.
267
268 2007/11/19 9.0-rc3 Integrated the multi-TTY functionality from
269 emacs core (however, mixed TTY and GUI
270 sessions are not working yet). Support 10.5.
271 Give site-lisp load precedence over lisp and
272 add a compile option to prefer an additional
273 directory, use miniaturized miniwindow images
274 in some cases, rename cursor types for
275 consistency w/other emacs terms, improved font
276 selection for symbol scripts.
277 Bug fixes: fringe and bitmap, frame deletion,
278 resizing, cursor blink, workspace open-file,
279 image backgrounds, toolbar item enablement,
280 context menu positioning.
281
282 2008/07/15 (none) Merge to GNU Emacs CVS trunk.
283
284 \f
285 This file is part of GNU Emacs.
286
287 GNU Emacs is free software: you can redistribute it and/or modify
288 it under the terms of the GNU General Public License as published by
289 the Free Software Foundation, either version 3 of the License, or
290 (at your option) any later version.
291
292 GNU Emacs is distributed in the hope that it will be useful,
293 but WITHOUT ANY WARRANTY; without even the implied warranty of
294 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
295 GNU General Public License for more details.
296
297 You should have received a copy of the GNU General Public License
298 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.