[slime-devel] Proof-of-concept Name-conflict resolution

Michael Weber michaelw+slime at foldr.org
Tue Aug 5 21:47:47 UTC 2008


attached is a patch for name conflict resolution within SLIME (Zach  
Beane wrote about the issue quite some time ago: <http://xach.livejournal.com/96625.html 
 >).  The patch is not meant for immediate inclusion into SLIME, more  
as a request for feedback.

There are some rough edges in there:
* works only with SBCL at the moment.  In case of a name conflict,  
SBCL signals a condition which gives access to the set of conflicting  
symbols, and also provides a RESOLVE-CONFLICT restart which lets me  
choose programmatically which symbol to favor out of the conflicting  
ones.  Other Lisps provide different restarts to resolve conflicts,  
and after superficial looks they appear to be less amenable to  
programmatic use.

* works correctly only with *recent* SBCL (>=

* In case of many conflicts (e.g., due to USEing a package), on top of  
the RESOLVE-CONFLICT restart one can build some automation: instead of  
ending up a zillion times in the debugger, I can choose to favor a  
package, and for the current request conflicts are resolved in favor  
of symbols from that package.  If no symbol of the chosen package is  
in conflict set, I'll end up in the debugger again.

I found this behavior quite pleasant to work with in everyday  

* this is currently realized as a contrib, however, some hooks are  
needed.  I think they are reasonable overall.  I provided them as  
separate patch (0001).

* eval-in-emacs is used to trigger the UI (minibuffer & history list--- 
works for me), which might not be ideal.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-More-intercession-options-for-user-code.patch
Type: application/octet-stream
Size: 2462 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/slime-devel/attachments/20080805/5ea3d4fd/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-Symbol-name-conflict-UI-SBCL-only.patch
Type: application/octet-stream
Size: 8438 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/slime-devel/attachments/20080805/5ea3d4fd/attachment-0001.obj>

More information about the slime-devel mailing list