This commit introduces a regression:
* 2009-09-02 Stas Boukarev stassats@gmail.com | | * swank-lispworks.lisp (replace-strings-with-symbols): New | function for recursively interning and replacing strings in a | list. (arglist): Replace all strings in arglists with symbols.
For a test case, consider what LW returns for
(function-lambda-list 'with-foo)
for a definition like
(defmacro with-foo ((var . args) &body body) `(let ((,var ,@args)) ,@body))
-- Madhu
Madhu enometh@meer.net writes:
This commit introduces a regression:
- 2009-09-02 Stas Boukarev stassats@gmail.com
| | * swank-lispworks.lisp (replace-strings-with-symbols): New | function for recursively interning and replacing strings in a | list. (arglist): Replace all strings in arglists with symbols.
For a test case, consider what LW returns for
(function-lambda-list 'with-foo)
for a definition like
(defmacro with-foo ((var . args) &body body) `(let ((,var ,@args)) ,@body))
Fixed in CVS, thanks for the report.
* Stas Boukarev 87eipr716w.fsf@gmail.com : Wrote on Mon, 28 Sep 2009 15:34:15 +0400:
| Madhu enometh@meer.net writes: | |> This commit introduces a regression: |> |> * 2009-09-02 Stas Boukarev stassats@gmail.com | * Stas Boukarev 87eipr716w.fsf@gmail.com : |> | |> | * swank-lispworks.lisp (replace-strings-with-symbols): New |> | function for recursively interning and replacing strings in a |> | list. (arglist): Replace all strings in arglists with symbols. |>
[snip]
| Fixed in CVS, thanks for the report.
Thanks I got around to checking this, and this will not be an issue to slime users, but the fix, REPLACE-STRINGS-WITH-SYMBOLS conses a new list AND the call to the function is in a critical path: it is called heavily. TRACE REPLACE-STRINGS-WITH-SYMBOLS to see how often this gets called.
BTW I haven't seen the test case (the problem) which required this fix in the first place -- Nadhu
Madhu enometh@meer.net writes:
- Stas Boukarev 87eipr716w.fsf@gmail.com :
Wrote on Mon, 28 Sep 2009 15:34:15 +0400:
| Madhu enometh@meer.net writes: | |> This commit introduces a regression: |> |> * 2009-09-02 Stas Boukarev stassats@gmail.com |
- Stas Boukarev 87eipr716w.fsf@gmail.com :
|> | |> | * swank-lispworks.lisp (replace-strings-with-symbols): New |> | function for recursively interning and replacing strings in a |> | list. (arglist): Replace all strings in arglists with symbols. |>
[snip]
| Fixed in CVS, thanks for the report.
Thanks I got around to checking this, and this will not be an issue to slime users, but the fix, REPLACE-STRINGS-WITH-SYMBOLS conses a new list AND the call to the function is in a critical path: it is called heavily. TRACE REPLACE-STRINGS-WITH-SYMBOLS to see how often this gets called.
BTW I haven't seen the test case (the problem) which required this fix in the first place
LW:FUNCTION-LAMBDA-LIST sometimes return strings (e.g. on FLET), but SWANK-BACKEND:ARGLIST is supposed to return a tree of symbols.
-T.