Emacs.app Emacs.app

NeXT/OpenStep Emacs for GNUstep and OS X

This is a port of the latest GNU Emacs source to the OpenStep (or NeXTstep) APIs, as implemented by Cocoa on OS X as well as the GNUstep open source project. It runs on OS X 10.3 ("Panther") and 10.4 ("Tiger"), as well as GNUstep on Linux. It may also work on other GNUstep platforms, including FreeBSD and NetBSD. It probably needs more work to run on Solaris and Windows. On OS X, 10.1 and 10.2 are not supported due to the absence of certain APIs supporting explicit character layout in text rendering.

On the Mac, this port differs from "Carbon" ports of GNU Emacs in that it makes a more concerted attempt from the ground up to follow OS X desktop and UI conventions (without, however, limiting in any way what you can already do with Emacs). In addition, it runs on non-Mac platforms via the free GNUstep implementation of OS X's Cocoa APIs.

Current Status

Version 9.0-rc3

See below for release notes, here for ChangeLog.

This release is close to 9.0 final. Please report problems on the mailing list or the SourceForge bug tracker. (If the latter, please do so while logged in to SourceForge so we can follow up.)

Note that the unicode-2 branch of the core GNU emacs this is based on is itself considered beta status, and we are releasing off of a CVS snapshot, not a public release.

Download

A "universal" binary application for OS X is available as a disk image.

The source code is made available in two forms: as a monolithic tarball and as a combination patch against GNU emacs CVS plus mini-tarball of just the added files. Unless you are interested in examining which files the port adds and changes, you should use the big tarball.

Get it here.

Note: you can check out GNU emacs CVS like this:

cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co emacs

A Debian package (take both .debs) is available, and

a FreeBSD port is also available, both thanks to the efforts of Gürkan Sengün.

Build and Install

After unpacking the distribution:

cd nextstep
./compile
      
This should result in Emacs.app under nextstep/build/. You can move this anywhere for installation.

The above will do a self-contained build, in which the lisp code is stored inside the .app package itself. To store the lisp in a common location to share with other emacs 23 instances, do, for example:

cd nextstep
./compile --shared-lisp=/usr/local
      

To select an additional lisp path for prepending use, e.g.:

./compile --enable-local-lisp-path=~/Library/Preferences/Emacs
    

How to Use

Please read nextstep/USAGE.txt (or here) for tips and tricks.

Who is the maintainer?

Adrian Robert. However for issues and bug reports it is better to use the emacs-app-dev-@lists.sourceforge.net mailing list than contact me directly. (Anti-spam: sign up required to post, but it's very low traffic. ;).

Schedule and Plans

Assistance fixing bugs is welcome. Please contact the maintainer, or better yet, the mailing list.

This port is tentatively scheduled to be included into GNU Emacs CVS some time after the release of 22.2 and the merge of the unicode-2 branch to the trunk.

Therefore, for major contributions, copyright assignments to the Free Software Foundation (FSF) will be required, as for all FSF/GNU projects. This is a painless process, and ensures that lawyers can have fun without bothering you in the future. Small patches, of less than 15 lines, do not require copyright assignment.

Please see the known issues for info on work remaining on the port. For anything else you notice, please report it as a bug on the Sourceforge bug tracker.

Acknowledgements

Emacs.app depends on the earlier efforts of many people in creating the port now known as "Emacs on Aqua" -- and of course on GNU Emacs itself. See the credits page for more information.

Release History

VersionDateChanges
9.0-rc32007/11/20 Integrated the multi-TTY functionality from emacs core (however, mixed TTY and GUI sessions are not working yet). Support 10.5. Give site-lisp load precedence over lisp and add a compile option to prefer an additional directory, use miniaturized miniwindow images in some cases, rename cursor types for consistency w/other emacs terms, improved font selection for symbol scripts. Bug fixes: fringe and bitmap, frame deletion, resizing, cursor blink, workspace open-file, image backgrounds, toolbar item enablement, context menu positioning.
9.0-rc2a2007/09/20 Interim release. New features: composed character display, colored fringe bitmaps, colored relief drawing, dynamic resizing, Bug fixes: popup menu position and selection, font width calculation, face color adaptation to background, submenu keyboard navigation. NOT TESTED ON GNUSTEP.
9.0-rc22007/09/10 Improve menubar, popup menu, and scrollbar behavior, let accented char entry work in isearch, follow system keymap for shortcut keys, fix border and box drawing, remove glitches in modeline drawing, support overstrike for unavailable bold fonts, fix XPM related crasher bugs. Incremental font metrics caching and other performance improvements. Numerous minor fixes. Shared-lisp builds now possible.
9.0-rc12006/12/24 Reworked font handling and text rendering to use Kenichi Handa's new font back-end system. (Start up with '--disable-font-backend' to use old system; this will be removed in a future release.) Font sets are now supported and automatically created when a font is selected. Added recent X11 colors to Emacs.clr (remove ~/Library/Colors/Emacs.clr to pick up). Added ns-option-modifier, ns-control-modifier, ns-function-modifier customization variables. Updated menus to Emacs 21+ conventions. Right mouse button now generates mouse-3 events. Various bug fixes and rendering improvements.
9.0-pre32006/06/08 Major upgrade to keyboard handling: system-selected compositional input methods should now work, as well as more keys / keyboards. XPM, toolbar, and tooltip support. Some improvements to scrollbars, zooming, italic rendering, pasting, Color panel. Added function ns-set-background-alpha to work around inability to customize with numeric colors.
9.0-pre22005/11/11 Fix crashes for deiconifying and loading certain images. Improve vertical font metrics (fixes inaccurate page up/down, window size, and partial lines). Support better remapping of Alt/Opt and remapping of Command. More insistent defaulting of scrollbar to right. Modest improvements to build process.
9.0-pre12005/11/05 Initial release based on emacs CVS "unicode-2" codebase.


November 20, 2007 SourceForge.net Logo