Cocoa Emacs 23 nightly CVS builds

I’m in the process of migrating from Aquamacs to vanilla Emacs. Emacs has an OSX version in CVS now, and this will be official when Emacs 23 is released. This is the direction I want to move, because I’ve decided I want a bit less “Mac” in my Emacs.

There doesn’t seem to be any place you can get recent builds, so I’ve remedied that. You can now find nightly Cocoa Emacs 23 CVS builds right here. They’re Intel-only, and I intend to keep around a week’s worth of builds.

2008/12/09
Previously On Atomized:

Discussion

Also, David Caldwell over at http://www.porkrind.org has been doing nightly CVS builds for a while. I use his builds and update my installation once every couple of weeks. So far only the 12/01 build gave me any issues, but I just reverted back to an earlier copy. You can download both stable and nightly builds from http://porkrind.org/emacs/

Brandon Burton
2008/12/09

FYI,
I tried running the 12-09 build on a MacBook Pro and got this:

Process: Emacs [431]
Path: /Users/chrisvandusen/Downloads/Emacs.app/Contents/MacOS/Emacs
Identifier: org.gnu.Emacs
Version: ??? (???)
Code Type: X86 (Native)
Parent Process: launchd [95]

Date/Time: 2008-12-09 20:44:02.862 -0600
OS Version: Mac OS X 10.5.5 (9F33)
Report Version: 6

Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0×0000000000000002, 0×0000000000000000
Crashed Thread: 0

Dyld Error Message:
Library not loaded: /opt/local/lib/libfontconfig.1.dylib
Referenced from: /Users/chrisvandusen/Downloads/Emacs.app/Contents/MacOS/Emacs
Reason: image not found

Chris
2008/12/09

I have one question – which key are you using as Meta key? i prefer to use Command key, but i had no success in mapping it to Meta in the Carbon Emacs. In Aquamacs this is could be done via Menu, but setting of corresponding variables in Carbon, doesn’t help me

Alex Ott
2008/12/10

Alex: Isn’t command the default meta key in Carbon? It is on my system anyway, and I don’t have anything special in my .emacs to make it so…

Andreas Jacobsen
2008/12/10

@Alex, there’s a native preference pane which lets you set your meta key. I also use Command, and it works fine.

@Chris, you can send a bug report by going to Help->Report a bug.

Ian
2008/12/10

@Ian, the Keyboard preference pane allows one to remap the command, control, option, and caps lock keys, but it does not govern emacs interpretation of command-as-meta or option-as-meta.

Terminal.app has a preference that governs option-as-meta, which is desirable if one intends to use a remotely hosted emacs session. If one is using GUI emacs, the default behaviour is command-as-meta. If one desires option-as-meta instead, it is necessary to set the variable mac-command-key-is-meta to false. I have not actually tried this, but I seem to recall it gives the desired result.

Mahinder
2008/12/15

@Mahinder, I was referring to the preference pane in Emacs, not System Preferences. This allows you to change which keys generate what modifiers for Emacs, and has nothing to do with any remapping which may have taken place at the system level.

The default behavior of the Cocoa Emacs in CVS is for Alt/Option to function as Meta, which is consistent with the rest of OS X. However, I learned Emacs with Meta being “the key to the left of space,” whatever the label is I find it difficult to use Alt/Option as Meta because of the smaller key size and location; Command just feels right as Meta to me.

Ian
2008/12/18

In using Emacs 23 on OSX, either using the builds provided here, or building from CVS directly, there appear to be issues with it not searching the $PATH variable to look for executables. Two specific examples are with R (http://www.r-project.org/) when using ESS (Emacs Speaks Statistics) and with psvn.el (for SVN integration).

In the former case. R is installed as /usr/local/bin/R and /usr/local/bin is in my $PATH. Despite this, when ESS would load, I would get errors indicating that no version of R could be located. I ended up having to modify my .emacs to include an explicit declaration of R’s executable in order to have ESS recognize it.

In the latter case with SVN and psvn.el, Emacs 23 kept looking at the old version of SVN that was installed (1.4.4), rather than the current version (1.5.6) installed from MacPorts. This resulted in SVN client version related error messages. The newer SVN executable is also in my $PATH preceding the directory in which the older version of SVN is located. I ended up creating symbolic links to the newer version in the directory where the older version was located.

In both cases, I can execute the correct program from the CLI in a terminal AND this problem does not occur with either Aquamacs or Carbon Emacs.

So it would appear that there is some differing behavior with respect to searching $PATH with Emacs 23.

Anyone else experience this and/or have any ideas/solutions?

Thanks!

Marc
2009/03/16

I had this issue as well. The problem is that if you set your $PATH in $HOME/.profile, those are only set when your shell runs. Since the Dock and the apps it launches (e.g. Emacs) aren’t run from a shell, they don’t have any effect.

You need an environment.plist file. See http://developer.apple.com/qa/qa2001/qa1067.html

Ian
2009/03/16

@Ian,

Thanks for your reply. All is well with the world, now that I created the environment.plist file. I as able to revert my changes to .emacs and remove the symlinks.

So, this would suggest that Aquamacs and Carbon Emacs have code modifications to search $PATH, whereas Emacs 23 from CVS does not have such code. Lest the other two Emacs variants would experience similar issues.

I am just coming from using RH/Fedora Linux for 8 years, so I have good intuition relative to Unixen, but my OSX intuition is not yet developed. I am beginning to “see the light”.

Thanks

Marc
2009/03/17

Hi Ian,

I have been using your build and it works nicely on leopard 10.5.6. I have noticed that there is a weird file in your system that does not come with the source file. I suspect that is a leftover. It is lisp/vc-mcvs.elc. Could you look into it? I have manually removed it.

Leo

Leo
2009/04/24

@Leo, the source is there, in lisp/obsolete/vc-mcvs.el.gz.

It looks like the build process isn’t deleting .elc files, so the one from it’s old location was installed even though it was moved to obsolete/.

I’ve changed how the build directory is cleaned up, so this shoudn’t happen again. Thanks for letting me know.

Ian
2009/04/24

Participate