[slime-devel] sb-aclrepl and slime

Martin Elster martin at 1103.org
Tue May 18 16:26:14 UTC 2004


On Tue, 2004-05-18 at 11:16, Marco Baringer wrote:
> Martin Elster <martin at 1103.org> writes:
> 
> > I haven't looked hard, but I couldn't find equivalents for :processes
> > (list all processes), :signal (send a signal to process), :sh (run shell
> > command), and :kill. 
> 
> see slime-list-threads. it doesn't allow you to send arbitrary signals
> to a thread, but you can kill it attach a repl to a thread or open a
> debugger in a thread.
> 
> what should :sh return? 

I don't know. As long as they print to *standard-output* what would have
gone to stdout, I'm happy. It could either return 0 or 1 according to
the result of running the command, as ACL does, or just NIL, as aclrepl
does. 

> of course, i'd just tell you to use eshell,
> but i'm not that much of an emacs fascist yet.

:-) 

> > I also use the :cd <dir>, :pwd, :ld, and :cl commands all the time in
> > Allegro and sbcl, and they have almost become second nature.
> 
> there are slime shortcuts for all of those, except :pwd, but for that
> you can just do M-x pwd anyway.

I'm probably missing something obvious, but how do you change directory
using shortcuts? 

When I type , (comma) and help, this is what I get: 

===============
force-compile-system
     Recompile (but not load) an ASDF system.
force-load-system
     Recompile and load an ASDF system.
help (aka ?)
     Display the help.
load-system
     Compile (as needed) and load an ASDF system.
pop-directory (aka -d)
     Pop the current directory.
pop-package (aka -p)
     Pop the top of the package stack.
push-directory (aka +d, pushd)
     Push a new directory onto the directory stack.
push-package (aka +p)
     Push a package onto the package stack.
resend-form
     Resend the last form.
sayoonara
     Quit the lisp and close all SLIME buffers.
===============

Should there be more shortcuts? 

BTW, I can't seem to get the load-system shortcut to work either. 

I type ,load-system and then I get the following error message: 

cannot supply a type without a name:
  #<PATHNAME
    (with no namestring)
    :HOST #<SB-IMPL::UNIX-HOST {5012CE9}>
    :DEVICE NIL
    :DIRECTORY (:ABSOLUTE "home" "melster" ".sbcl" "systems")
    :NAME NIL
    :TYPE "asd"
    :VERSION :NEWEST>
   [Condition of type SIMPLE-ERROR]

Restarts:
  0: [ABORT] Abort handling SLIME request.
  1: [ABORT] Reduce debugger level (leaving debugger, returning to
toplevel).
  2: [TOPLEVEL] Restart at toplevel READ/EVAL/PRINT loop.

