NEXTSTEP 12 KB

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