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