Backtrace:
  0: (SB-IMPL::%ENUMERATE-MATCHES 4 #<PATHNAME (with no namestring)
:HOST #<SB-IMPL::UNIX-HOST {5012CE9}> :DEVICE NIL :DIRECTORY (:ABSOLUTE
"home" "melster" ".sbcl" "systems") :NAME NIL :TYPE "asd" :VERSION
:NEWEST> T T #<FUNCTION "CLOSURE" {9827FB5}>)[:EXTERNAL]
  1: ("LABELS SB!IMPL::DO-DIRECTORY" #<PATHNAME (with no namestring)
:HOST #<SB-IMPL::UNIX-HOST {5012CE9}> :DEVICE NIL :DIRECTORY (:ABSOLUTE
"home" "melster" ".sbcl" "systems") :NAME NIL :TYPE "asd" :VERSION
:NEWEST>)
  2: (DIRECTORY 1 #<PATHNAME (with no namestring) :HOST
#<SB-IMPL::UNIX-HOST {5012CE9}> :DEVICE NIL :DIRECTORY (:ABSOLUTE "home"
"melster" ".sbcl" "systems") :NAME NIL :TYPE "asd" :VERSION
:NEWEST>)[:EXTERNAL]
  3: (SWANK:LIST-ALL-SYSTEMS-IN-CENTRAL-REGISTRY)
  4: (SB-INT:EVAL-IN-LEXENV 2
(SWANK:LIST-ALL-SYSTEMS-IN-CENTRAL-REGISTRY) #S(SB-KERNEL:LEXENV :FUNS
NIL :VARS NIL :BLOCKS NIL :TAGS NIL :TYPE-RESTRICTIONS NIL :LAMBDA NIL
:CLEANUP NIL :POLICY ((SPEED . 1) (SPACE . 1) (SAFETY . 1)
(INHIBIT-WARNINGS . 1) (DEBUG . 1) (COMPILATION-SPEED . 1))))[:EXTERNAL]
  5: (SWANK::EVAL-FOR-EMACS (SWANK:LIST-ALL-SYSTEMS-IN-CENTRAL-REGISTRY)
NIL 5)
  6: (SWANK::READ-FROM-EMACS)
  7: ("#'(LAMBDA NIL (LET # #))")
  8: (SWANK::CALL-WITH-REDIRECTED-IO #S(SWANK::CONNECTION :SOCKET-IO
#<FILE-STREAM for #1="a constant string" {9E06F09}> :DEDICATED-OUTPUT
#2=#<FILE-STREAM for #1# {9E139C1}> :USER-INPUT
#3=#<SWANK-BACKEND::SLIME-INPUT-STREAM {944E291}> :USER-OUTPUT #2#
:USER-IO #<TWO-WAY-STREAM :INPUT-STREAM #3# :OUTPUT-STREAM #2#>
:CONTROL-THREAD NIL :READER-THREAD NIL :REPL-THREAD NIL :READ #<FUNCTION
SWANK::READ-FROM-SOCKET-IO> :SEND #<FUNCTION SWANK::SEND-TO-SOCKET-IO>
:SERVE-REQUESTS #<FUNCTION SWANK::INSTALL-SIGIO-HANDLER> :CLEANUP
#<FUNCTION SWANK::DEINSTALL-SIGIO-HANDLER> :INDENTATION-CACHE
#<HASH-TABLE :TEST EQ :COUNT 167 {9E0C889}> :INDENTATION-CACHE-PACKAGES
(#<PACKAGE "SWANK-COMPLETION-TEST"> #<PACKAGE "SWANK-IO-PACKAGE">
#<PACKAGE "SWANK"> #<PACKAGE "SB-POSIX-INTERNAL"> #<PACKAGE "SB-POSIX">
#<PACKAGE "SB-POSIX-SYSTEM"> #<PACKAGE "ASDF2994"> #<PACKAGE
"SB-INTROSPECT"> #<PACKAGE "SB-BSD-SOCKETS"> #<PACKAGE
"SB-BSD-SOCKETS-INTERNAL"> #<PACKAGE "SB-BSD-SOCKETS-SYSTEM"> #<PACKAGE
"SB-GROVEL"> #<PACKAGE "SB-GROVEL-SYSTEM"> #<PACKAGE "ASDF2853">
#<PACKAGE "ASDF2852"> #<PACKAGE "NREGEX"> #<PACKAGE "SWANK-BACKEND">
#<PACKAGE "SWANK-LOADER"> #<PACKAGE "SB-ACLREPL"> #<PACKAGE
"SB-ACLREPL-SYSTEM"> #<PACKAGE "ASDF2729"> #<PACKAGE "ASDF"> #<PACKAGE
"COMMON-LISP-USER"> #<PACKAGE "SB-LOOP"> #<PACKAGE "SB-IMPL"> #<PACKAGE
"KEYWORD"> #<PACKAGE "SB-WALKER"> #<PACKAGE "SB-PROFILE"> #<PACKAGE
"SB-PRETTY"> #<PACKAGE "SB-MOP"> #<PACKAGE "SB-INT"> #<PACKAGE
"SB-GRAY"> #<PACKAGE "SB-FORMAT"> #<PACKAGE "SB-FASL"> #<PACKAGE
"SB-DISASSEM"> #<PACKAGE "SB-DEBUG"> #<PACKAGE "SB-C"> #<PACKAGE
"SB-BIGNUM"> #<PACKAGE "SB-ASSEM"> #<PACKAGE "SB-ALIEN-INTERNALS">
#<PACKAGE "SB-SYS"> #<PACKAGE "SB-ALIEN"> #<PACKAGE "SB-PCL"> #<PACKAGE
"SB-UNIX"> #<PACKAGE "SB-VM"> #<PACKAGE "SB-THREAD"> #<PACKAGE "SB-DI">
#<PACKAGE "SB-KERNEL"> #<PACKAGE "SB-EXT"> #<PACKAGE "COMMON-LISP">))
#<FUNCTION "#'(LAMBDA NIL (LET # #))" {908C84D}>)
  9: (SWANK::HANDLE-REQUEST #S(SWANK::CONNECTION :SOCKET-IO
#<FILE-STREAM for #1="a constant string" {9E06F09}> :DEDICATED-OUTPUT
#2=#<FILE-STREAM for #1# {9E139C1}> :USER-INPUT
#3=#<SWANK-BACKEND::SLIME-INPUT-STREAM {944E291}> :USER-OUTPUT #2#
:USER-IO #<TWO-WAY-STREAM :INPUT-STREAM #3# :OUTPUT-STREAM #2#>
:CONTROL-THREAD NIL :READER-THREAD NIL :REPL-THREAD NIL :READ #<FUNCTION
SWANK::READ-FROM-SOCKET-IO> :SEND #<FUNCTION SWANK::SEND-TO-SOCKET-IO>
:SERVE-REQUESTS #<FUNCTION SWANK::INSTALL-SIGIO-HANDLER> :CLEANUP
#<FUNCTION SWANK::DEINSTALL-SIGIO-HANDLER> :INDENTATION-CACHE
#<HASH-TABLE :TEST EQ :COUNT 167 {9E0C889}> :INDENTATION-CACHE-PACKAGES
(#<PACKAGE "SWANK-COMPLETION-TEST"> #<PACKAGE "SWANK-IO-PACKAGE">
#<PACKAGE "SWANK"> #<PACKAGE "SB-POSIX-INTERNAL"> #<PACKAGE "SB-POSIX">
#<PACKAGE "SB-POSIX-SYSTEM"> #<PACKAGE "ASDF2994"> #<PACKAGE
"SB-INTROSPECT"> #<PACKAGE "SB-BSD-SOCKETS"> #<PACKAGE
"SB-BSD-SOCKETS-INTERNAL"> #<PACKAGE "SB-BSD-SOCKETS-SYSTEM"> #<PACKAGE
"SB-GROVEL"> #<PACKAGE "SB-GROVEL-SYSTEM"> #<PACKAGE "ASDF2853">
#<PACKAGE "ASDF2852"> #<PACKAGE "NREGEX"> #<PACKAGE "SWANK-BACKEND">
#<PACKAGE "SWANK-LOADER"> #<PACKAGE "SB-ACLREPL"> #<PACKAGE
"SB-ACLREPL-SYSTEM"> #<PACKAGE "ASDF2729"> #<PACKAGE "ASDF"> #<PACKAGE
"COMMON-LISP-USER"> #<PACKAGE "SB-LOOP"> #<PACKAGE "SB-IMPL"> #<PACKAGE
"KEYWORD"> #<PACKAGE "SB-WALKER"> #<PACKAGE "SB-PROFILE"> #<PACKAGE
"SB-PRETTY"> #<PACKAGE "SB-MOP"> #<PACKAGE "SB-INT"> #<PACKAGE
"SB-GRAY"> #<PACKAGE "SB-FORMAT"> #<PACKAGE "SB-FASL"> #<PACKAGE
"SB-DISASSEM"> #<PACKAGE "SB-DEBUG"> #<PACKAGE "SB-C"> #<PACKAGE
"SB-BIGNUM"> #<PACKAGE "SB-ASSEM"> #<PACKAGE "SB-ALIEN-INTERNALS">
#<PACKAGE "SB-SYS"> #<PACKAGE "SB-ALIEN"> #<PACKAGE "SB-PCL"> #<PACKAGE
"SB-UNIX"> #<PACKAGE "SB-VM"> #<PACKAGE "SB-THREAD"> #<PACKAGE "SB-DI">
#<PACKAGE "SB-KERNEL"> #<PACKAGE "SB-EXT"> #<PACKAGE "COMMON-LISP">)))
  10: ("#'(LAMBDA NIL (SWANK::HANDLE-REQUEST SWANK::CONNECTION))")
  11: (SWANK::PROCESS-AVAILABLE-INPUT #<FILE-STREAM for "a constant
string" {9E06F09}> #<FUNCTION "CLOSURE" {982747D}>)
  12: ("FLET SWANK::HANDLER")
  13: (SWANK-BACKEND::SIGIO-HANDLER #<unused argument> #<unused
argument> #<unused argument>)
  14: ("#'(LAMBDA (SIGNAL SWANK-BACKEND::CODE SWANK-BACKEND::SCP)
(SWANK-BACKEND::SIGIO-HANDLER SIGNAL SWANK-BACKEND::CODE ...))" 29
#.(SB-SYS:INT-SAP #X402504D8) #.(SB-SYS:INT-SAP #X40250558))
  15: ("foreign function call land: ra=#x8055BC1")
  16: ("foreign function call land: ra=#x8055A9A")
  17: ("foreign function call land: ra=#x8050A17")
  18: ("foreign function call land: ra=#x80521E7")
  19: ("foreign function call land: ra=#x420277B0")
  20: ("hairy arg processor for top level local call
SB!SYS:WAIT-UNTIL-FD-USABLE" 0 :INPUT NIL)
  21: (SB-IMPL::FROB-INPUT 1 #<FILE-STREAM for "standard input"
{9003259}>)[:EXTERNAL]
  22: (SB-IMPL::INPUT-CHARACTER 3 #<FILE-STREAM for "standard input"
{9003259}> NIL :EOF)[:EXTERNAL]
  23: ("hairy arg processor for top level local call READ-CHAR"
#<FILE-STREAM for "standard input" {9003259}> NIL :EOF #<unused
argument>)
  24: ("hairy arg processor for top level local call PEEK-CHAR" NIL
#<SYNONYM-STREAM :SYMBOL SB-SYS:*STDIN* {5028D49}> NIL :EOF #<unused
argument>)
  25: ("hairy arg processor for SB-ACLREPL::PEEK-CHAR-NON-WHITESPACE"
#<SYNONYM-STREAM :SYMBOL SB-SYS:*STDIN* {5028D49}>)
  26: (SB-ACLREPL::READ-CMD #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDIN*
{5028D49}>)
  27: (SB-ACLREPL::REPL-READ-FORM-FUN #<SYNONYM-STREAM :SYMBOL
SB-SYS:*STDIN* {5028D49}> #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDOUT*
{500F721}>)
  28: (SB-ACLREPL::REP-ONE)
  29: ("varargs entry for SB-ACLREPL::REPL" :BREAK-LEVEL 0 :NOPRINT NIL
:INSPECT NIL :CONTINUABLE NIL)
  30: ("#'(LAMBDA (SB-ACLREPL::NOPRINT) (LET # #))" NIL)
  31: ("#'(LAMBDA NIL (LOOP # #))")
  32: ("XEP for #'(LAMBDA NIL (LOOP # #))" 0)[:EXTERNAL]
  33: (SB-IMPL::%WITH-REBOUND-IO-SYNTAX 1 #<FUNCTION "CLOSURE"
{92A8205}>)[:EXTERNAL]
  34: (SB-IMPL::TOPLEVEL-REPL 1 NIL)[:EXTERNAL]
  35: (SB-IMPL::TOPLEVEL-INIT 0)[:EXTERNAL]
  36: ("FLET SB!IMPL::RESTART-LISP")

This is on sbcl 0.8.10 with the latest FAIRLY-STABLE slime. 

Any tips? 

martin






More information about the slime-devel mailing list