mit-scheme swank backend reports: error in process filter: Can't find suitable coding-system

Bug #915207 reported by bf rs
16
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Slime
New
Undecided
Unassigned

Bug Description

mit-scheme fails to startup:

It reports:
error in process filter: Can't find suitable coding-system

--------------- Scheme Version: 9.1.1

--------------- Slime Version: 2012-01-06

--------------- Relevant .emacs config:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SLIME ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; (setq inferior-lisp-program "/usr/bin/sbcl") ; your Lisp system
(setq inferior-lisp-program "/usr/local/bin/scheme") ; your Lisp system
(add-to-list 'load-path "~/slime/") ; your SLIME directory
(require 'slime)
(slime-setup '(slime-fancy))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; mit-scheme ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; mit-scheme swank backend config
(setq slime-lisp-implementations
      '((mit-scheme ("mit-scheme") :init mit-scheme-init)))

(defun mit-scheme-init (file encoding)
  (format "%S\n\n"
   `(begin
     (load-option 'format)
     (load-option 'sos)
     (eval
      '(construct-normal-package-from-description
        (make-package-description '(swank) '(())
      (vector) (vector) (vector) false))
      (->environment '(package)))
     (load ,(expand-file-name
      "~/slime/contrib/swank-mit-scheme.scm" ;<-insert your path
      slime-path)
    (->environment '(swank)))
     (eval '(start-swank ,file) (->environment '(swank))))))

(defun mit-scheme ()
  (interactive)
  (slime 'mit-scheme))

(defun find-mit-scheme-package ()
  (save-excursion
    (let ((case-fold-search t))
      (and (re-search-backward "^[;]+ package: \\((.+)\\).*$" nil t)
    (match-string-no-properties 1)))))

(setq slime-find-buffer-package-function 'find-mit-scheme-package)
(add-hook 'scheme-mode-hook (lambda () (slime-mode 1)))

-------------------
Debugger Backtrace

Debugger entered--Lisp error: (error "Can't find suitable coding-system")
  signal(error ("Can't find suitable coding-system"))
  error("Can't find suitable coding-system")
  (or (find (symbol-name ...) candidates :test (lambda ... ...)) (car candidates) (error "Can't find suitable coding-system"))
  (let ((candidates ...)) (or (find ... candidates :test ...) (car candidates) (error "Can't find suitable coding-system")))
  slime-repl-choose-coding-system()
  (let ((slime-current-thread t) (cs ...)) (slime-eval (\` ...)))
  (let* ((--cl-rest-- ...) (package ...) (prompt ...)) (setf (slime-lisp-package) package) (setf (slime-lisp-package-prompt-string) prompt))
  (progn (let* (... ... ...) (setf ... package) (setf ... prompt)))
  (destructuring-bind (package prompt) (let (... ...) (slime-eval ...)) (setf (slime-lisp-package) package) (setf (slime-lisp-package-prompt-string) prompt))
  slime-repl-connected-hook-function()
  run-hooks(slime-connected-hook)
  (let ((args ...)) (when-let (name ...) (unless ... ...)) (slime-load-contribs) (run-hooks (quote slime-connected-hook)) (when-let (fun ...) (funcall fun)))
  (let ((slime-dispatching-connection connection) (slime-current-thread t)) (destructuring-bind (&key pid style lisp-implementation machine features version modules encoding &allow-other-keys) info (slime-check-version version connection) (setf ... pid ... style ... features ... modules) (destructuring-bind ... lisp-implementation ...) (destructuring-bind ... machine ...) (destructuring-bind ... encoding ...)) (let (...) (when-let ... ...) (slime-load-contribs) (run-hooks ...) (when-let ... ...)) (message "Connected. %s" (slime-random-words-of-encouragement)))
  slime-set-connection-info(#<process SLIME Lisp> (:pid 8271 :package (:name "(user)" :prompt "(user)") :lisp-implementation (:type "MIT Scheme" :version "9.1.1")))
  apply(slime-set-connection-info (#<process SLIME Lisp> (:pid 8271 :package (:name "(user)" :prompt "(user)") :lisp-implementation (:type "MIT Scheme" :version "9.1.1"))))
  (lambda (&rest more) (apply (quote slime-set-connection-info) (append ... more)))((:pid 8271 :package (:name "(user)" :prompt "(user)") :lisp-implementation (:type "MIT Scheme" :version "9.1.1")))
  funcall((lambda (&rest more) (apply (quote slime-set-connection-info) (append ... more))) (:pid 8271 :package (:name "(user)" :prompt "(user)") :lisp-implementation (:type "MIT Scheme" :version "9.1.1")))
  (progn (set-buffer (symbol-value G50298)) (funcall (symbol-value G50299) result))
  (if (symbol-value G50299) (progn (set-buffer ...) (funcall ... result)))
  (let* ((--cl-rest-- rand-50296) (result ...)) (if (symbol-value G50299) (progn ... ...)))
  (cond ((eql op-50295 ...) (let* ... ...)) ((eql op-50295 ...) (let* ... ...)) (t (error "Elisp destructure-case failed: %S" tmp-50297)))
  (let* ((tmp-50297 G50294) (op-50295 ...) (rand-50296 ...)) (cond (... ...) (... ...) (t ...)))
  (lambda (G50298 G50299 G50294) (let* (... ... ...) (cond ... ... ...)))(--buffer-- --cont-- (:ok (:pid 8271 :package (:name "(user)" :prompt "(user)") :lisp-implementation (:type "MIT Scheme" :version "9.1.1"))))
  apply((lambda (G50298 G50299 G50294) (let* (... ... ...) (cond ... ... ...))) --buffer-- --cont-- (:ok (:pid 8271 :package (:name "(user)" :prompt "(user)") :lisp-implementation (:type "MIT Scheme" :version "9.1.1"))))
  (lambda (&rest --cl-rest--) (apply (lambda ... ...) (quote --buffer--) (quote --cont--) --cl-rest--))((:ok (:pid 8271 :package (:name "(user)" :prompt "(user)") :lisp-implementation (:type "MIT Scheme" :version "9.1.1"))))
  slime-dispatch-event((:return (:ok (:pid 8271 :package ... :lisp-implementation ...)) 1) #<process SLIME Lisp>)
  slime-process-available-input(#<process SLIME Lisp>)
  slime-net-filter(#<process SLIME Lisp> "000083(:return (:ok (:pid 8271 :package (:name \"(user)\" :prompt \"(user)\") :lisp-implementation (:type \"MIT Scheme\" :version \"9.1.1\"))) 1)")

Revision history for this message
jan2ary (jan2ary) wrote :

For me it is the very similar for chicken-slime.

Revision history for this message
Daniel Steinberg (dstein64) wrote :

One solution that I found was to use an older version of slime-repl.el. The version that I had from 04/02/2011 worked. However, replacing the newer file with this older version caused problems with sbcl.

The next solution I found was to rename the old slime-repl.el as slime-repl-old.el and replace all occurrences of "slime-repl" in that file with "slime-repl-old" and then call (slime-setup '(slime-repl-old .....)) before calling (slime 'mit-scheme)

The last solution I found to work was the addition of two lines of code to swank-mit-scheme.scm, without having to make the previous modifications I described.
(define :coding-system "utf-8-unix")
...:encoding (:coding-systems ("utf-8-unix"))...
The updated code is attached.

Revision history for this message
Daniel Steinberg (dstein64) wrote :

Here is the patch file for the third solution described in my last post.

Revision history for this message
Peter Feigl (craven) wrote :

I've been working on bringing swank.scm up to date with current SWANK/SLIME. See https://github.com/ecraven/mit-scheme-swank for an updated and working version.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.