Emacs

Emacs Chess now hosted at GitHub

Emacs Chess is a fully featured chess client written entirely in Emacs Lisp. You can use it to play against other people on freechess.org, or against popular chess engines like gnuchess and crafty. It supports graphical rendering of chess boards within Emacs (in 2D), ASCII displays, and even electronic chess boards, or producing output appropriate braille for readers. Adding a new back-end is trivial. It also comes with a library for inspecting and reasoning about chess positions.

This project is looking for someone who loves Emacs, Lisp and the game of chess, to fork it and take over as maintainer. The FSF has agreed to include Emacs Chess as part of the Emacs distribution, but I’ve held off because of a few remaining issues I want to see resolved before it goes mainstream. It does work quite well, however, and I have friends who use it as their sole client for playing chess online.

Emacs Chess is now being hosted at GitHub, which should make it easier for others to contribute:

http://github.com/jwiegley/emacs-chess

If you’d like to just clone it and try it out, run the following and then see the README:

git clone git://github.com/jwiegley/emacs-chess.git
cd emacs-chess
git submodule init
git submodule update # grab the 2D pieces and sound sets
make

After it compiles, add the emacs-chess directory to your load-path, load chess.el, and then type M-x chess!

If anyone is interested in taking over as the maintainer, or would like to contribute those last few weeks of work necessary to getting this project delivered with GNU Emacs, please contact me.

|

Ready Lisp version 20080428 now available

There is a new version of Ready Lisp for Mac OS X available. This version is based on SBCL 1.0.16, and requires OS X Leopard 10.5. The most notable change from the previous version is that 64-bit mode and experimental threading are no longer supported, since both have been known to have issues on OS X, while the purpose of Ready Lisp is to smoothly introduce Common Lisp to new users.

What is Ready Lisp? It’s a binding together of several popular Lisp packages for OS X, including: Aquamacs, SBCL and SLIME. Once downloaded, you’ll have a single application bundle which you can double-click — and find yourself in a fully configured Common Lisp REPL. It’s ideal for OS X users who want to try out Lisp with a minimum of hassle. The download is approximately 76 megabytes.

There is a GnuPG signature for this file in the same directory; append .asc to the above filename to download it. To install my public key onto your keyring, use this command:

$ gpg --keyserver pgp.mit.edu --recv 0x824715A0

Once installed, you can verify the download using the following command:

$ gpg --verify ReadyLisp.dmg.asc

For more information, see the Ready Lisp project page.

|

Fixed a few bugs in Ready Lisp

A couple of pathname issues were discovered in the release of Ready Lisp that was posted yesterday, leading to the inability to load asdf-install (or use it). These have been fixed in the new release uploaded today. If you now use asdf-install and choose a “system-wide” installation, the installed packages get saved in your Application bundle. However, due to the way that asdf-install itself works, if you then move your application bundle to another directory, symbolic links in the systems directory will get broken. So I recommend installing new packages into your home directory instead.

Also, the sources for SBCL are now included, meaning that if you use M-. (jump to definition) and pick a function like mapcar, it will drop you into the source code for SBCL’s mapcar implementation.

The new version is available here (the old link still works, it is now a reference to that one).

Lastly, I’ve created a new home page for the Ready Lisp project, which now lives here.

|

New version of Ready Lisp for Mac OS X available

There is a new version of Ready Lisp for Mac OS X available. This version is based on SBCL 1.0.12.17, and requires OS X Leopard 10.5. The most notable change from the previous version is that it is now fully universal, supporting PowerPC and 32- bit and 64-bit Intel machines. Also, threading has been turned on for Intel processor. See the NEWS below.

What is Ready Lisp? It’s a binding together of several popular Lisp packages for OS X, including: Aquamacs, SBCL and SLIME. Once downloaded, you’ll have a single application bundle which you can double-click — and find yourself in a fully configured Common Lisp REPL. It’s ideal for OS X users who want to try out Lisp with a minimum of hassle. The download is approximately 87 megabytes.

There is a GnuPG signature for this file in the same directory; append .asc to the above filename to download it. To install my public key onto your keyring, use this command:

$ gpg --keyserver pgp.mit.edu --recv 0x824715A0

Once installed, you can verify the download using the following command:

$ gpg --verify ReadyLisp-1.0.12-10.5.1.dmg.asc

Below is a full rundown of what’s new.

