Hi,
With a CVS snapshot of SLIME (19.11.), M-x slime-apropos * RET makes my sbcl spin with 100% CPU. Interrupting it in the REPL (C-c C-c) brings it back.
"*" is, of course, not a valid regex, but I'd appreciate a better indication of the error.
This is with SBCL 1.0.10.55 on OS X/Tiger. OpenMCL (Version 1.1- pre-070722 (DarwinX8664)) shows similar behavior.
After interrupting, the following is printed at the REPL: ; in: ; LAMBDA (STRING &KEY (SLIME-NREGEX::START 0) ; (SLIME-NREGEX::END (LENGTH STRING))) ; (1- SLIME-NREGEX::START) ; --> - ; ==> ; SLIME-NREGEX::START ; ; note: deleting unreachable code
; (LET ((LENGTH SLIME-NREGEX::END)) ; (DO ((SLIME-NREGEX::MARKER SLIME-NREGEX::START (1+ SLIME- NREGEX::MARKER))) ; ((> SLIME-NREGEX::MARKER SLIME-NREGEX::END) NIL) ; (LET ((SLIME-NREGEX::INDEX SLIME-NREGEX::MARKER)) ; (IF (BLOCK SLIME-NREGEX::COMPARE #) (RETURN T))))) ; ; caught STYLE-WARNING: ; The variable LENGTH is defined but never used.
; (DO ((SLIME-NREGEX::START SLIME-NREGEX::INDEX (1- SLIME- NREGEX::START))) ; ((< SLIME-NREGEX::START SLIME-NREGEX::OINDEX) NIL) ; (LET ((SLIME-NREGEX::INDEX SLIME-NREGEX::START)) ; (BLOCK SLIME-NREGEX::COMPARE ; (SETF (CADR #) SLIME-NREGEX::INDEX) ; (RETURN-FROM SLIME-NREGEX::FINAL-RETURN T)))) ; --> BLOCK LET ; ==> ; SLIME-NREGEX::INDEX ; ; note: deleting unreachable code
; (LET ((SLIME-NREGEX::INDEX SLIME-NREGEX::START)) ; (BLOCK SLIME-NREGEX::COMPARE ; (SETF (CADR (AREF SLIM
* Michael Weber [2007-11-22 09:12+0100] writes:
Hi,
With a CVS snapshot of SLIME (19.11.), M-x slime-apropos * RET makes my sbcl spin with 100% CPU. Interrupting it in the REPL (C-c C-c) brings it back.
"*" is, of course, not a valid regex, but I'd appreciate a better indication of the error.
Yeah, that's annoying. I'm wondering whether we should use regexps at all. Since certain naming conventions, like *foo* +bar+ baz?, conflict with regexp syntax it's quite likely to step into that situation. It seems to me, that I use simple string matching in 95% of all cases. Occasionally, I have to search around in the apropos buffer, but that's acceptable.
Do you feel a need regexps?