
More data points: 1. I thought this was reproducible but it isn't... :( 2. The reason for all this may be that SLIME (or CMUCL?) gets confused by CLSQL's reader syntax. What happens is that I look for the definition of GET-PROJECTS-FOR-COSTS but SLIME (if it doesn't hang) "finds" the definition for GET-PROJECTS which is two top-level forms off. The relevant part of the code looks like this: #.(clsql:locally-enable-sql-reader-syntax) (defun get-project (id) (first (db-select 'project :where [= [id] id]))) (defun get-projects () (db-select 'project)) #.(clsql:restore-sql-reader-syntax-state) (defun get-projects-for-costs () (sort (let ((parent-hash (make-hash-table)) (projects (get-projects))) (dolist (project projects) (setf (gethash (parent-id project) parent-hash) t)) (loop for project in projects unless (gethash (id project) parent-hash) collect project)) #'project<)) 3. In my ~/.cmucl-init I have the form (mp::startup-idle-and-top-level-loops) at the end. This could be the reason for the strange restart I got offered. 4. My initial suspicion was that this behaviour is due to a recent SLIME update. However, if it really is due to CLSQL's syntax that would also be an explanation because I only recently started using this syntax. (And I also did it in another project involving AllegroCL which might explain that I have similar problems with Franz' implementation.) Nevertheless, the fact that usage of this syntax can potentially kill Emacs/SLIME makes me kind of nervous... Cheers, Edi.