Jump to content

start-swank does not work in OM 3

Recommended Posts



I haven't had any luck in creating connection between OM and Emacs. (start-swank) from OM Listener gives error: "The file #P"OM-SRC:SWAML-LOADER.LISP.NEWEST" does not exist".

If I try (start-swank) with path to a Slime on Quicklisp path (I have both 2.28 and 2.24 versions of Slime, result is the same), compilation starts but gets stuck and must be aborted.


Help appreciated


Link to comment
Share on other sites

  • 2 months later...
  • 10 months later...
  • 4 weeks later...

Dear Janusz,


> I need to  check if we can use Emacs with the new Opusmodus (LispWorks).

Any updates on the Emacs/Slime interface for Opusmodus 3?


I understand/assume that in order to simplify the Opusmodus interface for most of its users, Opusmodus provides its own IDE with convenient features for things like snippet playback. Indeed, Emacs would be unnecessarily confusing for most of Opusmodus' users.


However, for actual Lisp/Opusmodus library development, I personally feel the Opusmodus IDE is currently far less suited than Slime. While there is a debugger already integrated in the Opusmodus IDE (thanks), it is basically only the command line version of the 80s. Also, I have not found any cross referencing support in the Opusmodus IDE (e.g., for jumping to the definition of a function call with a single shortcut). Not sure whether the  Opusmodus listener has some short cuts to go back in its history etc. Perhaps I am missing some things, but Slime is a completely different cattle of fish for developers in contrast of users (of course, only after its learning curve). 


Anyway, I understand if you do not have the resources (or if LW does not allow) for Emacs/Slime integration into Opusmodus 3. I just keep using mainly Opusmodus 2 with working Slime in the meantime.


Thanks for all your work on Opusmodus! 

Link to comment
Share on other sites

Update: I made some progress with the Emacs/Slime interface for Opusmodus 3, but not yet a fully working solution. Just sharing here an intermediate progress report for those interested. 


I found out that I could start the swank server (the Lisp compiler part of Slime) in the following way.


1. Install the latest version of Slime (link) where it can be found by ASDF (which is by default the folder ~/common-lisp).


2. Execute the following code within Opusmodus (or some file loaded by Opusmodus):


(asdf:load-system :swank)
(swank:create-server :dont-close t)


There is then no error message any longer, but instead I get the following message.


;; Swank started at port: 4005.


On the Emacs side, Slime needs to be installed in the usual way (e.g., via a MELPA repository).


On the Emacs side then, as before, call M-x slime-connect with the localhost IP and the relevant port (4005 by default).


On my particular system, Emacs then somehow gets stalled for a long time, much longer than before when trying to do the same with Opusmodus 2. Emacs is then completely frozen. Anyway, sometimes I already got a working connection between Emacs Slime and Opusmodus 3 now, but not necessarily reproducible. 


Anyway, will continue following this up and keep you in the loop if I make further progress. 


If anyone else finds out more, I would be grateful!



Link to comment
Share on other sites

Dear Janusz,


Update: I now tried the above approach with a fresh Emacs installation (v. 29.3), with a virtual empty configuration file (.emacs) and no user-package installed besides the last version of Slime. I still run into the problem mentioned above: I can start the swank server at the Opusmodus side, but when trying to connect Emacs to the running Swank server, the connection somehow stalls. If I manually interrupt (with C-g), then I get the following message shown at the end of this post.


Is there perhaps any option to get some professional help with resolving this issue? If this results in additional costs that you find are not justifiable, because few Opusmodus users would benefit from it, would it perhaps be an option if we somehow share the costs involved?


Are there perhaps some alternative options that would allow me to use an IDE designed for professional developers with Opusmodus?


For example, a simple option might be to release a version of Opusmodus that is a Lisp image (this link shows the necessary code for this). That happens to be the way LispWorks recommends for working with Slime.


Alternatively, could there perhaps be a way for me to use the LispWorks IDE with Opusmodus? That was possible with PWGL. If necessary, I would even buy LispWorks for this.


Thanks a lot! 






