Installing LISP on Windows

I started with Lisp-in-a-box and it worked pretty well, although I realized that my lisp package involved 3 things:

  1. An Emacs Compiler
  2. CLISP
  3. Slime

With lisp-in-a-box, you aren’t going to get the most current releases of all of these at the same time. So I set out to download my own components. I finally got it working with:

  1. GNU Emacs 22.2
  2. GNU CLISP 2.4.4
  3. SLIME 2008-07-05

The only thing that I have to do that Lisp-in-a-box did for me was type [alt]-x slime to start it up. I highly recommend writing lisp in this REPL interface. You can actually use the autoformatting to see when you have made a mistake. As you add your closing parms (which everyone hates about LISP), the cursor actually flashed back to its corresponding opening parm. This is really cool. If you think you are finishing a loop, you will see instantly if you are right or not. And did I mention using auto-completion on function or variable names to move faster with less mistakes too?

The only tricky configuration I had to do was create a directory called ‘C:\.emacs.d’ and inside it put a file called ‘init’ with this content (of course you have to figure out your own paths):

(add-to-list ‘load-path “C:\\slime”) ; your SLIME directory

(setq inferior-lisp-program “C:\\Progra~1\\clisp-2.44\\clisp.exe -K full”) ; Lisp

(require ‘slime)
(slime-setup)

dummydisk

In AIX, you can create devices by simply running the ‘cfgmgr’ command which walks the bus or virtual bus and starts defining a new structure of adapters and disks, or tapes or whatever. And sometimes it is really advantageous to have the numbering of the devices skip a little bit, to sync with another system that sees the same disks. ‘dummydisk’ is a small self-referencing command that creates bogus ODM entries that look however you want them. Then you simply run ‘cfgmgr’ and devices that you want to skip will appear taken. So far I don’t have a version or an installp package and they can only be removed with the dummydev command, but that is what version 0.1 is all about:


#!/bin/ksh

###############################################################
# Title         :  dummydisk - Creates a placeholder disk
# Author        :  John Rigler
# Date          :  7/31/2008
# Requires      :  ksh
# Web           :  http://deadlycoffee.com/?p=12
###############################################################
# This script creates phantom disks that don't actually do
# anything but makes it easier to line up disk names on
# different servers.  Just create dummy disk up to the actual
# disk that you need, then when you run cfgmgr, your new disk
# or disks will be created with the correct id.  It is possible
# to create your disks with mkdev, but who the heck does that?
# You can't yet delete these disks with rmdev because the config
# method is wrong. Once I get some time, I will add entries to
# the Pd tables to make rmdev -dl work.
################################################################



case $1 in

        -a )  grep "^##S" $0 | cut -c 4- | sed "s/REPLACENAME/$2/g" | odmadd ;;
        -d )  odmdelete -o CuDv -q "name = $2" ;
              odmdelete -o CuAt -q "name = $2" ;;
         * )  echo;
              echo "To add a dummy device:              $0 -a devicename";
              echo "To delete a dummy devices:  $0 -d devicename"  ;
              echo ;;

esac

##SCuDv:
##S        name = "REPLACENAME"
##S        status = 1
##S        chgstatus = 2
##S        ddins = "dummydev"
##S        location = "FF-FF-FF-FF,F"
##S        parent = "scsi2"
##S        connwhere = "FF,F"
##S        PdDvLn = "disk/scsi/scsd"
##S
##SCuAt:
##S        name = "REPLACENAME"
##S        attribute = "unique_id"
##S        value = "deadlyc0ffee000000000000"
##S        type = "R"
##S        generic = ""
##S        rep = "n"
##S        nls_index = 0
##S
##SCuAt:
##S        name = "REPLACENAME"
##S        attribute = "pvid"
##S        value = "000dummydisk0000            "
##S        type = "R"
##S        generic = "D"
##S        rep = "s"
##S        nls_index = 11
##S
##SCuDvDr:
##S        resource = "devno"
##S        value1 = "99"
##S        value2 = "0"
##S        value3 = "REPLACENAME"

Why is the name of this site spelled funny?

No one has died and the coffee here is actually pretty good. As you see ‘deadlycoffee’ is actually Hexspeak ; DEAD1EC0FFEE is actually 2,448,351,266,773,390 in decimal. If you type this number into your handy scientific calculator and hit the Hex button, you will see what I am talking about. This is of course an almost useless fact which simply muddies the water, or in this case bloodies the coffee. It is difficult to get cool and memorable site names these days, but I lucked out because no one trying to sell coffee would want this one but I am pretty sure no one will have to write it down to remember it.

What this site is really about is computers:

  • Programming, especially in my new favorite language: LISP
  • System Administration, mostly in AIX and a little Linux and Windows