NEXTSTEP 12 KB

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