[slime-devel] Re: slime-edit-definition woes

Edi Weitz edi at agharta.de
Sat Mar 5 20:39:16 UTC 2005


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.



More information about the slime-devel mailing list