Now fully universal

Ready Lisp is now fully universal, and runs on the following platforms:

  • Intel 64-bit
  • Intel 32-bit
  • PowerPC 32-bit

There is no port of SBCL to 64-bit PowerPC. Experimental threading has been enabled for both Intel platforms.

Updated versions

The following pieces were updated:

  • SBCL, to version 1.0.12.17
  • SLIME, to CVS version 2007-12-06

Aquamacs remains at version 1.2a.

Full Info documentation

Info documentation for the Common Lisp pieces is now bundled in. Just type C-h i to read it. Also, when editing Common Lisp files, you can type C-h f to instantly access the HyperSpec index. In Emacs Lisp files, C-h f will get you help on Emacs Lisp functions.

There is also HTML and PDF versions of all documentation in:

  • Ready Lisp.app/Contents/Resources/html
  • Ready Lisp.app/Contents/Resources/doc

More libraries

There are a few more Common Lisp libraries bundled in the core file with this release:

  • CL-FAD
  • LOCAL-TIME
  • SERIES
  • MEMOIZE
  • CL-PPCRE

I find these libraries very handy, but mainly I’m including them because the upcoming release of my CL-Ledger accounting tool depends on them, so it will work for Ready Lisp users out-of-the-box. See the “doc” subdirectory above for documentation on how to use these libraries (except MEMOIZE, which does not have separate documentation; use memoize:memoize-function to mark a function as memoized).

|

CL HyperSpec Info pages in Emacs

I just discovered the following blog article by Bill Clementson, from way back in 2003. Luckily, the links still worked, so I was able to get Info pages today for the Common Lisp HyperSpec courtesy of the GCL project.

Once installed, I found I could not easily lookup documentation for, say, mapcar, because it’s actually on the page for mapc. But SLIME’s hyperspec.el contained the indexing info I needed to write a new module which fires up the Info system on the correct section for the symbol you want defined.

This new module is called cl-info.el and is available from my Lisp repository. It rebinds the standard Emacs key for function help (C-h f) to lookup help in the HyperSpec instead, if you’re in a lisp-mode buffer.

NOTE: A fellow Lisper pointed me to this blog entry which offers a much nicer way to get the HyperSpec in Info form. It’s a little more work, but the quality of the result is superior and it has an index! Also, it makes my cl-info.el unnecessary, by relying entirely on the Info system itself.

|

Ready Lisp for OS X Leopard

After upgrading my system to Leopard this weekend, I decided to refresh Ready Lisp as well. It now contains both 32-bit and 64-bit builds of SBCL (which has been bumped to 1.0.11), so if you have a Core 2 Duo machine, you’ll be running Lisp at full 64-bit! Alas, Emacs itself cannot support 64-bit as a Carbon app, because there are no 64-bit Carbon libraries. SLIME has also been updated, to CVS latest as of today. Aquamacs is still the same version at 1.2a.

I did spend several hours trying to build a fully Universal package that would run on PowerPC as well (I have a PowerBook G4 in addition to this MacBook Pro), but it seems Leopard has broken the PowerPC port of SBCL. Some of the core OS structures have changed, such as os_context_t.

Ready Lisp is now being versioned according to the SBCL version it contains, which makes today’s release ReadyLisp-1.0.11-10.5-x86.dmg. The older version, which still works on 10.4, can be downloaded here.

NOTE: The recent loading bug for Leopard users has been fixed. Please re-download. Also, it still does not work on OS X 10.4 (Tiger) at the moment. I will have to create a separate build of SBCL for that version this weekend.

|

A regular expression IDE for Emacs

I've started work on a new mode for Emacs, which intends to be something like an "IDE" for regular expressions. There are similar tools out there, such as Reggy for OS X and The Regex Coach for Windows. But the former doesn't show me subgroup matches, and the latter costs money and won't run on OS X. Which made me wonder, wouldn't this be easy to do in Emacs? Three hours later says yes. Read More...
|

Using org-mode as a Day Planner

I've discovered a wonderful tool for keeping myself organized in Emacs: Carsten Dominik's org-mode. After using it for a month, I've decided to do a write on how I use org-mode to emulate a day planner, something like what Franklin Covey provides. I loved those old systems, the habit of focusing on the current day and keeping constant notes about what happened. Now I have just such a system on my computer. Read More...
|
© 2008 John Wiegley