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