Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
;; -*- lexical-binding: nil; -*-
;; This file:
;;   http://anggtwu.net/elisp/2025-slime.el.html
;;   http://anggtwu.net/elisp/2025-slime.el
;;          (find-angg "elisp/2025-slime.el")
;; Author: Eduardo Ochs <eduardoochs@gmail.com>
;;
;; (defun e () (interactive) (find-angg "elisp/2025-slime.el"))

;; See: (find-eepitch-intro "4. Badly-behaved targets")

;; (find-esetkey-links   (kbd "<f9>") 'eepitch-b-set-target)
(define-key eev-mode-map (kbd "<f9>") 'eepitch-b-set-target)

;; See: (find-es "slime" "ee-y-or-n-p")
;; (find-efunction 'slime-reinitialize-inferior-lisp-p)
;; (find-slimefile "slime.el" "(defun slime-reinitialize-inferior-lisp-p ")

(defvar ee-slime-reinitialize-inferior-lisp-p)
(setq ee-slime-reinitialize-inferior-lisp-p 'n)
(setq ee-slime-reinitialize-inferior-lisp-p 'y)

(defun ee-y-or-n-p (y-or-n message)
  (if y-or-n
      (eq y-or-n 'y)
    (y-or-n message)))

(defun slime-reinitialize-inferior-lisp-p (program program-args env buffer)
  (let ((args (slime-inferior-lisp-args (get-buffer-process buffer))))
    (and (equal (plist-get args :program) program)
         (equal (plist-get args :program-args) program-args)
         (equal (plist-get args :env) env)
         (not (ee-y-or-n-p ee-slime-reinitialize-inferior-lisp-p
			   "Create an additional *inferior-lisp*? ")))))


(defvar ee-slime-pbuffers)

;; Test: (eepitch-slime-pbuffers)
(defun eepitch-slime-pbuffers ()
  (cl-loop for buffer in (ee-buffers-in-mode 'slime-repl-mode)
	   for package = (with-current-buffer buffer slime-buffer-package)
	   collect (cons package buffer)))

;; Test: (eepitch-slime-set-pbuffers)
(defun eepitch-slime-set-pbuffers ()
  (setq ee-slime-pbuffers (eepitch-slime-pbuffers)))

;; Tests: (eepitch-slime-get-pbuffer "MAXIMA")
;;        (eepitch-slime-get-pbuffer "COMMON-LISP-USER")
;;        (eepitch-slime-get-pbuffer "FOO")
;;   See: (find-es "emacs" "plists-and-alists")
(defun eepitch-slime-get-pbuffer (package)
  (or (alist-get package ee-slime-pbuffers nil nil 'equal)
      (error "No %S in %S" package ee-slime-pbuffers)))

;; Tests: (eepitch-to-slime-pbuffer "MAXIMA")
;;        (eepitch-to-slime-pbuffer "COMMON-LISP-USER")
;;        (eepitch-to-slime-pbuffer "FOO")
(defun eepitch-to-slime-pbuffer (package)
  (eepitch-to-buffer (eepitch-slime-get-pbuffer package)))

;; (eepitch-slime-set-pbuffers)
;; (eepitch-to-slime-pbuffer "MAXIMA")