GettingStartedWithHemlock

There was some interest at ILC2003 in getting started using Hemlock. So, here are quick-start instructions:

Important: get a copy of the Hemlock Users Manual. Glance through the beginning, then read the chapters "Editing Lisp", and "Interacting With Lisp".

If instead of dumping a core with Hemlock loaded, you just (require :hemlock), then (ed), you may notice a problem when using Hemlock as an IDE. The editor works fine, but when you try evaluating a Lisp form, you get an error message telling you that the eval server died. This is because Hemlock uses one CMUCL image to run itself, and one (or more) CMUCL images that it runs as slave eval servers. This has the advantage that if you try to eval (loop), your editor didn't just lock up. However, it also means that Hemlock needs to know how to run a copy of CMUCL with itself already loaded. If you want to run CMUCL with a command other than lisp (like, say, cmucl), and/or if you do not want to use hemlock.core as your default core file, you'll need to customize the Hemlock variables Slave Utility and Slave Utility Switches. For example, if I run CMUCL with the cmucl command, and I have my hemlock core in /home/tfb/hemlock.core, I would do the following:

At the shell prompt:

$ cmucl -core /home/tfb/hemlock.core
CMU Common Lisp 18d, running on firestorm.OCF.Berkeley.EDU
Send questions to cmucl dash help at cons dot org. and bug reports to
cmucl dash imp at cons dot org.
Loaded subsystems:
    Python 1.0, target SPARCstation/Solaris 2
    CLOS based on PCL version:  September 16 92 PCL (f)
    CLX X Library MIT R5.02
    Hemlock 3.5
* (ed)

In Hemlock:
M-x Set Variable (return) Slave Utility (return) "cmucl" (return)
M-x Set Variable (return) Slave Utility Switches (return) (list "-core" "/home/tfb/hemlock.core") (return)

Another way to do solve the problem with loading hemlock for the slaves is to put the following in your .cmucl-init.lisp (or site-init):

(flet ((in-cmdline (word) 
         (member word *command-line-strings* :test #'string=)))
  (when (or (in-cmdline "-edit") (in-cmdline "-slave"))
    (require :hemlock)))

Still having problems?

I created this page to help people try Hemlock out, without having to be experienced CMUCL'ers. If you tried following the directions here but you're still having problems, either post your questions here, or email Thomas F. Burdick (tfb at OCF dot Berkeley dot EDU).


Page in this topic: International Lisp Conference 2003  


Also linked from: Hemlock  

CLiki pages can be edited by anyone at any time. Imagine a fearsomely comprehensive disclaimer of liability. Now fear, comprehensively