Hi,
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 (>= 1.0.19.15)
* 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 situations.
* 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.
Cheers, Michael