1Known problems with SLY
2-----------------------
3
4## Common to all backends
5
6### Caution: network security
7
8The `M-x sly` command has Lisp listen on a TCP socket and wait for
9Emacs to connect, which typically takes on the order of one second. If
10someone else were to connect to this socket then they could use the
11SLY protocol to control the Lisp process.
12
13The listen socket is bound on the loopback interface in all Lisps that
14support this. This way remote hosts are unable to connect.
15
16### READ-CHAR-NO-HANG is broken
17
18`READ-CHAR-NO-HANG` doesn't work properly for sly-input-streams.  Due
19to the way we request input from Emacs it's not possible to repeatedly
20poll for input.  To get any input you have to call `READ-CHAR` (or a
21function which calls `READ-CHAR`).
22
23## Backend-specific problems
24
25### CMUCL
26
27The default communication style `:SIGIO` is reportedly unreliable with
28certain libraries (like libSDL) and certain platforms (like Solaris on
29Sparc). It generally works very well on x86 so it remains the default.
30
31### SBCL
32
33The latest released version of SBCL at the time of packaging should
34work.  Older or newer SBCLs may or may not work.  Do not use
35multithreading with unpatched 2.4 Linux kernels.  There are also
36problems with kernel versions 2.6.5 - 2.6.10.
37
38The (v)iew-source command can only locate exact source forms for code
39compiled at (debug 2) or higher. The default level is lower and SBCL
40itself is compiled at a lower setting. Thus only defun-granularity is
41available with default policies.
42
43### LispWorks
44
45On Windows, SLY hangs when calling foreign functions or certain
46other functions.  The reason for this problem is unknown.
47
48We only support latin1 encoding.  (Unicode wouldn't be hard to add.)
49
50### Allegro CL
51
52Interrupting Allegro with C-c C-b can be slow.  This is caused by the
53a relatively large process-quantum: 2 seconds by default.  Allegro
54responds much faster if `MP:*DEFAULT-PROCESS-QUANTUM*` is set to 0.1.
55
56### CLISP
57
58We require version 2.49 or higher. We also require socket support, so
59you may have to start CLISP with `clisp -K full`.
60
61Under Windows, interrupting (with C-c C-b) doesn't work.  Emacs sends
62a SIGINT signal, but the signal is either ignored or CLISP exits
63immediately.
64
65On Windows, CLISP may refuse to parse filenames like
66"C:\\DOCUME~1\\johndoe\\LOCALS~1\\Temp\\sly.1424" when we actually
67mean C:\Documents and Settings\johndoe\Local Settings\sly.1424.  As
68a workaround, you could set sly-to-lisp-filename-function to some
69function that returns a string that is accepted by CLISP.
70
71Function arguments and local variables aren't displayed properly in
72the backtrace.  Changes to CLISP's C code are needed to fix this
73problem.  Interpreted code is usually easer to debug.
74
75`M-.` (find-definition) only works if the fasl file is in the same
76directory as the source file.
77
78The arglist doesn't include the proper names only "fake symbols" like
79`arg1`.
80
81### Armed Bear Common Lisp
82
83The ABCL support is still new and experimental.
84