Merge branch 'master' into comment-cache
[emacs.git] / etc / NEXTSTEP
blobd3e4828f89acd5c4d10c6278522632f3387fbef1
1 Copyright (C) 2008-2017 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 systems using the Cocoa
7 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 Mac OS X, calling the API
21 "Cocoa".  Since then, Cocoa has evolved beyond the OpenStep
22 specification, and 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, Mac OS
34 X, 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 Mac OS 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 (Mac OS X 10.2) support. Added 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 Mac 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 (Mac OS X 10.3,
120                                 10.4):
121                                 - heed 'GSFontAntiAlias' default
122                                 - heed system antialiasing threshold
123                                 - added 'UseQuickdrawSmoothing' default to
124                                   invoke less heavy antialiasing
126 2005/07/05      8.0-rc4         Added a Preferences panel.  Cleaned up
127                                 rendering for synthetic italic fonts.  Further
128                                 improved menu parsing.  Use system highlight
129                                 color.  Added previous- and next-mark history
130                                 navigation commands bound to M-p,M-n.
131                                 Miscellaneous bug fixes.
133 2005/08/04      8.0-rc5         All internal string handling changed to UTF-8.
134                                 This means menu items, color and color list
135                                 names, and a few other things will now display
136                                 properly.  It does NOT mean UTF-8 filenames
137                                 are displayed correctly in the minibuffer.
138                                 Also relating to UTF-8, contents of files
139                                 using this coding can now be displayed (though
140                                 not auto-recognized; add extensions to your
141                                 default coding alist).  Limited mac-roman
142                                 support was also added (also sans recognition).
143                                 Certain characters are not displayed properly
144                                 due to a translation problem.  (UTF-8 based on
145                                 work by Otfried Cheong; mac-roman from
146                                 emacs-21.)  Partial support for "dead-key"
147                                 handling now added.  Transparency (e.g., M-x
148                                 set-background-color ARGB88FFFFFF) improved:
149                                 only the background is made transparent.
150                                 Cursor drawing glitches fixed.  Preferences
151                                 handling improved.  Fixed some portability
152                                 problems on Tiger and Puma.
154 2005/09/12      8.0             Bundled ispell on Mac OS X.  Minor bug fixes
155                                 and stability improvements.  Compiles under
156                                 gcc-4.
158 2005/09/26      8.0.1           Correct clipped rendering for synthetic
159                                 italics. Include the info directory.
160                                 Fix grabenv. Bundle whitespace package.
162 2005/10/27      8.0.2           Correct rendering for wide characters during
163                                 cursor movement.  Fix bungled hack in ispell
164                                 bundling.
166 2005/11/05      9.0-pre1        Updated to latest Emacs CVS code on unicode-2
167                                 branch (proposed to be released 2006/2007 as
168                                 Emacs 23).
170 2005/11/11      9.0-pre2        Fix crashes for deiconifying and loading
171                                 certain images.  Improve vertical font metrics
172                                 (fixes inaccurate page up/down, window size,
173                                 and partial lines).  Support better remapping
174                                 of Alt/Opt and remapping of Command.  More
175                                 insistent defaulting of scrollbar to right.
176                                 Modest improvements to build process.
178 2006/04/22      9.0-pre2a       Stopgap interim release to sync w/latest
179                                 unicode-2 CVS.  Includes XPM and partial
180                                 toolbar support.
182 2006/06/08      9.0-pre3        Major upgrade to keyboard handling:
183                                 system-selected compositional input methods
184                                 should now work, as well as more keys /
185                                 keyboards.  XPM, toolbar, and tooltip support.
186                                 Some improvements to scrollbars, zoom, italic
187                                 rendering, pasting, Color panel.  Added function
188                                 ns-set-background-alpha to work around
189                                 inability to customize with numeric colors.
191 2006/12/24      9.0-rc1         Reworked font handling and text rendering to
192                                 use Kenichi Handa's new font back-end system.
193                                 Font sets are now supported and automatically
194                                 created when a font is selected.  Added recent
195                                 X11 colors to Emacs.clr (remove
196                                 ~/Library/Colors/Emacs.clr to pick up).  Added
197                                 ns-option-modifier, ns-control-modifier,
198                                 ns-function-modifier customization variables.
199                                 Update menus to Emacs 21+ conventions.  Right
200                                 mouse button now generates mouse-3 events.
201                                 Various bug fixes and rendering improvements.
203 2007/09/10      9.0-rc2         Improve menubar, popup menu, and scrollbar
204                                 behavior, let accented char entry work in
205                                 isearch, follow system keymap for shortcut
206                                 keys, fix border and box drawing, remove
207                                 glitches in modeline drawing, support
208                                 overstrike for unavailable bold fonts, fix XPM
209                                 related crasher bugs.  Incremental font
210                                 metrics caching and other performance
211                                 improvements.  Shared-lisp builds now possible.
213 2007/09/20      9.0-rc2a        Interim release.  New features: composed
214                                 character display, colored fringe bitmaps,
215                                 colored relief drawing, dynamic resizing,
216                                 Bug fixes: popup menu position and selection,
217                                 font width calculation, face color adaptation
218                                 to background, submenu keyboard navigation.
219                                 NOT TESTED ON GNUSTEP.
221 2007/11/19      9.0-rc3         Integrated the multi-TTY functionality from
222                                 emacs core (however, mixed TTY and GUI
223                                 sessions are not working yet).  Support 10.5.
224                                 Give site-lisp load precedence over lisp and
225                                 add a compile option to prefer an additional
226                                 directory, use miniaturized miniwindow images
227                                 in some cases, rename cursor types for
228                                 consistency w/other emacs terms, improved font
229                                 selection for symbol scripts.
230                                 Bug fixes: fringe and bitmap, frame deletion,
231                                 resizing, cursor blink, workspace open-file,
232                                 image backgrounds, toolbar item enablement,
233                                 context menu positioning.
235 2008/07/15      (none)          Merge to GNU Emacs CVS trunk.
238 Contributors
239 ------------
240 In addition to the folks listed in etc/AUTHORS responsible for GNU Emacs
241 itself, the NeXTstep port owes to the following people:
243 Carl Edman
244     original author and maintainer, mainly UI
245 Michael Brouwer
246     heavy contributor, input handling and other areas
247 Christian Limpach
248     help / maintenance on NeXTstep
249 Scott Bender
250     OpenStep, Rhapsody ports
251 Christophe de Dinechin
252     macOS port
253 Adrian Robert
254     GNUstep port, update Emacs 20 -> 21+
256 Joe Reiss
257     popup menu, dialog boxes; icons
258 Andrew Athan
259     font panel integration
260 Scott Byer
261     improved rendering code
262 Scott Hess
263     keyboard handling suggestions
265 Rahul Abrol
266     "hide others" patch
267 Adam Ratcliffe
268     preferences panel documentation
269 Peter Dyballa
270     assistance with non-ASCII rendering and keyboard handling
271 David M. Cooke
272     fix to XPM crash bug
273 Carsten Bormann
274     initial patch and assistance getting dired working for non-ASCII filenames
275 Andrew Moore
276     assistance on ns-mark-nav extension
278 The GNUstep port was made possible through the assistance of Adam
279 Fedor, Fred Kiefer, M. Uli Klusterer, Alexander Malmberg, Jonas
280 Matton, and Riccardo Mottola.  Leigh Smith maintained the SourceForge
281 project for a period.
283 Suggestions from Darcy Brockbank, Timothy Bissell, Scott Byer, David
284 Griffiths, Scott Hess, Eberhard Mandler, John C. Randolph, and Bradley
285 Taylor all helped things along at one point or another.  Axel Seibert
286 and Paul J. Sanchez offered their time and machines to make a
287 binary release possible.
289 We would also like to thank a number of people who kept up the
290 constant supply of bug reports, suggested features and praise: Hardy
291 Mayer, Gisli Ottarsson, Anthony Heading, David Bau, Jamie Zawinski,
292 Martin Moncrieffe, Simson L. Garfinkel, Richard Stallman, Stephen
293 Anderson, Ivo Welch, Magnus Nordborg, Tom Epperly, Andreas Koenig,
294 Yves Arrouye, Anil Somayaji, Gregor Hoffleit; and the few hundred
295 other people on the mailing list from whom we didn't hear much, but
296 the presence of which assured us that maybe this project was actually
297 worth doing.
300 This file is part of GNU Emacs.
302 GNU Emacs is free software: you can redistribute it and/or modify
303 it under the terms of the GNU General Public License as published by
304 the Free Software Foundation, either version 3 of the License, or
305 (at your option) any later version.
307 GNU Emacs is distributed in the hope that it will be useful,
308 but WITHOUT ANY WARRANTY; without even the implied warranty of
309 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
310 GNU General Public License for more details.
312 You should have received a copy of the GNU General Public License
313 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.