Debugger entered--Lisp error: (quit)
  accept-process-output(nil 0.01)
  slime-eval((swank:swank-require '(swank-indentation swank-trace-dialog swank-package-fu swank-presentations swank-macrostep swank-fuzzy swank-fancy-inspector swank-c-p-c swank-arglists swank-repl)))
  slime-set-connection-info(#<process SLIME Lisp> (:pid 8926 :style :spawn :encoding (:coding-systems ("utf-8-unix" "iso-latin-1-unix")) :lisp-implementation (:type "LispWorks" :name "lispworks" :version "8.0.1" :program nil) :machine (:instance "Torstens-2021-MBP.local" :type "arm64" :version "E") :features (:swank :mac-osx :clm :clm5 :clm4 :clm3 :opusmodus cffi-features:unix cffi-features:darwin :cffi :chunga chipz-system:gray-streams :flexi-streams :screamer :64-bit :bsd :bordeaux-threads :thread-support :split-sequence :cl-ppcre :asdf3.3 :asdf3.2 :asdf3.1 :asdf3 :asdf2 :asdf :os-macosx :os-unix :non-base-chars-exist-p :lispworks7+ :lispworks6+ :lispworks5+ :asdf-unicode :common-lispworks :lw-editor :capi-cocoa-lib :capi-toolkit :capi :dbcs-env :cocoa :unix-without-motif :class-shake-using-gates :common-ffi :new-patch-system :word-instructions :flush-by-address :compiler :shallow-binding :common-defsystem :clos ...) :modules ("deliv-delete-objects" "mac-mode" "delete-selection" "selection-mode" "delivery" "delivery-keywords" "c-mode" "describe" "inspector-values" "URI" "OSC" "macos-comm" "comm" "CL-STORE" "ASDF" "asdf" "UIOP" "uiop") :package (:name "OPUSMODUS" :prompt "om") :version "2.29.1"))
  apply(slime-set-connection-info (#<process SLIME Lisp> (:pid 8926 :style :spawn :encoding (:coding-systems ("utf-8-unix" "iso-latin-1-unix")) :lisp-implementation (:type "LispWorks" :name "lispworks" :version "8.0.1" :program nil) :machine (:instance "Torstens-2021-MBP.local" :type "arm64" :version "E") :features (:swank :mac-osx :clm :clm5 :clm4 :clm3 :opusmodus cffi-features:unix cffi-features:darwin :cffi :chunga chipz-system:gray-streams :flexi-streams :screamer :64-bit :bsd :bordeaux-threads :thread-support :split-sequence :cl-ppcre :asdf3.3 :asdf3.2 :asdf3.1 :asdf3 :asdf2 :asdf :os-macosx :os-unix :non-base-chars-exist-p :lispworks7+ :lispworks6+ :lispworks5+ :asdf-unicode :common-lispworks :lw-editor :capi-cocoa-lib :capi-toolkit :capi :dbcs-env :cocoa :unix-without-motif :class-shake-using-gates :common-ffi :new-patch-system :word-instructions :flush-by-address :compiler :shallow-binding :common-defsystem :clos ...) :modules ("deliv-delete-objects" "mac-mode" "delete-selection" "selection-mode" "delivery" "delivery-keywords" "c-mode" "describe" "inspector-values" "URI" "OSC" "macos-comm" "comm" "CL-STORE" "ASDF" "asdf" "UIOP" "uiop") :package (:name "OPUSMODUS" :prompt "om") :version "2.29.1")))
  (lambda (&rest more) (apply 'slime-set-connection-info (append '(#<process SLIME Lisp>) more)))((:pid 8926 :style :spawn :encoding (:coding-systems ("utf-8-unix" "iso-latin-1-unix")) :lisp-implementation (:type "LispWorks" :name "lispworks" :version "8.0.1" :program nil) :machine (:instance "Torstens-2021-MBP.local" :type "arm64" :version "E") :features (:swank :mac-osx :clm :clm5 :clm4 :clm3 :opusmodus cffi-features:unix cffi-features:darwin :cffi :chunga chipz-system:gray-streams :flexi-streams :screamer :64-bit :bsd :bordeaux-threads :thread-support :split-sequence :cl-ppcre :asdf3.3 :asdf3.2 :asdf3.1 :asdf3 :asdf2 :asdf :os-macosx :os-unix :non-base-chars-exist-p :lispworks7+ :lispworks6+ :lispworks5+ :asdf-unicode :common-lispworks :lw-editor :capi-cocoa-lib :capi-toolkit :capi :dbcs-env :cocoa :unix-without-motif :class-shake-using-gates :common-ffi :new-patch-system :word-instructions :flush-by-address :compiler :shallow-binding :common-defsystem :clos ...) :modules ("deliv-delete-objects" "mac-mode" "delete-selection" "selection-mode" "delivery" "delivery-keywords" "c-mode" "describe" "inspector-values" "URI" "OSC" "macos-comm" "comm" "CL-STORE" "ASDF" "asdf" "UIOP" "uiop") :package (:name "OPUSMODUS" :prompt "om") :version "2.29.1"))
  #f(compiled-function (g144) #<bytecode 0xafe52fd5c302ee9>)((:ok (:pid 8926 :style :spawn :encoding (:coding-systems ("utf-8-unix" "iso-latin-1-unix")) :lisp-implementation (:type "LispWorks" :name "lispworks" :version "8.0.1" :program nil) :machine (:instance "Torstens-2021-MBP.local" :type "arm64" :version "E") :features (:swank :mac-osx :clm :clm5 :clm4 :clm3 :opusmodus cffi-features:unix cffi-features:darwin :cffi :chunga chipz-system:gray-streams :flexi-streams :screamer :64-bit :bsd :bordeaux-threads :thread-support :split-sequence :cl-ppcre :asdf3.3 :asdf3.2 :asdf3.1 :asdf3 :asdf2 :asdf :os-macosx :os-unix :non-base-chars-exist-p :lispworks7+ :lispworks6+ :lispworks5+ :asdf-unicode :common-lispworks :lw-editor :capi-cocoa-lib :capi-toolkit :capi :dbcs-env :cocoa :unix-without-motif :class-shake-using-gates :common-ffi :new-patch-system :word-instructions :flush-by-address :compiler :shallow-binding :common-defsystem :clos ...) :modules ("deliv-delete-objects" "mac-mode" "delete-selection" "selection-mode" "delivery" "delivery-keywords" "c-mode" "describe" "inspector-values" "URI" "OSC" "macos-comm" "comm" "CL-STORE" "ASDF" "asdf" "UIOP" "uiop") :package (:name "OPUSMODUS" :prompt "om") :version "2.29.1")))
  slime-dispatch-event((:return (:ok (:pid 8926 :style :spawn :encoding (:coding-systems ("utf-8-unix" "iso-latin-1-unix")) :lisp-implementation (:type "LispWorks" :name "lispworks" :version "8.0.1" :program nil) :machine (:instance "Torstens-2021-MBP.local" :type "arm64" :version "E") :features (:swank :mac-osx :clm :clm5 :clm4 :clm3 :opusmodus cffi-features:unix cffi-features:darwin :cffi :chunga chipz-system:gray-streams :flexi-streams :screamer :64-bit :bsd :bordeaux-threads :thread-support :split-sequence :cl-ppcre :asdf3.3 :asdf3.2 :asdf3.1 :asdf3 :asdf2 :asdf :os-macosx :os-unix :non-base-chars-exist-p :lispworks7+ :lispworks6+ :lispworks5+ :asdf-unicode :common-lispworks :lw-editor :capi-cocoa-lib :capi-toolkit :capi :dbcs-env :cocoa :unix-without-motif :class-shake-using-gates :common-ffi :new-patch-system :word-instructions :flush-by-address :compiler :shallow-binding :common-defsystem :clos ...) :modules ("deliv-delete-objects" "mac-mode" "delete-selection" "selection-mode" "delivery" "delivery-keywords" "c-mode" "describe" "inspector-values" "URI" "OSC" "macos-comm" "comm" "CL-STORE" "ASDF" "asdf" "UIOP" "uiop") :package (:name "OPUSMODUS" :prompt "om") :version "2.29.1")) 1) #<process SLIME Lisp>)
  slime-process-available-input(#<process SLIME Lisp>)
  slime-net-filter(#<process SLIME Lisp> "000633(:return (:ok (:pid 8926 :style :spawn :encoding (:coding-systems (\"utf-8-unix\" \"iso-latin-1-unix\")) :lisp-implementation (:type \"LispWorks\" :name \"lispworks\" :version \"8.0.1\" :program nil) :machine (:instance \"Torstens-2021-MBP.local\" :type \"arm64\" :version \"E\") :features (:swank :mac-osx :clm :clm5 :clm4 :clm3 :opusmodus cffi-features:unix cffi-features:darwin :cffi :chunga chipz-system:gray-streams :flexi-streams :screamer :64-bit :bsd :bordeaux-threads :thread-support :split-sequence :cl-ppcre :asdf3.3 :asdf3.2 :asdf3.1 :asdf3 :asdf2 :asdf :os-macosx :os-unix :non-base-chars-exist-p :lispworks7+ :lispworks6+ :lispworks5+ :asdf-unicode :common-lispworks :lw-editor :capi-cocoa-lib :capi-toolkit :capi :dbcs-env :cocoa :unix-without-motif :class-shake-using-gates :common-ffi :new-patch-system :word-instructions :flush-by-address :compiler :shallow-binding :common-defsystem :clos :dbcs :unicode :native-threads :unix :harlequin-common-lisp :lispworks :ieee-floating-point :common-lisp :ansi-cl :latin-1 :package-local-nicknames :lispworks8 :lispworks8.0 :pthreads :darwin :mac :macosx :apple :arm64-darwin :mmap-exec-specially :arm64 harp::arm64 :lispworks-64bit :reverse :compile-r...")


Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...

Important Information

Terms of Use Privacy Policy