/[slime]/slime/ChangeLog
ViewVC logotype

Contents of /slime/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2406 - (show annotations)
Sun Sep 29 13:45:42 2013 UTC (6 months, 2 weeks ago) by heller
Branch: MAIN
Changes since 1.2405: +7 -0 lines
For CCL, also search definitions of p2 translators.

* swank-ccl.lisp (p2-definitions): New.
(find-definitions): Use it.
1 2013-09-29 Helmut Eller <heller@common-lisp.net>
2
3 For CCL, also search definitions of p2 translators.
4
5 * swank-ccl.lisp (p2-definitions): New.
6 (find-definitions): Use it.
7
8 2013-09-29 Helmut Eller <heller@common-lisp.net>
9
10 * swank-clisp.lisp (*frame-prefixes*): Update some of the patterns
11 for new layout.
12 (is-prefix-p): Use regexp matching.
13 (boring-frame-p): Also make compiled-tagbody compiled-block
14 boring.
15 (sldb-backtrace, %parse-stack-values): Remove code for versions
16 before 2.44.
17
18 2013-09-29 Helmut Eller <heller@common-lisp.net>
19
20 For CCL, also search nx1-alphatizer definitions.
21
22 * swank-ccl.lisp (alphatizer-definitions): New
23 (find-definitions): Use it.
24
25 2013-06-26 evenson <evenson@saturn>
26
27 * swank-abcl.lisp (specializer-direct-methods): Correct symbol
28 definition, allowing SLIME inspector to work again.
29
30 2013-05-26 Luís Oliveira <loliveira@common-lisp.net>
31
32 * slime-fancy-trace.el: New contrib.
33 * slime-parse.el (slime-trace-query): moved to slime-fancy-trace.
34 * slime-fancy.el: load slime-fancy-trace.
35
36 2013-05-14 Martin Simmons <martin@lispworks.com>
37
38 * swank-lispworks.lisp (lispworks-severity): Fix error when using
39 the :explain declaration.
40
41 2013-05-14 Martin Simmons <martin@lispworks.com>
42
43 * swank-lispworks.lisp (find-top-frame): Improve backtraces from
44 swank::safe-backtrace.
45
46 2013-04-23 Stas Boukarev <stassats@gmail.com>
47
48 * slime.el (slime-draw-connection-list): Make sure not to call
49 goto-char on NIL.
50
51 2013-04-02 Luís Oliveira <loliveira@common-lisp.net>
52
53 Hide SWANK debugger frames on Allegro also when the error is
54 signalled within threads different from the SLIME REPL's.
55 E.g. (mp:process-run-function nil (lambda () (error "foo"))).
56
57 * swank-allegro.lisp (find-topframe): look deeper than 11
58 frames. Still looking no deeper than 30 frames in the unlikely
59 event that this function is invoked out of context with a very
60 large stack.
61
62 2013-03-12 Helmut Eller <heller@common-lisp.net>
63
64 * slime.el (slime-read-interactive-args): Use read-shell-command
65 to enable completion. Patch by Daimrod/Greg.
66
67 2013-03-08 Mark Evenson <evenson@tethys.local>
68
69 * swank-abcl.lisp: Allow SLIME inspector to perform class
70 finalization.
71
72 2013-03-02 Stas Boukarev <stassats@gmail.com>
73
74 * slime-autoloads.el: Don't load autoloads when slime is already
75 loaded, there's no sense in doing so.
76
77 2013-02-20 Stas Boukarev <stassats@gmail.com>
78
79 * slime.el (slime-attempt-connection): Don't run the timer with a
80 repeat argument, slime-attempt-connection will reinstantiate the
81 timer if needed, otherwise it can be a possible source of race
82 conditions.
83
84 2013-02-13 Helmut Eller <heller@common-lisp.net>
85
86 * swank-allegro.lisp (eval-in-frame): debugger:frame-var-name can
87 return nil; ignore those vars.
88
89 * slime.el (sldb-setup): Allegro somehow managed to enter sldb at
90 the same level twice. Add an assertion that checks that the
91 condition is the same if sldb-level is the same as last time.
92
93 2013-02-08 Helmut Eller <heller@common-lisp.net>
94
95 * swank-lispworks.lisp (frame-package): Implemented.
96 (function-name-package): New.
97
98 2013-02-08 Helmut Eller <heller@common-lisp.net>
99
100 * swank-allegro.lisp (handle-compiler-warning): Ignore "Closure
101 will be stack allocated" notes. Those are harmless and there are
102 too many of them.
103 (pc-source-location, ldb-code-to-src-loc): Handle case when
104 excl::ldb-code-pc returns nil.
105
106 2013-02-02 Stas Boukarev <stassats@gmail.com>
107
108 * swank-backend.lisp (type-specifier-p): New.
109 Implement it for ACL, ECL, CCL, Clisp, SBCL, LW.
110
111 2013-01-12 Stas Boukarev <stassats@gmail.com>
112
113 * swank-backend.lisp: Add a couple of ignore declarations.
114
115 2013-01-11 Stas Boukarev <stassats@gmail.com>
116
117 * swank-ecl.lisp (accept-connection): Fix a typo, line => :line.
118
119 2013-01-11 Helmut Eller <heller@common-lisp.net>
120
121 * swank.lisp (swank-compile-file*): Renamed from
122 compile-file-with-compile-file.
123
124 2013-01-10 Helmut Eller <heller@common-lisp.net>
125
126 * swank-ecl.lisp (frame-var-value): Return the value without name.
127
128 2013-01-09 Helmut Eller <heller@common-lisp.net>
129
130 * swank.lisp (frame-locals-for-emacs): Print variable names in
131 frame-package.
132
133 2013-01-09 Helmut Eller <heller@common-lisp.net>
134
135 * swank-sbcl.lisp (frame-debug-vars): Only include :valid locals.
136 (*keep-non-valid-locals*): New.
137 (frame-package): New.
138
139 2013-01-07 Helmut Eller <heller@common-lisp.net>
140
141 * swank-ccl.lisp (compiler-warning-short-message): Add a method
142 for ccl::shadowed-typecase-clause. Whithout that we only get
143 "Nonspecific warning".
144 (function-name-package): Factored out from frame-package. Add
145 case for standard-method.
146
147 2013-01-07 Helmut Eller <heller@common-lisp.net>
148
149 * swank-ecl.lisp (describe-symbol-for-emacs): Include bound
150 symbols even those without documentation.
151
152 * slime.el (slime-print-apropos): Do some input validation to
153 detect bugs on the Lisp side.
154
155 * swank-backend.lisp (describe-symbol-for-emacs): Allow NIL where
156 :NOT-DOCUMENTED was needed.
157
158 2013-01-05 Helmut Eller <heller@common-lisp.net>
159
160 * swank-ccl.lisp (frame-package): Implemented.
161
162 2013-01-05 Helmut Eller <heller@common-lisp.net>
163
164 * swank-loader.lisp (init): Add a :quiet argument.
165
166 2012-12-27 Stas Boukarev <stassats@gmail.com>
167
168 * swank.lisp (find-definitions-find-symbol-or-package): Rename
169 from `find-definitions-find-symbol'. Packages are not named by
170 symbols and an uninterned string can refer to a package. In case
171 it finds a package, return a new uninterned symbol.
172
173 2012-12-17 Stas Boukarev <stassats@gmail.com>
174
175 * swank-ecl.lisp (swank-mop): MOP works well now on ECL, import
176 all symbols.
177
178 * swank.lisp (thread-for-evaluation): Use INTEGER, not FIXNUM, as
179 a specializer, FIXNUM is not a standard class.
180
181 2012-12-16 Helmut Eller <heller@common-lisp.net>
182
183 * swank.lisp (thread-for-evaluation): Make generic. Remove keyword
184 arg. Don't call find-repl-thread.
185
186 2012-12-16 Helmut Eller <heller@common-lisp.net>
187
188 * slime.el (slime-attempt-connection): Show the attempt counter.
189
190 2012-12-03 Stas Boukarev <stassats@gmail.com>
191
192 * swank-backend.lisp (deinit-log-output): Move from swank-sbcl,
193 use it on CCL in ccl:*save-exit-functions* as well.
194
195 * swank-allegro.lisp (macroexpand-all): USe walk-form, not walk
196 on >= 8.2.
197 Patch by Utz-Uwe Haus.
198
199 2012-11-23 Stas Boukarev <stassats@gmail.com>
200
201 * slime.el (slime-edit-definition): Don't ask the user for a name
202 to search if it's missing before running slime-edit-definition-hooks
203 (slime-open-inspector): pop-to-buffer before inserting anything,
204 otherwise the point is not moved into the desired position.
205
206 2012-11-13 Francois-Rene Rideau <tunes@google.com>
207
208 * swank.lisp (*compile-file-for-emacs-hook*): A hook for
209 compile-file-for-emacs, so that ASDF can hook its compilation
210 functions.
211
212 2012-11-12 Stas Boukarev <stassats@gmail.com>
213
214 * swank.lisp (with-panic-handler): Abort the condition after
215 closing the connection, otherwise it ends up in the slime debugger
216 causing nested errors.
217
218 2012-11-11 Stas Boukarev <stassats@gmail.com>
219
220 * swank.lisp (interrupt-worker-thread): Solve *send-counter*
221 binding problem.
222 find-worker-thread: Merge with `thread-for-evaluation'.
223
224 2012-11-11 Helmut Eller <heller@common-lisp.net>
225
226 * slime.el ([test] find-definition.3): Mark as expected to fail.
227 ([test] arglist): Adjust regexp so that CCL passes.
228 (slime-execute-tests): Insert summary table at the the end.
229 (slime-check): Don't change counters here, as that would count
230 multiple times per test. Instead to the counting in
231 slime-execute-tests.
232
233 2012-11-11 Helmut Eller <heller@common-lisp.net>
234
235 * swank-allegro.lisp (ldb-code-to-src-loc): Scan backward to the
236 first code point with a non-nil start-char.
237 (frame-package): Also match for ((:internal foo ...)).
238
239 2012-11-08 Helmut Eller <heller@common-lisp.net>
240
241 * slime.el (slime-timer-call): Use debug marker in
242 condition-case.
243
244 2012-11-02 Helmut Eller <heller@common-lisp.net>
245
246 * slime.el (find-definition.3): Fix syntax.
247
248 2012-11-02 Helmut Eller <heller@common-lisp.net>
249
250 * swank.lisp (condition-message): New. Binds *print-cirlce.
251 (safe-condition-message): Move binding of printer vars to
252 condition-message.
253 (*sldb-condition-printer*): Set it to #'condition-message.
254
255 2012-11-02 Helmut Eller <heller@common-lisp.net>
256
257 * swank-allegro.lisp (frame-source-location, ldb-code-to-src-loc):
258 Use function-source-location for some cases that used to cause
259 errors.
260 (frame-package): New.
261 (format-sldb-condition, call-with-syntax-hooks): Deleted. Did just
262 the same as the default implementation.
263
264 2012-11-02 Helmut Eller <heller@common-lisp.net>
265
266 * slime.el ([test] find-definition): Test defstruct and defvar.
267 ([test] find-definition.3): New.
268
269 2012-10-30 Helmut Eller <heller@common-lisp.net>
270
271 * swank-cmucl.lisp (dd-location): Use info db as fallback.
272 (struct-constructor): Return the name not the function.
273
274 2012-10-27 Helmut Eller <heller@common-lisp.net>
275
276 * slime.el (report-condition-with-circular-list): New test.
277 * swank.lisp (safe-condition-message): Bind *print-length* and
278 truncate the string after 64KB.
279
280 2012-10-20 Stas Boukarev <stassats@gmail.com>
281
282 * slime.el (slime-location-offset): When going to a position
283 causes an error, for example, trying to move beyond the end of the
284 buffer, move the point to 0 and then try to use the hints.
285
286 2012-10-14 Helmut Eller <heller@common-lisp.net>
287
288 * slime.el (slime-insert-threads): Some cleanups.
289 (slime-insert-table, slime-insert-table-row)
290 (slime-transpose-lists) New helpers.
291 (slime-threads-table-properties): Renamed from
292 *slime-threads-table-properties*
293 (slime-thread-index-to-id, slime-longest-lines)
294 (slime-format-threads-labels, slime-insert-thread): Deleted.
295
296 2012-10-14 Helmut Eller <heller@common-lisp.net>
297
298 Avoid some unused variable warnings.
299
300 * slime.el (slime-xref-group, slime-all-contribs, [selector] ??):
301 Use _ as prefix or in loop-destructuring: (loop for (nil) in ...).
302
303 2012-10-14 Helmut Eller <heller@common-lisp.net>
304
305 * slime.el (slime-goto-source-location-buffer-and-file): Delete
306 unused function.
307
308 2012-10-14 Helmut Eller <heller@common-lisp.net>
309 Avoid flet.
310
311 * slime.el (with-struct, slime-compute-policy)
312 (slime-create-note-overlay, slime-merge-note-into-overlay)
313 (slime-file-name-merge-source-root)
314 (slime-highlight-differences-in-dirname)
315 (slime-check-location-filename-sanity, slime-macroexpand-undo)
316 (slime-read-connection)
317 (slime-inspector-property-at-point): Use macrolet or a
318 comibination of let and funcall as replacement for flet.
319
320 2012-10-14 Helmut Eller <heller@common-lisp.net>
321 Avoid labels.
322
323 * hyperspec.el (hyperspec--get-one-line): New function.
324
325 2012-10-14 Helmut Eller <heller@common-lisp.net>
326
327 * swank.lisp (close-connection%): Let *debugger-hook* be nil
328 across the entire function to that we don't call our own debugger
329 if we ever get some error during CLOSE or somesuch.
330
331 2012-09-04 Stas Boukarev <stassats@gmail.com>
332
333 * swank-loader.lisp (lisp-version-string): Add "s" to Allegro with
334 SMP support.
335 Patch by Dave Cooper.
336
337 2012-08-18 Stas Boukarev <stassats@gmail.com>
338
339 * swank-abcl.lisp (find-definitions): Call ext:resolve before
340 finding definitions, for the symbol may be not autoloaded yet.
341
342 2012-08-04 Stas Boukarev <stassats@gmail.com>
343
344 * swank-sbcl.lisp (call-with-debugging-environment): Use
345 sb-debug::resolve-stack-top-hint instead of just
346 sb-debug:*stack-top-hint*, because now it can contain things other
347 than just frames.
348 * clean up: (signal (make-condition ...)) => (signal ...)
349
350 2012-07-13 Helmut Eller <heller@common-lisp.net>
351
352 * slime.el: Don't compile functions that are now in other files.
353
354 2012-06-19 Helmut Eller <heller@common-lisp.net>
355
356 * swank-ecl.lisp (wait-for-input): Provide implementation
357 that doesn't need serve-event.
358
359 2012-06-12 Stas Boukarev <stassats@gmail.com>
360
361 * slime.el (slime-changelog-date): Use
362 (expand-file-name "ChangeLog" slime-path) instead of
363 (concat slime-path "ChangeLog"), slime-path may not have a
364 trailing /.
365 Reported by Paul Sexton (lp#1011935).
366
367 2012-05-25 Stas Boukarev <stassats@gmail.com>
368
369 * slime.el (slime-oneliner): Use minibuffer width instead of the
370 width of the current frame, minibuffer can be in a separate frame
371 with a different width.
372 Patch by Greg Pfeil (lp#1004252).
373
374 2012-05-21 Helmut Eller <heller@common-lisp.net>
375
376 Reduce dependecy on pre-defined faces.
377
378 * slime.el (slime-apropos-symbol, slime-apropos-label): New faces.
379 (slime-print-apropos): Use them.
380
381 Reported by: Daimrod <daimrod@gmail.com>
382
383 2012-05-12 Helmut Eller <heller@common-lisp.net>
384
385 * swank-sbcl.lisp (stream-force-output): Undo last few changes.
386
387 2012-05-11 Helmut Eller <heller@common-lisp.net>
388
389 * swank-sbcl.lisp (stream-force-output): Use with-world-lock
390 i.e. with-recursive-lock instead of with-mutex.
391 * slime.el (sbcl-world-lock): New test.
392
393 2012-05-11 Helmut Eller <heller@common-lisp.net>
394
395 * swank-sbcl.lisp (stream-force-output): Don't use
396 with-deadline. Grab the world-lock instead.
397 (condition-timed-wait): Use the :timeout argument for real.
398
399 2012-05-11 Helmut Eller <heller@common-lisp.net>
400
401 * swank-backend.lisp (call-with-io-timeout): Not used. Deleted.
402 * swank-sbcl.lisp (call-with-io-timeout): Deleted.
403
404 2012-05-07 Helmut Eller <heller@common-lisp.net>
405
406 Ignore linebreaks for the macroexpand test.
407 SBCL should now also pass it.
408
409 * slime.el (slime-test-macroexpansion=): New function.
410 ([test] macroexpand): Use it.
411
412 2012-05-06 Helmut Eller <heller@common-lisp.net>
413
414 * swank-sbcl.lisp (condition-timed-wait): Undo previous change.
415 The :timeout arg doesn't seem ready for production use.
416
417 2012-05-06 Helmut Eller <heller@common-lisp.net>
418
419 * swank-sbcl.lisp (condition-timed-wait): Use the :timeout
420 argument of sb-thread:condition-wait if supported.
421
422
423 2012-05-06 Helmut Eller <heller@common-lisp.net>
424
425 * swank-sbcl.lisp (with-definition-source): Forgot to commit this
426 one.
427
428 * swank-allegro.lisp (string-to-utf8): Set the :null-terminate
429 argument of excl:string-to-octets to nil.
430
431 2012-05-06 Helmut Eller <heller@common-lisp.net>
432
433 * swank-backend.lisp (with-struct): Undo damage.
434 * swank-sbcl.lisp (with-definition-source): New macro.
435
436 2012-05-06 Helmut Eller <heller@common-lisp.net>
437
438 * swank.lisp, swank-rpc.lisp: iso-8859-1 is not same as
439 latin-1-unix.
440
441 2012-05-06 Cyrus Harmon <ch-slime@bobobeach.com>
442 Helmut Eller <heller@common-lisp.net>
443
444 * slime.el (slime-pprint-eval-region): New command. No keybinding
445 though.
446
447 2012-05-04 Nikodemus Siivola <nikodemus@random-state.net>
448
449 * swank-sbcl.lisp: Remove the SB-C::MERGE-TAIL-CALLS proclamation.
450 It does nothing, and never did, actually.
451
452 2012-05-03 Stas Boukarev <stassats@gmail.com>
453
454 * slime.el (slime-goto-source-location): Allow for
455 :buffer-and-file locations, prefer buffer if the buffer exists.
456
457 * swank-sbcl.lisp (definition-source-for-emacs): Send
458 :buffer-and-file when both are available.
459 (quit-lisp): Use sb-ext:exit when it's present.
460
461 2012-05-03 Stas Boukarev <stassats@gmail.com>
462
463 * swank.lisp (find-definitions-find-symbol): Put back accidentally
464 removed with-buffer-syntax.
465
466 2012-05-02 Stas Boukarev <stassats@gmail.com>
467
468 * swank.lisp (*find-definitions-right-trim*)
469 (*find-definitions-left-trim*): New variables. ",:." and "#:"
470 default values.
471 (find-definitions-for-emacs): Trim names with using the above
472 variables when a symbol is not found.
473
474 2012-05-01 Stas Boukarev <stassats@gmail.com>
475
476 * slime.el (slime-xrefs-for-notes): Format location in a proper
477 way.
478 Reported by Max Mikhanosha.
479
480 2012-04-27 Nikodemus Siivola <nikodemus@random-state.net>
481
482 * swank-sbcl.lisp (lisp-source-location): How hard can it be to
483 get this right? (3-legged IF, FFS!)
484
485 2012-04-24 Douglas Crosher <dcrosher@common-lisp.net>
486
487 * swank-scl.lisp (create-socket): correct variable name typo.
488
489 * swank.lisp, swank-rpc.lisp (file options): use #\; to separate the
490 file options.
491
492 2012-04-23 Christophe Rhodes <csr21@cantab.net>
493
494 * slime.el (slime-operator-before-point-function): new variable.
495 (slime-operator-before-point): use it.
496 (slime-lisp-operator-before-point): default implementation for
497 slime-operator-before-point-function (unchanged from before).
498
499 2012-04-20 Nikodemus Siivola <nikodemus@random-state.net>
500
501 * swank-sbcl.lisp (stream-force-output :around): Workaroud for
502 deadlocks between auto-flush-thread buffer write lock and world
503 lock.
504 (slime-output-stream): Dummy forward definition for the benefit of
505 the defmethod.
506
507 2012-04-20 Nikodemus Siivola <nikodemus@random-state.net>
508
509 * swank-sbcl.lisp (swank-value): New function, makes it easy to
510 refer to variables in SWANK -- which doesn't exist when the
511 backend is loaded.
512 (lisp-source-location): One of the strings being interned was
513 downcased. Fix using SWANK-VALUE.
514 (make-socket-io-stream): Use SWANK-VALUE instead of INTERN &
515 SYMBOL-VALUE.
516
517 2012-04-11 Helmut Eller <heller@common-lisp.net>
518
519 * slime.el ([test] utf-8-source): Use the encoded byte sequence of
520 the Unicode string.
521
522 2012-04-10 Stas Boukarev <stassats@gmail.com>
523
524 * slime.el (def-slime-test utf-8-source): Define only when
525 (and (featurep 'emacs) (>= emacs-major-version 23)).
526
527 2012-04-10 Stas Boukarev <stassats@gmail.com>
528
529 * slime.el (def-slime-test utf-8-source): Another try at fixing
530 utf8 literals in code.
531
532 2012-04-09 Stas Boukarev <stassats@gmail.com>
533
534 * slime.el (def-slime-test utf-8-source): Remove literal Unicode
535 characters in the form of \xFFFF, it causes problems for some
536 people.
537
538 2012-04-07 Helmut Eller <heller@common-lisp.net>
539
540 Fix long lines.
541
542 * swank.lisp:
543 * slime.el:
544 * ChangeLog:
545 * swank-cmucl.lisp:
546 * swank-lispworks.lisp:
547 * contrib/ChangeLog
548 * hyperspec.el
549 * metering.lisp
550 * swank-abcl.lisp
551 * swank-allegro.lisp
552 * swank-backend.lisp
553 * swank-clisp.lisp
554 * swank-corman.lisp
555 * swank-ecl.lisp
556 * swank-sbcl.lisp
557 * swank-scl.lisp
558 * swank-source-path-parser.lisp
559 * xref.lisp
560
561 2012-04-06 Stas Boukarev <stassats@gmail.com>
562
563 * swank.lisp (interrupt-worker-thread): Interrupt the REPL thread if
564 there are no threads found. Send Emacs an error message if no
565 threads are found at all.
566
567 2012-03-30 Nikodemus Siivola <nikodemus@random-state.net>
568
569 * swank-sbcl.lisp (lisp-source-location): When processing a
570 STEP-FORM-CONDITION, don't show the initial form from expansion of
571 STEP. (Currently SBCL doesn't give the form at all, but when it
572 does seeing it is distinctly useless.)
573
574 2012-03-26 Helmut Eller <heller@common-lisp.net>
575
576 * slime.el (utf-8-source): XEmacs has no set-buffer-multibyte.
577 (slime-create-test-results-buffer): Set file-coding-system.
578
579 * swank-lispworks.lisp (swank-compile-string): Don't include the
580 source-string in the dspec::*location*. As LW has the habbit to
581 print the entire *location* on redefinition the source-string
582 would causes troubles for the test case.
583
584 * swank-sbcl.lisp (swank-compile-string): Use utf8.
585
586 * swank-cmucl.lisp (swank-compile-file): Use external-format arg.
587
588 * swank-ccl.lisp (swank-compile-string, compile-temp-file): Use
589 utf8.
590
591 * slime.el (utf-8-source): New test case.
592
593 2012-03-14 Paulo Madeira <acelent@gmail.com>
594
595 Use Unix-EOL convention even on Windows.
596
597 * swank-allegro.lisp (string-to-utf8, utf8-to-string): Use
598 excl:crlf-base-ef.
599 * swank-lispworks.lisp (string-to-utf8, utf8-to-string): Use
600 '(:utf-8 :eol-style :lf)
601
602 2012-03-06 Helmut Eller <heller@common-lisp.net>
603
604 * swank-ccl.lisp: If 'xref is not provided warn about it but
605 continue.
606
607 2012-03-06 Helmut Eller <heller@common-lisp.net>
608
609 Fix SBCL backend for Windows.
610
611 * swank-sbcl.lisp (fd-stream-input-buffer-empty-p): Restore it.
612
613 2012-03-06 Helmut Eller <heller@common-lisp.net>
614
615 * swank.lisp (swank-require): Ensure that provide as called.
616
617 2012-02-12 Stas Boukarev <stassats@gmail.com>
618
619 * swank-ecl.lisp (accept-connection): Use the proper element-type
620 for the stream.
621
622 2012-02-12 Stas Boukarev <stassats@gmail.com>
623
624 * swank-clisp.lisp (c-error): The number of parameters to
625 sys::c-warn was changed, accommodate both versions.
626
627 2012-02-07 Martin Simmons <martin@lispworks.com>
628
629 * swank-lispworks.lisp (dspec-file-position): Fall back to regexp
630 search if dspec-stream-position gets an error.
631
632 2012-01-06 Helmut Eller <heller@common-lisp.net>
633
634 Add a "sentinel thread" to protect access to global lists.
635
636 * swank.lisp (start-sentinel, sentinel, send-to-sentinel)
637 (sentinel-serve, sentinel-stop-server, sentinel-maybe-exit): New.
638 (make-connection, close-connection, setup-server, stop-server):
639 Use the sentinel.
640 (close-connection%): Factored out.
641 * swank-backend.lisp (register-thread, find-registered): New.
642 * swank-allegro.lisp: Implement it.
643 * swank-ccl.lisp:
644 * swank-lispworks.lisp:
645 * swank-sbcl.lisp:
646
647 2012-01-02 Stas Boukarev <stassats@gmail.com>
648
649 * swank-loader.lisp (lisp-version-string): Append -no-threads to
650 SBCL without threads.
651
652 2011-12-24 Stas Boukarev <stassats@gmail.com>
653
654 * slime.el (slime-init-command): Don't call
655 `slime-to-lisp-filename', the lisp is not yet connected and if
656 there's another connection it will use the wrong translation.
657
658 2011-12-24 Stas Boukarev <stassats@gmail.com>
659
660 * swank.lisp (throw-to-toplevel): If *sldb-quit-restart* is not
661 found, try to invoke the last restart, which usually is a
662 top-level abort restart. This is useful when the debugger is
663 invoked from a non-slime thread.
664
665 2011-12-23 Stas Boukarev <stassats@gmail.com>
666
667 * slime.el (slime-cycle-connections): Add
668 `slime-cycle-connections-hook', to be used by slime-repl.
669
670 2011-12-21 Stas Boukarev <stassats@gmail.com>
671
672 * swank-sbcl.lisp (input-ready-p): Don't use
673 sb-impl::fd-stream-fd-type if it's not present.
674
675 2011-12-12 Stas Boukarev <stassats@gmail.com>
676
677 * slime.el (slime-compile-region): Run slime-flash-region
678 directly, not from `slime-before-compile-functions', which is run
679 also for C-c C-k.
680
681 2011-12-10 Helmut Eller <heller@common-lisp.net>
682
683 * swank.lisp (auto-flush-loop): Don't use call-with-io-timeout.
684 Removing it had no effect on the number of failed tests. If you
685 want it back, first create a test case to demonstrate the problem.
686 * swank-backend.lisp: Mention that locks should only be used in
687 swank-gray.lisp.
688
689 2011-12-10 Helmut Eller <heller@common-lisp.net>
690
691 * swank.lisp: Move io-redirection to contrib/swank-repl.lisp.
692
693 2011-12-10 Helmut Eller <heller@common-lisp.net>
694
695 Make *active-threads* a slot of the connection struct.
696
697 * swank.lisp (*active-threads*): Deleted
698 ([struct] multithreaded-connection): New slot active-threads.
699 (find-worker-thread, interrupt-worker-thread)
700 (thread-for-evaluation): Update accordingly.
701 (add-active-thread, remove-active-thread): New helpers.
702
703 2011-12-10 Helmut Eller <heller@common-lisp.net>
704
705 * swank-loader.lisp (delete-stale-contrib-fasl-files): New.
706 (compile-contribs): Use it.
707
708 2011-12-09 Helmut Eller <heller@common-lisp.net>
709
710 Create an extra thread for the indentation cache.
711
712 * swank.lisp (indentation-cache-loop): New.
713 ([struct] multithreaded-connection): New slot
714 indentation-cache-thread.
715 (control-thread, cleanup-connection-threads): Create/kill it.
716 (send-to-indentation-cache): New function.
717 (update-indentation-information, sync-indentation-to-emacs): Use
718 it.
719 (perform-indentation-update, update-indentation/delta-for-emacs):
720 Add package as argument; that used to be *buffer-package. Can
721 again be simpler as the indentation-cache-thread doesn't share the
722 cache with others.
723 (handle-indentation-cache-request, symbol-packages): New helpers.
724
725 2011-12-07 Helmut Eller <heller@common-lisp.net>
726
727 * swank.lisp (*slime-interrupts-enabled*): Describe the idea
728 behind the interrupt handling code a bit.
729
730 2011-12-07 Helmut Eller <heller@common-lisp.net>
731
732 Make *event-queue* and *events-enqueued* slots of the connection
733 struct.
734
735 * swank.lisp (*event-queue*, *events-enqueued*): Deleted
736 ([struct] singlethreaded-connection): New slots event-queue and
737 events-enqueued.
738 (poll-for-event, send-event, wait-for-event/event-loop): Update
739 accordingly.
740
741 2011-12-07 Helmut Eller <heller@common-lisp.net>
742
743 * slime.el ([xemacs]): Use (find-coding-system 'utf-8-unix)
744 instead of checking the XEmacs version to decide when 'un-define
745 is required.
746
747 2011-12-07 Helmut Eller <heller@common-lisp.net>
748
749 * swank.lisp (send-to-emacs): Add a without-slime-interrupts to
750 protect send/receive from arbitrary interrupts.
751
752 2011-12-07 Helmut Eller <heller@common-lisp.net>
753
754 Move flow control from dispatch-event to send-to-emacs.
755
756 * swank.lisp (*send-counter*): New thread local variable.
757 (with-connection): Bind it.
758 (send-to-emacs): Call maybe-slow-down.
759 (maybe-slow-down, ping-pong): Go through dispatch-event instead of
760 writing to the socket directly.
761 (dispatch-event): Re-add thread arg to :ping/:emacs-pong.
762 Also add a :test-delay event.
763 (perform-indentation-update): Use with-connection to bind
764 *emacs-connection* and *send-counter*.
765 (background-message): Remove reference to connection.slowdown.
766 (flow-control-test): New support code for testing flow-control.
767 ([defstruct] connection): Delete send-counter and slowdown slots.
768
769 * slime.el (slime-dispatch-event): Re-add thread arg to
770 :ping/:emacs-pong and :test-delay event.
771 ([test] flow-control): New test.
772
773 2011-12-07 Helmut Eller <heller@common-lisp.net>
774
775 * slime.el (slime-update-system-indentation): Moved to
776 contrib/slime-indentation.el.
777
778 2011-12-07 Helmut Eller <heller@common-lisp.net>
779
780 * slime.el (slime-batch-test): Forgot to rename slime-run-one-test
781 to slime-run-test here.
782 (slime-net-connect): Remove coding-system argument.
783 (slime-xref-insert-recompilation-flags): Use insert-char instead
784 of (dotimes (i ..) (insert " " ..)) to avoid the compiler warning.
785 ([test] break, slime-forward-sexp): Use _i in dotimes.
786
787 2011-12-07 Stas Boukarev <stassats@gmail.com>
788
789 * doc/.cvsignore: Add html.tgz
790
791 2011-12-07 Didier Verna <didier@xemacs.org>
792
793 * doc/.cvsignore: Add more files generated by Texinfo (.kys, .fns
794 and .vrs).
795
796 2011-12-05 Didier Verna <didier@xemacs.org>
797
798 * slime.el ([xemacs]): Don't require 'un-define in XEmacs 21.5 and
799 later. Mule-UCS is not needed anymore because of internal Unicode
800 support (and conflicts with it).
801
802 2011-12-06 Stas Boukarev <stassats@gmail.com>
803
804 * slime.el (slime-compile-region): Check connection before running
805 hooks, invoking slime-flash-region doesn't make much sense when
806 there's no connection.
807
808 2011-12-05 Helmut Eller <heller@common-lisp.net>
809
810 Move flow control into dispatch-event.
811
812 * swank.lisp (maybe-slow-down, ping-pong): New functions.
813 (dispatch-event): Use it. Also require connection argument.
814 Update callers accordingly.
815 ([defstruct] connection): New slots: send-counter and slowdown.
816 * slime.el (slime-dispatch-event): Drop thread from
817 :ping/:emacs-ping messages.
818
819 Use subclasses of connection. Wasn't neccessary for flow control
820 but seems like a good idea for the future.
821
822 * swank.lisp (multithreaded-connection)
823 (singlethreaded-connection): New
824 (make-connection): Create multi/single threaded variant depending
825 on style argument.
826 ([defstruct] serve-requests, cleanup): Delete slots. Dispatch on
827 connection type instead.
828 (stop-serving-requests): New.
829 (close-connection): Use it. Can't use
830 *use-dedicated-output-stream* here.
831
832 * swank.lisp (background-message): Do nothing if
833 connection.slowdown is set.
834
835 2011-12-05 Helmut Eller <heller@common-lisp.net>
836
837 * slime.el ([test] arglist): swank::create-server now has an
838 optional argument. Use swank::compute-backtrace instead.
839
840 2011-12-05 Stas Boukarev <stassats@gmail.com>
841
842 * start-swank.lisp: Remove :coding-system argument.
843
844 2011-12-04 Helmut Eller <heller@common-lisp.net>
845
846 * swank.lisp (interrupt-worker-thread): Don't use find-repl-thread
847 as fallback.
848
849 2011-12-04 Helmut Eller <heller@common-lisp.net>
850
851 * swank.lisp: Minor cleanups.
852 * swank-rpc.lisp:
853
854 2011-12-04 Helmut Eller <heller@common-lisp.net>
855
856 * swank.lisp (create-repl): Moved to contrib/swank-repl.lisp.
857 (*use-dedicated-output-stream*, *dedicated-output-stream-port*
858 (*dedicated-output-stream-buffering*, open-streams)
859 (make-output-function, send-user-output)
860 (make-output-function-for-target, make-output-stream-for-target)
861 (open-dedicated-output-stream, find-repl-thread)
862 (spawn-repl-thread, repl-loop, initialize-streams-for-connection)
863 (read-user-input-from-emacs, *listener-eval-function*)
864 (listener-eval, *send-repl-results-function*, repl-eval)
865 (clear-repl-variables, track-package, send-repl-results-to-emacs)
866 (redirect-trace-output);
867 * swank-loader.lisp (*contribs*): Add swank-repl.
868
869 2011-12-04 Helmut Eller <heller@common-lisp.net>
870
871 * swank-loader.lisp (*contribs*): Add swank-mrepl.
872
873 2011-12-04 Helmut Eller <heller@common-lisp.net>
874
875 * swank-rpc.lisp (read-chunk): Signal end-of-file we had no input.
876
877 2011-12-03 Nikodemus Siivola <nikodemus@random-state.net>
878
879 * swank-sbcl.lisp (wait-for-input): Another go at this. Rip out POLL,
880 build on top of just INPUT-READY-P.
881 (input-ready-p): Outside Windows, use SYSREAD-MAY-BLOCK-P to check.
882
883 2011-12-03 Gábor Melis <mega@retes.hu>
884
885 * swank-allegro.lisp (set-default-initial-binding): In 9.0 alpha,
886 *CL-DEFAULT-SPECIAL-BINDINGS* is [soon to be] deprecated. It's
887 otherwise the same EXCL:*REQUIRED-TOP-LEVEL-BINDINGS* (i.e. no
888 change in behavior).
889
890 2011-12-03 Helmut Eller <heller@common-lisp.net>
891
892 * swank-clisp.lisp (wait-for-input): Add a version for windows.
893
894 2011-12-02 Stas Boukarev <stassats@gmail.com>
895
896 * swank-sbcl.lisp (wait-for-input): Define only if
897 #+os-provides-poll or #+win32.
898
899 2011-12-02 Helmut Eller <heller@common-lisp.net>
900
901 * swank.lisp (listener-channel): Moved to contrib/swank-mrepl.lisp
902 (create-listener, initial-listener-bindings, spawn-listener-thread).
903
904 2011-12-01 Helmut Eller <heller@common-lisp.net>
905
906 * swank-sbcl.lisp (wait-for-input): Call poll(2).
907 * swank-backend.lisp (wait-for-streams, wait-for-one-stream):
908 Deleted. Wouldn't work on binary streams.
909
910 2011-12-01 Helmut Eller <heller@common-lisp.net>
911
912 * swank-loader.lisp (*contribs*): Add swank-util.
913
914 2011-12-01 Helmut Eller <heller@common-lisp.net>
915
916 * swank-cmucl.lisp (method-location): Special case accessors.
917
918 2011-11-29 Helmut Eller <heller@common-lisp.net>
919
920 * swank.lisp (do-symbols*, classify-symbol)
921 (symbol-classification-string): Moved to contrib/swank-util.lisp.
922
923 2011-11-29 Helmut Eller <heller@common-lisp.net>
924
925 * swank.lisp (to-line): Increase default limit to 512.
926 (frame-locals-for-emacs): Let *print-right-margin* override
927 default line width.
928
929 2011-11-27 Helmut Eller <heller@common-lisp.net>
930
931 * swank.lisp (create-server): Add a :backlog argument.
932 (setup-server): Pass it along.
933
934 * swank-backend.lisp (create-socket): Backlog argument.
935 * swank-abcl.lisp: Implement it.
936 * swank-allegro.lisp:
937 * swank-ccl.lisp:
938 * swank-clisp.lisp:
939 * swank-cmucl.lisp:
940 * swank-corman.lisp:
941 * swank-ecl.lisp:
942 * swank-lispworks.lisp:
943 * swank-sbcl.lisp:
944 * swank-scl.lisp:
945
946 2011-11-27 Helmut Eller <heller@common-lisp.net>
947
948 * swank-cmucl.lisp (make-socket-io-stream): Create character
949 stream if external-format is non-nil.
950
951 2011-11-27 Helmut Eller <heller@common-lisp.net>
952
953 * swank.lisp (create-server): Remove coding-system argument.
954 ([defstruct] connection): Remove coding-system slot.
955 (connection.external-format, *coding-system*): Deleted.
956 (make-connection, start-server, create-server, setup-server)
957 (accept-connections): Drop coding-system arg.
958
959 (connection-info): Return supported coding systems.
960 (create-repl, open-dedicated-output-stream)
961 (open-streams, initialize-streams-for-connection): Add
962 coding-system arg.
963
964 * slime.el (slime-init-command): Ignore the coding-system arg.
965 (slime-connection-coding-systems): New connection variable.
966 (slime-set-connection-info): Set it.
967
968 2011-11-27 Helmut Eller <heller@common-lisp.net>
969
970 * swank.lisp (eval-in-frame-aux): Don't bind *package* during
971 eval.
972
973 2011-11-21 Helmut Eller <heller@common-lisp.net>
974
975 * swank-cmucl.lisp: Trigger compilation of utf8 stuff before first
976 real use.
977
978 2011-11-21 Helmut Eller <heller@common-lisp.net>
979
980 * swank.lisp (*sldb-printer-bindings*): Removed. Rather useless
981 since the change from 2009-02-26. It could at best have some
982 influence on the way conditions are printed. *sldb-string-length*
983 and *sldb-bitvector-length* where both nil so
984 *sldb-pprint-dispatch-table* was also not used by default. In
985 summary, spending 3 pages for something that's not used by default
986 was pretty silly. One variable less where we can get the defaults
987 wrong.
988
989 2011-11-21 Helmut Eller <heller@common-lisp.net>
990
991 * slime.el (sldb-eval-in-frame): Try to figure the package out.
992 Ask Lisp if the function for frame was defined in a particular
993 package and use it to read the form.
994 (sldb-read-form-for-frame): New helper.
995
996 * swank-backend (frame-package): New.
997 * swank-cmucl (frame-package): Implement it.
998
999 * swank.lisp (frame-package-name, eval-in-frame-aux): New.
1000 (eval-string-in-frame, pprint-eval-string-in-frame): Use package
1001 argument.
1002
1003 2011-11-19 Nikodemus Siivola <nikodemus@random-state.net>
1004
1005 * swank-sbcl.lisp (restart-frame): Make it possible to restart
1006 frames of anonymous functions -- at least some of the time.
1007
1008 2011-11-16 Stas Boukarev <stassats@gmail.com>
1009
1010 * swank.lisp (open-dedicated-output-stream): Open a stream with
1011 the right coding system.
1012 Change (:open-dedicated-output-stream port) message to
1013 (:open-dedicated-output-stream port coding-system), because Emacs
1014 can no longer determine the coding system based on the main
1015 network streams since they are binary now.
1016
1017 2011-11-11 Anton Kovalenko <anton@sw4me.com>
1018
1019 * slime.el (slime-ed): add bytep argument to destructure-case.
1020 When it's true, position is interpreted as byte offset.
1021
1022 2011-11-08 Helmut Eller <heller@common-lisp.net>
1023
1024 Restore old header format.
1025
1026 * swank-rpc.lisp (parse-header, write-header)
1027 * slime.el (slime-net-decode-length, slime-net-encode-length)
1028
1029 2011-11-06 Helmut Eller <heller@common-lisp.net>
1030
1031 * swank-ecl.lisp (accept-connection): Fix buffering arg.
1032 * swank-cmucl.lisp (accept-connection): Fix buffering arg.
1033
1034 2011-11-06 Helmut Eller <heller@common-lisp.net>
1035
1036 * slime.el (slime-run-test): Renamed from slime-run-one-test.
1037 (slime-toggle-test-debug-on-error): New.
1038 ([test] break): Longer timeouts.
1039
1040 2011-11-06 Helmut Eller <heller@common-lisp.net>
1041
1042 Add portable versions for string-to-utf8 and utf8-to-string.
1043
1044 * swank-backend.lisp (default-string-to-utf8)
1045 (default-utf8-to-string): New.
1046 (string-to-utf8, utf8-to-string): Use default implementations.
1047
1048 * swank-lispworks.lisp (make-flexi-stream): Restored.
1049 (utf8-stream): Deleted. The utf8 stuff is now used for the
1050 default implementation of utf8-to-string and would cause name
1051 clashes.
1052
1053 2011-11-06 Helmut Eller <heller@common-lisp.net>
1054
1055 * swank-allegro.lisp (swank-compile-string): For reader errors
1056 return nil not (values nil nil t).
1057
1058 2011-11-06 Helmut Eller <heller@common-lisp.net>
1059
1060 New wire format.
1061
1062 Switch from character streams to binary streams. Counting
1063 characters was error prone because some Lisps use utf-16
1064 internally and so READ-SEQUENCE can't be used easily.
1065
1066 The new format looks so:
1067
1068 | byte0 | 3 bytes length |
1069 | ... payload ... |
1070
1071 The playload is an s-exp encoded as UTF-8 string. byte0 is
1072 currently always 0; other values are reserved for future use.
1073
1074 * swank-rpc.lisp (write-message): Use new format.
1075 (write-header, parse-header, asciify, encoding-error): New.
1076
1077 * swank.lisp (accept-connections): Create a binary stream.
1078 (input-available-p): Can't read-char-no-hang on binary streams.
1079
1080 * slime.el (slime-net-connect): Use binary as coding system.
1081 (slime-net-send, slime-net-read, slime-net-decode-length)
1082 (slime-net-encode-length, slime-net-have-input-p): Use new format.
1083 (slime-unibyte-string, slime-handle-net-read-error): New.
1084 (featurep): Require 'un-define for XEmacs.
1085
1086 * swank-sbcl.lisp (input-ready-p): Use sb-sys:wait-until-fd-usable.
1087
1088 2011-11-06 Helmut Eller <heller@common-lisp.net>
1089
1090 * swank.lisp (close-connection): Fix thinko.
1091
1092 2011-11-06 Helmut Eller <heller@common-lisp.net>
1093
1094 * swank-backend.lisp (accept-connection): Improve docstring. In
1095 particular say that we want a binary stream if the EXTERNAL-FORMAT
1096 argument is nil.
1097
1098 * swank-abcl.lisp (accept-connection): Make it so.
1099 * swank-clisp.lisp (accept-connection): Make it so.
1100 * swank-cmucl.lisp (accept-connection): Make it so.
1101 * swank-lispworks.lisp (accept-connection): Make it so.
1102 * swank-sbcl.lisp (accept-connection): Make it so.
1103 * swank-scl.lisp (accept-connection): Make it so.
1104
1105 2011-11-06 Helmut Eller <heller@common-lisp.net>
1106
1107 * swank-backend.lisp (utf8-to-string, string-to-utf8): New.
1108
1109 * swank-sbcl.lisp (string-to-utf8, string-to-utf8): Implemented.
1110 * swank-lispworks.lisp (string-to-utf8, string-to-utf8): Implemented.
1111 * swank-cmucl.lisp (string-to-utf8, string-to-utf8): Implemented.
1112 * swank-clisp.lisp (string-to-utf8, string-to-utf8): Implemented.
1113 * swank-ccl.lisp (string-to-utf8, string-to-utf8): Implemented.
1114 * swank-allegro.lisp (string-to-utf8, string-to-utf8): Implemented.
1115 * swank-abcl.lisp (string-to-utf8, string-to-utf8): Implemented.
1116 (octets-to-jbytes, jbytes-to-octets): New helpers.
1117
1118 2011-11-03 Helmut Eller <heller@common-lisp.net>
1119
1120 * swank.lisp (close-connection): Be more careful with non-ascii.
1121
1122 2011-11-03 Helmut Eller <heller@common-lisp.net>
1123
1124 Remove dependecy on FLEXI-STREAMS for Lispworks.
1125
1126 * swank-lispworks.lisp (make-flexi-stream): Deleted.
1127 (utf8-stream): New class to do the transcoding.
1128 (accept-connection): Use it.
1129
1130 2011-10-19 Andrew Myers <asm198@gmail.com>
1131
1132 * swank-allegro.lisp (frob-allegro-field-def): Add missing type to
1133 ecase for inspector.
1134
1135 2011-10-13 Helmut Eller <heller@common-lisp.net>
1136
1137 * swank.lisp (all-completions): Remove mixed case syms e.g |Foo|.
1138 "fo" is not a prefix of "|Foo|" and it would be problematic later.
1139
1140 2011-10-05 Stas Boukarev <stassats@gmail.com>
1141
1142 * swank.lisp (clear-repl-variables): New functions, clears *, /,
1143 and + variables.
1144
1145 2011-09-28 Stas Boukarev <stassats@gmail.com>
1146
1147 * slime.el: Remove (require 'hideshow), it's not used anymore.
1148 Spotted by Leo Liu.
1149
1150 2011-09-27 Mark Evenson <evenson@panix.com>
1151
1152 * swank-abcl.lisp (describe-symbol-for-emacs): Differentiate
1153 between function, generic function, special forms, and macros by
1154 copying SBCL implementation.
1155
1156 2011-09-13 Christophe Rhodes <csr21@cantab.net>
1157
1158 * slime.el (slime-simple-complete-symbol): only display "Complete
1159 but not unique" message if the partial completion figures in the
1160 completion list.
1161
1162 2011-08-31 Anton Kovalenko <anton@sw4me.com>
1163
1164 * swank-sbcl.lisp (preferred-communication-style): check for
1165 :sb-thread before :win32, so :spawn is preferred for threaded
1166 Windows builds.
1167
1168 2011-08-31 Nikodemus Siivola <nikodemus@random-state.net>
1169
1170 * swank-sbcl.lisp (make-socket-io-stream): Backwards compatibility with
1171 SBCL < 1.0.42.43 -- and bugfix.
1172
1173 2011-08-26 Mark Evenson <evenson@panix.com>
1174
1175 * swank-abcl.lisp (class-slots): Use exported symbol allowing
1176 classes with non-standard metaobjects to be inspected.
1177
1178 2011-08-18 Helmut Eller <heller@common-lisp.net>
1179
1180 Fix line numbers for compiler notes if is narrowing was in effect.
1181
1182 * slime.el (slime-canonicalized-location): Widen before calling
1183 line-number-at-pos.
1184
1185 2011-08-17 Stas Boukarev <stassats@gmail.com>
1186
1187 * swank-allegro.lisp (with-redirected-y-or-n-p): Fix modern-mode
1188 issues.
1189 Patch by Andrew Myers.
1190
1191 2011-08-09 Nikodemus Siivola <nikodemus@random-state.net>
1192
1193 * swank-sbcl.lisp (make-socket-io-stream): Use :SERVE-EVENTS T when
1194 using :FD-HANDLER as the communication style. SBCL will soon stop
1195 serving events by default on socket streams.
1196
1197 2011-08-08 Helmut Eller <heller@common-lisp.net>
1198
1199 * slime.el (slime-unintern-symbol): New command.
1200 * swank.lisp (unintern-symbol): Lisp-side implementation.
1201
1202 2011-07-03 Nikodemus Siivola <nikodemus@random-state.net>
1203
1204 * swank-sbcl.lisp (debug-var-info): New function: calls
1205 SB-DI::DEBUG-VAR-INFO when available.
1206 (frame-locals, frame-var-value): Treat more-context and more-count
1207 vars specially.
1208
1209 2011-06-21 Nikodemus Siivola <nikodemus@random-state.net>
1210
1211 * swank.lisp (*indentation-cache-lock*): Deleted.
1212 (perform-indentation-update): Spawn a new thread to handle the
1213 indentation update when using threads. Move cache-clearing to
1214 UPDATE-INDENTATION/DELTA-FOR-EMACS. Replace the old cache by
1215 the one returned from U-I/D-F-E.
1216 (update-indentation/delta-for-emacs): When clearing the cache,
1217 allocate a new table. When threads are being used, copy the
1218 cache before mutation, to ensure that caches possibly seen by other
1219 threads are write-only by then.
1220
1221 2011-06-18 Nikodemus Siivola <nikodemus@random-state.net>
1222
1223 * swank.lisp (*indentation-cache-lock*): New variable:
1224 hash-table updates aren't necessarily thread-safe.
1225 (perform-indentation-update, update-indentation/delta-for-emacs):
1226 Grab the lock when necessary -- in delta-for-emacs we hold on to
1227 it a bit longer than necessary, but the code is easier to read
1228 this way.
1229
1230 2011-06-16 Nikodemus Siivola <nikodemus@random-state.net>
1231
1232 * swank.lisp (macro-indentation): Restore the old simple version.
1233
1234 * swank-sbcl.lisp (compiling-from-buffer-p): PROBE-FILE to
1235 handle cases there the tmp-directory is a symlink.
1236 (compiling-from-file-p): Ditto.
1237
1238 2011-06-14 Nikodemus Siivola <nikodemus@random-state.net>
1239
1240 * swank-backend.lisp (call-with-io-timeout): New DEFINTERFACE.
1241 * swank-sbcl.lisp (call-with-io-timeout): DEFIMPLEMENTATION for it.
1242 * swank.lisp (auto-flush-loop): Call FINISH-OUTPUT using
1243 CALL-WITH-IO-TIMEOUT to prevent deadlocks.
1244
1245 * swank.lisp (macro-indentation): Fix handling of lambda-list
1246 keywords other than &rest and &body.
1247
1248 * slime.el (slime-update-system-indentation): Remove stale specs
1249 from common-lisp-system-indentation when new one arrives.
1250
1251 2011-06-10 Nikodemus Siivola <nikodemus@random-state.net>
1252
1253 * swank.lisp (macro-indentation): Walk the lambda-list
1254 to construct a better indentation spec instead of just
1255 looking for &BODY.
1256
1257 2011-06-09 Nikodemus Siivola <nikodemus@random-state.net>
1258
1259 * swank-sbcl.lisp (execv): Stupid SBCL hackers breaking backwards
1260 compatibility again: SB-POSIX:SYSCALL-ERROR has a required
1261 argument in 1.0.49, but accepts no arguments in older ones. Use
1262 plain ERROR instead.
1263
1264 Support for per-package derived indentation, when
1265 slime-indentation is used.
1266
1267 * swank.lisp (update-indentation/delta-for-emacs): Tell Emacs
1268 which packages the symbol is available in. Unless
1269 slime-indentation is used, this information is just dropped on the
1270 floor.
1271
1272 * slime.el (slime-update-system-indentation): New function. Use
1273 this to inform indentation about derived specs when
1274 `common-lisp-system-indentation' is bound.
1275 (slime-handle-indentation-update): Adjust to support per-package
1276 derived indentation specs when slime-indentation is available.
1277
1278 2011-05-27 Helmut Eller <heller@common-lisp.net>
1279
1280 Fix "wrong number of args" problem with slime-inspector-quit.
1281 Reported by Anton Kovalenko.
1282
1283 * slime.el (slime-popup-buffer-quit-function)
1284 (slime-quit-threads-buffer): Drop the kill-buffer-p argument.
1285
1286 2011-05-24 Helmut Eller <heller@common-lisp.net>
1287
1288 * slime.el (destructure-case): Fix "`_' not left unused" warnings.
1289 Insert an (ignore) form for empty bodies; this inhibts the
1290 compiler transformation that leads to the spurios warning. This
1291 has no runtime cost in compiled code, since the compiler
1292 recognizes (ignore) and emits no code for it.
1293 (slime-flatten-tree): Deleted. No longer used.
1294
1295 2011-05-23 Stas Boukarev <stassats@gmail.com>
1296
1297 * swank.lisp (sdlb-print-condition): New (or old new)
1298 function. It was bound by P in sldb-mode, but for some reason it
1299 was lost.
1300
1301 2011-05-23 Helmut Eller <heller@common-lisp.net>
1302
1303 * slime.el (slime-apropos-label-properties): Deleted. Just
1304 auto-load apropos-mode.
1305 (slime-print-apropos): Use the variable apropos-label-face
1306 which seems to exist in all relevant Emacsen.
1307
1308 2011-05-22 Helmut Eller <heller@common-lisp.net>
1309
1310 Turn on lexical-binding for slime.el.
1311 This mostly involves prefixing unused variables
1312 with underscores to shut up the compiler, but
1313 also some less harmless changes.
1314
1315 * slime.el (slime-dispatching-connection, slime-current-thread):
1316 Add defvars.
1317 (slime-connect): called-interactively-p wants 1 arg in Emacs 24
1318 but none in Emacs 22. So we can't use it; instead add an extra
1319 optional arg and set that to non-nil in the interactive spec.
1320 (slime-read-from-minibuffer): Actually use the history arg.
1321 (slime-inspector-quit): Drop the unused kill-buffer arg from the
1322 lambda-list.
1323 (slime-run-tests): Can't specbind slime-repl-history-file without
1324 variable declation. I don't want to declare it here so I just
1325 eliminated it and let somebody else fix slime-repl.el.
1326
1327 2011-05-21 Helmut Eller <heller@common-lisp.net>
1328
1329 Minor tweaks to avoid some compiler warnings.
1330
1331 * slime.el (slime-modeline-string, slime-buffer-connection):
1332 Declare variables.
1333 (slime-flatten-tree): Helper function.
1334 (destructure-case): Use it, and make '_ ignorable if
1335 it occurs in some pattern.
1336 (slime-connect): Avoid obsolete functions:
1337 string-to-int -> string-to-number
1338 interactive-p -> called-interactively-p
1339 (slime-complete-maybe-restore-window-configuration)
1340 last-command-char -> last-command-event
1341 completion-base-size -> completion-base-position
1342 (slime-xref-mode-map): Use call-interactively
1343 when calling the remapped next-line/previous-line commands.
1344
1345 2011-05-09 Nikodemus Siivola <nikodemus@random-state.net>
1346
1347 * swank-sbcl.lisp (swank-compile-string): Use :SOURCE-NAMESTRING
1348 to provide the name of the actual source file, and
1349 :ALLOW-OTHER-KEYS for compatibility with pre-1.0.48.1 versions.
1350 This allows SBCL to get uninteresting redefinition muffling right.
1351 (*trap-load-time-warnings*): Default to T to make the redefinition
1352 notes more visible, especially now that redefinition muffling hides
1353 the boring ones.
1354
1355 2011-05-08 Nikodemus Siivola <nikodemus@random-state.net>
1356
1357 * slime.el (slime-intern-indentation-spec): New function. Converts
1358 strings in an indentation spec to symbols.
1359 (slime-handle-indentation-update): Intern the indentation spec
1360 using slime-intern-indentation-spec, so that lisp side can pass
1361 complex indentation specs.
1362 * contrib/swank-indentation.lisp (application-indentation-hint):
1363 Downcase symbol names -- any symbol in an indentation spec is
1364 pretty much guaranteed to have a lowecase name on the Emacs side.
1365
1366 2011-04-16 Stas Boukarev <stassats@gmail.com>
1367
1368 * slime.el (slime-load-failed-fasl): New variable. Accepts `ask',
1369 `always', and `never' symbols. Loads or not loads fasls produced by
1370 compile-file which returned non-nil failure-p.
1371
1372 2011-04-14 Stas Boukarev <stassats@gmail.com>
1373
1374 * swank.lisp (list-threads): Call `use-threads-p' only when
1375 *emacs-connection* is non-nil. `use-threads-p' wouldn't work in
1376 this case, and there is no need to remove a worker thread from the
1377 list if it's not connected.
1378 This fixes an issue with calling swank:stop-server when slime
1379 isn't connected.
1380
1381 2011-03-13 Stas Boukarev <stassats@gmail.com>
1382
1383 * swank.lisp (format-restarts-for-emacs): Add
1384 without-printing-errors around restart printing.
1385
1386 2011-03-09 Helmut Eller <heller@common-lisp.net>
1387
1388 Remove slime-sexp-at-point-for-macroexpansion.
1389
1390 * slime.el (slime-sexp-at-point-for-macroexpansion): Deleted.
1391 (slime-eval-macroexpand): Use slime-sexp-at-point instead.
1392 (slime-eval-macroexpand-inplace): Use
1393 slime-bounds-of-sexp-at-point directly.
1394
1395 2011-03-09 Helmut Eller <heller@common-lisp.net>
1396
1397 Move some of the logic from slime-sexp-at-point-for-macroexpansion
1398 into slime-sexp-at-point.
1399
1400 * slime.el (slime-bounds-of-sexp-at-point): New. Special case if
1401 we are at '( as slime-sexp-at-point-for-macroexpansion does.
1402 (slime-bounds-of-symbol-at-point): New.
1403 (slime-symbol-at-point, slime-sexp-at-point): Use the above.
1404
1405 2011-02-24 Stas Boukarev <stassats@gmail.com>
1406
1407 * swank-allegro.lisp (find-topframe): Fix excl::int-newest-frame
1408 invocation for the latest alpha version of Allegro.
1409 Patch by Gábor Melis.
1410
1411 2011-02-18 Stas Boukarev <stassats@gmail.com>
1412
1413 * slime.el (slime-init-popup-buffer): Don't use
1414 multiple-value-setq on a list, XEmacs doesn't like it.
1415
1416 2011-02-18 Stas Boukarev <stassats@gmail.com>
1417
1418 * slime.el (slime-insert-threads): Make sure newlines have the
1419 same thread-id property as the rest of the line. This fixes
1420 confusion when point is at the end of a line.
1421
1422 2011-02-13 Stas Boukarev <stassats@gmail.com>
1423
1424 * slime.el (slime-inspector-operate-on-point): Don't save the
1425 point when inspecting a different object.
1426 (slime-inspector-operate-on-point): If there is no action property
1427 directly at the point, try looking at (1- (point)), many
1428 inspectable objects are presented the end of the line, so it's
1429 easier to navigate to them by C-e and still being able to activate
1430 it.
1431
1432 2011-02-08 Stas Boukarev <stassats@gmail.com>
1433
1434 * slime.el (slime-choose-overlay-region): Don't use `list' instead
1435 of `values', GNU Emacs fakes multiple values with lists, but
1436 XEmacs uses real multiple values.
1437 Reported by Raymond Toy.
1438
1439 2011-02-04 Helmut Eller <heller@common-lisp.net>
1440
1441 Be careful with interning.
1442
1443 * swank.lisp (find-definitions-for-emacs): Use parse-symbol.
1444
1445 2011-02-04 Helmut Eller <heller@common-lisp.net>
1446
1447 Don't double encode results for eval-in-emacs.
1448
1449 * slime.el (slime-check-eval-in-emacs-result): New.
1450 (slime-eval-for-lisp): Use it.
1451 * swank.lisp (unreadable-object): Removed.
1452
1453 2011-02-02 Stas Boukarev <stassats@gmail.com>
1454
1455 * swank.lisp (eval-in-emacs): Return unreadable results from Emacs
1456 as an unreadable-object, not as a string.
1457
1458 2011-02-02 Stas Boukarev <stassats@gmail.com>
1459
1460 * slime.el (slime-eval-for-lisp): Return value as a string,
1461 because it can be unreadable, e.g. #<buffer foo>
1462 * swank.lisp (eval-in-emacs): Prevent reader errors.
1463
1464 2011-02-02 Stas Boukarev <stassats@gmail.com>
1465
1466 * swank.lisp (eval-in-emacs): Export it.
1467
1468 2011-01-28 Stas Boukarev <stassats@gmail.com>
1469
1470 * slime.el (slime-check-location-filename-sanity): Guard
1471 against target-filename being NIL.
1472
1473 2011-01-26 Helmut Eller <heller@common-lisp.net>
1474
1475 Allow tail-merging in call-with-bindings.
1476
1477 * swank.lisp (call-with-bindings): Don't use progv if alist is
1478 empty alist is empty.
1479
1480 2011-01-20 Stas Boukarev <stassats@gmail.com>
1481
1482 * swank-ecl.lisp (+TAGS+): change
1483 (translate-logical-pathname #P"SYS:TAGS") to
1484 (merge-pathnames "TAGS" (translate-logical-pathname "SYS:"))
1485 because of case conversion the former results in a pathname with a
1486 name "tags", which doesn't exist.
1487
1488 2010-12-10 Stas Boukarev <stassats@gmail.com>
1489
1490 * slime.el (slime-with-popup-buffer): Correct the docstring.
1491
1492 2010-12-09 Helmut Eller <heller@common-lisp.net>
1493
1494 * slime.el (slime-toggle-break-on-signals): New command.
1495 * swank.lisp (toggle-break-on-signals): The corresponding Lisp code.
1496
1497 2010-12-02 Martin Simmons <martin@lispworks.com>
1498
1499 * swank-lispworks.lisp (frame-actual-args): Reimplement to include
1500 only the values like on other platforms and deal with, optional
1501 key and rest args.
1502 (print-frame): Format the frame as a call like in other backends.
1503
1504 2010-11-13 Helmut Eller <heller@common-lisp.net>
1505
1506 Improve source locations for compiler messages in Lispworks.
1507
1508 * swank-lispworks.lisp (map-error-database)
1509 (signal-error-data-base, make-dspec-progenitor-location): Pass the
1510 edit-path along.
1511 (signal-undefined-functions): No edit-path available so just use
1512 nil.
1513
1514 2010-11-12 Helmut Eller <heller@common-lisp.net>
1515
1516 Improve frame-source-location for Lispworks.
1517
1518 * swank-lispworks.lisp (frame-source-location): Exctract the
1519 edit-path from the frame and pass it to Emacs.
1520 (edit-path-to-cmucl-source-path): New function.
1521 (frame-location): Use it.
1522
1523 * slime.el (slime-location-offset): Add a :edit-path property.
1524 (slime-search-edit-path): New function.
1525 (slime-search-call-site): Fix regexp to match
1526 zero arg functions.
1527
1528 2010-11-07 Helmut Eller <heller@common-lisp.net>
1529
1530 * swank-backend.lisp (label-value-line): Remove display-nil-value.
1531 And the other stuff too.
1532 (label-value-line*): Idem.
1533
1534 2010-11-07 Helmut Eller <heller@common-lisp.net>
1535
1536 * swank-loader.lisp: ASDF free again. And proud of it!
1537 (default-fasl-dir, load-swank): Remove asdf stuff.
1538
1539 2010-11-03 Stas Boukarev <stassats@gmail.com>
1540
1541 * swank-loader.lisp (*architecture-features*): Add :arm for CCL
1542 ARM port.
1543
1544 2010-11-02 Martin Simmons <martin@lispworks.com>
1545
1546 * swank-lispworks.lisp (list-callers-internal): Revert to previous
1547 low level implementation, fixed for LW6.
1548 (list-callees-internal): Reimplement using low level instead of
1549 the compiler's xref.
1550
1551 2010-10-23 Stas Boukarev <stassats@gmail.com>
1552
1553 * slime.el (slime-goto-location-position): In case of
1554 (:function-name name) go to (point-min) before searching for
1555 function. Remove redundant regexp and regexp-quote function name
1556 before inserting it into a regexp.
1557
1558 2010-10-21 Helmut Eller <heller@common-lisp.net>
1559
1560 In ABCL, try harder to find the source of stack frames.
1561
1562 * swank-abcl.lisp (source-location): Now a GF.
1563 (source-location [java-stack-frame]): New.
1564 (source-location [lisp-stack-frame]): New.
1565 (source-location [function]): New.
1566 (frame-source-location, find-definitions): Use them.
1567 (*source-path*, find-definitions): New.
1568 (system-property, pathname-parent, pathname-absolute-p)
1569 (split-string, path-separator, search-path-property)
1570 (jdk-source-path, class-path, zipfile-contains-p)
1571 (find-file-in-path): Noise for filename frobbing.
1572
1573 2010-10-21 Helmut Eller <heller@common-lisp.net>
1574
1575 Require ABCL 0.22 and remove obsolete conditionalisation.
1576
1577 * swank-abcl.lisp (call-with-debugger-hook)
1578 (install-debugger-globally)
1579 (call-with-debugging-environment, backtrace, print-frame, spawn):
1580 Remove #+/#- stuff.
1581 (preferred-communication-style): Return :spawn unconditionally.
1582 (sys::break): Removed.
1583
1584 2010-10-20 Stas Boukarev <stassats@gmail.com>
1585
1586 * slime.el (slime-connect): Convert the port number read from
1587 minibuffer to an integer, passing it as a string to
1588 `make-network-process' isn't portable.
1589 Patch by Marko Kocic.
1590
1591 2010-10-19 Stas Boukarev <stassats@gmail.com>
1592
1593 * swank.lisp (invoke-nth-restart): Make sure there is such restart
1594 before invoking it.
1595
1596 2010-10-19 Stas Boukarev <stassats@gmail.com>
1597
1598 * swank-sbcl.lisp (deinit-log-output): Use the right symbol for
1599 *LOG-OUTPUT*, swank package isn't available at the time
1600 swank-backend is compiled.
1601
1602 2010-10-16 Stas Boukarev <stassats@gmail.com>
1603
1604 * swank-loader.lisp (default-fasl-dir): Guard against using :asdf
1605 package if it doesn't exist.
1606 Patch by Anton Vodonosov.
1607
1608 2010-10-16 Attila Lendvai <attila.lendvai@gmail.com>
1609
1610 * swank-fuzzy.lisp: speed up by 2-4 times (on sbcl).
1611
1612 * fuzzy.el: Clean up fuzzy completion's keymap code, drop
1613 mimic-key-bindings.
1614
1615 * slime.el: Added separate host and port history for
1616 slime-connect.
1617 (slime-lookup-lisp-implementation): better error reporting and
1618 allow using a functionp to generate the arguments.
1619
1620 * swank.lisp: Smarten up the label-value-line macros:
1621 - support a :label emacs font property
1622 - added key args: padding-length, display-nil-value,
1623 hide-when-nil, splice-as-ispec, value-text
1624 - label-value-line* will evaluate and splice the result
1625 of the form after a @ character
1626
1627 * swank-loader.lisp: Optional integration with ASDF. When ASDF is
1628 available, store slime fasl's where ASDF would store them. Also
1629 make sure swank.asd is visible to ASDF.
1630
1631 2010-10-09 Raymond Toy <toy.raymond@gmail.com>
1632
1633 * swank-cmucl.lisp (codepoint-length): Implement codepoint-length
1634 to return the number of codepoints in cmucl's utf-16 strings.
1635
1636 * swank-backend.lisp (:swank-backend): Export codepoint-length.
1637 (codepoint-length): definterface codepoint-length. Default is to
1638 use LENGTH.
1639
1640 * swank-rpc.lisp (write-message): Call
1641 swank-backend:codepoint-length to get the correct length for
1642 emacs.
1643
1644 2010-10-08 Christophe Rhodes <csr21@cantab.net>
1645
1646 Pass more detailed source location information to
1647 swank:compile-string-for-emacs. Motivated by R's source location
1648 needs (where srcrefs are line/column based).
1649
1650 * slime.el (slime-compile-string): Generate :line location format
1651 from start-offset, passing it through to
1652 swank:compile-file-for-emacs.
1653 (find-definition.2): Use new-style position.
1654
1655 * swank.lisp (compile-string-for-emacs): Use only the offset from
1656 the position argument.
1657
1658 * swank-backend.lisp (swank-compile-string): Fix docstring typo.
1659
1660 2010-10-07 Nikodemus Siivola <nikodemus@random-state.net>
1661
1662 Hanging on to a *log-output* from a previous image is bad on SBCL
1663 at least: it is initialized to an FD-STREAM, which cannot be
1664 reused from one image to another.
1665
1666 Deal with this by using sb-ext:*save-hooks* to clear the stream.
1667
1668 * swank-sbcl.lisp (deinit-log-output): New function.
1669
1670 2010-10-02 Helmut Eller <heller@common-lisp.net>
1671
1672 Rename slime-macro/compiler-macro-expand-1 => slime-expand-1
1673
1674 * slime.el (slime-expand-1): Renamed from
1675 slime-macro/compiler-macro-expand-1.
1676 (slime-expand-1-inplace): Renamed from
1677 slime-macro/compiler-macro-expand-1-inplace.
1678
1679 * swank.lisp (swank-expand-1): Renamed from
1680 swank-macro/compiler-macro-expand-1.
1681 (swank-expand): Renamed from swank-macro/compiler-macro-expand.
1682 (expand-1): Renamed from macro/compiler-macro-expand-1.
1683 (expand): Renamed from macro/compiler-macro-expand.
1684
1685 2010-10-01 Helmut Eller <heller@common-lisp.net>
1686
1687 Don't use indent-sexp for macroexpanded code.
1688 indent-sexp is potentially slow and usually redundant.
1689
1690 * slime.el (slime-initialize-macroexpansion-buffer): Don't use
1691 indent-sexp.
1692 (slime-eval-macroexpand-inplace): Avoid indent-sexp but
1693 use slime-insert-indented.
1694
1695 2010-10-01 Helmut Eller <heller@common-lisp.net>
1696
1697 Save result in kill ring for M-- C-x C-e.
1698 For C-u C-x C-e set mark before inserting.
1699
1700 * slime.el (slime-eval-save): New function.
1701 (slime-eval-print): Set mark before inserting.
1702 (slime-interactive-eval): Use it.
1703
1704 2010-09-22 Stas Boukarev <stassats@gmail.com>
1705
1706 * swank.lisp (eval-for-emacs): Send (:abort condition) where
1707 condition is a condition which was aborted instead of just (:abort).
1708 * slime.el: Handle the above change.
1709
1710 2010-09-22 Stas Boukarev <stassats@gmail.com>
1711
1712 * swank-clisp.lisp (*external-format-to-coding-system*): Remove
1713 stray :latin-1 argument for ext:make-encoding.
1714 Reported by Mirko Vukovic.
1715
1716 2010-09-20 Stas Boukarev <stassats@gmail.com>
1717
1718 * swank-cmucl.lisp (character-completion-set): Implement. Requires
1719 recent versions of CMUCL.
1720 Patch by Raymond Toy.
1721
1722 2010-09-18 Tobias C. Rittweiler <tcr@freebits.de>
1723
1724 * swank-backend.lisp (valid-function-name-p): New interface.
1725 (compiler-macroexpand-1): Use it to guard against type errors
1726 from COMPILER-MACRO-FUNCTION.
1727
1728 2010-09-18 Tobias C. Rittweiler <tcr@freebits.de>
1729
1730 * swank.lisp (before-init): push :SWANK to *FEATURES*. (lp#627313)
1731
1732 2010-09-18 Tobias C. Rittweiler <tcr@freebits.de>
1733
1734 Make C-c C-m also expand compiler macros. (lp#638720)
1735
1736 * slime.el (slime-macro/compiler-macro-expand-1): New.
1737 (slime-macro/compiler-macro-expand-1-inplace): New.
1738 (slime-editing-keys): Map `C-c C-m' to first above.
1739 (slime-compiler-macroexpand-1): Take prefix-arg like others.
1740 (slime-compiler-macroexpand-1-inplace): Ditto.
1741 (slime-compiler-macroexpand): Thus deleted.
1742 (slime-compiler-macroexpand-inplace): Ditto.
1743
1744 * swank.lisp (swank-macro/compiler-macro-expand-1): New defslimefun.
1745 (swank-macro/compiler-macro-expand): New defslimefun.
1746 (macro/compiler-macro-expand-1): New.
1747 (macro/compiler-macro-expand): New.
1748 (expand-repeatedly): New helper.
1749
1750 2010-09-03 Stas Boukarev <stassats@gmail.com>
1751
1752 * slime.el (slime-forward-cruft): Use " \t\n" to match whitespaces
1753 instead of [:space:], XEmacs compatibility.
1754
1755 2010-09-03 Helmut Eller <heller@common-lisp.net>
1756
1757 For C-c C-k, ask before loading possibly broken fasl files.
1758
1759 * slime.el (slime-compilation-result): Add 2 slots: loadp and
1760 faslfile.
1761 (slime-compilation-finished): Use them to load the faslfile.
1762 * swank.lisp (:compilation-result): Add 2 slots. Use keyword
1763 constructor.
1764 (compile-file-for-emacs): Return loadp and faslfile to Emacs.
1765 (collect-notes): Pass loadp and falsfile along.
1766
1767 2010-09-02 Stas Boukarev <stassats@gmail.com>
1768
1769 * swank-cmucl.lisp: #-cmu19 -> #+cmu18, cmu18 is allegedly the
1770 oldest supported CMUCL.
1771
1772 2010-09-01 Stas Boukarev <stassats@gmail.com>
1773
1774 * swank-sbcl.lisp (background-save-image): add #-win32, because it
1775 uses symbols not present on win32.
1776 Reported by Holly Styles.
1777
1778 2010-08-31 Stas Boukarev <stassats@gmail.com>
1779
1780 * swank-cmucl.lisp (foreign-frame-p, gdb-exec, frame-ip): Sparc
1781 support.
1782 Patch by Raymond Toy.
1783
1784 2010-08-31 Nikodemus Siivola <nikodemus@random-state.net>
1785
1786 * swank-sbcl.lisp (make-dspec): Elide the function name when
1787 generating a VOP description, since the VOP name is more useful
1788 and is the first part of the source-description list.
1789
1790 2010-08-28 Stas Boukarev <stassats@gmail.com>
1791
1792 * swank-cmucl.lisp (*gdb-program-name*): Determine gdb location
1793 from PATH.
1794 (gdb-exec): Use *gdb-program-name* instead of "gdb".
1795 (gdb-command): Mac OS X compatibility.
1796 Patch by Raymond Toy.
1797
1798 2010-08-25 Stas Boukarev <stassats@gmail.com>
1799
1800 * swank-sbcl.lisp (exec-image): Use (car sb-ext:*posix-argv*) if
1801 SBCL doesn't have sb-ext:*runtime-pathname*.
1802 Reported by Vinay.
1803
1804 2010-08-22 Stas Boukarev <stassats@gmail.com>
1805
1806 * slime.el (slime-xemacs-recompute-modelines): Add
1807 `slime-xemacs-recompute-modelines' to `pre-idle-hook', this solves
1808 the problem of synchronization of modelines.
1809 Thanks to Aidan Kehoe.
1810
1811 2010-08-21 Stas Boukarev <stassats@gmail.com>
1812
1813 * slime.el (slime-recompute-modelines): Recompute modelines only
1814 for visible buffers. Kludge: modeline can be out of sync if the buffer
1815 becomes visible and no slime/lisp interaction took place yet.
1816 Patch by Raymond Toy.
1817 (slime-search-buffer-package): Revert, with the above
1818 change caching shouldn't be necessary.
1819
1820 2010-08-21 Helmut Eller <heller@common-lisp.net>
1821
1822 Add commands to enable/disable contribs.
1823
1824 * slime.el (slime-enable-contrib, slime-disable-contrib): New.
1825 (slime-contrib): New struct to collect meta-data about contribs.
1826 (define-slime-contrib): Store meta-data in 'slime-contribs plist.
1827 (slime-all-contribs, slime-find-contrib, slime-read-contrib-name):
1828 New helpers.
1829
1830 2010-08-21 Anton Kovalenko <anton@sw4me.com>
1831
1832 Snapshot restore support for SBCL.
1833
1834 * swank-backend.lisp (background-save-image): New.
1835 * swank-sbcl.lisp (command-line-args, dup, sys-execv, exec-image)
1836 (make-fd-stream, background-save-image): New.
1837
1838 2010-08-20 Stas Boukarev <stassats@gmail.com>
1839
1840 * slime.el (slime-maybe-complete-as-filename): Limit backward
1841 search for #\", it slows down on large buffers.
1842 Reported by Raymond Toy.
1843 (slime-search-buffer-package): Cache the package, searching every time
1844 on large buffers may be slow.
1845
1846 2010-08-15 Stas Boukarev <stassats@gmail.com>
1847
1848 * swank.lisp (setup-server): Check the coding system before doing
1849 anything, otherwise it may be eaten by ignore-errors later.
1850
1851 2010-08-13 Helmut Eller <heller@common-lisp.net>
1852
1853 Find definition for (def-vm-support-routine NAME ...)
1854
1855 * swank-cmucl.lisp (vm-support-routine-definitions): New.
1856 (find-definitions): Use it.
1857
1858 2010-08-12 Stas Boukarev <stassats@gmail.com>
1859
1860 * swank-sbcl.lisp (save-image): Fix save-lisp-and-die invocation.
1861 Based on a patch by Anton Kovalenko.
1862
1863 2010-08-11 Helmut Eller <heller@common-lisp.net>
1864
1865 Bind *print-readably* to nil when printing the title.
1866
1867 * swank.lisp (prepare-title): Factored out into new function.
1868 (*inspector-printer-bindings*)
1869 (*inspector-verbose-printer-bindings*): New.
1870 (with-string-stream): New.
1871 (emacs-inspect/istate): Renamed from emacs-inspect/printer-bindings.
1872
1873 2010-08-06 Stas Boukarev <stassats@gmail.com>
1874
1875 * swank-ccl.lisp (spawn): Revert the previous change, using
1876 :use-standard-initial-bindings nil might be not thread-safe.
1877
1878 2010-08-05 Stas Boukarev <stassats@gmail.com>
1879
1880 * swank-ccl.lisp (spawn): Specify
1881 :use-standard-initial-bindings nil, so that *readtable*
1882 etc. modifications persist.
1883
1884 2010-08-04 Stas Boukarev <stassats@gmail.com>
1885
1886 * swank-allegro.lisp (fspec-definition-locations): Default
1887 &optional position to 0, otherwise it may cause errors later.
1888 Reported by: Paulo Madeira.
1889
1890 2010-08-04 Stas Boukarev <stassats@gmail.com>
1891
1892 * slime.el (slime-dispatch-event): :eval-no-wait, lisp sends a
1893 form in a string, not a function name and arguments. Add
1894 slime-check-eval-in-emacs-enabled.
1895 * swank.lisp (defpackage): export eval-for-emacs.
1896
1897 2010-07-30 Helmut Eller <heller@common-lisp.net>
1898
1899 Don't get confused by END-OF-FILE on unrelated streams.
1900 Fixes bug "slime connection broken on trivial condition..."
1901 Reported by Pascal J. Bourguignon.
1902
1903 * swank.lisp (end-of-repl-input): New condition.
1904 (simple-repl, read-non-blocking): Use it.
1905 * slime.el ([test] end-of-file): Test it.
1906
1907 2010-07-30 Helmut Eller <heller@common-lisp.net>
1908
1909 * swank.lisp (print-part-to-string): Bind *print-readably* to nil.
1910 Useful when debugging broken printer methods.
1911
1912 2010-07-22 Vitaly Mayatskikh <v.mayatskih@gmail.com>
1913
1914 * swank-lispworks.lisp (list-callers-internal): Fix for LW6.
1915 (list-callees-internal): New function, use it.
1916
1917 2010-07-21 Stas Boukarev <stassats@gmail.com>
1918
1919 * swank-sbcl.lisp (quit-lisp): Use sb-thread:terminate-thread
1920 instead of sb-ext:quit :recklessly-p t. This way
1921 sb-ext:*exit-hooks* will be run.
1922 Reported by Lorenz Mösenlechner.
1923
1924 2010-07-06 Helmut Eller <heller@common-lisp.net>
1925
1926 Find definition for (%primitive NAME ...)
1927
1928 * swank-cmucl.lisp (template-definitions, primitive-definitions):
1929 New functions.
1930 (find-definitions): Use them.
1931
1932 2010-06-22 Helmut Eller <heller@common-lisp.net>
1933
1934 * swank-loader.lisp (*architecture-features*): ECL uses :x86_64.
1935
1936 2010-06-18 Helmut Eller <heller@common-lisp.net>
1937
1938 * slime.el (slime-current-tlf-number,slime-current-form-path):
1939 Moved to contrib/slime-parse.el.
1940
1941 2010-06-18 Helmut Eller <heller@common-lisp.net>
1942
1943 Don't use goto-line.
1944
1945 * slime.el (slime-goto-line): New function as replacement without
1946 goto-line's cruft that we don't want.
1947
1948 2010-06-04 Helmut Eller <heller@common-lisp.net>
1949
1950 * slime.el, swank.lisp: #'(lambda -> (lambda
1951
1952 2010-06-04 Stelian Ionescu <sionescu@cddr.org>
1953
1954 * swank.lisp: Move definition of LCONS before first use.
1955
1956 2010-06-04 Helmut Eller <heller@common-lisp.net>
1957
1958 * swank-allegro.lisp (socket-fd): Add support for allegro.
1959
1960 2010-06-04 Helmut Eller <heller@common-lisp.net>
1961
1962 Some *sldb-quit-restart* related fixes.
1963
1964 * swank.lisp (*sldb-quit-restart*): Set to nil by default.
1965 (throw-to-toplevel, debug-in-emacs): Get rid of boundp tests.
1966 (format-restarts-for-emacs): Add a mark for *sldb-quit-restart*.
1967 (handle-requests): Always bind *emacs-connection*.
1968 (with-connection): Get rid of call-with-connection so that
1969 compilers can remove the call frame more easily.
1970 (repl-input-stream-read): Factored out from
1971 make-repl-input-stream. Bind a *sldb-quit-restart* here too; no
1972 need to restart the repl and a extra prompt for errors in Emacs
1973 requests.
1974
1975 2010-05-28 Helmut Eller <heller@common-lisp.net>
1976
1977 Fix last change.
1978
1979 * slime.el (define-slime-contrib): Fix names.
1980 Remove provide; makes no sense to call provide before file is
1981 completely loaded.
1982
1983 2010-05-28 Helmut Eller <heller@common-lisp.net>
1984
1985 * slime.el (define-slime-contrib): Use destructuring-bind.
1986
1987 2010-05-28 Helmut Eller <heller@common-lisp.net>
1988
1989 Move some var-defs before first use.
1990
1991 * slime.el (slime-show-xref-buffer, slime-read-connection)
1992 (slime-thread-index-to-id):
1993
1994 2010-05-28 Helmut Eller <heller@common-lisp.net>
1995
1996 Move wacky parsing code to contrib.
1997
1998 * slime.el (slime-extract-context, slime-parse-context)
1999 (slime-in-expression-p, slime-pattern-path)
2000 (slime-beginning-of-list, slime-end-of-list)
2001 (slime-parse-toplevel-form, slime-arglist-specializers)
2002 (slime-definition-at-point, slime-current-parser-state): Moved to
2003 contrib/slime-parse.el
2004 (slime-inspect-definition, slime-disassemble-definition): Moved to
2005 contrib/slime-fancy-inspector.el
2006
2007 2010-05-27 Helmut Eller <heller@common-lisp.net>
2008
2009 * slime.el ([test] interactive-eval): Fix test.
2010
2011 2010-05-27 Helmut Eller <heller@common-lisp.net>
2012
2013 * swank-ccl.lisp (socket-fd): Implement backend function.
2014
2015 2010-05-27 Helmut Eller <heller@common-lisp.net>
2016
2017 Clean up some of the confusion regarding *sldb-quit-restart*.
2018
2019 * swank.lisp (top-level-restart-p, *toplevel-restart-available*)
2020 (coerce-restart): Deleted.
2021 (with-top-level-restart, simple-repl): Simplify.
2022
2023 2010-05-26 Helmut Eller <heller@common-lisp.net>
2024
2025 * swank.lisp (swank-error): Unrename from swank-protocol-error.
2026
2027 2010-05-26 Helmut Eller <heller@common-lisp.net>
2028
2029 * swank-cmucl.lisp (parse-gdb-line-info): Try working dir first.
2030
2031 2010-05-26 Helmut Eller <heller@common-lisp.net>
2032
2033 * slime.el (slime-defun-if-undefined): Renamed from
2034 slime-DEFUN-if-undefined. No need to yell.
2035
2036 2010-05-26 Helmut Eller <heller@common-lisp.net>
2037
2038 * slime.el (slime-compile-file): Only send non-nil keyword args.
2039 (slime-hack-quotes): New function.
2040
2041 2010-05-18 Stas Boukarev <stassats@gmail.com>
2042
2043 * slime.el (sldb-insert-condition): Don't create a mouse tooltip
2044 for long error message, tooltip shows the same text and doesn't
2045 add any value.
2046 (slime-definition-at-point): factor out of `slime-inspect-definition'.
2047 (slime-disassemble-definition): New, similar to
2048 `slime-inspect-definition'.
2049
2050 * swank.lisp (disassemble-form): rename from disassemble-symbol,
2051 do the same as before but evaluate the argument.
2052
2053
2054 2010-05-16 Stas Boukarev <stassats@gmail.com>
2055
2056 * slime.el (slime-close-popup-window): Don't kill
2057 slime-popup-restore-data local variable in another buffer.
2058
2059 2010-05-13 Tobias C. Rittweiler <tcr@freebits.de>
2060
2061 * slime.el (define-slime-contrib): New macro.
2062
2063 2010-05-13 Tobias C. Rittweiler <tcr@freebits.de>
2064
2065 * swank.lisp (*after-init-hook*, simple-break)
2066 (coerce-to-condition, use-threads-p, current-thread-id): Moved
2067 around in swank.lisp.
2068 (with-temp-package): Deleted; not used anywhere.
2069 (ensure-list): Use in SWANK-REQUIRE.
2070
2071 2010-05-11 Stas Boukarev <stassats@gmail.com>
2072
2073 * slime.el (slime-inspect-definition): New function,
2074 inspects definition at point.
2075 (slime-parse-context): Add :defstruct and :defpackage.
2076
2077 2010-05-10 Mark Evenson <evenson@panix.com>
2078
2079 * swank-loader.lisp (*architecture-features*): Add Java platforms
2080 as features for ABCL.
2081
2082 2010-05-06 Helmut Eller <heller@common-lisp.net>
2083
2084 Remove some non-standard file variables.
2085
2086 * swank-cmucl.lisp, swank-scl.lisp: Remove pbook vars.
2087 * swank-clisp.lisp: Remove indentation settings. Slime does it
2088 automatically.
2089
2090 2010-05-05 Stas Boukarev <stassats@gmail.com>
2091
2092 * slime.el (slime-dispatch-event): Fix typo in the previous commit.
2093
2094 2010-05-05 Stas Boukarev <stassats@gmail.com>
2095
2096 * Make buffer names more consistent.
2097 Patch by Leo Liu.
2098
2099 2010-05-05 Helmut Eller <heller@common-lisp.net>
2100
2101 * swank-cmucl.lisp (gdb-command): Use gdb's MI.
2102
2103 2010-05-05 Mark Evenson <evenson@panix.com>
2104
2105 Fix for Cygwin Emacs filename problem.
2106
2107 * slime.el (slime-init-command): Use slime-to-lisp-filename.
2108
2109 2010-05-05 Helmut Eller <heller@common-lisp.net>
2110
2111 * slime.el (sldb-exit): When stepping, close buffer after a delay.
2112 (sldb-close-step-buffer): New function.
2113
2114 2010-05-01 Stas Boukarev <stassats@gmail.com>
2115
2116 * slime.el (slime-restart-sentinel): Don't pop to the inferior
2117 buffer, since this command is usually run either from
2118 *inferior-lisp* buffer or from REPL, it makes sense to reuse
2119 current window instead of messing up window configuration.
2120 (slime-move-point): New function, moves point in a buffer and
2121 its window.
2122
2123 2010-04-29 Stas Boukarev <stassats@gmail.com>
2124
2125 * slime.el (slime-compile-file): Run check-parens after checking
2126 that the buffer is associated with a file.
2127
2128 2010-04-27 Stas Boukarev <stassats@gmail.com>
2129
2130 * slime.el (slime-info): New function, opens the manual.
2131
2132 2010-04-24 Stas Boukarev <stassats@gmail.com>
2133
2134 * swank.lisp (format-values-for-echo-area): Also print the length of an
2135 integer in bits.
2136
2137 2010-04-23 Stas Boukarev <stassats@gmail.com>
2138
2139 * slime.el (slime-update-threads-buffer): Use slime-eval-async.
2140
2141 2010-04-23 Stas Boukarev <stassats@gmail.com>
2142
2143 * slime.el (slime-inspector-buffer): Use slime-with-popup-buffer,
2144 that solves the problem with keybindings shadowed by slime-mode.
2145 Reported by Nathan Bird.
2146
2147 * README: Better wording.
2148
2149 2010-04-22 Stas Boukarev <stassats@gmail.com>
2150
2151 * swank-backend.lisp (with-symbol): Test for package before doing
2152 find-symbol.
2153 * swank-sbcl.lisp(Multiprocessing): use with-symbol.
2154 (emacs-inspect t): Remove newlines from text returned by
2155 sb-impl::inspected-parts, otherwise there will be ".." inserted by
2156 the printer due to (*print-lines* 1).
2157
2158 2010-04-21 Stas Boukarev <stassats@gmail.com>
2159
2160 * slime.el (slime-open-inspector): Use forward-line instead of
2161 goto-line, since it doesn't result in "Mark set" message.
2162 (slime-inspector-buffer): Enable slime-mode after enabling
2163 slime-inspector-mode, otherwise the former will be disabled by the
2164 latter.
2165
2166 2010-04-20 Tobias C. Rittweiler <tcr@freebits.de>
2167
2168 * swank-sbcl.lisp (condition-timed-wait): New helper. Use
2169 WITH-DEADLINE rather than WITH-TIMEOUT because the latter conses a
2170 new timer, and this function is called _a lot_.
2171 (receive-if): Use it.
2172
2173 2010-04-20 Stas Boukarev <stassats@gmail.com>
2174
2175 * slime.el (slime-update-threads-buffer): Save point position
2176 on updates.
2177
2178 2010-04-20 Stas Boukarev <stassats@gmail.com>
2179
2180 * README: advertise additional contribs, especially slime-fancy.
2181
2182 2010-04-19 Stas Boukarev <stassats@gmail.com>
2183
2184 * swank.lisp (symbol-classification-string): New function to
2185 replace (symbol-classification->string (classify-symbol
2186 symbol)). It's faster and conses much less, while it is called
2187 many times by fuzzy completion and fancy inspector.
2188 (symbol-classification->string): Removed.
2189 (list-threads): Exclude the current thread only if its name is
2190 "worker".
2191
2192 2010-04-18 Stas Boukarev <stassats@gmail.com>
2193
2194 * slime.el (slime-threads-update-interval): Add :group and :type
2195 parameters to this customization.
2196 Thanks to Mark Harig.
2197
2198 2010-04-17 Stas Boukarev <stassats@gmail.com>
2199
2200 * slime.el (slime-threads-update-interval): New customization
2201 variable, if set to a number the threads buffer will
2202 updated with this interval.
2203 (slime-with-popup-buffer): Rename modes option to mode,
2204 for a major mode. Enabling minor modes from within the body
2205 doesn't cause troubles. End that way it is compatible with XEmacs
2206 since it doesn't need to use minor-mode-list to distinguish
2207 between minor and major modes.
2208
2209 * swank.lisp (list-threads): Delete the current thread from the
2210 listing.
2211
2212 2010-04-15 Tobias C. Rittweiler <tcr@freebits.de>
2213
2214 * slime.el (sldb-mode): Include some more commands in its help.
2215 (sldb-goto-last-frame): Do not center to the middle but to the
2216 bottom of the window.
2217
2218 2010-04-14 Helmut Eller <heller@common-lisp.net>
2219
2220 * swank.lisp (compile-file-for-emacs): Actually commit the change
2221 described in 2010-04-12.
2222
2223 2010-04-14 Helmut Eller <heller@common-lisp.net>
2224
2225 * slime.el ([test] interrupt-encode-message): New test.
2226
2227 2010-04-14 Helmut Eller <heller@common-lisp.net>
2228
2229 Handle errors during interrupt processing with SLDB.
2230 Bugfix for http://article.gmane.org/gmane.lisp.slime.devel/9641
2231
2232 * swank.lisp (invoke-or-queue-interrupt): When the queue is full,
2233 process the interrupt immediately and also handle
2234 SERIOUS-CONDITIONs during interrupt processing in SLDB. SLDB
2235 should work more likely than the interrupted code is expected to
2236 handle the condition.
2237 (with-interrupts-enabled%): Don't check for interrupts when
2238 toggling interrupts off.
2239 (wait-for-event): Add docstring.
2240
2241 2010-04-14 Helmut Eller <heller@common-lisp.net>
2242
2243 Move error handling and logging from swank-rpc.lisp to swank.lisp
2244
2245 * swank.lisp (log-event, destructure-case, decode-message)
2246 (encode-message, decode-message, swank-protocol-error): Moved back
2247 to swank.lisp from swank-rpc.lisp. It never belonged there
2248 anyway.
2249
2250 * swank-rpc.lisp (read-message, write-message): New functions.
2251 (swank-reader-error): New condition.
2252
2253 2010-04-12 Helmut Eller <heller@common-lisp.net>
2254
2255 * slime.el (slime-doc-bindings): Restore key for slime-apropos.
2256
2257 2010-04-12 Helmut Eller <heller@common-lisp.net>
2258
2259 Fix compile-file for various backends.
2260
2261 * slime.el (slime-compile-file): Only pass non-nil keyword args to
2262 Lisp.
2263 (slime-simplify-plist): New helper.
2264 (slime-compile-and-load-file): Pass policy parameter directly
2265 without using global variables.
2266
2267 * swank.lisp (compile-file-for-emacs): Change singature sightly.
2268
2269 2010-04-06 Stas Boukarev <stassats@gmail.com>
2270
2271 * slime.el (slime-create-compilation-log): Enable
2272 compilation-mode, which was enabled previously by
2273 slime-insert-compilation-log.
2274
2275 2010-04-05 Stas Boukarev <stassats@gmail.com>
2276
2277 * slime.el (slime-doc-bindings): Move slime-apropos to C-c C-d A,
2278 C-c C-d a will be bound to slime-autodoc-manually.
2279
2280 * doc/slime.texi: Document the above change.
2281
2282 2010-04-05 Stas Boukarev <stassats@gmail.com>
2283
2284 * slime.el: Some further adaptations to the new
2285 slime-with-popup-buffer.
2286
2287 2010-04-04 Stas Boukarev <stassats@gmail.com>
2288
2289 * slime.el (slime-insert-threads): Use header-line-format only when
2290 it's present (XEmacs doesn't support it).
2291
2292 2010-04-04 Stas Boukarev <stassats@gmail.com>
2293
2294 * slime.el (slime-with-popup-buffer): Make &optional parameters
2295 &key parameters, add modes parameter.
2296 slime-with-popup-buffer sets up some buffer local variables,
2297 but enabling major modes kills all buffer locals, so modes should
2298 be enabled before setting them.
2299 Adopt changes to slime-with-popup-buffer where needed.
2300 This fixes several bugs with popup buffers on non-default connections.
2301
2302 2010-04-03 Stas Boukarev <stassats@gmail.com>
2303
2304 * slime.el (slime-update-threads-buffer): New formatting, with labels
2305 and additional information provided by the backend.
2306 * swank-allegro.lisp (thread-attributes): Move process-priority from
2307 thread-status.
2308
2309 2010-03-29 Helmut Eller <heller@common-lisp.net>
2310
2311 * slime.el: Add gud as compile-time dependency.
2312
2313 2010-03-29 Helmut Eller <heller@common-lisp.net>
2314
2315 Compile swank-sbcl-exts only for SBCL.
2316
2317 * swank-loader.lisp (*contribs*): Add #+sbcl.
2318
2319 2010-03-29 Helmut Eller <heller@common-lisp.net>
2320
2321 Minor cleanups
2322
2323 * swank.lisp (connection): Make socket-io read-only again.
2324 (*connections*): Move declaration before first use.
2325 (finish-connection-setup): Merged into make-connection.
2326 (accept-connections): Renamed from serve-connection and
2327 reorganized so that the socket-io slot can be read-only.
2328 (accept-authenticated-connection): Renamed to authenticate-client.
2329 Update callers accordingly.
2330
2331 2010-03-29 Tobias C. Rittweiler <tcr@freebits.de>
2332
2333 * swank.lisp (connection-info): Use princ-to-string rather than
2334 prin1-to-string as the latter may barf if *print-readably* is nil.
2335
2336 2010-03-27 Stas Boukarev <stassats@gmail.com>
2337
2338 * slime.el (slime-check-location-buffer-name-sanity): Less duplication,
2339 reuse slime-check-location-filename-sanity.
2340 (slime-check-location-filename-sanity): Do any work only when
2341 slime-warn-when-possibly-tricked-by-M-. is non-nil.
2342
2343 2010-03-21 Stas Boukarev <stassats@gmail.com>
2344
2345 * start-swank.lisp: Document options to swank-loader:init.
2346
2347 * doc/slime.texi (Miscellaneous): mention
2348 `sldb-break-with-system-debugger'.
2349
2350 2010-03-21 Stas Boukarev <stassats@gmail.com>
2351
2352 * start-swank.lisp: New file for starting swank by simply loading
2353 sbcl --load start-swank.lisp
2354
2355 2010-03-19 Tobias C. Rittweiler <tcr@freebits.de>
2356
2357 * slime.el (slime-lisp-implementation-program): New connection
2358 variable.
2359 (slime-set-connection-info): Adapted to set it.
2360 (slime-attach-gdb): Use it to invoke gdb so gdb is able to find
2361 debugging symbols on non-Linux platforms.
2362
2363 * swank.lisp (connection-info): Include lisp-implementation-program.
2364
2365 * swank-backend.lisp (lisp-implementation-program): New interface.
2366 Default implementation based on command-line-args.
2367
2368 * swank-ecl.lisp (command-line-args): Implement.
2369
2370 2010-03-18 Tobias C. Rittweiler <tcr@freebits.de>
2371
2372 Remove attach-gdb restart. Instead add SLDB shortcut `A'.
2373
2374 * slime.el (slime-dispatch-event): Remove :gdb-attach.
2375 (slime-attach-gdb): Changed API. Takes connection not pid now and
2376 lightweight &optional arg. If not lightweight, get the default gdb
2377 config from the inferior Lisp.
2378 (sldb-break-with-system-debugger): New command, bound to `A' in
2379 sldb. Called this way to mimick
2380 `sldb-break-with-default-debugger', and because it may make sense
2381 to go beyond gdb in future, e.g. to invoke the Java Debugger for
2382 ABCL.
2383
2384 * swank.lisp (call-with-gdb-restart, with-gdb-restart): Removed.
2385 (with-top-level-restart): Remove use of with-gdb-restart.
2386 (make-connection, start-server, create-server, setup-server):
2387 Remove inferior-lisp flag again. Not needed anymore.
2388
2389 2010-03-18 Tobias C. Rittweiler <tcr@freebits.de>
2390
2391 Add M-x slime-attach-gdb as an interactive function.
2392
2393 The ATTACH-GDB restart is nice because it's convenient and the
2394 backends can specify customized gdb configuration.
2395
2396 Sometimes, if the Lisp is too screwed up, going over a restart
2397 involving the SWANK middle layer may not be possible. For that, a
2398 manual M-x slime-attach-gdb may come in handy.
2399
2400 * slime.el (slime-read-connection): New helper.
2401 (slime-attach-gdb): Use it. Make it an interactive function.
2402
2403 2010-03-18 Tobias C. Rittweiler <tcr@freebits.de>
2404
2405 * swank.lisp (call-with-gdb-restart): Forgot to remove trailing T.
2406
2407 2010-03-18 Tobias C. Rittweiler <tcr@freebits.de>
2408
2409 * swank.lisp (open-dedicated-output-stream): Forgot to rename
2410 accept-authenticated-connection to accept-authenticated-client
2411 here.
2412
2413 2010-03-18 Tobias C. Rittweiler <tcr@freebits.de>
2414
2415 Add an ATTACH-GDB restart to SLDB.
2416
2417 * swank.lisp (call-with-gdb-restart): New. Sends the new
2418 :gdb-attach event to Emacs.
2419 (with-gdb-restart): Sugar.
2420 (with-top-level-restart): Also expand to with-gdb-restart.
2421 (dispatch-event): Add :gdb-attach event.
2422
2423 * swank-backend.lisp (gdb-initial-commands): New interface
2424 function so backends can customize how gdb needs to be configured
2425 for their implementation.
2426
2427 * swank-ecl.lisp (gdb-initial-commands): Implement.
2428
2429 * slime.el (slime-dispatch-event): Add clause for :gdb-attach.
2430 (slime-attach-gdb): New.
2431
2432 2010-03-18 Tobias C. Rittweiler <tcr@freebits.de>
2433
2434 * swank.lisp (connection): Add socket slot, make socket-io slot
2435 not be required to be filled in during object creation. Add
2436 inferior-lisp slot so we can know whether a connection belongs to
2437 a superior Emacs process. Need for that will come in following
2438 commit.
2439 (make-connection): Our constructor.
2440 (create-connection): Removed; not needed anymore.
2441 (finish-connection-setup): Function to fill socket-io slot.
2442 (start-server): Results in inferior-lisp slot being T.
2443 (create-server): Results in inferior-lisp slot being NIL.
2444 (setup-server): Adapted accordingly. Construct connection early so
2445 we do not have to pass down all the meta information explicitly.
2446 (serve-connection): Adapted accordingly.
2447 (accept-authenticated-client): Renamed from
2448 accept-authenticated-connection.
2449 (dispatch-event): Get rid of unused :%apply and :end-of-stream
2450 events.
2451
2452 2010-03-16 Tobias C. Rittweiler <tcr@freebits.de>
2453
2454 * swank-ecl.lisp (source-location): Also return EXT::FOO as
2455 candidate to search through the TAGS file because SI and EXT both
2456 name the same package, and in ECL's code base, sometimes the
2457 former, sometimes the latter is used.
2458
2459 2010-03-10 Tobias C. Rittweiler <tcr@freebits.de>
2460
2461 * swank.lisp (signal-interrupt): Removed.
2462 (interrupt-worker-thread): Slurp in definition of
2463 signal-interrupt. No need for invoke-or-queue-interrupt twice in
2464 case we do not use threads. Thus micro-prettification of
2465 backtraces.
2466
2467 2010-03-10 Tobias C. Rittweiler <tcr@freebits.de>
2468
2469 * swank-ecl.lisp (source-location): Move call to
2470 TRANSLATE-LOGICAL-PATHNAME from here into MAKE-FILE-LOCATION
2471 because locations-via-annotations may now also involve logical
2472 pathnames.
2473
2474 2010-03-10 Tobias C. Rittweiler <tcr@freebits.de>
2475
2476 * swank-ecl.lisp (*original-sigint-handler*)
2477 (install-sigint-handler): Deleted; we directly implement
2478 call-with-user-break-handler instead.
2479 (call-with-user-break-handler): New. Correctly interrupt main
2480 thread instead of newly spawned handle-signal thread on SIGINT.
2481 (make-interrupt-handler): New helper.
2482
2483 2010-03-09 Stas Boukarev <stassats@gmail.com>
2484
2485 * swank-ccl.lisp (emacs-inspect function): Print closed over variables
2486 in case of closure.
2487
2488 2010-03-09 Stas Boukarev <stassats@gmail.com>
2489
2490 * slime.el (slime-parse-context): Add defclass.
2491
2492 2010-03-09 Helmut Eller <heller@common-lisp.net>
2493
2494 Some more fixes for Allegro
2495
2496 * swank-allegro.lisp (function-source-location): Use
2497 xref::object-to-function-name which seems to work better for some
2498 cases.
2499 (fspec-definition-locations): For :top-level-forms return a list
2500 of ((fspec loc)) not just (fspec loc). Also deal with the file
2501 vs. buffer issue.
2502 (ldb-code-to-src-loc): Don't use *temp-file-map* before it is
2503 declared.
2504 (pc-source-location): Be a bit more fuzzy when searching the
2505 code-location for a pc.
2506
2507 2010-03-08 Stas Boukarev <stassats@gmail.com>
2508
2509 * slime.el (slime-extract-context): Add defvar and defparameter.
2510
2511 2010-03-08 Helmut Eller <heller@common-lisp.net>
2512
2513 Fix some of the brokeness in the last change.
2514
2515 * swank-allegro.lisp (frame-source-location): Deal with frames for
2516 undefined functions better.
2517 (ldb-code-to-src-loc): Handle temp-files properly.
2518
2519 2010-03-08 Helmut Eller <heller@common-lisp.net>
2520
2521 Try to use source-level debugging features in Allegro 8.2
2522
2523 * swank-allegro.lisp (disassemble-frame): Use undocumented
2524 debugger::dyn-fd-analyze to figure out the PC and display it.
2525 (pc-source-location, ldb-code-to-src-loc, longest-common-prefix)
2526 (source-paths-of): New functions.
2527 (frame-source-location): Use pc-source-location. Still far from
2528 optimal since Allegro rarely records source regions and anonymous
2529 functions don't seem to carry source level debug-info at all.
2530 (*temp-file-map*, buffer-or-file-location, find-fspec-location):
2531 Use a table to map temp-file names back to Emacs buffers instead
2532 of putting an eval-when-compile form in the source. The
2533 eval-when-compile form messed up source positions.
2534 (*temp-file-header-end-position*, find-definition-in-buffer):
2535 Deleted.
2536 (compile-from-temp-file): Bind excl:*load-source-debug-info* and
2537 compiler:save-source-level-debug-info-switch so that Allegro
2538 doesn't try to load debug-info from deleted files. Also put
2539 the filename in *temp-file-map*.
2540
2541 2010-03-08 Tobias C. Rittweiler <tcr@freebits.de>
2542
2543 * swank.lisp (dispatch-interrupt-event): Take a connection because
2544 it boils down to SIGNAL-INTERRUPT which uses USE-THREADS-P which
2545 needs a connection.
2546 (install-fd-handler): Adapted accordingly.
2547 (simple-serve-requests): Adapted accordingly. Additionally, remove
2548 superfluous WITH-SWANK-PROTOCOL-HANDLER as that's established by
2549 WITH-CONNECTION already.
2550 (simple-repl): Show "abort inferior lisp" restart only if not a
2551 more appropriate "abort some REX" restart is available. Also make
2552 sure to return in case of END-OF-FILE, otherwise there's an
2553 infinite loop where we end up in the debugger again and again
2554 until the user eventually selects close-connection restart himself.
2555 (make-repl-input-stream): Use WITH-TOP-LEVEL-RESTART so
2556 `sldb-quit' can be used in SLDB.
2557
2558 2010-03-08 Tobias C. Rittweiler <tcr@freebits.de>
2559
2560 * swank.lisp (close-connection): Include initially passed
2561 coding-system in debugging output.
2562
2563 2010-03-08 Tobias C. Rittweiler <tcr@freebits.de>
2564
2565 Make swank:connection-info include information about initially
2566 passed coding-system, and the resulting external-format of the
2567 socket. Debugging aid.
2568
2569 * swank.lisp (connection.external-format): New function.
2570 (start-server, create-server): Pass down coding-system, not
2571 external-format.
2572 (setup-server): Pass down both, coding-system and external-format.
2573 (serve-connection): Ditto.
2574 (create-connection): Set coding-system slot of CONNECTION.
2575 (connection-info): Include coding-system and external-format.
2576
2577 2010-03-07 Helmut Eller <heller@common-lisp.net>
2578
2579 * swank-allegro.lisp (count-cr): Deleted. No longer used.
2580
2581 2010-03-07 Helmut Eller <heller@common-lisp.net>
2582
2583 Handle src-locs of compiler warnings in Allegro 8.2.
2584 Didn't somebody already fix that?
2585
2586 * swank-allegro.lisp (location-for-warning)
2587 (handle-undefined-functions-warning): In 8.2 src-locs include not
2588 only start but also and end positions.
2589
2590 2010-03-07 Stas Boukarev <stassats@gmail.com>
2591
2592 * swank-ecl.lisp (source-location): Don't do
2593 (setq file (tmpfile-to-buffer file)) in a COND condition,
2594 otherwise next cond clause will get null file.
2595 Apply translate-logical-pathname to pathnames.
2596
2597 2010-03-05 Helmut Eller <heller@common-lisp.net>
2598
2599 Remove some unused stuff.
2600
2601 * swank-ccl.lisp (openmcl-set-debug-switches)
2602 (*interesting-internal-frames*)
2603 (interesting-frame-p): Unused. Deleted.
2604
2605 2010-03-05 Helmut Eller <heller@common-lisp.net>
2606
2607 * swank-ccl.lisp: Indentation fixes.
2608
2609 2010-03-05 Tobias C. Rittweiler <tcr@freebits.de>
2610
2611 * swank-ecl.lisp: Make backend depend on ECL version 10.3.1 which
2612 just got released. We do not support older versions. Previous
2613 version pretty much didn't work in combination with Slime anyway.
2614
2615 2010-03-05 Tobias C. Rittweiler <tcr@freebits.de>
2616
2617 Ecl: Make M-. work on function interactively compiled via C-c C-c.
2618
2619 * swank-ecl.lisp (*tmpfile-map*, note-buffer-tmpfile)
2620 (tmpfile-to-buffer): New helpers.
2621 (swank-compile-string): Use them. Also use new COMPILE-FILE
2622 keywords :SOURCE-TRUENAME and :SOURCE-OFFSET available in ECL
2623 HEAD.
2624 (find-definitions): Slurp in definition of
2625 FIND-DEFINITIONS-BY-NAME.
2626 (find-definitions-by-name): Hence not needed anymore.
2627 (source-location): Use TMPFILE-TO-BUFFER to get buffer source
2628 location of interactively compiled functions.
2629
2630 2010-03-04 Mark Evenson <evenson@panix.com>
2631
2632 * swank-abcl.lisp (emacs-inspect): Define default method to use
2633 the result of SYS:INSPECTED-PARTS if non-nil.
2634
2635 2010-03-03 Stas Boukarev <stassats@gmail.com>
2636
2637 * doc/slime.texi (Inspector): document slime-inspector-eval.
2638 Patch by Mark Harig.
2639
2640 2010-03-03 Helmut Eller <heller@common-lisp.net>
2641
2642 Don't special case special operators with M-. for CMUCL.
2643
2644 * swank-cmucl.lisp (function-definitions): Special operators will
2645 have IR1-translators anyway, so no need to mark them "special".
2646 (gf-definitions): Renamed from generic-function-definitions.
2647
2648 2010-03-03 Helmut Eller <heller@common-lisp.net>
2649
2650 * slime.el (slime-inspector-history): New command.
2651
2652 2010-03-03 Helmut Eller <heller@common-lisp.net>
2653
2654 Don't try to bind keywords in inspector-eval.
2655
2656 * swank.lisp (inspector-eval): For now, don't bind symbols which
2657 are constantp. Maybe something better can be found later.
2658
2659 2010-03-03 Helmut Eller <heller@common-lisp.net>
2660
2661 Use @ instead of # to mark object in the inspect history.
2662
2663 * swank.lisp (print-part-to-string): Use @.
2664
2665 2010-03-03 Helmut Eller <heller@common-lisp.net>
2666
2667 Make eval-in-frame display multiple values; not only the first.
2668
2669 * swank.lisp (values-to-string): New macro.
2670 (eval-string-in-frame): Use it.
2671
2672 2010-03-02 Stas Boukarev <stassats@gmail.com>
2673
2674 * swank-sbcl.lisp (definition-source-for-emacs): Don't error when
2675 source location doesn't contain form position, point emacs to the
2676 beginning of a source file and if it's a function provide a
2677 snippet "(defun <name> ".
2678
2679 2010-03-02 Stas Boukarev <stassats@gmail.com>
2680
2681 * slime.el (slime-compile-and-load-file): Accept C-u arguments for
2682 compilation policy the same way as slime-compile-defun.
2683
2684 * swank.lisp (compile-file-for-emacs): Take an additional policy
2685 argument.
2686 * swank-backend.lisp (swank-compile-file): Ditto.
2687
2688 * swank-sbcl.lisp (compiler-policy, (setf compiler-policy)):
2689 rename from get/set-compiler-policy.
2690 (with-compiler-policy): New macro.
2691 (swank-compile-file): Use with-compiler-policy.
2692 (swank-compile-string): Ditto.
2693
2694 * doc/slime.texi (Compilation): Update.
2695
2696 2010-03-01 Stas Boukarev <stassats@gmail.com>
2697
2698 * swank.lisp (documentation-symbol): Show arglists for functions too.
2699
2700 2010-03-01 Tobias C. Rittweiler <tcr@freebits.de>
2701
2702 Fix that annoying bug that caused being constantly asked to switch
2703 connection in case one had multiple connections running and quit
2704 from one.
2705
2706 * slime.el (slime-modeline-string): Bail out early because
2707 `slime-current-package' involves `slime-connection' in case the
2708 slime-repl contrib is used, and querying the user in a
2709 periodically called function is rather annoying..
2710
2711 2010-02-26 Stas Boukarev <stassats@gmail.com>
2712
2713 * swank-loader.lisp (ecl-version-string): Check length of
2714 the result of ext:lisp-implementation-vcs-id before doing subseq.
2715 On CVS it returns "unknown".
2716
2717 2010-02-25 Stas Boukarev <stassats@gmail.com>
2718
2719 * swank-loader.lisp (ecl-version-string): In
2720 #+(or) (progn #+#.(cl:print cl:nil) 1) PRINT does run on SBCL, which
2721 breaks #+#.(cl:if (cl:find-symbol "SYMBOL" :ext) ...) here,
2722 guard it with
2723 (find-package :ext) until further investigations.
2724
2725 2010-02-25 Tobias C. Rittweiler <tcr@freebits.de>
2726
2727 * swank-loader.lisp (lisp-version-string): Add git-commit ids for
2728 ECL because individual commits do not guarantee fasl
2729 compatibility.
2730
2731 2010-02-23 Tobias C. Rittweiler <tcr@freebits.de>
2732
2733 * swank-backend.lisp (when-let): New macro. For backends and
2734 swank.lisp.
2735
2736 * swank-ecl.lisp: Use it. Also use new location support of ECL git
2737 HEAD.
2738
2739 2010-02-23 Tobias C. Rittweiler <tcr@freebits.de>
2740
2741 * slime.el (slime-postprocess-xref): Show a TAGS entry's hints as
2742 part of an Xref's dspec for the case of multiple matches.
2743
2744 2010-02-23 Tobias C. Rittweiler <tcr@freebits.de>
2745
2746 * swank-ecl.lisp (preferred-communication-style): Go back to
2747 NIL. Some parts (like the compiler and CLOS) of ECL do not seem to
2748 be thread-safe yet. Also get rid of non-working implementation of
2749 :FD-HANDLER.
2750 (poll-streams, wait-for-input): Implement on top of select() for
2751 communication-style=NIL.
2752 (*descriptor-handlers*, add-fd-handler, remove-fd-handlers): Get
2753 rid of.
2754 (grovel-docstring-for-arglist): Get rid of it, too.
2755 (arglist): ECL now provides an extra accessor to a function's
2756 arglist. Use that instead.
2757 (emacs-inspect): Get rid of the default method. Don't see its
2758 point.
2759
2760 2010-02-22 Tobias C. Rittweiler <tcr@freebits.de>
2761
2762 Make swank-ecl.lisp work with latest ECL Git HEAD.
2763
2764 * swank-ecl.lisp (assert-TAGS-file): Simplified.
2765 (assert-source-directory): New helper.
2766 (c-function-p): New helper.
2767 (c-function): Type based on above.
2768 (source-location): Move bits from FIND-DEFINITIONS-FOR-TYPE to
2769 this function. Use CONVERTING-ERRORS-TO-ERROR-LOCATION.
2770 (find-definitions-for-type): Simplified by using it.
2771
2772 2010-02-22 Tobias C. Rittweiler <tcr@freebits.de>
2773
2774 * swank-backend.lisp (converting-errors-to-error-location): Moved
2775 here from swank-sbcl.lisp so other backends can make use of it, too.
2776
2777 * swank-sbcl.lisp: The above macro was called slightly
2778 differently, so update uses accordingly.
2779
2780 2010-02-22 Tobias C. Rittweiler <tcr@freebits.de>
2781
2782 Make M-. be able to jump right into the C source for ECL.
2783
2784 Because it's based on TAGS files, M-. and M-* will DTRT once in a
2785 .c file.
2786
2787 * swank-ecl.lisp (assert-TAGS-file): New helper.
2788 (classify-definition-name): Ditto.
2789 (find-definitions-for-type): Ditto. Understands Lisp and C
2790 functions.
2791 (find-definitions): Use them.
2792 (source-location): New helper. Extracted from FIND-SOURCE-LOCATION.
2793 (find-source-location): Use it.
2794 (swank-compile-string): Only try to delete temporary files if they
2795 exist.
2796
2797 2010-02-22 Tobias C. Rittweiler <tcr@freebits.de>
2798
2799 Make it possible for SWANK backends to specify locations based on
2800 a TAGS file.
2801
2802 * slime.el (slime-postprocess-xref, slime-postprocess-xrefs): New
2803 functions. They convert TAGS based locations from SWANK into
2804 file+position based locations because the rest of Slime expects
2805 and works with those.
2806 (slime-find-definitions): Call slime-postprocess-xrefs.
2807 (slime-xref): Ditto.
2808 (slime-etags-to-locations): The function which does the actual
2809 conversion. Extracted from `slime-etags-definitions'.
2810 (slime-etags-definitions): Use it.
2811
2812 * swank-backend (defimplementation): Add implicit BLOCK.
2813 (:etags-file, :tag): Mentioned for possible values in :LOCATION.
2814
2815 2010-02-20 Tobias C. Rittweiler <tcr@freebits.de>
2816
2817 More work on ECL's swank-backend.
2818
2819 * swank-ecl.lisp (accept-connection): Handle :buffering, and
2820 :external-format.
2821 (external-format): New helper.
2822 (find-external-format): Make sure to only return :default in case
2823 ECL was built with --disable-unicode; it'll barf on anything else.
2824 (socket-fd): Add two-way-stream case due to recent changes in ECL.
2825 (make-file-location, make-buffer-location): New helpers.
2826 (condition-location): Use them.
2827 (swank-compile-file): Handle :external-format.
2828 (compile-from-stream): Deleted. Slurped into swank-compile-string.
2829 (swank-compile-string): Call SI:MKSTEMP correctly. Make sure to
2830 also remove fasl file, not just source file.
2831 (grovel-docstring-for-arglist): Do not look at "Syntax:" entry in
2832 docstring because that was a kludge. Upstream ECL should be
2833 modified instead.
2834 (in-swank-package-p, is-swank-source-p, is-ignorable-fun-p):
2835 Commented out. They make debugging ECL's swank-backend harder.
2836
2837 2010-02-20 Tobias C. Rittweiler <tcr@freebits.de>
2838
2839 * swank-loader.lisp (*architecture-features*): Add :PENTIUM3 and
2840 :PENTIUM4; they're used by ECL.
2841 (handle-swank-load-error): Renamed from HANDLE-LOADTIME-ERROR. Use
2842 *FASL-DIRECTORY* rather than (DEFAULT-FASL-DIR). Parametrize
2843 context to differentiate b/w compilation/loading.
2844 (compile-files): Adapted accordingly. Also make sure that an error
2845 is signaled in case COMPILE-FILE returns NIL as primary result.
2846
2847 2010-02-20 Stas Boukarev <stassats@gmail.com>
2848
2849 * swank-ccl.lisp: Remove outdated comment at the beginning
2850 since it may be misleading.
2851
2852 * slime.el: In minor-mode-alist for slime-popup-buffer-mode,
2853 run slime-modeline-string only if slime-mode isn't active, because
2854 slime-mode runs slime-modeline-string from minor-mode-alist too
2855 resulting in duplicate modeline strings.
2856 Reported by Leo Liu.
2857
2858 2010-02-18 Mark Harig <idirectscm@aim.com>
2859
2860 The compiler warns about various stuff. Fix some of it.
2861
2862 * slime.el (slime-add-local-hook): Remove support for Emacs 20.
2863 (sldb-recenter-region): Use forward-line; not next-line.
2864
2865 2010-02-17 Helmut Eller <heller@common-lisp.net>
2866
2867 Add a command to eval stuff in the inspector.
2868
2869 * slime.el (slime-inspector-eval): New command.
2870 (slime-inspector-mode-map): Bind it to 'e'.
2871 * swank.lisp (inspector-eval): New function.
2872 * swank-backend.lisp (eval-context): New function.
2873 * swank-cmucl.lisp (eval-context): Implement it.
2874
2875 2010-02-17 Helmut Eller <heller@common-lisp.net>
2876
2877 Point-entered hooks in the xref buffer don't work so well.
2878 Use forward/backward commands instead.
2879
2880 * slime.el (slime-xref-next-line, slime-xref-prev-line): New
2881 commands.
2882 (slime-xref-show-location): New aux function.
2883 (slime-xref-mode-map): Remap up/down to next/prev location
2884 commands. Make SPC and RET do the same.
2885
2886 2010-02-17 Helmut Eller <heller@common-lisp.net>
2887
2888 Select the xref buffer.
2889 I never could get used to the next/prev cycling.
2890
2891 * slime.el (slime-with-xref-buffer): Select the buffer.
2892 (slime-insert-xrefs): Add point-entered hook to automatically
2893 display the current location.
2894 (slime-xref-entered): New function.
2895 (slime-show-buffer-position): Don't use reposition-window which
2896 seems very slow and doesn't even do a particularly good job. The
2897 new heuristic is much cruder but faster.
2898 (slime-xref-mode-map): Remove apparently redundant bindings for
2899 RET.
2900
2901 2010-02-17 Helmut Eller <heller@common-lisp.net>
2902
2903 Get rid or snapshots.
2904
2905 * slime.el (slime-narrowing-configuration, slime-emacs-snapshot)
2906 (slime-current-narrowing-configuration)
2907 (slime-set-narrowing-configuration, slime-current-emacs-snapshot)
2908 (slime-set-emacs-snapshot)
2909 (slime-current-emacs-snapshot-fingerprint, slime-frame-windows):
2910 Deleted. Update call-sites accordingly.
2911
2912 2010-02-17 Helmut Eller <heller@common-lisp.net>
2913
2914 Test suite hangs for CCL and CMUCL.
2915
2916 * slime.el ([test] compile-defun): Remove those compile-time read
2917 errors for which some implementations invoke the debugger.
2918 (sexp-at-point.1): Remove failing tests
2919
2920 2010-02-16 Tobias C. Rittweiler <tcr@freebits.de>
2921
2922 * swank-loader.lisp: Compile files on ECL, too.
2923
2924 2010-02-16 Tobias C. Rittweiler <tcr@freebits.de>
2925
2926 Pimp my swank.
2927
2928 * swank-ecl.lisp: We depend on ECL 10.2.1 which is not released
2929 yet -- you need git/cvs HEAD. Added :spawn, and :fd-handler as
2930 communication-style (Thanks to Ram Krishnan), improve compilation
2931 hooks so highligting of warnings works, + various cleanup.
2932
2933 2010-02-15 Tobias C. Rittweiler <tcr@freebits.de>
2934
2935 * slime.el (slime-load-contribs): Do not call SWANK-REQUIRE
2936 asynchronously, if host Lisp uses :SPAWN that may result in the
2937 attempt to load in code concurrently -- the host Lisp may not
2938 support that.
2939
2940 2010-02-14 Tobias C. Rittweiler <tcr@freebits.de>
2941
2942 * slime.el (slime-attempt-connection): Fix typo. Thanks to Mark
2943 Harig for spotting it.
2944
2945 2010-02-13 Tobias C. Rittweiler <tcr@freebits.de>
2946
2947 * slime.el (slime-attempt-connection): Do not keep on trying to
2948 connect if inferior process died.
2949
2950 2010-02-07 Tobias C. Rittweiler <tcr@freebits.de>
2951
2952 * swank-ecl.lisp: Update threading code. ECL doesn't still work
2953 with :spawn, though. Work in progress.
2954
2955 2010-02-07 Tobias C. Rittweiler <tcr@freebits.de>
2956
2957 * swank.lisp (xref-doit): Declare eql-specializing parameter
2958 ignorable, as some implementations complain about them not being
2959 used.
2960
2961 2010-02-01 Mark Harig <idirectscm@aim.com>
2962
2963 * slime.el: Added missing pieces to make `slime-cycle-connections'
2964 available from keystrokes.
2965 (slime-prefix-bindings): Added "\C-xn" entry.
2966 (slime-cycle-connections): Corrected grammar in doc string.
2967 (def-slime-selector-method): Added menu item `n' to SLIME selector
2968 menu.
2969
2970 * doc/slime.texi: Added a description for the new key sequence for
2971 `slime-cycle-connections' and for the new menu item in the SLIME
2972 selector menu.
2973 Node slime-selector: Added menu item `n' and cross-references to
2974 "Multiple Connections" node.
2975 Node Multiple connections: Added C-c C-x n description. Added
2976 cross-references to `slime-selector' node.
2977
2978 2010-01-31 Tobias C. Rittweiler <tcr@freebits.de>
2979
2980 * hyperspec.el: When using C-c C-d ~ TAB, previously there were
2981 entries for "C" and "C: Character", which unpleasingly crowded the
2982 completion buffer, so I made it show one entry ("C - Character")
2983 only. RIP, erik.
2984
2985 2010-01-30 Stas Boukarev <stassats@gmail.com>
2986
2987 * slime.el (slime-cycle-connections): Change docstring, it
2988 doesn't make connection buffer-local.
2989 * doc/slime.texi (Multiple connections): document
2990 slime-cycle-connections.
2991
2992 * swank.lisp (pathname-as-directory): Treat "/foo/bar" and "/foo/bar/"
2993 the same.
2994 (compile-file-output): Use the above function.
2995
2996 2010-01-28 Mark Evenson <evenson@dada.local>
2997
2998 * swank-abcl.lisp (emacs-inspect): Make inspection of Java objects
2999 toString() results dependent on explicit user request to avoid
3000 potentially computationally expensive operations.
3001
3002 2010-01-27 Stas Boukarev <stassats@gmail.com>
3003
3004 * swank-rpc.lisp: NIL -> nil (for unusual readtable settings).
3005 Spotted by Harald Hanche-Olsen.
3006
3007 2010-01-26 Mark Evenson <evenson@dada.local>
3008
3009 * swank-abcl.lisp: Import
3010 MOP::COMPUTE-APPLICABLE-METHODS-USING-CLASSES if it exists in the
3011 ABCL implementation.
3012
3013 2010-01-25 Tobias C. Rittweiler <tcr@freebits.de>
3014
3015 * swank-allegro.lisp (redefinition-p, redefinition): New.
3016 (handle-compiler-warning): Add :severity for redefinitions,
3017 style-warnings, errors.
3018
3019 2010-01-21 Stas Boukarev <stassats@gmail.com>
3020
3021 * swank-ccl.lisp (with-frame): Put this macro before it's used.
3022
3023 2010-01-20 Terje Norderhaug <terje@in-progress.com>
3024
3025 * swank.lisp (with-swank-protocol-error-handler): Refactor using
3026 safe-backtrace.
3027 * swank-rpc.lisp (make-swank-protocol-error): Delete call to
3028 swank:safe-backtrace to eliminate dependency on swank.lisp module.
3029 * swank-rpc.lisp (swank-protocol-error): Remove
3030 swank-protocol-error.backtrace as the capture of a safe-backtrace
3031 is covered by with-swank-protocol-error-handler.
3032
3033 2010-01-20 Stas Boukarev <stassats@gmail.com>
3034
3035 * slime.el (slime-thread-kill): If the region is active, then
3036 kill all threads in the region.
3037
3038 2010-01-19 Stas Boukarev <stassats@gmail.com>
3039
3040 * swank-rpc.lisp (:swank-rpc): (:use :cl), SBCL
3041 doesn't use it by default.
3042
3043 2010-01-19 Terje Norderhaug <terje@in-progress.com>
3044
3045 * Refactorized parts of swank.lisp into a new swank-rpc module.
3046
3047 2010-01-14 Stas Boukarev <stassats@gmail.com>
3048
3049 * doc/slime.texi (Setting up the lisp image):
3050 (swank-loader:init) is also needed for loading swank.
3051 Reported by Evgeny Bahvalov.
3052
3053 2010-01-13 Tobias C. Rittweiler <tcr@freebits.de>
3054
3055 * swank.lisp (*swank-state-stack*): Delete. Not needed anymore.
3056 (defslimefun state-stack): Delete.
3057 (decode-message): Adapted.
3058 (debug-in-emacs): Adapted.
3059
3060 2010-01-11 Mark Evenson <evenson@dada.local>
3061
3062 * swank-abcl.lisp (emacs-inspect): Implementation for Java
3063 objects.
3064
3065 Fix compiler warning about *ABCL-SIGNALED-CONDITIONS*.
3066
3067 2010-01-06 Tobias C. Rittweiler <tcr@freebits.de>
3068
3069 * swank-backend (declaration-arglist): Normalize declaration
3070 specifiers to contain `variables' rather than `vars'.
3071
3072 2010-01-05 Tobias C. Rittweiler <tcr@freebits.de>
3073
3074 * swank-sbcl.lisp (compiler-note-location): Add missing return-from.
3075
3076 2010-01-05 Tobias C. Rittweiler <tcr@freebits.de>
3077
3078 * slime.el (compile-defun [test]): Add two cases.
3079
3080 2010-01-05 Cecil Westerhof <Cecil@decebal.nl>
3081
3082 * slime.texi (inferior-slime-mode): Fix thinko.
3083
3084 2010-01-05 Terje Norderhaug <terje@in-progress.com>
3085
3086 Provide default implementation for all-threads.
3087
3088 * swank-backend.lisp (all-threads): Just return ().
3089
3090 2010-01-05 Helmut Eller <heller@common-lisp.net>
3091
3092 Fix M-. bug related to CMUCL's multi-file compilation units.
3093
3094 * swank-cmucl.lisp (code-location-stream-position): Require the
3095 "root-number" as argument and subtract it from the TLF number.
3096 (location-in-file): Pass the root number along.
3097 (code-location-string-offset): Use 0 as root number.
3098
3099 2010-01-05 Helmut Eller <heller@common-lisp.net>
3100
3101 Slightly better error message when CMUCL fails to find defstructs.
3102
3103 * swank-cmucl.lisp (struct-constructor, setf-definitions): Don't
3104 use COERCE which gives confusing error message.
3105
3106 2010-01-05 Helmut Eller <heller@common-lisp.net>
3107
3108 Add "quit" and "other window prefix" buffer selectors.
3109
3110 * slime.el (slime-selector-other-window): New variable.
3111 (slime-selector): Bind it as need.
3112 (def-slime-selector-method): Use the other window if so indicated.
3113 ([selector] 4): New key binding.
3114 ([selector] q): New key binding. just abort.
3115
3116 2010-01-05 Helmut Eller <heller@common-lisp.net>
3117
3118 Stop the beeping on restart.
3119
3120 * slime.el (slime-quit-lisp-internal): Don't kill already dead
3121 processes.
3122
3123 2010-01-03 Stas Boukarev <stassats@gmail.com>
3124
3125 * swank-backend.lisp (frame-call): New function.
3126 Returns a string representing a call to the entry point of a frame.
3127 * swank-ccl.lisp (frame-call): Implementation of the above.
3128 * swank-sbcl.lisp (frame-call): Ditto.
3129
3130 2010-01-03 Tobias C. Rittweiler <tcr@freebits.de>
3131
3132 * swank.lisp (with-swank-protocol-error-handler): Remove debugging
3133 bits.
3134
3135 2010-01-03 Tobias C. Rittweiler <tcr@freebits.de>
3136
3137 * slime.el (slime-next-read-or-lose): Call `debug' with the error
3138 condition, so we can see what actually caused the losage.
3139
3140 2010-01-03 Tobias C. Rittweiler <tcr@freebits.de>
3141
3142 * slime.el (compile-defun [test]): Also test proper notification
3143 after reader-error. Additionally: bind font-lock-verbose to nil to
3144 prevent annoying font-lock messages during the test.
3145
3146 * swank-sbcl.lisp (signal-compiler-condition): Make sure
3147 READER-ERROR comes before ERROR in typecase.
3148 (swank-compile-file): Remove handling FATAL-COMPILER-HANDLER
3149 because a) this handling prevents sbcl from printing the
3150 diagnostics to the repl, and b) sbcl itself should handle this and
3151 translate it into proper return value for compile-file.
3152
3153 2009-12-23 Tobias C. Rittweiler <tcr@freebits.de>
3154
3155 * slime.el (complete-symbol [test]): Fix test case.
3156
3157 2009-12-22 Helmut Eller <heller@common-lisp.net>
3158
3159 Some new backend functions used for loading image files.
3160
3161 * swank-backend.lisp (socket-fd, make-fd-stream, dup, exec-image)
3162 (command-line-args): New functions.
3163 * swank-cmucl.lisp: Impemented.
3164 * swank-cmucl.lisp (reset-sigio-handlers): New function.
3165 (save-image): Fix quoting bug.
3166
3167 * swank.lisp (clear-event-history): New functoin.
3168 (interactive-eval, eval-region): Don't use FRESH-LINE.
3169
3170 2009-12-21 Tobias C. Rittweiler <tcr@freebits.de>
3171
3172 * slime.el (slime-at-list-p): Deleted.
3173 (slime-at-expression-p): Moved to slime-package-fu.
3174 (slime-forward-blanks): Deleted. Use `(skip-chars-forward
3175 "[:space:]")' instead.
3176 (slime-forward-any-comment): Deleted.
3177 (slime-reader-conditionals-regexp): Make a constant so it's
3178 inlined.
3179 (slime-unknown-feature-expression): Make it an error.
3180
3181 2009-12-19 Stas Boukarev <stassats@gmail.com>
3182
3183 * swank-backend.lisp (defpackage): export with-symbol and
3184 replace its fully qualified usage everywhere.
3185
3186 2009-12-17 Tobias C. Rittweiler <tcr@freebits.de>
3187
3188 * slime.el (slime-edit-uses-xrefs): New variable. For contribs to
3189 extend.
3190 (slime-edit-uses): Use it.
3191
3192 * swank.lisp (xref-doit): Now a generic functions. For contribs to
3193 extend.
3194
3195 2009-12-17 Tobias C. Rittweiler <tcr@freebits.de>
3196
3197 * swank.lisp (with-top-level-restart): Bind local special.
3198 (top-level-restart-p): Check for it; this tells us if we're in
3199 the dynamic extent of with-top-level-restart.
3200 (handle-requests): Use it.
3201
3202 2009-12-17 Stas Boukarev <stassats@gmail.com>
3203
3204 * swank-match.lisp: Fix formatting and style warnings.
3205
3206 2009-12-17 Stas Boukarev <stassats@gmail.com>
3207
3208 * swank.lisp (handle-requests): Comment out
3209 (assert (boundp '*sldb-quit-restart*)) because it's not bound
3210 on NIL communication style. It's not a real fix, but at least it
3211 lets null communication-style work.
3212
3213 2009-12-16 Tobias C. Rittweiler <tcr@freebits.de>
3214
3215 * swank-sbcl.lisp (categorize-definition-source): New.
3216 (definition-source-for-emacs): Use it. Slightly
3217 refactored. Renamed from `make-definition-source-location'.
3218 (find-definitions, find-source-location)
3219 (source-location-for-xref-data, function-dspec): Updated
3220 accordingly.
3221 (source-file-position): Scratch last argument, not needed anymore.
3222
3223 2009-12-16 Stas Boukarev <stassats@gmail.com>
3224
3225 * swank.lisp (compile-file-output): Use
3226 (make-pathname :directory dir :defaults (compile-file-pathname file))
3227 instead of (compile-file-pathname file :output-file dir),
3228 because the latter works differently on different implementations.
3229 (fasl-pathname): Use the above function.
3230
3231 2009-12-16 Tobias C. Rittweiler <tcr@freebits.de>
3232
3233 * swank.lisp (*sldb-quit-restart*): Export. For users to customize
3234 what `q' does in SLDB.
3235 (handle-requests): Test differently for recursive invocations
3236 as *sldb-quit-restart* may now be globally bound due to user
3237 customization.
3238 (coerce-restart): Coerces a restart-designator to a restart.
3239 (throw-to-toplevel): Use it.
3240
3241 * slime.texi (swank:*sldb-quit-restart*): Document it.
3242
3243 2009-12-15 Tobias C. Rittweiler <tcr@freebits.de>
3244
3245 * swank.lisp (collect-notes): Establish new abort restart ("Abort
3246 Compilation"); if an error is signaled in EVAL-WHEN, or during
3247 macroexpansion -- assuming the backend DTRT --, invoking this
3248 restart will result in the normal compilation failure behaviour,
3249 including correct reporting of the offending toplevel form.
3250
3251 * swank-sbcl.lisp (handle-notification-condition): Use
3252 `real-condition' here.
3253 (handle-file-compiler-termination): As a result, not needed anymore.
3254 (call-with-compilation-hooks): Also signal information about
3255 normal errors.
3256
3257 2009-12-14 Stas Boukarev <stassats@gmail.com>
3258
3259 * doc/slime.texi (ASDF): Document new commands.
3260
3261 2009-12-12 Matthias Koeppe <mkoeppe@math.ucdavis.edu>
3262
3263 * doc/slime.texi (Presentations): Add an example that illustrates
3264 quoting necessary with presentations that are lists.
3265
3266 2009-12-11 Stas Boukarev <stassats@gmail.com>
3267
3268 * swank-allegro.lisp: Use new function `make-error-location'.
3269 (find-fspec-location): Handle errors.
3270 Patch by Tobias C. Rittweiler.
3271
3272 2009-12-11 Tobias C. Rittweiler <tcr@freebits.de>
3273
3274 Add `M-x slime-toggle-debug-on-swank-error'.
3275
3276 In "Debug on SWANK error" mode, errors which are normally caught
3277 to not annoy the user, will now drop into the debugger.
3278
3279 Additionally, the backend won't do any backtrace magic so you'll
3280 see the full backtrace with all its glory details. (SBCL only so
3281 far.)
3282
3283 * slime.el (slime-toggle-debug-on-swank-error): New.
3284
3285 * swank.lisp (toggle-debug-on-swank-error): New slimefun.
3286 (debug-on-swank-error): New function. SETFable.
3287 (invoke-default-debugger): Use CALL-WITH-DEBUGGER-HOOK so we're
3288 trapped into the native debugger on SBCL (previously we weren't
3289 due to SB-EXT:*INVOKE-DEBUGGER-HOOK*.)
3290
3291 * swank.lisp: Rename SWANK-ERROR to SWANK-PROTOCOL-ERROR.
3292
3293 2009-12-11 Tobias C. Rittweiler <tcr@freebits.de>
3294
3295 * swank-sbcl.lisp (call-with-debugger-hook): Oops, removed the
3296 binding for *DEBUGGER-HOOK*. Fix that.
3297 (make-invoke-debugger-hook): Do nothing if hook is NIL.
3298
3299 2009-12-10 Tobias C. Rittweiler <tcr@freebits.de>
3300
3301 * swank-backend.lisp (*debug-swank-backend*): New variable. If
3302 true, backends should not catch internal errors (e.g. during
3303 definition finding), and should not perform backtrace magic.
3304 (make-error-location): New helper.
3305 (find-definitions [interface]): Default to error location.
3306
3307 * swank-sbcl.lisp (converting-errors-to-location): New helper
3308 macro. Regards new *DEBUG-SWANK-BACKEND*.
3309 (find-definitions [implementation]): Use it.
3310 (find-source-location [implementation]): Ditto.
3311 (functiond-spec): Ditto.
3312 (frame-source-location [implementation]): Ditto.
3313 (*debug-definition-finding*): Removed.
3314 (make-source-location-specification): Removed.
3315 (safe-function-source-location): Removed.
3316 (safe-source-location-for-emacs): Removed. Not needed anymore.
3317
3318 (call-with-debugging-environment): Do not perform stack hinting
3319 depending on *DEBUG-SWANK-BACKEND*.
3320
3321 2009-12-10 Tobias C. Rittweiler <tcr@freebits.de>
3322
3323 * swank-sbcl.lisp (set-break-hook): New.
3324 (call-with-break-hook): New, too. Both extracted from elsewhere.
3325 (install-debugger-globally, call-with-debugger-hook): Use them.
3326 (make-invoke-debugger-hook): Adapted not to call *debugger-hook*
3327 on its own; it should rather decline because *debugger-hook* is
3328 tried after *invoke-debugger-hook* anyway. Previously, a
3329 custom *debugger-hook* (which declines itself) would have been
3330 executed twice.
3331
3332 2009-12-07 Stas Boukarev <stassats@gmail.com>
3333
3334 * slime.el (slime-parse-toplevel-form): Use
3335 `slime-region-for-defun-at-point' instead of `beginning-of-defun'.
3336
3337 2009-12-03 Tobias C. Rittweiler <tcr@freebits.de>
3338
3339 * slime.el (slime-documentation-lookup-function): New hook,
3340 defaults to `slime-hyperspec-lookup'.
3341 (slime-documentation-lookup): Invoke hook.
3342 (slime-prefix-bindings): Bind `C-c C-d h' to it.
3343
3344 2009-12-02 Stas Boukarev <stassats@gmail.com>
3345
3346 * swank-sbcl.lisp (frame-locals): `frame-debug-vars' can return NIL,
3347 so check before using it as a vector.
3348 Patch by Nathan Bird.
3349
3350 2009-11-30 Helmut Eller <heller@common-lisp.net>
3351
3352 Add a slime-editing-map as suggested by Attila Lendvai. The main
3353 purpose is to create a keymap that's shared by the REPL and other
3354 modes so that adding custom bindings gets a bit easier.
3355
3356 * slime.el (slime-editing-map, slime-mode-indirect-map): New variables.
3357 (slime-init-keymaps): Clear out any existing bindings before
3358 building the new keymaps.
3359 (slime-init-keymap): New helper.
3360 (slime-bind-keys): Renamed&extended from
3361 slime-define-both-key-bindings.
3362
3363 * slime.el (slime-editing-mode): New minor mode for use
3364 in the REPL.
3365
3366 2009-11-26 Mark Evenson <evenson@panix.com>
3367
3368 * swank-abcl.lisp (arglist): Fixes for functions with non-nil
3369 arglist and for generic functions with empty argument lists.
3370
3371 Diagnosed and cured by Matthias Hölzl.
3372
3373 2009-11-23 Stas Boukarev <stassats@gmail.com>
3374
3375 * slime.el (slime-set-connection-info): Set slime-current-thread to t
3376 before doing anything. Solves a bug reported by Slawek Zak.
3377
3378 2009-11-21 Tobias C. Rittweiler <tcr@freebits.de>
3379
3380 * swank-sbcl.lisp (who-specializes): Implement.
3381 Requires SBCL 1.0.32.
3382
3383 2009-11-19 Tobias C. Rittweiler <tcr@freebits.de>
3384
3385 * slime.el (slime-minibuffer-map): Nee `slime-read-expression-map'
3386 (slime-minibuffer-history): Nee `slime-read-expression-history'
3387 (slime-minibuffer-setup-hook): Extracted.
3388 (slime-read-from-minibuffer): Adapted accordingly.
3389
3390 2009-11-13 Stas Boukarev <stassats@gmail.com>
3391
3392 * swank.lisp (classify-symbol): Check fbound before calling
3393 fdefinition, ECL doesn't like (fdefinition nil).
3394
3395 * swank-ecl.lisp
3396 (swank-mop:compute-applicable-methods-using-classes): Add a dummy
3397 function. ECL doesn't have it, but some contribs are using it.
3398 Patch by Andy Hefner.
3399
3400 2009-11-13 Stas Boukarev <stassats@gmail.com>
3401
3402 * swank-ecl.lisp (function-name): Use clos:generic-function-name
3403 for generic functions.
3404 (arglist): Check fro symbol before calling special-operator-p and
3405 macro-function.
3406 Patch by Andy Hefner.
3407
3408 2009-11-06 Stas Boukarev <stassats@gmail.com>
3409
3410 * swank-ecl.lisp (grovel-docstring-for-arglist): ECL's arglists
3411 for macros include macro name at the first place, unlike arglists
3412 for functions. cdr arglists only for macros and special operators.
3413 Reported by Andy Hefner.
3414 (find-source-location): Missing comma before error message formatting.
3415 Patch by Andy Hefner.
3416
3417 2009-11-05 Tobias C. Rittweiler <tcr@freebits.de>
3418
3419 Make C-c C-c operate on region if mark is active (and Transient
3420 Mark mode is enabled.)
3421
3422 * slime.el (slime-compile-defun): Operate on region if
3423 transient-mark-mode is active.
3424
3425 2009-11-03 Helmut Eller <heller@common-lisp.net>
3426
3427 Ask gdb for source lines of foreign functions.
3428
3429 * swank-cmucl.lisp (frame-source-location): Handle foreign
3430 frames with gdb.
3431 (frame-ip): Handle bogus frames (on x86)
3432 (disassemble-frame): Use gdb for foreign frames.
3433 (foreign-frame-p, foreign-frame-source-location): New functions.
3434 (gdb-command, gdb-exec, parse-gdb-line-info, read-word)
3435 (whitespacep, with-temporary-file, call/temporary-file): New
3436 helpers.
3437
3438 2009-11-03 Stas Boukarev <stassats@gmail.com>
3439
3440 * slime.el (sldb-setup): Do (set-syntax-table lisp-mode-syntax-table)
3441 otherwise functions used by autodoc do not work properly.
3442
3443 2009-11-03 Stas Boukarev <stassats@gmail.com>
3444
3445 * slime.el (sldb-backward-frame): If the point is at the end of
3446 the buffer, there is no property, handle this case.
3447
3448 * swank.lisp (collect-notes): LOAD returns generalized boolean,
3449 not just boolean, but make-compilation-result accepts only booleans
3450 for its second argument.
3451
3452 Both bugs reported by Derrell Piper.
3453
3454 2009-11-02 Tobias C. Rittweiler <tcr@freebits.de>
3455
3456 * slime.el (slime-end-of-symbol): Make sure not to move on #'foo.
3457 ([test] sexp-at-point.1): New test case.
3458
3459 2009-11-02 Helmut Eller <heller@common-lisp.net>
3460
3461 * swank.lisp (without-interrupts): Removed. No longer used.
3462 * swank-backend.lisp (call-without-interrupts): Removed.
3463 Update backends accoringly.
3464
3465 2009-11-02 Helmut Eller <heller@common-lisp.net>
3466
3467 CCL's lap-functions don't have source-notes but the name often
3468 has. E.g. ccl::%fixnum-truncate. Use names as last resort.
3469
3470 * swank-ccl.lisp (function-name-source-note): New function.
3471 (pc-source-location): Use it.
3472
3473 2009-11-02 Stas Boukarev <stassats@gmail.com>
3474
3475 * swank.lisp (tokenize-symbol-thoroughly): Return NIL
3476 instead of throwing an error.
3477 (parse-symbol): Handle null result of tokenize-symbol-thoroughly.
3478
3479 This fixes a bug reported by Derrell Piper.
3480
3481 2009-10-31 Tobias C. Rittweiler <tcr@freebits.de>
3482
3483 * slime.el (slime-bug): Deleted.
3484
3485 2009-10-31 Tobias C. Rittweiler <tcr@freebits.de>
3486
3487 * slime.el (slime-inside-string-p, slime-inside-comment-p)
3488 (slime-inside-string-or-comment-p): New.
3489
3490 * swank-match.lisp: New file. Contains very simple pattern matcher
3491 from the CMU AI archive.
3492
3493 * swank-loader.lisp: Compile swank-match.lisp.
3494
3495 * swank.lisp: Make SWANK package use new SWANK-MATCH package.
3496
3497 2009-10-31 Tobias C. Rittweiler <tcr@freebits.de>
3498
3499 * swank.lisp (find-symbol-with-status): New.
3500 (parse-symbol): Use it to correctly parse symbols where only one
3501 colon is given. Consequences: Autodoc won't display an arglist on
3502 `(foo:bar |' if BAR is not exported from FOO.
3503
3504 2009-10-31 Helmut Eller <heller@common-lisp.net>
3505
3506 * swank.lisp (list-threads): Remove thread-description. Wasn't
3507 used anymore.
3508 * swank-backend.lisp (thread-description, set-thread-description):
3509 Deleted.
3510 * swank-abcl.lisp: Update accordingly.
3511 * slime.el (slime-update-threads-buffer, slime-thread-insert):
3512 Update accordingly.
3513
3514 2009-10-31 Helmut Eller <heller@common-lisp.net>
3515
3516 * swank-ccl.lisp (kill-thread): Don't signal conditions.
3517 * swank-backend.lisp (kill-thread): Update docstring.
3518
3519 2009-10-30 Stas Boukarev <stassats@gmail.com>
3520
3521 * swank-loader.lisp (setup): Use EXT:PROBE-DIRECTORY on Clisp,
3522 because PROBE-FILE doesn't want to work on directories.
3523 Patch by Dirk Sondermann.
3524
3525 2009-10-30 Helmut Eller <heller@common-lisp.net>
3526
3527 * swank-openmcl.lisp: Removed. 1.4 is out so no longer needed.
3528 * swank-ccl.lisp: Update accordingly.
3529
3530 * test-all.sh: Removed. Not used in ages.
3531
3532 2009-10-28 Helmut Eller <heller@common-lisp.net>
3533
3534 Simpler modeline code.
3535
3536 * slime.el (slime-modeline-string): Renamed from
3537 slime-compute-modeline-string.
3538 (slime-modeline-state-string): Renamed from
3539 slime-compute-connection-state
3540 (slime-modeline-package, slime-modeline-connection-name)
3541 (slime-modeline-connection-state)
3542 (slime-extended-modeline,slime-compute-modeline-package)
3543 (slime-update-modeline-string, slime-shall-we-update-modeline-p)
3544 (slime-update-all-modelines, slime-modeline-update-timer)
3545 (slime-restart-or-init-modeline-update-timer)
3546 (slime-connection-state-as-string): Deleted
3547 (slime-stale-connection-p): Deleted.
3548
3549 2009-10-28 Helmut Eller <heller@common-lisp.net>
3550
3551 * slime.el (slime-disconnect): Don't reference connection. Left
3552 over from last change.
3553 ([test] arglist): Update expected results for slightly changed
3554 printer settings.
3555 ([test] indentation): Install common-lisp-indent-function.
3556 ([undefun] display-warning): Fix it.
3557
3558 * test.sh: Don't copy contribs. Slime should work without them.
3559 * swank-loader.lisp (setup): Compile contribs only if directory
3560 exists.
3561
3562 2009-10-28 Helmut Eller <heller@common-lisp.net>
3563
3564 * slime.el (slime-format-display-message, slime-display-message)
3565 (slime-create-message-window): Deleted. The trick with the
3566 pre-command-hook doesn't work in XEmacs 21.5. So use the standard
3567 message function. One day XEmacs will learn how to resize the
3568 minibuffer, but until then we have to live with one-line messages.
3569
3570 2009-10-27 Helmut Eller <heller@common-lisp.net>
3571
3572 * slime.el: Fix some docstrings and comments.
3573
3574 2009-10-26 Tobias C. Rittweiler <tcr@freebits.de>
3575
3576 * test.sh: Shebang on bash, not just on sh.
3577
3578 2009-10-25 Tobias C. Rittweiler <tcr@freebits.de>
3579
3580 Revert the reversed numbering of restarts in sldb.
3581
3582 New command `sldb-cycle' ([tab]) in sldb will cycle between
3583 restart list and backtrace.
3584
3585 Make sldb-invoke-restart-by-name case-insensitive.
3586
3587 * slime.el (sldb-mode-map): Bind Tab to `sldb-cycle'.
3588 (sldb-restart-list-start-marker): New variable.
3589 (sldb-setup): Store marker in it.
3590 (sldb-cycle): New command to cycle between restart list and
3591 backtrace.
3592 (sldb-invoke-restart-by-name): Make completion case-insensitive.
3593 (sldb-insert-restarts): Revert to old behaviour.
3594
3595 2009-10-24 Tobias C. Rittweiler <tcr@freebits.de>
3596
3597 * swank-ccl.lisp (who-specializes): Do not signal an error if
3598 argument does not name a class.
3599
3600 2009-10-24 Tobias C. Rittweiler <tcr@freebits.de>
3601
3602 * swank.lisp (xref): Deal with non-yet-interned names gracefully.
3603
3604 2009-10-24 Tobias C. Rittweiler <tcr@freebits.de>
3605
3606 * slime.el (slime-search-property): Add parameter to get value at
3607 point propery changed.
3608 (slime-find-next-note): Use it.
3609 (slime-find-previous-note): Ditto.
3610
3611 2009-10-24 Tobias C. Rittweiler <tcr@freebits.de>
3612
3613 New command C-M-, to go to previous xref location.
3614
3615 [Old command C-M-. to go to next xref location.]
3616
3617 Xref buffers are not automatically selected anymore; it's more
3618 ergonomic to cycle through them via C-M-. and C-M-, from
3619 within the source buffer.
3620
3621 * slime.el (slime-search-property): Simplify slightly.
3622 (slime-find-next-note): Use it.
3623 (slime-find-previous-note): Use it, too.
3624 (slime-find-note): Deleted.
3625 (slime-editing-keys): Add C-M-,.
3626 (slime-previous-location-function): New variable.
3627 (slime-previous-location): New command.
3628 (slime-with-xref-buffer): Do not select Xref buffer.
3629 (slime-show-xref-buffer): Adapted accordingly.
3630 (slime-goto-next-xref): Highlight current item on C-M-. and C-M-,.
3631 (slime-goto-previous-xref): New.
3632 (slime-highlight-sexp): Renamed from `sldb-highlight-sexp'.
3633 (slime-highlight-line): New.
3634
3635 2009-10-24 Helmut Eller <heller@common-lisp.net>
3636
3637 * slime.el (sldb-insert-restarts): Insert the proper numbers for
3638 the --more-- button.
3639 (sldb-restart-number-at-point): Rename back to
3640 sldb-restart-at-point. Don't use
3641 confisingly-verbose-names-for-no-good-reason.
3642 (sldb-restart-number-for-swank): Deleted.
3643
3644 2009-10-23 Tobias C. Rittweiler <tcr@freebits.de>
3645
3646 Restarts in SLDB are now numbered reversely. The rationale is that
3647 always-existing restarts are likely to be associated with the same
3648 number now.
3649
3650 * slime.el (sldb-insert-restarts): Number restart reversely.
3651 (sldb-restart-number-for-swank): New; recompute the unreversed
3652 number for the swank side.
3653 (sldb-restart-number-at-point): Previously `sldb-restart-at-point'.
3654 (sldb-invoke-restart): Adapted accordingly.
3655
3656 2009-10-23 Tobias C. Rittweiler <tcr@freebits.de>
3657
3658 When ever Slime seems to get stuck (e.g. after some character
3659 encoding confusion), `M-x slime-reset' should hopefully bring it
3660 into a functional state again.
3661
3662 * slime.el (slime-reset): Erase connection buffer.
3663
3664 2009-10-21 Tobias C. Rittweiler <tcr@freebits.de>
3665
3666 Make M-x slime-changelog-date work.
3667
3668 * slime.el (slime-changelog-date): Make the function be callable
3669 interactively.
3670
3671 2009-10-21 Stas Boukarev <stassats@gmail.com>
3672
3673 * doc/slime.texi (ASDF): Document new commands.
3674
3675 2009-10-20 Martin Simmons <martin@lispworks.com>
3676
3677 * swank-lispworks.lisp (call-without-interrupts): Discourage use.
3678 (interesting-frame-p): Never show open frame bogons.
3679
3680 2009-10-19 Stas Boukarev <stassats@gmail.com>
3681
3682 * swank-sbcl.lisp (thread-description): Remove it and supporting code,
3683 because it didn't really work.
3684
3685 * swank.lisp (with-thread-description): Remove unused macro.
3686
3687 * slime.el (slime-list-threads): Update information before
3688 setting the mode, otherwise it messes up current connection.
3689
3690 * doc/slime.texi: fix typo.
3691
3692 2009-10-19 Tobias C. Rittweiler <tcr@freebits.de>
3693
3694 * swank.lisp (without-printing-errors): New macro.
3695 (to-string): Use it.
3696 (to-line): Use it, too. This fixes printing error occuring during
3697 inspecting to prevent the inspector from displaying something
3698 useful.
3699
3700 Reported by xristos@suspicious.org.
3701
3702 2009-10-15 Helmut Eller <heller@common-lisp.net>
3703
3704 * slime.el (slime-current-package): Move REPL stuff to contrib.
3705
3706 2009-10-15 Stas Boukarev <stassats@gmail.com>
3707
3708 * slime.el (slime-current-package): Return REPL's package,
3709 if other are unavailable and if slime-repl is loaded.
3710
3711 2009-10-12 Tobias C. Rittweiler <tcr@freebits.de>
3712
3713 * slime.el: Update copyright.
3714
3715 2009-10-10 Tobias C. Rittweiler <tcr@freebits.de>
3716
3717 * slime.el (slime-length=): Fix (slime-length= '() 0).
3718 (slime-eval-feature-expression): Fix. Couldn't handle (NOT)
3719 and (NOT FOO BAR).
3720
3721 2009-10-09 Stas Boukarev <stassats@gmail.com>
3722
3723 * swank.lisp (stop-server): (list-threads) returns threads offset by 1,
3724 don't kill the wrong thread.
3725
3726 2009-10-06 Stas Boukarev <stassats@gmail.com>
3727
3728 * swank-ccl.lisp (map-backtrace): Handle null end-frame-number
3729 argument.
3730
3731 2009-09-28 Stas Boukarev <stassats@gmail.com>
3732
3733 * swank.lisp (set-package): Provide a more meaningful error
3734 message when package doesn't exist.
3735
3736 * swank-lispworks.lisp (replace-strings-with-symbols): Didn't work on
3737 non-proper lists. Reported by Madhu.
3738
3739 2009-09-27 Tobias C. Rittweiler <tcr@freebits.de>
3740
3741 * swank-sbcl.lisp (call-with-debugger-hook): Correctly deal with
3742 case of HOOK being NIL.
3743 (make-definition-source-location): Somewhat simplified.
3744 (string-path-snippet): Removed, not needed anymore.
3745
3746 2009-09-24 Stas Boukarev <stassats@gmail.com>
3747
3748 * swank-sbcl.lisp (swank-compile-string): Ignore unused variable
3749 warningsp.
3750
3751 2009-09-23 Helmut Eller <heller@common-lisp.net>
3752
3753 * swank-sbcl.lisp (receive-if): Bind *break-on-signals* to
3754 nil before using with-timeout.
3755
3756 2009-09-22 Helmut Eller <heller@common-lisp.net>
3757
3758 * swank-ccl.lisp (find-definitions): For fbound symbols also
3759 consider source-notes in the function object. Useful if
3760 the function slot was set with (setf (symbol-function ..))
3761 and not by defun.
3762
3763 2009-09-21 Stas Boukarev <stassats@gmail.com>
3764
3765 * doc/slime.texi (slime-sprof): document slime-sprof contrib.
3766
3767 2009-09-20 Tobias C. Rittweiler <tcr@freebits.de>
3768
3769 * swank-abcl.lisp (thread-description): Fix typo.
3770 (set-thread-description): Ditto.
3771
3772 2009-09-20 Tobias C. Rittweiler <tcr@freebits.de>
3773
3774 Generalize M-? (or M-_ respectively.)
3775
3776 It will now list:
3777
3778 - call sites for functions,
3779
3780 - macroexpand sites for macros,
3781
3782 - binding, setting, referencing sites for variables,
3783
3784 - specializing methods for classes.
3785
3786 * slime.el (slime-xref): Deal with :not-implemented.
3787 (slime-xrefs): New. Makes RPC request to XREFS.
3788 (slime-edit-callers): Renamed to `slime-edit-uses'.
3789 (slime-edit-uses): Use slime-xrefs.
3790
3791 * swank-backend.lisp (who-*): Add default implementation which
3792 returns :not-implemented.
3793
3794 * swank.lisp (xref-doit): Extracted from XREF.
3795 (xref): Pass over :not-implemented to Emacs side.
3796 (xrefs): New slime fun. To return results of multiple XREF
3797 requests at once.
3798
3799 2009-09-20 Mark Evenson <evenson@panix.com>
3800
3801 Use *INVOKE-DEBUGGER-HOOK* introduced in ABCL by analogy to SBCL
3802 (Tobias Rittweiler).
3803
3804 * swank-abcl.lisp (sys::break): Conditionally redefine SYS::BREAK
3805 only if SYS::INVOKE-DEUBBGER-HOOK is not present.
3806
3807 2009-09-18 Tobias C. Rittweiler <tcr@freebits.de>
3808
3809 * slime.el (slime-parent-bindings): Define M-? as
3810 `slime-edit-callers', too. My previous choice of M-_ was warped
3811 due to my German layout.
3812
3813 2009-09-18 Tobias C. Rittweiler <tcr@freebits.de>
3814
3815 New binding: M-_ (`slime-edit-callers').
3816
3817 Similiar to `slime-who-calls' but only creates an Xref buffer if
3818 needed for disambiguation, and also pushes to the definition
3819 stack.
3820
3821 Spiritually like M-. but works "in the other direction".
3822
3823 * slime.el (sllime-edit-callers): New function. Cross between
3824 `slime-who-calls' and `slime-edit-definition'.
3825 (slime-parent-bindings): Define M-_ as `slime-edit-callers'.
3826 (slime-pop-xref-buffer): New helper. Extracted from
3827 `slime-show-xrefs'.
3828 (slime-show-xrefs): Use it.
3829 (slime-xref): Let callers specify a continuation.
3830
3831 2009-09-17 Tobias C. Rittweiler <tcr@freebits.de>
3832
3833 * swank-abcl.lisp (sys::break): Fix typo.
3834 (slot-definition-documentation, slot-definition-type)
3835 (class-prototype, generic-function-declarations)
3836 (specializers-direct-methods, slot-boundp-using-class)
3837 (slot-value-using-class): Add IGNORE declarations. Compiling
3838 swank-abcl.lisp is now free of warnings.
3839 (swank-compile-file): Load the compiled file even though warnings
3840 were signalled during compilation.
3841
3842 2009-09-17 Mark Evenson <evenson@panix.com>
3843
3844 * swank-abcl.lisp (source-location): Emacs buffers start at 1,
3845 whereas CL files start at 0 (Tobias Rittweiler).
3846
3847 2009-09-16 Stas Boukarev <stassats@gmail.com>
3848
3849 * swank.lisp (documentation-symbol): Return more readable information.
3850
3851 2009-09-14 Mark Evenson <evenson@panix.com>
3852
3853 * swank-abcl.lisp (source-location): Fix typo.
3854
3855 2009-09-12 Mark Evenson <evenson@panix.com>
3856
3857 Provided by Alan Ruttenberg.
3858
3859 * swank-abcl.lisp (source-location): Make edit definition work.
3860
3861 * swank-abcl.lisp (arglist): Now works with generic functions.
3862
3863
3864 2009-09-08 Helmut Eller <heller@common-lisp.net>
3865
3866 * swank-loader.lisp (lisp-version-string): Include "-ics" for
3867 version with extended charsets. Suggested by Scott L. Burson.
3868
3869 2009-09-03 Helmut Eller <heller@common-lisp.net>
3870
3871 * slime.el (slime-net-close): set-process-query-on-exit-flag
3872 doesn't exist in XEmacs.
3873 (slime-make-net-buffer): For now, disable querying here.
3874 Could also close the socket before killing the buffer.
3875 (slime-buffer-processes): Deleted.
3876
3877 2009-09-02 Stas Boukarev <stassats@gmail.com>
3878
3879 * swank-lispworks.lisp (replace-strings-with-symbols): New function for
3880 recursively interning and replacing strings in a list.
3881 (arglist): Replace all strings in arglists with symbols.
3882
3883 * slime.el (slime-net-close): Do not query for process killing
3884 confirmation before killing a connection buffer.
3885 (slime-buffer-processes): New function for listing processes
3886 associated with a buffer.
3887
3888 2009-08-31 Helmut Eller <heller@common-lisp.net>
3889
3890 Don't advice ccl::break-loop.
3891 Should not be necessary as we can now use ccl:*break-hook*.
3892
3893 * swank-ccl.lisp ([advice] ccl::break-loop): Deleted.
3894
3895 2009-08-31 Helmut Eller <heller@common-lisp.net>
3896
3897 Keep note overlays in a global variable.
3898 That's simpler and cheaper than scanning all buffers.
3899
3900 * slime.el (slime-note-overlays): New variable.
3901 (slime-make-note-overlay, slime-remove-old-overlays): Use it.
3902
3903 2009-08-27 Stas Boukarev <stassats@gmail.com>
3904
3905 * slime.el (slime-remove-old-overlays): delete notes at the very
3906 beginning of the buffer too. Thanks to Nick Levine.
3907
3908 2009-08-22 Helmut Eller <heller@common-lisp.net>
3909
3910 Speed up symbol completion.
3911
3912 * swank.lisp (all-completions): Don't call unparse-symbol
3913 while matching. That gets very slow in CCL's CCL package.
3914 Just use symbol-name and compare with char-equal.
3915 (prefix-match-p): Use char-equal.
3916
3917 2009-08-21 Helmut Eller <heller@common-lisp.net>
3918
3919 * slime.el (slime-transcript-start-hook)
3920 (slime-transcript-stop-hook): New hooks.
3921 (slime-eval-with-transcript): Use them.
3922 (slime-eval-with-transcript-cont): Deleted.
3923
3924 2009-08-19 Mark Evenson <evenson@panix.com>
3925
3926 * swank-abcl.lisp: Accommodate the new Java/Lisp stack frame
3927 abstraction in the upcoming abcl-0.16. (based on code from Tobias
3928 Rittweiler).
3929
3930 2009-08-18 Mark Evenson <evenson@panix.com>
3931
3932 Add multithreading code for abcl-0.16. (Tobias Rittweiler)
3933
3934 * swank-abcl.lisp: A multithread implementation taking advantage
3935 of the new synchronization primitives in abcl-0.16.
3936
3937 Restore working with abcl-0.15.
3938
3939 * swank-abcl.lisp: Remove the warm initialization code for
3940 SWANK:COMPILER-CONDITION, as it is no longer needed for the
3941 current release of ABCL.
3942
3943 2009-08-16 StanisBaw Halik <sthalik@test123.ltd.pl>
3944
3945 * swank.lisp (init-global-stream-redirection): Continue even if
3946 streams are already redirected. Useful for restarting Swank with
3947 M-x slime when a REPL is already present. Will most likeley
3948 mess up the input stream in multi threaded setups, tho.
3949
3950 2009-08-15 Helmut Eller <heller@common-lisp.net>
3951
3952 XEmacs fixes.
3953
3954 * slime.el (slime-editing-keys): Use (kbd "C-M-.") because XEmacs
3955 translates [?\C-\M-.] to C-M-n.
3956 (next-single-char-property-change)
3957 (previous-single-char-property-change): Use
3958 next-single-property-change because next-char-property-change gets
3959 embarrisingly slow in XEmacs in font-locked buffers.
3960 It never felt that slow in Emacs 20 though.
3961
3962 2009-08-15 Helmut Eller <heller@common-lisp.net>
3963
3964 * swank-ccl.lisp (definition-name): Special case methods.
3965
3966 * slime.el (slime-choose-overlay-region): Don't return zero length
3967 regions for :eof.
3968 (slime-show-buffer-position): The second argument to
3969 display-buffer means something completely different in
3970 XEmacs. Don't use it.
3971 (slime-severity-face): Handle :redefinition.
3972 (slime-temporarily-highlight-note): Use a timer instead of the
3973 post-command-hook.
3974
3975 2009-08-13 Stas Boukarev <stassats@gmail.com>
3976
3977 * slime.el (slime-auto-select-connection, slime-auto-connect):
3978 Turn them into customizable variables.
3979
3980 2009-08-11 Tobias C. Rittweiler <tcr@freebits.de>
3981
3982 * swank-sbcl.lisp (swank-compile-string): Make sure that it
3983 returns NIL on compilation failure.
3984
3985 2009-08-10 Helmut Eller <heller@common-lisp.net>
3986
3987 * slime.el (slime-insert-note-group): Factored out from
3988 slime-insert-compilation-log.
3989 (slime-goto-location-position): Can't use goto-line.
3990
3991 2009-08-10 Helmut Eller <heller@common-lisp.net>
3992 Separate context info from compiler message text.
3993
3994 * swank-backend.lisp (compiler-condition): Add a new slot
3995 :source-context. Remove :short-message.
3996 * swank-cmucl.lisp, swank-sbcl.lisp, swank-scl.lisp,
3997 swank-openmcl.lisp, swank-ccl.lisp: Update callers.
3998 * swank.lisp (make-compiler-note): Use source-context slot.
3999 * slime.el (slime-note.source-context): New.
4000 (slime-insert-compilation-log): Use it.
4001 (slime-note.short-message): Deleted.
4002
4003 2009-08-10 Helmut Eller <heller@common-lisp.net>
4004
4005 Don't add linebreaks for one-line messages.
4006
4007 (slime-insert-block): New function.
4008 (slime-insert-compilation-log): Use it.
4009 (slime-indent-rigidly): Use insert-before-markers, otherwise point
4010 ends up at before a bunch of inserted spaces.
4011
4012 2009-08-10 Helmut Eller <heller@common-lisp.net>
4013
4014 Various compilation related changes.
4015
4016 * slime.el (slime-show-note-counts): Don't show 0 values.
4017 (slime-severity<): New function.
4018 (slime-maybe-show-compilation-log): Always create the log buffer
4019 but display it only if the compilation failed.
4020 (slime-insert-compilation-log): Disable the stupidly inefficient
4021 font-lock-after-change-function.
4022 (slime-canonicalized-location-to-string): Use relative filenames.
4023 (slime-goto-location-buffer): Disable warnings about symlinks.
4024
4025 2009-08-09 Tobias C. Rittweiler <tcr@freebits.de>
4026
4027 Make C-x ` work again.
4028
4029 M-n and C-x ` are now very similiar; but the former operates
4030 relative to point in the source buffer, while the latter works
4031 relative to the compilation log.
4032
4033 * slime.el (slime-insert-compilation-log): No do set
4034 `compilation-skip-to-next-location'.
4035
4036 2009-08-09 Tobias C. Rittweiler <tcr@freebits.de>
4037
4038 M-n/M-p in .lisp buffers do not show the note in the minibuffer
4039 anymore if a compilation log is displayed to the user.
4040
4041 In the compilation log, sort and group the notes by line/column
4042 number.
4043
4044 * slime.el (slime-insert-compilation-log): Sort the notes by their
4045 line/column numbers; group notes of same location and display them
4046 as one entry.
4047 (slime-compilation-loc): Removed.
4048 (slime-canonicalized-location),
4049 (slime-canonicalized-location-to-string): Extracted from
4050 `slime-compilation-loc'.
4051 (slime-group-and-sort-notes): Does the sorting/grouping.
4052 (slime-show-note): Do not show note in minibuffer if compilation
4053 log is displayed to the user.
4054
4055 2009-08-09 Stas Boukarev <stassats@gmail.com>
4056
4057 * swank.asd (asdf:perform): don't call `swank-loader:init' with
4058 :setup nil, because it doesn't get contribs compiled, and some other
4059 configuration steps are omitted.
4060
4061 * slime.el (slime-profile-by-substring): new function for profiling
4062 functions by matching a substring.
4063
4064 * swank.lisp (profile-by-substring): ditto.
4065
4066 2009-08-08 Tobias C. Rittweiler <tcr@freebits.de>
4067
4068 M-n / M-p in a .lisp buffer now also jump to the respective note
4069 in the compilation-log buffer if one is currently displayed to the
4070 user.
4071
4072 * slime.el (slime-remove-old-overlays): Simplified.
4073 (slime-insert-compilation-log): Add a note-overlay for each note
4074 so we can find the right one when user uses M-n/M-p in .lisp
4075 buffer.
4076 (slime-goto-note-in-compilation-log): New.
4077 (slime-make-note-overlay): Extracted from
4078 `slime-create-note-overlay'.
4079 (slime-next-note, slime-previous-note): Simplified.
4080 (slime-show-note): Goto note in compilation-log if available.
4081 (slime-note-overlay-p): Call overlay property `slime-note', not
4082 just `slime'.
4083 (slime-find-note): Likewise; also returns the overlay if found.
4084 (slime-show-buffer-position): Optionally recenter position to the
4085 top of the window.
4086
4087 2009-08-04 Stas Boukarev <stassats@gmail.com>
4088
4089 * swank-sbcl.lisp (signal-compiler-condition): read
4090 sb-kernel:redefinition-warning only if it exists.
4091 Some older SBCLs don't have it (particularly included in the
4092 stable Debian).
4093
4094 2009-08-02 Tobias C. Rittweiler <tcr@freebits.de>
4095
4096 * swank-backend.lisp (severity [type]): Allow :redefinition.
4097
4098 * swank-sbcl.lisp (signal-compiler-condition): Tag redefinitions.
4099
4100 * slime.el (slime-maybe-show-compilation-log): Do not show
4101 compilation log if each note describes just a redefinition.
4102 (slime-insert-compilation-log): Insert notes indented by 2
4103 spaces. Insert some more newlines so the buffer appears more
4104 structured.
4105 (slime-show-note-counts): Add :redefinition to ecase.
4106 (slime-redefinition-note-p): New.
4107 (slime-severity-label): Was unused. Adapted to be usable.
4108
4109 2009-07-30 Stas Boukarev <stassats@gmail.com>
4110
4111 * doc/slime.texi (Setting up pathname translations): add that it is
4112 in the `slime-tramp' contrib.
4113
4114 2009-07-30 Tobias C. Rittweiler <tcr@freebits.de>
4115
4116 * swank-clisp.lisp: Clisp 2.48 experimentally supports threads. So
4117 add infrastructure to use threads in Clisp's swank backend. We do
4118 not make it the default, because it's not prime time yet. There
4119 are still problems with GC, weak-pointers, and thread objects.
4120
4121 2009-07-28 Stas Boukarev <stassats@gmail.com>
4122
4123 * doc/slime.texi (slime-selector): mention t and c keys.
4124
4125 2009-07-27 Stas Boukarev <stassats@gmail.com>
4126
4127 * swank-ccl.lisp (source-note-to-source-location): keys of
4128 *temp-file-map* are pathnames, not namestrings; convert
4129 namestrings to pathnames before looking up.
4130
4131 2009-07-27 Geo Carncross <geocar@gmail.com>
4132
4133 * swank-ecl.lisp: Support for older ECL installs
4134 from patch by Mark Evenson
4135
4136 2009-07-26 Helmut Eller <heller@common-lisp.net>
4137
4138 * slime.el (slime-maybe-show-compilation-log): New function.
4139 (slime-compilation-finished-hook): Use it. Now that the
4140 compilation buffer gets not selected it's more acceptable to
4141 display it more often.
4142 (slime-insert-compilation-log): Set compilation-skip-threshold to
4143 0 and compilation-skip-to-next-location to nil. Seems to work
4144 better for us.
4145 (slime-with-popup-buffer): Synch window-point, otherwise it be at
4146 the end of the buffer for reused buffers.
4147 (slime-display-popup-buffer): Return the window.
4148
4149 2009-07-26 Helmut Eller <heller@common-lisp.net>
4150
4151 * swank-sbcl.lisp (tempnam): Muffle efficiency notes.
4152
4153 2009-07-26 Gail Zacharias <gz@clozure.com>
4154
4155 * swank-ccl.lisp: New file. An updated version of
4156 swank-openmcl.lisp in preparation for a slew of changes to CCL and
4157 to honor the new name.
4158
4159 * swank-loader.lisp (*sysdep-files*): Use it.
4160
4161 2009-07-21 Stas Boukarev <stassats@gmail.com>
4162
4163 * slime.el (slime-sexp-at-point-for-macroexpansion): use markers
4164 for bounds, because in some situations text layout could be modified
4165 before bounds would be used, for example, using keyboard macros.
4166
4167 2009-07-15 Stas Boukarev <stassats@gmail.com>
4168
4169 * slime.el (slime-inspector-fetch-all): new command, bound to >
4170 in the inspector buffer.
4171
4172 * doc/slime.texi (Frame Navigation): add description
4173 of `sldb-end-of-backtrace' and `sldb-beginning-of-backtrace'.
4174 (Inspector): add `slime-inspector-fetch-all'.
4175
4176
4177 2009-07-12 Helmut Eller <heller@common-lisp.net>
4178
4179 * slime.el (slime-editing-keys): Don't override M-*. The default
4180 binding should do what Matthias wants.
4181
4182 2009-07-11 Matthias Koeppe <mkoeppe@math.ucdavis.edu>
4183
4184 * swank-backend.lisp (definterface): Fix typo in error message.
4185
4186 2009-07-11 Stas Boukarev <stassats@gmail.com>
4187
4188 * doc/Makefile (clean): Remove bash extensions. Patch by
4189 Teemu Likonen.
4190
4191 2009-07-06 Tobias C. Rittweiler <tcr@freebits.de>
4192
4193 * swank-ecl.lisp (find-external-format): Copied from
4194 swank-sbcl.lisp. A lot of backends seem to share the same
4195 implementation, perhaps some refactoring is needed.
4196
4197 2009-07-06 Tobias C. Rittweiler <tcr@freebits.de>
4198
4199 * swank.lisp (make-repl-input-stream): Make sure to redirect
4200 output from slime requests to the REPL buffer for
4201 communication-style=NIL.
4202
4203 2009-07-02 Stas Boukarev <stassats@gmail.com>
4204
4205 * slime.el (slime-beginning-of-symbol): Limit searching to 2000
4206 characters.
4207
4208 2009-07-02 Terje Norderhaug <terje@in-progress.com>
4209
4210 * swank-lispworks.lisp (thread-attributes): Implemented.
4211
4212 2009-07-02 Helmut Eller <heller@common-lisp.net>
4213
4214 * swank.lisp (ed-in-emacs): Handle symbols/function-names better.
4215 * slime.el (slime-ed): Updated accordingly.
4216
4217 2009-07-02 Terje Norderhaug <terje@in-progress.com>
4218
4219 * swank.lisp (operator-arglist): Don't use pprint-fill
4220 for people with wide screens.
4221
4222 2009-07-02 Stas Boukarev <stassats@gmail.com>
4223
4224 * slime.el (slime-net-coding-system): make it customizable.
4225 (slime-inspector-operate-on-click): Make --more-- button in
4226 the inspector clickable.
4227
4228 2009-06-30 Geo Carncross <geocar@gmail.com>
4229
4230 * swank-ecl.lisp: Package profiling support
4231
4232 2009-06-30 Stas Boukarev <stassats@gmail.com>
4233
4234 * swank-openmcl.lisp (arglist): Return :not-available if the arglist
4235 cannot be obtained. Patch by Terje Norderhaug.
4236
4237 2009-06-29 Stas Boukarev <stassats@gmail.com>
4238
4239 * swank.lisp (open-streams): do not create unnecessary output stream
4240 when using dedicated output stream. Thanks to Terje Norderhaug.
4241
4242 2009-06-28 Terje Norderhaug <terje@in-progress.com>
4243
4244 Generalize list-threads for implementation-dependent attributes.
4245
4246 * swank-backend.lisp (thread-attributes): New function.
4247 * swank-openmcl (thread-attributes): Implement it.
4248 * swank.lisp (list-threads): Return a table with the attribute
4249 names as the first row and the new attributes in the last columns.
4250 * slime.el (slime-update-threads-buffer): For now, ignore the
4251 extra attributes.
4252
4253 2009-06-28 Stelian Ionescu <stelian.ionescu-zeus@poste.it>
4254
4255 * slime.el (slime-compiler-macroexpand-inplace)
4256 (slime-compiler-macroexpand-1-inplace): New commands.
4257 (slime-macroexpansion-minor-mode-map): Bind them.
4258
4259 2009-06-28 Helmut Eller <heller@common-lisp.net>
4260
4261 * swank-sbcl.lisp (add-fd-handler): Avoid recursive invocation
4262 of the handler, e.g. when read-sequence blocks.
4263
4264 2009-06-28 Stas Boukarev <stassats@gmail.com>
4265
4266 * swank-openmcl.lisp (compiler-warning-short-message): In new
4267 versions of CCL `compiler-warning-nrefs' slot
4268 of the `compiler-warning' class is now a list, not an integer.
4269
4270 2009-06-25 Geo Carncross <geocar@gmail.com>
4271
4272 * swank-ecl.lisp: Profiling support by Marko Koci?
4273
4274 2009-06-27 Helmut Eller <heller@common-lisp.net>
4275
4276 * slime.el (slime-beginning-of-symbol): Skip over #., #-, and #+.
4277 ([test] symbol-at-point.15 .. 17): Test it.
4278
4279 2009-06-24 Nikodemus Siivola <nikodemus@random-state.net>
4280
4281 Add :WAIT keyword argument to support blocking in
4282 SWANK:INSPECT-IN-EMACS.
4283
4284 * swank.lisp (inspect-in-emacs): added keyword argument :wait.
4285
4286 * slime.el (slime-dispatch-event): if swank requests response to
4287 :inspect, add a hook to the inspector to signal swank once done.
4288 (slime-open-inspector): add optional hook argument to be added as
4289 local kill-buffer-hook.
4290
4291 2009-06-21 Helmut Eller <heller@common-lisp.net>
4292
4293 * slime.el (slime-initialize-lisp-buffer-for-test-suite): Moved to
4294 contrib/slime-fontifying-fu.el
4295
4296 2009-06-21 Helmut Eller <heller@common-lisp.net>
4297
4298 Don't try so hard to get symbol-at-point right.
4299 The old implementation was complicated and didn't even pass it's
4300 own test suite. The new version is less ambitious but simpler.
4301
4302 * slime.el (slime-symbol-at-point, slime-beginning-of-symbol)
4303 (slime-end-of-symbol): Simplify.
4304 (slime-exit-vertical-bars, slime-symbol-constituent-at): Deleted.
4305 ([test] symbol-at-point.1 .. symbol-at-point.14): Renamed form
4306 fancy-symbol-names and split up into smaller peices.
4307 (slime-test-symbols): New.
4308 (slime-check-symbol-at-point): Renamed from
4309 slime-check-fancy-symbol-name.
4310
4311 2009-06-21 Helmut Eller <heller@common-lisp.net>
4312
4313 * swank-backend.lisp (frame-source-location): Renamed from
4314 frame-source-location-for-emacs.
4315
4316 2009-06-20 Helmut Eller <heller@common-lisp.net>
4317
4318 * slime.el (slime-check-fancy-symbol-name): Don't update the loop
4319 index inside the loop body.
4320
4321 2009-06-20 Helmut Eller <heller@common-lisp.net>
4322
4323 * swank-openmcl.lisp (emacs-connected): Deleted. Setting
4324 ccl::*interactive-abort-process* doesn't seem right.
4325
4326 2009-06-15 Helmut Eller <heller@common-lisp.net>
4327
4328 * swank-openmcl.lisp: Explicitly require CCL version 1.3.
4329
4330 2009-06-15 Helmut Eller <heller@common-lisp.net>
4331
4332 * swank-openmcl.lisp (emacs-inspect [t]): Honor the type returned
4333 by inspector::line-n.
4334 (emacs-inspect [compiled-lexical-closure]): Deleted. Let CCL's
4335 inpector handle this case. Which does it better and it's less work
4336 for us.
4337
4338 2009-06-14 Helmut Eller <heller@common-lisp.net>
4339
4340 Some workarounds for SBCL on Windows.
4341
4342 * swank-sbcl.lisp (input-available-p): New function.
4343 (wait-for-input): Use it.
4344 ([win32] handle-listen, has-buffered-input-p): New.
4345 (temp-file-name, tempnam): Plain tmpnam(3) is next to useless on
4346 Windows use tempnam(3) instead.
4347
4348 2009-06-12 Geo Carncross <geocar@gmail.com>
4349
4350 * swank-ecl.lisp: Support new environment changes in recent ECL/CVS
4351 patch largely from ECL maintainer.
4352
4353 2009-06-11 Tobias C. Rittweiler <tcr@freebits.de>
4354
4355 * slime.el ([test] font-lock-magic): Moved to fontifying-fu contrib.
4356
4357 2009-06-05 Helmut Eller <heller@common-lisp.net>
4358
4359 Don't clutter compiler messages with source positions. Especially
4360 stuff like "In an anonymous lambda form inside an anonymous lambda
4361 form inside an anonymous lambda form inside FOO: Undeclared free
4362 variable X" is not helpful.
4363
4364 * swank-openmcl.lisp (compiler-warning-short-message): New GF.
4365 (handle-compiler-warning): Use it.
4366
4367 (disassemble-frame): Print current PC.
4368
4369 2009-06-04 Helmut Eller <heller@common-lisp.net>
4370
4371 * slime.el (slime-dispatch-event [:emacs-rex]): Don't clutter
4372 the main code-path with confusing error handling.
4373
4374 2009-06-04 Helmut Eller <heller@common-lisp.net>
4375
4376 * swank-openmcl.lisp (*known-processes*, mailbox): Use a weak
4377 hashtable to plug the memory leak.
4378
4379 2009-05-28 Tobias C. Rittweiler <tcr@freebits.de>
4380
4381 * slime.el (def-slime-test): Forgot to remove debugging code.
4382
4383 2009-05-28 Tobias C. Rittweiler <tcr@freebits.de>
4384
4385 * slime.el (slime-dispatch-event :emacs-rex): Make sure that we
4386 pop the continuation on erroneous send.
4387
4388 Patch by Mark Cox <markcox80@gmail.com>.
4389
4390 2009-05-28 Tobias C. Rittweiler <tcr@freebits.de>
4391
4392 * swank.lisp (tokenize-symbol-thoroughly): Make it work correctly
4393 on escaped symbols.
4394
4395 2009-05-28 Tobias C. Rittweiler <tcr@freebits.de>
4396
4397 * slime.el (slime-disconnect): Now only disconnects one
4398 connection, current one by default, or given by argument.
4399 (slime-disconnect-all): New. What `slime-disconnect' was before.
4400 (def-slime-test): Changed: expected failures are now given
4401 by (:fails-for ...) clauses. Extended: new clause (:style ...) to
4402 have a test run only on a certain communication style. Updated
4403 existing test cases accordingly.
4404 ([struct] slime-test): New slot `skipped'.
4405 (slime-skipped-tests): New var.
4406 (slime-execute-tests): Adapted accordingly.
4407 ([test] disconnect): Renamed to `disconnect-and-reconnect'
4408 ([test] disconnect-one-connection): New.
4409
4410 Adapted from patch by Stas Boukarev.
4411
4412 2009-05-24 Tobias C. Rittweiler <tcr@freebits.de>
4413
4414 * slime.el ([test] fancy-symbol-names): Add cases involving #|
4415 ... |# style comments. Currently failing.
4416
4417 Reported by Madhu.
4418
4419 2009-05-24 Tobias C. Rittweiler <tcr@freebits.de>
4420
4421 * slime.el (slime-goto-location-position): Only go to
4422 match-beginning if search succeeded.
4423
4424 Patch by Madhu.
4425
4426 2009-05-23 Helmut Eller <heller@common-lisp.net>
4427
4428 * swank-openmcl.lisp (break-in-sldb): Honor *break-on-signals*.
4429 That means that we can't use SIGNAL here and we have to invoke
4430 SLDB directly.
4431 (condition-for-break): New helper.
4432 Reported by Bill St. Clair.
4433
4434 2009-05-19 Tobias C. Rittweiler <tcr@freebits.de>
4435
4436 * slime.el (slime-symbol-at-point): Sometimes we can be too good,
4437 e.g. in "|# (defun foo () (getf" the above would return nil
4438 because the vertical bar is not terminated. The user probably
4439 wants "getf" nontheless.
4440
4441 Reported by Madhu.
4442
4443 2009-05-19 Tobias C. Rittweiler <tcr@freebits.de>
4444
4445 * slime.el (sldb-restartable-frame-line-face): Set a default value.
4446 (sldb-frame-restartable-p): New.
4447 (sldb-compute-frame-face): Use it.
4448 (sldb-show-frame-details): Use it, too.
4449
4450 2009-05-19 Nikodemus Siivola <nikodemus@random-state.net>
4451
4452 * swank-source-path-parser.lisp (read-and-record-source-map):
4453 ignore errors during the call to READ, so that we don't the
4454 current version of the form we are looking at contains eg.
4455 uninternable symbols.
4456
4457 2009-05-19 Helmut Eller <heller@common-lisp.net>
4458
4459 * swank-openmcl.lisp (source-note-to-source-location): Always
4460 test *temp-file-map* first, because the temp-file might actually
4461 exist during compilation but no longer when Emacs tries to open
4462 it.
4463 (slime-goto-location-buffer): Don't create buffers for
4464 non-existent files.
4465
4466 2009-05-18 Nikodemus Siivola <nikodemus@random-state.net>
4467
4468 * slime.el (slime-description-autofocus): New variable.
4469 (slime-show-description): Use it to decide if description
4470 buffers should receive focus automatically.
4471 * doc/slime.texi: Document it.
4472
4473 2009-05-17 Tobias C. Rittweiler <tcr@freebits.de>
4474
4475 * slime.el (slime-dispatch-event): New event
4476 `:read-from-minibuffer'.
4477 (slime-read-from-minibuffer-for-swank): New.
4478
4479 * swank.lisp (dispatch-event): Pass through :read-from-minibuffer
4480 event.
4481 (read-from-minibuffer-in-emacs): Now uses new event rather than
4482 eval-in-emacs.
4483
4484 2009-05-17 Helmut Eller <heller@common-lisp.net>
4485
4486 * swank-openmcl.lisp (compile-temp-file): Remove backward
4487 compatibility code.
4488 (eval-in-frame, frame-source-location-for-emacs)
4489 (return-from-frame, restart-frame)
4490 (disassemble-frame, xref-locations): Simplify.
4491 (list-callers): Use ccl::caller-functions which gives us more precise
4492 src-locs than ccl::callers.
4493 (canonicalize-location, remove-filename-quoting)
4494 (maybe-method-location): Deleted. No longer used.
4495 (who-specializes): Simplify.
4496
4497 2009-05-17 Helmut Eller <heller@common-lisp.net>
4498
4499 More precise compiler-message location.
4500
4501 * swank-openmcl.lisp (handle-compiler-warning): Use the
4502 source-note slot of the condition as source location, which is
4503 more precise than the stream-position slot.
4504 (compiler-warning-severity): New function. The distinction between
4505 warning and style-warning is rather arbitrary but let's try it.
4506 (swank-compile-file): Pass the external-format arg down to
4507 compile file.
4508 (*buffer-name*, *buffer-offset*, condition-source-position):
4509 Deleted. No longer used.
4510
4511 2009-05-16 Helmut Eller <heller@common-lisp.net>
4512
4513 Minor refactoring.
4514
4515 * swank-openmcl.lisp (call/frame, with-frame): New macro.
4516 (frame-visible-variables): New helper.
4517 (frame-var-value, frame-locals, disassemble-frame): Use it.
4518 (frame-catch-tags): Removed. Way to much code for such a rarely
4519 used function.
4520
4521 2009-05-16 Helmut Eller <heller@common-lisp.net>
4522
4523 * swank-openmcl.lisp (swank-compile-string): Store the source
4524 code, by setting CCL:*SAVE-SOURCE-LOCATIONS* to T, for better
4525 disassembler output.
4526 (function-source-location): Remove the old pre-1.3 version.
4527
4528 * swank.lisp (sldb-bitvector-pprint): Oops, all bits are true.
4529
4530 2009-05-16 Tobias C. Rittweiler <tcr@freebits.de>
4531
4532 * slime.el (slime-current-parser-state): Do not save
4533 match-data. This function is called so often that it makes a
4534 difference.
4535
4536 2009-05-16 Helmut Eller <heller@common-lisp.net>
4537
4538 * swank.lisp (*sldb-pprint-dispatch-table*): Be careful when
4539 calling WRITE recursively: set :circle to nil which avoids
4540 interference with cycle-detection.
4541 (escape-string): New helper function.
4542 (*backtrace-pprint-dispatch-table*): Use it.
4543
4544 2009-05-15 Tobias C. Rittweiler <tcr@freebits.de>
4545
4546 * swank-allegro.lisp (swank-compile-string): Forgot to remove old
4547 definition in changeset 2009-05-12.
4548
4549 Patch by Stelian Ionescu.
4550
4551 2009-05-15 Tobias C. Rittweiler <tcr@freebits.de>
4552
4553 Move font-lock-magic into contrib/slime-fontifying-fu.el.
4554
4555 * slime.el (slime-highlight-suppressed-forms),
4556 (slime-reader-conditional-face),
4557 (slime-search-suppressed-forms-internal),
4558 (slime-search-suppressed-forms),
4559 (slime-search-directly-preceding-reader-conditional),
4560 (slime-extend-region-for-font-lock),
4561 (slime-compute-region-for-font-lock),
4562 (slime-activate-font-lock-magic): Moved.
4563
4564 2009-05-15 Tobias C. Rittweiler <tcr@freebits.de>
4565
4566 Rewrote some parts of the font-lock-magic in face of its fragility
4567 over the last days. Hopefully it'll be better now.
4568
4569 * slime.el (slime-region-for-tlf-at-point): Removed. Not needed
4570 anymore.
4571 (slime-region-for-extended-tlf-at-point): Removed.
4572 (slime-search-backward-reader-conditional): Removed.
4573 (slime-search-directly-preceding-reader-conditional):
4574 New. Similiar to the above.
4575 (slime-extend-region-for-font-lock): Display bug message when
4576 error is caught.
4577 (slime-compute-region-for-font-lock): Rewritten.
4578 ([test] font-lock-magic): Another test case.
4579
4580 2009-05-14 Tobias C. Rittweiler <tcr@freebits.de>
4581
4582 * slime.el (slime-region-for-tlf-at-point): Use
4583 `(end-of-defun) (backward-sexp)' rather than
4584 `(end-of-defun) (beginning-of-defun' to go to the start of the
4585 current defun. The latter would fail on "() (a\nb\nc)".
4586
4587 2009-05-14 Tobias C. Rittweiler <tcr@freebits.de>
4588
4589 * slime.el (slime-compute-region-for-font-lock): Fix typo.
4590
4591 2009-05-13 Tobias C. Rittweiler <tcr@freebits.de>
4592
4593 * slime.el (slime-search-suppressed-forms): On errors, we have to
4594 continue the search, otherwise there's a chance that we miss
4595 reader conditionals in the current font-lock region.
4596 (slime-search-backward-reader-conditional): New. Extracted from
4597 `slime-region-for-extended-tlf-at-point'.
4598 (slime-region-for-extended-tlf-at-point): Use it.
4599 (slime-font-lock-region): Removed.
4600 (slime-font-lock-region-changed-p): Removed.
4601 (slime-extend-region-for-font-lock): Simplified.
4602 (slime-compute-region-for-font-lock): Make sure that we never
4603 return a flag indicating change when there was in fact no
4604 change. This should make the explicit guard against infinite loop
4605 superfluous.
4606 (slime-extend-region-warn-infinite-loop): Removed.
4607 ([test] font-lock-magic): More cases.
4608
4609 2009-05-12 Tobias C. Rittweiler <tcr@freebits.de>
4610
4611 Make font-lock-magic test case pass.
4612
4613 * slime.el (slime-bug): New function.
4614 (slime-search-suppressed-forms): Use it.
4615 (slime-extend-region-warn-infinite-loop): Ditto.
4616 (slime-search-suppressed-forms-internal): Check whether we're
4617 inside a comment, or a string.
4618 ([test] font-lock-magic): Add another case.
4619
4620 2009-05-12 Tobias C. Rittweiler <tcr@freebits.de>
4621
4622 Highlight reader-errors in the source buffers on Allegro.
4623
4624 * swank-allegro.lisp (*temp-file-header-end-position*): New
4625 variable.
4626 (call-with-compilation-hooks): Handle reader errors.
4627 (handle-compiler-warning): Adapt it accordingly.
4628 (location-for-reader-error): New.
4629 (compile-from-temp-file): Now takes a header argument explicitly
4630 so we can hold of the actual offset of the string we want to
4631 compile. This is needed to translate back file-positions reported
4632 in reader-errors.
4633 (swank-compile-string, swank-compile-file): Adapted accordingly.
4634
4635 2009-05-12 Tobias C. Rittweiler <tcr@freebits.de>
4636
4637 * swank-allegro.lisp (find-topframe): Hide SWANK related cruft
4638 from showing up in backtraces in SLDB.
4639
4640 2009-05-12 Tobias C. Rittweiler <tcr@freebits.de>
4641
4642 * slime.el (slime-display-warning): Add `warning' as warning type.
4643 (slime-show-note-counts): If compilation failed, fontify the
4644 message in red to be more visibly apparant.
4645
4646 2009-05-11 Tobias C. Rittweiler <tcr@freebits.de>
4647
4648 (slime-eval-feature-expression): Guard for more erroneous
4649 input (due to refontification while user's typing.)
4650
4651 2009-05-10 Helmut Eller <heller@common-lisp.net>
4652
4653 * slime.el ([test] font-lock-magic): Add some hard cases.
4654
4655 2009-05-10 Tobias C. Rittweiler <tcr@freebits.de>
4656
4657 * slime.el (slime-compute-region-for-font-lock): Fix typo.
4658
4659 2009-05-10 Tobias C. Rittweiler <tcr@freebits.de>
4660
4661 Font-lock magic barfed on #+(test).
4662
4663 * slime.el (slime-eval-feature-conditional): Renamed to
4664 `slime-eval-feature-expression'.
4665 (slime-unknown-feature-expression): New error symbol.
4666 (slime-eval-feature-expression): Signal it.
4667 (slime-search-suppressed-forms): Catch it.
4668 (slime-compute-region-for-font-lock): Guard against unbalanced
4669 parentheses.
4670 (slime-initialize-lisp-buffer-for-test-suite): New helper.
4671 ([test] font-lock-magic): New test case.
4672
4673 Reported by Kalyanov Dmitry.
4674
4675 2009-05-09 Tobias C. Rittweiler <tcr@freebits.de>
4676
4677 * swank-source-file-cache.lisp (read-snippet-from-string): New.
4678
4679 * swank-sbcl.lisp (source-hint-snippet): Use it.
4680 (emacs-buffer-source-location): Use it, too.
4681 (string-path-snippet): Ditto. Additionally: Make sure the returned
4682 string is truncated by *SOURCE-SNIPPET-SIZE*.
4683
4684 2009-05-08 Tobias C. Rittweiler <tcr@freebits.de>
4685
4686 * slime.el (slime-search-suppressed-forms-internal): Not properly
4687 factored out by earlier changeset.
4688
4689 2009-05-08 Tobias C. Rittweiler <tcr@freebits.de>
4690
4691 * swank.lisp (read-from-minibuffer-in-emacs): New.
4692 ([struct] istate): Add METADATA-PLIST slot.
4693 (ensure-istate-metadata): New. To attach arbitrary metadata to an
4694 inspector page.
4695 (inspect-object): Adapted so methods on EMACS-INSPECT can look at
4696 *ISTATE*.
4697
4698 2009-05-08 Tobias C. Rittweiler <tcr@freebits.de>
4699
4700 #+#.foo confused the recent fontification changes. Fix that.
4701
4702 * slime.el (slime-search-suppressed-forms-internal): New. Split
4703 from `slime-search-suppressed-forms'.
4704 (slime-search-suppressed-forms): Catch `invalid-read-syntax'
4705 errors.
4706
4707 2009-05-01 Tobias C. Rittweiler <tcr@freebits.de>
4708
4709 * slime.el (slime-line-number-at-pos): Replaced with
4710 `line-number-at-pos', and add that to the portability layer.
4711 (display-warning): Add to the portability layer.
4712 (slime-display-warning): New.
4713
4714 * slime.el: Implement a guard against infinite loops during
4715 fontification. We detect and prevent those. If we detect one, we
4716 emit a big warning to the user.
4717
4718 (slime-font-lock-region): New variable.
4719 (slime-font-lock-region-changed-p): New helper.
4720 (slime-extend-region-warn-infinite-loop): New helper.
4721 (slime-compute-region-for-font-lock): Extracted from
4722 `slime-extend-region-for-font-lock'.
4723 (slime-extend-region-for-font-lock): Use it; add the guard.
4724
4725 2009-04-30 Tobias C. Rittweiler <tcr@freebits.de>
4726
4727 * swank-abcl.lisp: Really commit Vodonosov's patch from
4728 2009-03-09.
4729
4730 2009-04-30 Tobias C. Rittweiler <tcr@freebits.de>
4731
4732 * swank-backend.lisp ([default] declaration-arglist): Add
4733 arglist of DECLARATION declaration.
4734
4735 * swank-openmcl.lisp ([eql 'optimize] declaration-arglist):
4736 Implement it for CCL.
4737 (describe-symbol-for-emacs): Add :TYPE.
4738 (describe-definition): Add :TYPE.
4739
4740 Adapted from patch by Stas Boukarev.
4741
4742 2009-04-29 Tobias C. Rittweiler <tcr@freebits.de>
4743
4744 * slime.el (slime-extend-region-for-font-lock): (nth 0
4745 <parser-state>) may return negative numbers.
4746
4747 2009-04-29 Tobias C. Rittweiler <tcr@freebits.de>
4748
4749 * slime.el: Fix infinite loop during fontification introduced
4750 by yesterday's changeset.
4751
4752 (slime-region-for-tlf-at-point): New. Like
4753 `slime-region-for-defun-at-point' but tries harder to get the
4754 toplevel form right.
4755 (slime-region-for-extended-tlf-at-point): Previously
4756 `slime-region-for-extended-defun-at-point'.
4757 (slime-extend-region-for-font-lock): Use it.
4758 (slime-mark-defun-for-font-lock): Ditto.
4759
4760 2009-04-28 Tobias C. Rittweiler <tcr@freebits.de>
4761
4762 * slime.el: Fix fontification of suppressed (by reader
4763 conditionals) forms. That is make it reliably and totally work.
4764
4765 (slime-region-for-extended-defun-at-point): New. Like
4766 `slime-region-for-defun-at-point' but takes preceding reader
4767 conditionals into account.
4768 (slime-extend-region-for-font-lock): New. Make sure that
4769 fontification operates on regions spanning a whole toplevel form
4770 only. So we never operate within the context of a reader
4771 conditional and we never miss any of those.
4772 (slime-search-suppressed-forms): Remove ignore-errors; not needed
4773 anymore now as we extend the region for fontification.
4774 (slime-mark-defun-for-font-lock): New.
4775 (slime-activate-font-lock-magic): Push
4776 `slime-extend-region-for-font-lock' onto
4777 `font-lock-extend-region-functions'.
4778
4779 2009-04-25 Tobias C. Rittweiler <tcr@freebits.de>
4780
4781 * slime.el (slime-show-description): Put the connection name into
4782 the buffer name for description buffers. So we can have multiple
4783 description buffers open, one per connection.
4784
4785 Useful for comparing the output of DISASSEMBLE across
4786 implementations.
4787
4788 2009-04-21 Tobias C. Rittweiler <tcr@freebits.de>
4789
4790 * slime.el (slime-handle-indentation-update): Revert change from
4791 2009-03-09; that was a thinko.
4792 ([test] indentation): Some basic test case for correct indentation.
4793
4794 2009-04-03 Tobias C. Rittweiler <tcr@freebits.de>
4795
4796 * swank-sbcl.lisp (swank-compile-file): Return T for the FAILURE-P
4797 return value in case of a FATAL-COMPILER-ERROR.
4798
4799 Reported by Philipp M. Schäfer
4800
4801 2009-04-03 Tobias C. Rittweiler <tcr@freebits.de>
4802
4803 * slime.el (slime-inspector-mode-map): Remove binding for
4804 M-RET. (It'll be added by the slime-repl contrib.)
4805 (slime-inspector-copy-down): Removed.
4806
4807 2009-03-27 Helmut Eller <heller@common-lisp.net>
4808
4809 * swank.lisp (encode-message): Handle errors during write, e.g.
4810 closed sockets.
4811
4812 2009-03-27 Helmut Eller <heller@common-lisp.net>
4813
4814 * slime.el (slime-setup-contribs): Moved over from
4815 slime-autoloads.el
4816
4817 2009-03-27 Helmut Eller <heller@common-lisp.net>
4818 * swank-openmcl.lisp (toggle-trace): Replace ccl::%trace with
4819 ccl:trace-function.
4820 (kill-thread): Use an implementation that doesn't raise a
4821 serious-conditions.
4822
4823 2009-03-27 Helmut Eller <heller@common-lisp.net>
4824
4825 * slime.el ([test] macroexpand): Fix more case issues.
4826
4827 2009-03-25 Helmut Eller <heller@common-lisp.net>
4828
4829 * slime.el ([test] macroexpand): Ignore case.
4830
4831 2009-03-09 Tobias C. Rittweiler <tcr@freebits.de>
4832
4833 * slime.el (slime-define-channel-type): Indulge in pretty colors.
4834 (slime-define-channel-method): You, too!
4835
4836 (slime-handle-indentation-update): Always put an indentation
4837 update on 'slime-indent; for slime-indentation-fu.
4838
4839 2009-03-09 Anton Vodonosov <avodonosov@yandex.ru>
4840
4841 Use correct encoding and eol conventions for socket streams.
4842
4843 * swank-abcl.lisp (accept-connection): Honor external-format
4844 argument.
4845 (*external-format-to-coding-system*, find-external-format): New.
4846
4847 2009-03-09 Helmut Eller <heller@common-lisp.net>
4848
4849 * slime.el (slime-with-xref-buffer): Use buffer-names like
4850 "*slime xref...*" so that slime-kill-all-buffers can pick
4851 it up easily.
4852
4853 2009-03-09 Helmut Eller <heller@common-lisp.net>
4854
4855 * hyperspec.el (common-lisp-hyperspec-lookup-reader-macro): Use
4856 case-insensitive completion.
4857 (hyperspec-lookup-reader-macro): New alias.
4858 Suggested by Stas Boukarev.
4859
4860 2009-03-09 Helmut Eller <heller@common-lisp.net>
4861
4862 Make fasl-pathname fully customizable not only the direcrory part.
4863
4864 * swank.lisp (*fasl-pathname-function*): New variable.
4865 (*fasl-directory*): Deleted.
4866
4867 2009-03-08 Tobias C. Rittweiler <tcr@freebits.de>
4868
4869 * slime.el (slime-choose-overlay-for-read-error): Extracted and
4870 extended from `slime-choose-overlay-region'. Differentiate between
4871 symbol-related reader-errors (package not found &c) and
4872 character-related reader-errors.
4873 (slime-choose-overlay-region): Use it.
4874
4875 2009-03-08 Tobias C. Rittweiler <tcr@freebits.de>
4876
4877 * slime.el (make-slime-buffer-location, make-slime-file-location):
4878 Do not default to (:hints), but to nil, as expected in the
4879 slime-side source-location machinery.
4880
4881 2009-03-08 Tobias C. Rittweiler <tcr@freebits.de>
4882
4883 * slime.el (slime-choose-overlay-region): Special case :read-error
4884 notes regardless of position kind.
4885
4886 * swank-sbcl.lisp (signal-compiler-condition): Return :READ-ERROR
4887 as severity for reader-errors.
4888 (compiler-note-location): Fix off-by-one when compiling from
4889 buffer.
4890
4891 2009-03-08 Tobias C. Rittweiler <tcr@freebits.de>
4892
4893 * swank-sbcl.lisp (compiling-from-buffer-p),
4894 (compiling-from-file-p)
4895 (compiling-from-generated-code-p): New helpers; extracted from
4896 LOCATE-COMPILER-NOTE.
4897 (locate-compiler-note): Use them.
4898 (compiler-note-location): Use them, too, to handle reader-errors
4899 when compiling from file. This completes 2009-02-27.
4900
4901 Reported by Christian Lynbech.
4902
4903 2009-03-07 Tobias C. Rittweiler <tcr@freebits.de>
4904
4905 * slime.el ([portability] getf): Redefine `getf' on Emacs21 to
4906 work on malformed plists like it does on later Emacsen. This made
4907 the `find-local-definitions' test case fail on Emacs21.
4908
4909 2009-03-04 Tobias C. Rittweiler <tcr@freebits.de>
4910
4911 * slime.el (slime-check-fancy-symbol-name): Use
4912 `slime-test-expect' instead of `slime-check'.
4913 ([test] fancy-symbol-names): Extend test case; check for
4914 "Foo" in #<Foo| {...}>.
4915 (slime-symbol-constituent-at-pos): Check for #<.
4916
4917 2009-03-04 Tobias C. Rittweiler <tcr@freebits.de>
4918
4919 * slime.el (slime-wait-condition): Remove `save-excursion'; it
4920 made the `repl-test' test case fail because this test tries to set
4921 point to the new prompt in vain.
4922
4923 2009-03-03 Helmut Eller <heller@common-lisp.net>
4924
4925 * slime.el (slime-pretty-package-name): Simplify.
4926
4927 2009-03-03 Helmut Eller <heller@common-lisp.net>
4928
4929 Use a separate key, C-c C-d #, to lookup reader-macros.
4930
4931 * hyperspec.el (common-lisp-hyperspec-lookup-reader-macro): New
4932 command.
4933 (common-lisp-hyperspec-reader-macros): New variable.
4934 (common-lisp-hyperspec-reader-macro-at-point): Moved over from
4935 slime.el
4936 * slime.el (slime-doc-bindings): Bind C-c C-d #.
4937 (slime-hyperspec-lookup): Don't consider reader-macros.
4938
4939 2009-03-02 Tobias C. Rittweiler <tcr@freebits.de>
4940
4941 * hyperspec.el (common-lisp-hyperspec-symbols): Add entries for
4942 reader macros even when `common-lisp-hyperspec-symbol-table' is
4943 bound to some value.
4944
4945 2009-02-27 Tobias C. Rittweiler <tcr@freebits.de>
4946
4947 * slime.el ([test] macroexpand): New test case.
4948 (slime-buffer-visible-p): New helper.
4949 (slime-execute-as-command): New helper.
4950
4951 2009-02-27 Tobias C. Rittweiler <tcr@freebits.de>
4952
4953 * hyperspec.el (common-lisp-hyperspec-symbols): Add links to
4954 reader macros.
4955
4956 * slime.el (slime-reader-macro-at-point): New function.
4957 (slime-hyperspec-lookup): Call it.
4958
4959 Adapted from Stas Boukarev.
4960
4961 2009-02-27 Tobias C. Rittweiler <tcr@freebits.de>
4962
4963 * slime.el: Rename `slime-symbol-name-at-point' to
4964 `slime-symbol-at-point'.
4965
4966 2009-02-27 Tobias C. Rittweiler <tcr@freebits.de>
4967
4968 * slime.el ([portability] lisp-mode-syntax-table): On Emacs21,
4969 make @ a prefix character like it's from Emacs22
4970 onward. `slime-symbol-name-at-point' was written with that
4971 assumption.
4972
4973 2009-02-27 Tobias C. Rittweiler <tcr@freebits.de>
4974
4975 * slime.el (slime-current-parser-state): Wrap `syntax-ppss' in a
4976 `save-match-data'. This issue has been reported to the Emacs
4977 maintainers.
4978
4979 2009-02-27 Tobias C. Rittweiler <tcr@freebits.de>
4980
4981 * slime.el (slime-defun-if-undefined),
4982 (slime-defmacro-if-undefined): Renamed to
4983 `slime-DEFUN-if-undefined' and `slime-DEFMACRO-if-undefined' to
4984 better differentiate between the two.
4985
4986 (slime-indulge-pretty-colors): New function. You can now put a
4987 symbol on the plist of `slime-indulge-pretty-colors' to make the
4988 symbol be fontified like `defun'. This is done for
4989 `slime-def-connection-var', and the two symbols above.
4990
4991 2009-02-27 Tobias C. Rittweiler <tcr@freebits.de>
4992
4993 * slime.el (slime-defmacro-if-undefined): New. Analogous to
4994 `slime-defun-if-undefined'.
4995 ([portablity]] with-selected-window) Use it.
4996 ([portability] with-temo-buffer): Likewise.
4997
4998 Patch by Theam Yong Chew.
4999
5000 2009-02-27 Tobias C. Rittweiler <tcr@freebits.de>
5001
5002 C-c C-c on (defun foo () ,bar) did not result in a compiler note
5003 overlay on SBCL.
5004
5005 * swank-sbcl.lisp (compiler-note-location): Make it take a
5006 condition; if the condition is a READER-ERROR, the passed
5007 compiler-error-context is very likely NIL---we have not proceeded
5008 beyond reading, so we aren't within the compiler yet. In that
5009 case, we use the stream position of the stream behind the
5010 READER-ERROR instead.
5011
5012 2009-02-26 Tobias C. Rittweiler <tcr@freebits.de>
5013
5014 * doc/slime.texi: Fix typos, and add keybindings not listed there.
5015
5016 Patch by Stas Boukarev.
5017
5018 2009-02-26 Tobias C. Rittweiler <tcr@freebits.de>
5019
5020 * slime.el (sldb-backward-frame): Only move backward when we're
5021 below the backtrace marker.
5022
5023 2009-02-26 Tobias C. Rittweiler <tcr@freebits.de>
5024
5025 * swank.lisp (debug-in-emacs): Moved (WITH-BINDINGS
5026 *SLDB-PRINTER-BINDINGS* ...), from here...
5027 (sldb-loop): ... to here. Otherwise results from a user doing an
5028 eval-in-frame were truncated.
5029
5030 Reported by Jeff Workman.
5031
5032 2009-02-26 Tobias C. Rittweiler <tcr@freebits.de>
5033
5034 * swank.lisp (hash-table-to-alist): New function.
5035 ([method] emacs-inspect (hash-table)): Sort keys if they're all
5036 numbers, symbols, or strings.
5037
5038 Adapted from Willem Broekema.
5039
5040 2009-02-26 Tobias C. Rittweiler <tcr@freebits.de>
5041
5042 * swank-backend.lisp (warn-unimplemented-interfaces):
5043 Bind *PRINT-PRETTY* to T. Otherwise no sugar formatting on CCL.
5044
5045 2009-02-26 Tobias C. Rittweiler <tcr@freebits.de>
5046
5047 * slime.el (slime-pretty-package-name): Signalled an error on
5048 simple symbols; fix that!
5049
5050 Reported by Geoff Wozniak.
5051
5052 2009-02-26 Tobias C. Rittweiler <tcr@freebits.de>
5053
5054 * slime.el (slime-current-form-path): Use
5055 `slime-current-parser-state'.
5056
5057 2009-02-26 Tobias C. Rittweiler <tcr@freebits.de>
5058
5059 * slime.el ([test] fancy-symbol-names): New, hopefully
5060 comprehensive, test for funky symbol names.
5061 (slime-check-fancy-symbol-name): Helper.
5062 (slime-exit-vertical-bars): New function to move out from |foo|.
5063 (slime-symbol-constituent-at): New predicate to test whether the
5064 character at point is a valid symbol constituent.
5065 (slime-beginning-of-symbol, slime-end-of-symbol): Rewritten using
5066 above two functions and `forward-sexp' that correctly parses
5067 escapes etc.
5068 (slime-sexp-at-point): Consider thing at point a symbol first.
5069
5070 2009-02-24 Tobias C. Rittweiler <tcr@freebits.de>
5071
5072 * slime.el (slime-forward-cruft): Forward whitespace, reader
5073 conditonals, comments. Splitted from `slime-forward-sexp'.
5074 (slime-pretty-package-name): Use it.
5075
5076 2009-02-24 Tobias C. Rittweiler <tcr@freebits.de>
5077
5078 Re-checkin my change from 2009-02-14. It seems I didn't actually
5079 commit it.
5080
5081 2009-02-22 Tobias C. Rittweiler <tcr@freebits.de>
5082
5083 `M-x slime-format-string-expand' displays the expansion of a
5084 format string.
5085
5086 * slime.el (slime-string-at-point) New.
5087 (slime-string-at-point-or-error): New.
5088 (slime-format-string-expand): New; use them.
5089
5090 * swank-backend.lisp (format-string-expand): New interface.
5091 * swank.lisp (swank-format-string-expand): New; use it.
5092
5093 2009-02-17 Helmut Eller <heller@common-lisp.net>
5094
5095 * swank.lisp (dispatch-event [:emacs-rex]): Reply a :invalid-rpc
5096 message if the specified thread doesn't exist.
5097 * slime.el (slime-dispatch-event): Handle :invalid-rpc.
5098 (slime-init-connection-state): Bind slime-current-thread
5099 to avoid problems with dead threads.
5100
5101 2009-02-14 Tobias C. Rittweiler <tcr@freebits.de>
5102
5103 * slime.el (slime-reader-conditionals-regexp): New variable. Taken
5104 from `slime-forward-reader-conditional'.
5105 (slime-pretty-package-name): Fix modeline display for buffer
5106 containing forms like (in-package "#+foo :A #-foo :B"). Also do
5107 not call `read' on the name; the function does not need to return
5108 a symbol, and `read' may choke on non-elisp syntax.
5109
5110 2009-02-14 Helmut Eller <heller@common-lisp.net>
5111
5112 Don't signal conditions in interrupt handler to
5113 avoid problems with naive code like
5114 (handler-case foo (condition bar))
5115
5116 * swank-backend.lisp (*interrupt-queued-handler*): Use a dynamic
5117 variable instead.
5118 (slime-interrupt-queued): Deleted.
5119 * swank-cmucl.lisp, swank.lisp: Ditto.
5120
5121 2009-02-14 Helmut Eller <heller@common-lisp.net>
5122
5123 * slime.el (slime-restart-or-init-modeline-update-timer): Don't
5124 run the timer repeatedly.
5125 (slime-change-directory): Also change the directory in the
5126 connection-buffer.
5127
5128 2009-02-11 Tobias C. Rittweiler <tcr@freebits.de>
5129
5130 * slime.el (slime-current-tlf, slime-current-form-path): New
5131 functions; can be handy when inspecting source-locations while
5132 debugging M-.
5133
5134 2009-02-11 Tobias C. Rittweiler <tcr@freebits.de>
5135
5136 * slime.el: Barf if emacs-major-version <= 20. We support 21 and up.
5137 (slime-emacs-20-p): Removed.
5138
5139 * slime.el (slime-forward-reader-comment): Removed.
5140 (slime-forward-any-comment): New; superset of above.
5141 (slime-forward-reader-conditional): Make it understand SBCL's
5142 #!+,#!- so it works in source files of SBCL itself, too.
5143 (slime-current-parser-state): New.
5144
5145 2009-02-07 Tobias C. Rittweiler <tcr@freebits.de>
5146
5147 In Xref, list IR1-conversion functions with :DEF-IR1-TRANSLATOR as
5148 prefix rather than DEFUN. (Test case: M-. on FUNCTION.)
5149
5150 * swank-sbcl.lisp (definition-specifier): New function.
5151 (make-dspec): New function. Splitted from
5152 MAKE-SOURCE-LOCATION-SPECIFICATION.
5153
5154 2009-02-07 Tobias C. Rittweiler <tcr@freebits.de>
5155
5156 * slime.el (slime-initialize-macroexpansion-buffer): Clear the
5157 buffer-undo-list, so the user can't get expansions from earlier
5158 macroexpansions into the buffer, screwing up badly.
5159
5160 2009-01-30 Tobias C. Rittweiler <tcr@freebits.de>
5161
5162 * swank-clisp.lisp (fspec-location): Fix creation of source-location.
5163
5164 Patch by Carsten Blaauw.
5165
5166 2009-01-30 Geo Carncross <geocar@gmail.com>
5167
5168 * swank-ecl.lisp (grovel-docstring-for-arglist): Fix for arglist
5169 that reads, but isn't a list
5170
5171 2009-01-27 Tobias C. Rittweiler <tcr@freebits.de>
5172
5173 * swank-backend.lisp (with-symbol): New function, to be used with #+.
5174
5175 * swank-sbcl.lisp: Use WITH-SYMBOL and get rid of SBCL-WITH-SYMBOL.
5176
5177 * swank-openmcl.lisp (macroexpand-all): Implement it.
5178
5179 Patch by Stas Boukarev.
5180
5181 2009-01-23 Tobias C. Rittweiler <tcr@freebits.de>
5182
5183 * slime.el (slime-editing-keys): New variable; splitted from
5184 `slime-keys'. Contains key bindings that are useful for buffers
5185 where users can edit s-exprs, such as source buffers and the REPL.
5186 (slime-keys): Use it.
5187
5188 2009-01-17 Tobias C. Rittweiler <tcr@freebits.de>
5189
5190 Fix C-u C-c C-c in SLDB.
5191
5192 * slime.el (sldb-recompile-frame-source): sind
5193 `slime-compilation-policy' at the right place.
5194
5195 2009-01-15 Martin Simmons <martin@lispworks.com>
5196
5197 * swank-lispworks.lisp: wrapper functions for swank-mop
5198 slot-boundp-using-class, slot-value-using-class and
5199 slot-makunbound-using-class to account for MOP differences.
5200
5201 2009-01-16 Helmut Eller <heller@common-lisp.net>
5202
5203 * slime.el (slime-keys): Put C-c C-i and M-* back.
5204
5205 2009-01-16 Helmut Eller <heller@common-lisp.net>
5206
5207 * swank.lisp (pprint-eval): Also return the output produced during
5208 evaluation.
5209
5210 2009-01-16 Helmut Eller <heller@common-lisp.net>
5211
5212 * swank-openmcl.lisp (break-in-sldb): Display the argument.
5213
5214 2009-01-16 Helmut Eller <heller@common-lisp.net>
5215
5216 * swank-backend.lisp (warn-unimplemented-interfaces): Print the
5217 names with pprint-fill.
5218
5219 2009-01-10 Helmut Eller <heller@common-lisp.net>
5220
5221 * swank-openmcl.lisp (install-debugger-globally): Set *break-in-sldb*.
5222
5223 2009-01-10 Tobias C. Rittweiler <tcr@freebits.de>
5224
5225 * swank.lisp (do-symbols*): Wrap body in TAGBODY.
5226
5227 2009-01-10 Helmut Eller <heller@common-lisp.net>
5228
5229 * slime.el (slime-compile-file-options): New variable.
5230 (slime-compile-file): Use it.
5231
5232 2009-01-10 David Reitter <david.reitter@gmail.com>
5233
5234 * slime.el (slime-space): Declare `slime-space' to
5235 `delete-selection-mode' and friends (CUA) so that their behavior
5236 is the same as with normal insertion of a space.
5237
5238 2009-01-10 Helmut Eller <heller@common-lisp.net>
5239
5240 * swank-backend.lisp (swank-compile-file): Take output-file as
5241 additional argument. Update backends accordingly.
5242
5243 * swank.lisp (*fasl-directory*): New variable.
5244 (fasl-pathname): New function.
5245 (compile-file-for-emacs): Use it.
5246
5247 2009-01-10 Helmut Eller <heller@common-lisp.net>
5248
5249 * swank-backend.lisp (set-default-initial-binding): New function.
5250
5251 * swank.lisp (setup-stream-indirection): Use it
5252
5253 2009-01-09 Helmut Eller <heller@common-lisp.net>
5254
5255 * swank-allegro.lisp (swank-compile-string): Don't use the
5256 no-longer-existing directory argument.
5257
5258 2009-01-08 Helmut Eller <heller@common-lisp.net>
5259
5260 * slime.el: Move the tree widget for compiler notes to contrib/.
5261
5262 2009-01-08 Helmut Eller <heller@common-lisp.net>
5263
5264 * swank-backend.lisp (swank-compile-string): Pass the
5265 buffer-file-name to Lisp, not only the directory.
5266 Update callers accordingly.
5267 * slime.el ([test] arglist): Update arglist.
5268
5269 2009-01-08 Helmut Eller <heller@common-lisp.net>
5270
5271 * slime.el (slime-popup-restore-data): Renamed from
5272 slime-popup-buffer-restore-info.
5273 (slime-popup-buffer-saved-fingerprint)
5274 (slime-popup-buffer-saved-emacs-snapshot)
5275 (slime-popup-buffer-snapshot-unchanged-p)
5276 (slime-popup-buffer-restore-snapshot)
5277 (slime-xref-quit, slime-xref-retract): Deleted.
5278
5279 2009-01-08 Helmut Eller <heller@common-lisp.net>
5280
5281 Remove some customization variables of questionale use.
5282
5283 * slime.el (slime-when-complete-filename-expand)
5284 (slime-space-information-p, slime-display-compilation-output)
5285 (sldb-show-location-recenter-arg, slime-recenter-window)
5286 (slime-display-buffer-region): Deleted.
5287
5288 2009-01-07 Helmut Eller <heller@common-lisp.net>
5289
5290 Just use find-tag-marker-ring as stack for M-.
5291
5292 * slime.el (slime-push-definition-stack)
5293 (slime-pop-find-definition-stack): Do whatever Emacs's standard
5294 find-tag commands do.
5295
5296 2009-01-07 Helmut Eller <heller@common-lisp.net>
5297
5298 Fix the slime-next-location command.
5299
5300 * slime.el (slime-xref-last-buffer): New variable.
5301 (slime-show-xrefs): Initialize it.
5302 (slime-goto-next-xref): Use it.
5303 (slime-search-property): New function.
5304 (slime-xref-buffer): Delted
5305
5306 2009-01-07 Helmut Eller <heller@common-lisp.net>
5307
5308 * swank.lisp (*sldb-pprint-dispatch-table*): Honor *print-escape*
5309
5310 2009-01-07 Helmut Eller <heller@common-lisp.net>
5311
5312 * swank-cmucl.lisp (frame-locals, frame-debug-vars): Remove
5313 non-valid variables.
5314 (debug-var-value): Compute the location from the frame arg.
5315
5316 2009-01-07 Helmut Eller <heller@common-lisp.net>
5317
5318 * swank-source-path-parser.lisp (make-source-recorder)
5319 (source-path-source-position): Adjust the file-position before
5320 entering it in the table.
5321
5322 2009-01-07 Helmut Eller <heller@common-lisp.net>
5323
5324 * slime.el (slime-with-xref-buffer): Don't set
5325 slime-popup-buffer-quit-function. Use the default. Don't shrink
5326 the window because it may have existed before creating the buffer
5327 and we need to restore it.
5328 (slime-goto-xref): Just use slime-popup-buffer-quit.
5329 (slime-edit-definition-cont): Push definition stack here so that
5330 we don't need to do anything special in slime-goto-xref.
5331 (slime-display-popup-buffer): Also save the buffer that the popup
5332 window was displaying before (if the window is not new).
5333 (slime-close-popup-window): Restore the old buffer (if any) of the
5334 popup window.
5335
5336 2009-01-07 Helmut Eller <heller@common-lisp.net>
5337
5338 * slime.el (slime-show-buffer-position): Use reposition-window.
5339
5340 2009-01-07 Helmut Eller <heller@common-lisp.net>
5341
5342 * slime.el (slime-keys): Remove the binding for C-c C-i. M-TAB
5343 can also be pressed with M-C-i which is probably not taken
5344 by the window manager. ESC TAB would also work. Maybe we
5345 should reuse C-c C-i for slime-inspect.
5346 Move C-c C-y to slime-repl.e.
5347 Remove C-c C-f: it's already on C-c C-d f.
5348 Remove C-c M-0: slime-restore-window-configuration doesn't exist.
5349 Remove M-g: slime-quit doesn't work since ages.
5350
5351 2009-01-05 Helmut Eller <heller@common-lisp.net>
5352
5353 Create a compilation-log buffer so that next-error works but
5354 don't display the buffer.
5355
5356 * slime.el (slime-create-compilation-log): New function.
5357 (slime-compilation-finished-hook): Use it.
5358
5359 2009-01-05 Helmut Eller <heller@common-lisp.net>
5360
5361 Use keymap inheritance to share bindings in various modes.
5362
5363 * slime.el (slime-parent-map): New keymap.
5364 (slime-mode-map, slime-popup-buffer-mode-map, sldb-mode-map)
5365 (slime-inspector-mode-map): Use it.
5366 (slime-parent-bindings, slime-prefix-bindings): New variables.
5367 (slime-prefix-key, slime-define-key): Deleted.
5368
5369 Update contribs accordinly.
5370
5371 2009-01-05 Helmut Eller <heller@common-lisp.net>
5372
5373 * slime.el (slime-with-popup-buffer): New argment: select.
5374 If nil (default) buffer will only be displayed but not selected.
5375
5376 2009-01-05 Helmut Eller <heller@common-lisp.net>
5377
5378 * slime.el (slime-show-compilation-log): Insert two lines at
5379 the beginning. Emacs 21 seems to skip over those two.
5380
5381 2009-01-05 Tobias C. Rittweiler <tcr@freebits.de>
5382
5383 * swank-sbcl.lisp (function-arglist):
5384 SB-INTROSPECT:FUNCTION-ARGLIST is deprecated in bleeding edge sbcl.
5385
5386 2009-01-05 Tobias C. Rittweiler <tcr@freebits.de>
5387
5388 Do not truncate error messages in SLDB.
5389
5390 * swank.lisp (*sldb-bitvector-length*): Like *PRINT-LENGTH* for
5391 bit-vectors.
5392 (*sldb-string-length*): Likewise for strings.
5393 (*sldb-pprint-dispatch-table*): Truncate bit-vectors / strings
5394 according to the above variables.
5395 (*sldb-printer-bindings*): Use the new variables. Bind
5396 *PRINT-LINES* to NIL so error messages are not truncated.
5397
5398 2009-01-04 Helmut Eller <heller@common-lisp.net>
5399
5400 Make it possible to limit the number of displayed restarts.
5401
5402 * slime.el (sldb-initial-restart-limit)
5403 (sldb-insert-more-restarts): New.
5404 (sldb-setup, sldb-insert-restarts): Use it.
5405
5406 2009-01-04 Helmut Eller <heller@common-lisp.net>
5407
5408 * slime.el (slime-local-variable-p): New function. XEmacs requires
5409 two arguments.
5410
5411 2009-01-04 Helmut Eller <heller@common-lisp.net>
5412
5413 * swank-cmucl.lisp (note-error-location): If possible, include the
5414 filename.
5415 * slime.el (slime-goto-location-position): Add :eof as position
5416 kind.
5417
5418 2009-01-03 Helmut Eller <heller@common-lisp.net>
5419
5420 * slime.el (slime-goto-location-buffer): Don't goto point-min.
5421 (slime-check-location-buffer-name-sanity)
5422 (slime-check-location-filename-sanity): Separated from
5423 slime-goto-location-buffer.
5424 (slime-line-number-at-pos): New compatibility function.
5425
5426 2009-01-03 Helmut Eller <heller@common-lisp.net>
5427
5428 By default, show compiler notes in a buffer with compilation-mode.
5429
5430 * slime.el (slime-show-compilation-log)
5431 (slime-maybe-show-compilation-log): New functions,
5432 (slime-compilation-finished-hook): Change the default value
5433 to 'slime-maybe-show-compilation-log.
5434
5435 2009-01-03 Helmut Eller <heller@common-lisp.net>
5436
5437 * swank.lisp (simple-serve-requests, make-repl-input-stream):
5438 Move the call to WITH-CONNECTION to the input stream to pick up
5439 stream redirections.
5440
5441 2009-01-03 Helmut Eller <heller@common-lisp.net>
5442
5443 * swank-clisp.lisp (wait-for-input): Disable it for win32.
5444
5445 2009-01-02 Helmut Eller <heller@common-lisp.net>
5446
5447 Experimental implementation of "channels".
5448 The idea is to support arbitrary protocols without
5449 changes to the low level event dispatcher.
5450
5451 * slime.el (slime-make-channel, slime-close-channel)
5452 (slime-channel-send, slime-send-to-remote-channel): New functions.
5453 (slime-define-channel-type, slime-define-channel-method): New
5454 macros.
5455 (slime-dispatch-event): Support channel events.
5456 * swank.lisp (channel, listener-channel): New classes.
5457 (channel-send, send-to-remote-channel): New functions.
5458 (create-listener): New function. Test case for channel code.
5459 (process-requests): Process channel events.
5460
5461 2009-01-02 Helmut Eller <heller@common-lisp.net>
5462
5463 * slime.el ([test] arglist): Guard against nil. ECL
5464 returns nil most of the time.
5465
5466 2009-01-01 Tobias C. Rittweiler <tcr@freebits.de>
5467
5468 Arglists of user-defined types are now displayed by slime-autodoc
5469 on SBCL.
5470
5471 (deftype foo (x y) `(cons ,x ,y))
5472 (declare (type (foo |
5473
5474 * swank-sbcl.lisp ([method] type-specifier-arglist): Make use of
5475 recently introduced SB-INTROSPECT:DEFTYPE-LAMBDA-LIST.
5476
5477 2009-01-01 Tobias C. Rittweiler <tcr@freebits.de>
5478
5479 * swank-loader.lisp (*contribs*): Add `swank-sbcl-exts'.
5480
5481 2009-01-01 Tobias C. Rittweiler <tcr@freebits.de>
5482
5483 * slime.el (slime-eval-async, slime-dispatch-event): Canoncalize
5484 return value. Previously they returned an arbitrary value which
5485 was displayed to the minibuffer due to a bug in slime-autodoc. The
5486 arbitrariness of the return value made debugging this a chore.
5487
5488 2009-01-01 Helmut Eller <heller@common-lisp.net>
5489
5490 * swank-openmcl.lisp (frame-source-location-for-emacs)
5491 (pc-source-location): Fall back to the source-note of the function
5492 if there is no source-note for a pc offset.
5493
5494 2009-01-01 Helmut Eller <heller@common-lisp.net>
5495
5496 For buffers without filename, map the name of the tempfile back to
5497 the buffer name.
5498
5499 * swank-openmcl.lisp (*temp-file-map*): New variable.
5500 (note-temp-file): New function.
5501 (compile-temp-file, source-note-to-source-location): Use it.
5502
5503 2009-01-01 Helmut Eller <heller@common-lisp.net>
5504
5505 * swank.lisp (sleep-for): New function
5506 * slime.el ([test] break): Use SWANK::SLEEP-FOR to help CCL pass
5507 this test.
5508 ([test] arglist): Update arglist of
5509 swank::compile-string-for-emacs.
5510 ([rest] find-definition.2): Allow some whitespace before the actual
5511 position. Otherwise, CCL would fail on this test.
5512
5513 2008-12-31 Helmut Eller <heller@common-lisp.net>
5514
5515 * swank.lisp (maybe-redirect-global-io): Don't consider
5516 connections without streams.
5517 (*new-connection-hook*): Don't add MAYBE-REDIRECT-GLOBAL-IO.
5518 (create-repl): Call MAYBE-REDIRECT-GLOBAL-IO here.
5519
5520 2008-12-31 Helmut Eller <heller@common-lisp.net>
5521
5522 * swank-openmcl.lisp ([method] source-locations (symbol)): Drop
5523 the unused _; the compiler dosn't like it.
5524
5525 2008-12-31 Helmut Eller <heller@common-lisp.net>
5526
5527 * slime.el (slime-cd, slime-pwd): New commands.
5528 (slime-change-directory): New function.
5529 (slime-change-directory-hooks): New hook.
5530
5531 2008-12-31 Helmut Eller <heller@common-lisp.net>
5532
5533 * slime.el ([test] find-definition.2): Also fails for Lispworks.
5534 ([test] interrupt-at-toplevel, [test] interrupt-in-debugger): Those
5535 don't work well if there's no REPL thread.
5536
5537 * swank-backend.lisp (wait-for-input, wait-for-one-stream): Don't
5538 use PEEK-CHAR because we can't interrupt that cleanly.
5539 * swank.lisp (simple-serve-requests): Run the REPL inside
5540 WITH-CONNECTION.
5541 * swank-lispworks.lisp (emacs-connected): Don't install the signal
5542 handler here ...
5543 (install-sigint-handler): ... use this instead
5544
5545 2008-12-30 Tobias C. Rittweiler <tcr@freebits.de>
5546
5547 As of now, `C-u C-c C-c' compiled a function with maximum debug
5548 settings (SBCL only.)
5549
5550 Now, `M-- C-c C-c' will compile a function with maximum _speed_
5551 settings (still SBCL only) --- useful to elicit compiler notes.
5552
5553 * slime.el (slime-compilation-debug-level): Renamed to
5554 `slime-compilation-policy'.
5555 (slime-normalize-optimization-level): Renamed to
5556 `slime-compute-policy'.
5557
5558 * swank.lisp (compile-string-for-emacs): Takes a policy now.
5559 (compile-multiple-strings-for-emacs): Ditto.
5560
5561 * swank-backend.lisp (swank-compile-string): Change :DEBUG key arg
5562 to :POLICY.
5563
5564 * swank-scl.lisp, swank-openmcl.lisp, swank-lispworks.lisp
5565 * swank-ecl.lisp, swank-corman.lisp, swank-cmucl.lisp,
5566 * swank-clisp.lisp, swank-allegro.lisp, swank-sbcl.lisp:
5567
5568 Changed accordingly.
5569
5570 2008-12-29 Helmut Eller <heller@common-lisp.net>
5571
5572 * swank-openmcl.lisp (find-definitions, source-locations): Use
5573 ccl:find-definition-sources.
5574 (swank-compile-string, compile-temp-file): Use new parameters to
5575 compile-file to adjust source locations.
5576
5577 2008-12-28 Helmut Eller <heller@common-lisp.net>
5578
5579 Recent CCLs support much better source location recording.
5580 Let's use the new features in SLIME.
5581
5582 * swank-openmcl.lisp (function-source-location): Use
5583 ccl:function-source-note.
5584 (pc-source-location): New function, based on
5585 ccl:find-source-note-at-pc.
5586 (frame-source-location-for-emacs): Use it.
5587
5588 2008-12-27 Helmut Eller <heller@common-lisp.net>
5589
5590 * slime.el: Move slime-lisp-package and
5591 slime-lisp-package-prompt-string to slime-repl.el
5592
5593 * swank.lisp (create-repl): Return initial package and prompt.
5594
5595 2008-12-25 Helmut Eller <heller@common-lisp.net>
5596
5597 Don't restore window configs in sldb.
5598 That doesn't work in the native repl, because output
5599 may have moved point.
5600
5601 * slime.el (sldb-setup, sldb-exit): Use temp buffer code.
5602 (slime-display-popup-buffer): Don't overwrite existing
5603 variables.
5604 (slime-close-popup-window): Factored out from
5605 slime-popup-buffer-quit.
5606 (slime-save-local-variables): New macro.
5607 (sldb-maybe-kill-buffer, sldb-saved-window-configuration): Deleted.
5608
5609 2008-12-23 Helmut Eller <heller@common-lisp.net>
5610
5611 * swank.lisp (connection.env): New slot. To hold dynamic variable
5612 bindings for this connection.
5613 (with-io-redirection): Use it.
5614 (create-repl): New function. Currently only redirects IO for the
5615 connection. Could potentially be used to create multiple
5616 listeners, each with a set of streams and corresponding buffers.
5617 (*redirect-io*, maybe-call-with-io-redirection)
5618 (call-with-redirected-io): Deleted.
5619
5620 2008-12-23 Helmut Eller <heller@common-lisp.net>
5621
5622 Move most of the REPL mode to contrib.
5623 Disable some commands that depend on the
5624 existence of a REPL buffer.
5625
5626 2008-12-23 Helmut Eller <heller@common-lisp.net>
5627
5628 * slime.el (slime-set-connection-info): Don't create a repl
5629 buffer.
5630 (slime-start-lisp): Bind process-connection-type to nil to avoid
5631 problems witht CLISPs readline code.
5632
5633 * swank.lisp (read-non-blocking, make-repl-input-stream)
5634 (simple-repl): New functions.
5635 (simple-serve-requests): Use it.
5636
5637 * swank-backend.lisp (wait-for-one-stream, wait-for-streams): New
5638 functions.
5639 (wait-for-input): Use it to support wainting on multiple streams.
5640
5641 * swank-cmucl.lisp (to-fd-stream): New function.
5642 (wait-for-input): Use it.
5643
5644 2008-12-23 Helmut Eller <heller@common-lisp.net>
5645
5646 * slime.el (slime-run-mode-hooks): Wrapper for Emacs21.
5647 (slime-repl-mode): Use it.
5648 Reported by Peter Denno.
5649
5650 2008-12-23 Sven Van Caekenberghe <sven@beta9.be>
5651
5652 * swank.lisp (connection): Add a slot to store the
5653 auto-flush-thread.
5654 (cleanup-connection-threads): Also kill the auto-flush-thread.
5655
5656 (stop-server): list-threads returns the thread name in second
5657 position and not in first position.
5658
5659 2008-12-23 Willem Broekema <metawilm@gmail.com>
5660
5661 * slime.el (sldb-insert-restarts): Make the space before each
5662 restart also propertized, consistent with how each line in the
5663 backtrace is fully sensitive.
5664
5665 2008-12-09 Helmut Eller <heller@common-lisp.net>
5666
5667 Reset the stream column to 0 after eval requests.
5668
5669 * swank.lisp (interactive-eval, eval-region): Use FRESH-LINE
5670 to reset the stream column.
5671 * slime.el (test repl-test): Adjust test accordingly.
5672
5673 2008-12-09 Helmut Eller <heller@common-lisp.net>
5674
5675 Be a bit more careful when computing the toplevel restart.
5676
5677 * swank.lisp (throw-to-toplevel): Test *sldb-quit-restart* for
5678 nilness.
5679 * sldb-quit (sldb-quit): Show the returned value in brackets.
5680
5681 2008-12-09 Helmut Eller <heller@common-lisp.net>
5682
5683 Make the modeline a bit shorter.
5684
5685 * slime.el (slime-compute-modeline-string): Remove PKG: and CON:
5686 to save space.
5687 (slime-compute-modeline-connection-state): Don't include zeros.
5688
5689 2008-12-09 David Reitter <david.reitter@gmail.com>
5690
5691 * slime.el (slime-repl-mode): Use `run-mode-hooks' rather than
5692 just `run-hooks'. That way, after-change-major-mode-hook is
5693 called automatically.
5694
5695 2008-12-07 Nikodemus Siivola <nikodemus@random-state.net>
5696
5697 * slime.el (slime-qualify-cl-symbol-name): Clean up the package
5698 name using `slime-pretty-package-name', so that packages named with
5699 strings are not left with the extra doublequotes.
5700
5701 2008-12-05 Tobias C. Rittweiler <tcr@freebits.de>
5702
5703 * slime.el (slime-macroexpansion-minor-mode-map): Bind keybindings
5704 of `undo' to `slime-macroexpansion-undo'.
5705 (slime-show-macroexpansion): Renamed to
5706 `slime-initialize-macroexpansion-buffer'
5707 (slime-initialize-macroexpansion-buffer): Make sure that the user
5708 can't undo past the initial insertion.
5709 (slime-macroexpand-undo): New function. Tries to undo-only.
5710
5711 2008-12-05 Tobias C. Rittweiler <tcr@freebits.de>
5712
5713 * slime.el (slime-trace-query): SPEC argument can be a symbol.
5714
5715 2008-12-02 Tobias C. Rittweiler <tcr@freebits.de>
5716
5717 * slime.el (slime-compute-modeline-connection-state): Fix
5718 computation of debugged requests.
5719
5720 2008-11-30 Gábor Melis <mega@retes.hu>
5721
5722 * slime.el (slime-compute-modeline-connection-state): Print the
5723 number of debugged requests if non-zero.
5724 (slime-connection-state-as-string): Removed unused branches.
5725 (slime-compute-connection-state): Removed :debugged branch making
5726 most likely return :connected instead.
5727
5728 2008-12-02 Tobias C. Rittweiler <tcr@freebits.de>
5729
5730 Modeline wouldn't display {debugged..} after `slime-interrupt'.
5731
5732 * slime.el (slime-debugged-connection-p): Can't rely on
5733 `sldb-debugged-continuations' to be non-null in every SLDB buffer.
5734
5735 2008-11-23 Helmut Eller <heller@common-lisp.net>
5736
5737 `q' in temp buffers should only delete the window if it was newly
5738 created for the buffer.
5739
5740 * slime.el (slime-display-popup-buffer): New function. Recognize
5741 if the window didn't exist before. Save the created window and
5742 the selected window in buffer local variables.
5743 (slime-make-popup-buffer): Renamed from slime-popup-buffer.
5744 (slime-popup-buffer-quit): Delete the created window (if needed)
5745 and restore the old selected window. Don't touch other windows.
5746
5747 (slime-edit-value-callback): Calling lisp-mode deletes all local
5748 variables. We need to that inside with-popup-buffer.
5749
5750 2008-11-22 Helmut Eller <heller@common-lisp.net>
5751
5752 * slime.el (slime-update-all-modelines): Only walk through
5753 widnow-list not buffer-list.
5754 (slime-restart-or-init-modeline-update-timer): Inrease the timer
5755 interval to 0.5 seconds.
5756
5757 2008-11-22 Gábor Melis <mega@retes.hu>
5758
5759 Reincarnate "eval..." (almost)
5760
5761 * slime.el (slime-compute-modeline-connection-state): Return the
5762 number of outstanding requests if connected.
5763 (slime-update-all-modelines): Renamed from slime-update-modelines,
5764 loops through all slime buffers.
5765 (slime-restart-or-init-modeline-update-timer): New function.
5766 (slime-dispatch-event): Arrange for modelines to be updated on
5767 :EMACS-REX and :RETURN.
5768
5769 2008-11-22 Helmut Eller <heller@common-lisp.net>
5770
5771 * swank.lisp (invoke-default-debugger): New condition type.
5772 (swank-debugger-hook): Handle invoke-default-debugger conditions.
5773 (sldb-break-with-default-debugger): Signal invoke-default-debugger
5774 to transfer control to the default debugger.
5775 New argument DONT-UNWIND to invoke the native debugger without
5776 unwinding the stack.
5777 * slime.el (sldb-break-with-default-debugger): By default,
5778 unwind the stack before invoke the native debugger.
5779 With prefix argument, run the native debugger in the
5780 dynamic environment of SLDB.
5781
5782 2008-11-02 Helmut Eller <heller@common-lisp.net>
5783
5784 * slime.el ([test] package-updating): Allegro returns "||" as
5785 prompt for the keyword package. I guess that's acceptable.
5786
5787 2008-11-02 Helmut Eller <heller@common-lisp.net>
5788
5789 * slime.el (slime-popup-buffer-quit): Always delete windows and
5790 bury the buffer.
5791
5792 2008-11-02 Helmut Eller <heller@common-lisp.net>
5793
5794 * swank-backend.lisp (slime-interrupt-queued): New condition.
5795 * swank.lisp (invoke-or-queue-interrupt): Raise it here.
5796 * swank-cmucl.lisp (wait-for-input): Make fd readable in condition
5797 handler so that we can call serve-events without timeout.
5798
5799 2008-11-02 Helmut Eller <heller@common-lisp.net>
5800
5801 * slime.el ([test] find-definition.2, [test] compile-defun):
5802 Expect to fail for CCL.
5803
5804 2008-10-31 Helmut Eller <heller@common-lisp.net>
5805
5806 * slime.el (slime-repl-history-pattern): Simplify as suggested by
5807 Knut Olav Bøhmer and Michael Weber.
5808
5809 2008-10-31 Helmut Eller <heller@common-lisp.net>
5810
5811 * slime.el (slime-eval-with-transcript)
5812 (slime-eval-with-transcript-cont): Restore the current buffer,
5813 before calling cont.
5814
5815 2008-10-31 Helmut Eller <heller@common-lisp.net>
5816
5817 * swank-lispworks.lisp (describe-function): Don't use
5818 string-upcase on lambda-list-argruments, because not all elements
5819 must be symbols.
5820
5821 2008-10-31 Helmut Eller <heller@common-lisp.net>
5822
5823 * swank.lisp (debug-in-emacs): Bind *sldb-quit-restart* here. If
5824 necessary, use the current abort retstart.
5825
5826 2008-10-30 Helmut Eller <heller@common-lisp.net>
5827
5828 * swank-sbcl.lisp (wait-for-input): Return streams which are at
5829 EOF.
5830
5831 2008-10-30 Helmut Eller <heller@common-lisp.net>
5832
5833 * slime.el (slime-popup-buffer-quit): Call bury-buffer with
5834 explicit argument for compatibility with XEmacs.
5835
5836 2008-10-30 Ivan Shvedunov <ivan4th@gmail.com>
5837
5838 * slime.el (slime-repl-history-pattern): Use the part of input
5839 between its start and (point) as history search pattern.
5840 Previously we used the entire input.
5841
5842 2008-10-26 Helmut Eller <heller@common-lisp.net>
5843
5844 * test.sh: Return the number of failed tests as exit code.
5845
5846 * slime.el: Fix change from 2008-10-20.
5847 Use (eval-when (compile)...) instead of (eval-when-compile ...),
5848 because the latter is more like (eval-when (compile eval) ...).
5849
5850 2008-10-23 Helmut Eller <heller@common-lisp.net>
5851
5852 * slime.el (slime-redirect-inferior-output): New command.
5853
5854 2008-10-21 Helmut Eller <heller@common-lisp.net>
5855
5856 * swank-allegro.lisp (frame-restartable-p): Handle errors signaled
5857 by debugger:frame-retryable-p. This looks like an Allegro
5858 bug, though. Reported by Luke Hope.
5859
5860 2008-10-20 Helmut Eller <heller@common-lisp.net>
5861
5862 * slime.el: Require some packages, e.g. apropos, at compile time
5863 to suppress some "undefined function" warnings.
5864
5865 2008-10-19 Helmut Eller <heller@common-lisp.net>
5866
5867 * swank.lisp (frame-locals-and-catch-tags): New function.
5868 Fetch locals and catch tags with a single RPC.
5869
5870 * slime.el (sldb-frame-details): Use it.
5871
5872 * swank-backend.lisp (frame-catch-tags): Provide a default
5873 implementation. Delete the dummy defs in various backends.
5874
5875 2008-10-19 Mark Evenson <evenson@panix.com>
5876
5877 * swank-abcl.lisp (handle-compiler-warning): Report source
5878 location position when we can.
5879 Use NAMESTRING for *compile-filename*.
5880
5881 2008-10-19 Helmut Eller <heller@common-lisp.net>
5882
5883 * swank-clisp.lisp (filename-to-pathname, parse-cygwin-filename):
5884 Accept Windows and Unix filenames when :CYGWIN is in *features*.
5885
5886 2008-10-17 Helmut Eller <heller@common-lisp.net>
5887
5888 * swank-sbcl.lisp (swank-compile-file): Fix typo.
5889
5890 2008-10-17 Helmut Eller <heller@common-lisp.net>
5891
5892 * swank-backend.lisp (compute-sane-restarts): Deleted. Use plain
5893 compute restarts instead.
5894
5895 2008-10-17 Helmut Eller <heller@common-lisp.net>
5896
5897 * swank.lisp (call-with-retry-restart): Implement this a little
5898 less confusing.
5899
5900 2008-10-17 Helmut Eller <heller@common-lisp.net>
5901
5902 * swank-backend.lisp (frame-restartable-p): New function.
5903 (swank-frame): Deleted. Update implemenetations accordingly.
5904 (print-frame): Renamed back from print-swank-frame.
5905
5906 * swank.lisp (backtrace): Don't clutter the backtrace with
5907 '(:restartable :unknown). For practical purposes :unknown is the
5908 same as nil.
5909
5910 * slime.el (sldb-compute-frame-face): Only accept nil or t for
5911 the :restartable prop.
5912
5913 2008-10-16 Helmut Eller <heller@common-lisp.net>
5914
5915 * swank-backend.lisp (swank-compile-file): Return the same
5916 values as COMPILE-FILE. Update backends accordingly.
5917
5918 * swank-lispworks.lisp (with-swank-compilation-unit): Return the
5919 values of BODY.
5920 (compile-from-temp-file)
5921 * swank-allegro.lisp (compile-from-temp-file)
5922 * swank-clisp.lisp (swank-compile-string)
5923 * swank-abcl.lisp (swank-compile-string): Return T on success.
5924 * swank.lisp (collect-notes): Check return type of
5925 FUNCTION.
5926
5927 2008-10-16 Helmut Eller <heller@common-lisp.net>
5928
5929 * swank-openmcl.lisp (frame-catch-tags): Disabled as it prevents
5930 FRAME-LOCALS from working in lx8632.
5931
5932 2008-10-10 Nikodemus Siivola <nikodemus@random-state.net>
5933
5934 * slime.el (slime-inspector-toggle-verbose): New function.
5935 (slime-inspector-mode-map): Bind v to slime-inspector-toggle-verbose.
5936 (slime-cheat-sheet-table): Add slime-inspector-toggle-verbose.
5937 * swank.lisp (*inspector-verbose*): New variable.
5938 ([defstruct] istate): New slot called verbose.
5939 (istate>elisp): If the current istate is verbose, use untruncated
5940 result of TO-STRING as the title.
5941 (inspect-nth-part): Use the verbosity of the current istate.
5942 * doc/slime.texi: Document slime-inspector-toggle-verbose.
5943
5944 2008-10-07 Nikodemus Siivola <nikodemus@random-state.net>
5945
5946 * swank.lisp (*backtrace-printer-bindings*): export.
5947
5948 2008-10-05 Helmut Eller <heller@common-lisp.net>
5949
5950 * swank-cmucl.lisp (list-callers): Do a full GC before calling
5951 map-allocated-objects. That's needed because map-allocated-objects
5952 seems to cons even if it's inlined.
5953 (emacs-inspect [code-component]): Try to detect
5954 byte-code-components.
5955
5956 (inspect-alien-record, mv-function-end-breakpoint-values): Avoid
5957 compiler warnigns.
5958
5959 2008-10-04 Tobias C. Rittweiler <tcr@freebits.de>
5960
5961 * swank-sbcl.lisp: Add support for WHO-SPECIALIZES. This requires
5962 a patch for SBCL's SB-INTROSPECT contrib which I sent upstream a
5963 few minutes ago.
5964
5965 2008-10-04 Helmut Eller <heller@common-lisp.net>
5966
5967 Some cleanups for compilation commands.
5968
5969 * slime.el ([defstruct] slime-compilation-result): Rename result
5970 slot as successp.
5971 (slime-make-compilation-finished-continuation): Deleted.
5972 slime-eval-async preserves the current buffer and preserving the
5973 window-configuration was always a questionable feature.
5974 (slime-compilation-finished): Simplified.
5975 (slime-show-note-counts): Also show the success/failure flag.
5976 (slime-recompile-locations): Take a continuation as argument
5977 rather than messing around with compilation-finished-hooks.
5978 (slime-aggregate-compilation-results): New function.
5979 (slime-xref-recompilation-cont): Renamed from
5980 slime-make-xref-recompilation-cont.
5981 (slime-compiler-results): Deleted.
5982 (slime-goto-first-note-after-compilation): Replaced with hook
5983 function slime-goto-first-note.
5984 (slime-compilation-just-finished): Deleted.
5985 (slime-to-lisp-filename-function): Use convert-standard-filename.
5986 * swank.lisp ([defstruct] compilation-result): Renamed from
5987 swank-compilation-result.
5988 (measure-time-interval): Return seconds as float.
5989 (collect-notes): Renamed from swank-compiler. Return a single
5990 compilation-result.
5991 (compile-multiple-strings-for-emacs): Return a list of
5992 compilation-results instead of a single result with merged notes.
5993
5994 * swank-backend.lisp (filename-to-pathname): Renamed from
5995 parse-emacs-filename. Updated callers.
5996 (pathname-to-filename): New function. Use it where appropriate.
5997
5998 * swank-scl.lisp (pathname-to-filename): Implement it in the
5999 backend to get rid of the #+scl in swank.lisp.
6000
6001 * swank-cmucl.lisp (swank-compile-file, swank-compile-string):
6002 Return t on success.
6003
6004 2008-10-04 Alain Picard <Alain.Picard@accenture.com>
6005
6006 UTF-8 support for Lispworks.
6007
6008 * swank-lispworks.lisp (accept-connection): Use flexi-streams
6009 for utf-8.
6010 (make-flexi-stream): New function.
6011 (*temp-file-format*): New variable
6012 (compile-from-temp-file): Use it.
6013
6014 2008-09-28 Tobias C. Rittweiler <tcr@freebits.de>
6015
6016 * slime.el (slime-list-compiler-notes): Revert change from
6017 2008-08-15 which introduced automatic shrinkage of the
6018 compiler-notes buffer. This turned out to be more annoying than
6019 worthwhile. On the cases where it's desired, the user can just use
6020 `C-x -' himself to shrink the notes buffer.
6021
6022 2008-09-28 Helmut Eller <heller@common-lisp.net>
6023
6024 Stop handling events in worker threads after sldb-quit.
6025
6026 * swank.lisp (with-top-level-restart): New macro.
6027 (handle-requests, spawn-worker-thread): Use it.
6028 (process-requests): Drop the just-one argument.
6029 (handle-or-process-requests): Deleted. Call handle-requests
6030 directly.
6031
6032 2008-09-27 Tobias C. Rittweiler <tcr@freebits.de>
6033
6034 Improve ECL's arglist support somewhat.
6035
6036 * swank-ecl.lisp (grovel-docstring-for-arglist): New function.
6037 (arglist): Use it. Now also try to find an arglist for special
6038 operators, and macros.
6039
6040 2008-09-26 Tobias C. Rittweiler <tcr@freebits.de>
6041
6042 * slime.el (slime-cycle-connections): Do not make the new
6043 connection buffer-local if we're currently in a REPL buffer.
6044
6045 2008-09-24 Knut Olav Bøhmer <knut-olav.bohmer@telenor.com>
6046
6047 * slime.el (slime-cycle-connections): New command.
6048
6049 2008-09-24 Helmut Eller <heller@common-lisp.net>
6050
6051 * slime.el (slime-prefix-map): New keymap.
6052 (slime-define-key): Use it. Also drop unused :inferior arg.
6053 (slime-inspector-mode-map): Bind C-c to slime-prefix-map.
6054 (slime-define-both-key-bindings): New function. Factor of
6055 slime-init-keymaps.
6056 (slime-init-keymaps): Use it.
6057 (slime-control-modified-char): Deleted.
6058
6059 2008-09-23 Douglas Crosher <dcrosher@common-lisp.net>
6060
6061 * swank-scl.lisp: update for Scieneer CL 1.3.8.
6062
6063 * swank.lisp (ed-in-emacs): customize for the SCL.
6064
6065 * swank.lisp (signal-interrupt): fix typo.
6066
6067 2008-09-22 Nikodemus Siivola <nikodemus@random-state.net>
6068
6069 * swank.lisp (guess-package): Return NIL if string designator is
6070 NIL: makes files without IN-PACKAGE forms more *BREAK-ON-SIGNALS*
6071 friendly.
6072
6073 2008-09-22 Helmut Eller <heller@common-lisp.net>
6074
6075 * swank-sbcl.lisp (wait-for-input): Implement this in backend,
6076 since read-char-no-hang doesn't work in fd-handlers.
6077 (install-sigint-handler): Go through invoke-interruption and
6078 with-interrupts to support nested interrupts.
6079
6080 * slime.el (slime-lisp-implementations): Mention :env keyword
6081 in docstring.
6082
6083 2008-09-21 Helmut Eller <heller@common-lisp.net>
6084
6085 * slime.el (slime-repl-input-end-mark): Deleted. It was always at
6086 the end of buffer. Use point-max instead.
6087 (slime-repl-eol): Removed. The usual end-of-line does the same.
6088
6089 2008-09-21 Helmut Eller <heller@common-lisp.net>
6090
6091 * slime.el (slime-eol-conversion-fixup): Return 0 (not nil) for
6092 anyting other than CRLF conventions.
6093
6094 2008-09-21 Helmut Eller <heller@common-lisp.net>
6095
6096 * swank-openmcl.lisp: Try to remove the first few internal frames
6097 from backtraces.
6098 (guess-stack-top): New function.
6099 (call-with-debugging-environment): Use it
6100
6101 (frame-arguments): Return a list instead of a string. Don't quote
6102 symbols.
6103 (source-locations): Recognize (:internal FOO) functions.
6104
6105 2008-09-21 Helmut Eller <heller@common-lisp.net>
6106
6107 * swank.lisp (*backtrace-pprint-dispatch-table*):
6108 Honor *print-escape*.
6109
6110 2008-09-20 Ariel Badichi <abadichi@bezeqint.net>
6111
6112 * slime.el (slime-with-output-end-mark):
6113 slime-repl-show-maximum-output no longer accepts any arguments.
6114
6115 2008-09-20 Helmut Eller <heller@common-lisp.net>
6116
6117 * test.sh: Parse the -S option as advertized.
6118
6119 * slime.el (slime-randomize-test-order): Add the * to the
6120 docstring.
6121 ([def-slime-test] break2): Also CCL is expected to fail here.
6122
6123 2008-09-20 Helmut Eller <heller@common-lisp.net>
6124
6125 Fix some of the bugs that I introduced with the last commits.
6126
6127 * swank-openmcl.lisp (call-with-debugging-environment): Fix typo.
6128 (call-with-debugger-hook): Bind *break-in-sldb*.
6129 (backtrace-context): Return nil, not tcr!
6130 (map-backtrace): Remove the stack< test. Only test for nil.
6131 (lisp-implementation-type-name): Return "ccl".
6132
6133 (emacs-inspect (t)): Fix typo.
6134
6135 (kill-thread): Use join-process. Otherwise we get strange
6136 "process-reset" errors when disconnecting.
6137 (thread-alive-p): Implemented with ccl::process-exhausted-p.
6138
6139 (source-locations): Use labels for helper functions.
6140 (function-source-location): Now implemented on top of
6141 source-locations.
6142
6143 2008-09-20 Helmut Eller <heller@common-lisp.net>
6144
6145 Fix frame-source-location-for-emacs for CCL.
6146
6147 * swank-openmcl.lisp (source-locations): New function.
6148 (create-source-location): New function.
6149 (frame-source-location-for-emacs): Use it.
6150
6151 2008-09-20 Helmut Eller <heller@common-lisp.net>
6152 Fix inspecting of arrays.
6153
6154 * swank-openmcl.lisp (emacs-inspect :around (t)): call-next-method
6155 may return a lazy list. Detect that case and only append to
6156 ordinary lists.
6157 (emacs-inspect (t)): Don't mark labels as inspectable. Just print
6158 them.
6159
6160 2008-09-20 Helmut Eller <heller@common-lisp.net>
6161
6162 Fix BREAK and backtraces after interrupts.
6163
6164 * swank-openmcl.lisp (*sldb-stack-top-hint*): New variable.
6165 (call-with-debugging-environment, break-in-sldb)
6166 (interrupt-thread): Use it.
6167 (*process-to-stack-top*, record-stack-top)
6168 (grab-stack-top): Deleted. Use *sldb-stack-top-hint* instead.
6169 (backtrace-context): Deleted. Use %current-tcr directly.
6170
6171 2008-09-20 Helmut Eller <heller@common-lisp.net>
6172
6173 * swank-openmcl.lisp (call-with-debugging-environment): Don't set
6174 *debugger-hook* to nil.
6175
6176 2008-09-19 Helmut Eller <heller@common-lisp.net>
6177
6178 * slime.el ([def-slime-test] break): Split it up in two versions
6179 to make the debugger-hook issue more explicit.
6180
6181 * swank-allegro.lisp (frob-allegro-field-def): There seems to be a
6182 new type :func handle it like :lisp.
6183
6184 2008-09-19 Helmut Eller <heller@common-lisp.net>
6185
6186 * slime.el (slime-save-marker): New marcro. Use it in combination
6187 with insert-before-markers.
6188 (slime-check-buffer-contents): Use {} resp. [] to describe the
6189 position of output resp. input markers.
6190
6191 (slime-repl-emit-result): Update window-point.
6192
6193 (slime-randomize-test-order): New variable.
6194 (slime-shuffle-list): New function.
6195 (slime-run-tests): Use it.
6196 (slime-batch-test): Accept test-name and randomize arguments.
6197
6198 * test.sh (usage): Accept -n and -S options.
6199
6200 2008-09-18 Tobias C. Rittweiler <tcr@freebits.de>
6201
6202 * swank-ecl.lisp: Forgot to update ECL's backend when introducing
6203 swank-frames in commit on 2008-09-12.
6204
6205 2008-09-18 Helmut Eller <heller@common-lisp.net>
6206
6207 Some cleanups for the REPL code.
6208
6209 * slime.el (slime-show-last-output)
6210 (slime-show-last-output-function)
6211 (slime-show-last-output-region)
6212 (slime-maybe-display-output-buffer)
6213 (slime-repl-last-input-start-mark): Delete unused code.
6214
6215 (slime-repl-emit-result, slime-repl-insert-prompt)
6216 (slime-repl-show-abort, slime-repl-insert-result)
6217 (slime-insert-transcript-delimiter)
6218 (slime-eval-with-transcript-cont): Consistently use save-excursion
6219 and insert-before-markers. We always want to preserve the cursor
6220 position in the input region (for type-ahead).
6221 (slime-eval-with-transcript): Change order of arguments to
6222 make the common case easier to use.
6223
6224 (slime-batch-test): Use a timer.
6225 (slime-check-buffer-contents): New function to test contents and
6226 current position. Use it in various places.
6227
6228 (sldb-recenter-region, def-slime-test interactive-eval)
6229 (def-slime-test interactive-eval-output): Act slightly differently
6230 when the test suite is executed in batch mode (without terminal).
6231
6232 * swank.lisp (handle-requests): Flush output.
6233 (interactive-eval, interactive-eval): Don't use fresh-line, as
6234 that makes it harder to test the REPL code.
6235
6236 * test.sh (usage): Add a -T switch to run slime in the current
6237 directory without copying (and compiling) everything to a
6238 temporary directory.
6239
6240 2008-09-18 Helmut Eller <heller@common-lisp.net>
6241
6242 * slime.el (slime-eval-with-transcript): Accept some more arguments
6243 so that we can also use it for compile-file.
6244 (slime-eval-with-transcript-cont): New. Insert prompt.
6245 (slime-compile-file): Use slime-eval-with-transcript.
6246 (slime-repl-show-maximum-output): Update window point.
6247 (slime-repl-insert-prompt): Don't use insert-before-markers.
6248 (slime-repl-emit): No longer use slime-with-output-end-mark.
6249
6250 2008-09-17 Tobias C. Rittweiler <tcr@freebits.de>
6251
6252 * swank-sbcl.lisp (make-definition-source-location): Fix typo
6253 introduced with crlf-related commit on 2008-09-16.
6254
6255 2008-09-17 Helmut Eller <heller@common-lisp.net>
6256
6257 * slime.el (slime-repl-popup-on-output): New variable.
6258 (slime-repl-emit): Honor slime-repl-popup-on-output.
6259 (slime-eval-with-transcript): Use slime-repl-popup-on-output.
6260 Also remove the function argument, as it was only used once
6261 and that was slime-message.
6262
6263 2008-09-17 Helmut Eller <heller@common-lisp.net>
6264
6265 (*pre-reply-hook*): Add 'force-user-output.
6266
6267 2008-09-17 Helmut Eller <heller@common-lisp.net>
6268
6269 * swank.lisp (send-user-output): Lifted from make-output-function.
6270 Make this a top-level function for easier redefinition.
6271
6272 2008-09-17 Helmut Eller <heller@common-lisp.net>
6273
6274 * slime.el (slime-test-find-top-level-restart): New function.
6275 [def-slime-test] (interrupt-at-toplevel, interrupt-in-debugger):
6276 Use it.
6277
6278 2008-09-16 Helmut Eller <heller@common-lisp.net>
6279
6280 * slime.el (slime-connection): Optionally select a new default
6281 connection.
6282 (slime-auto-select-connection): New variable.
6283 (slime-auto-select-connection): New function.
6284
6285 2008-09-16 Helmut Eller <heller@common-lisp.net>
6286
6287 Adjust positions in files with CRLF style end-on-line markers.
6288
6289 * slime.el (slime-eol-conversion-fixup): New function.
6290 (slime-goto-location-position): Use it. Also add a new position
6291 type :offset, so that we don't adjust offsets in strings that were
6292 sent over the wire (which uses LF eol-convention).
6293
6294 * swank-abcl.lisp
6295 * swank-allegro.lisp
6296 * swank-clisp.lisp
6297 * swank-cmucl.lisp
6298 * swank-corman.lisp
6299 * swank-ecl.lisp
6300 * swank-lispworks.lisp
6301 * swank-openmcl.lisp
6302 * swank-sbcl.lisp
6303 * swank-scl.lisp: Create :offset style positions where needed.
6304
6305 * swank-lispworks.lisp (skip-comments): New function.
6306 (dspec-stream-position): Use it.
6307
6308 2008-09-16 Tobias C. Rittweiler <tcr@freebits.de>
6309
6310 * slime.el (slime-end-of-list): `backward-down-list' was used
6311 there which is defined by paredit.el.
6312 Use `(down-list -1)' instead.
6313
6314 2008-09-15 Helmut Eller <heller@common-lisp.net>
6315
6316 * swank-lispworks.lisp (describe-symbol-for-emacs): Revert last
6317 change.
6318
6319 2008-09-15 Helmut Eller <heller@common-lisp.net>
6320
6321 * swank.lisp (sldb-loop): Send a :sldb-return event to ourselfes
6322 to inform the debug session at the lower level.
6323 (wait-for-event): Drop the report-interrupt argument. No longer
6324 needed.
6325 (event-match-p): Add an OR pattern operator. Used to wait for
6326 different events simultaneously.
6327
6328 (read-packet): Use peek-char to detect EOF. read-sequence wouldn't
6329 work.
6330
6331 * slime.el (slime-test-interrupt-in-debugger): Call sldb-quit and
6332 sldb-continue in the right buffer.
6333
6334 * swank-backend.lisp (wait-for-input):
6335 * swank-cmucl.lisp (wait-for-input):
6336 * swank-clisp.lisp (wait-for-input): Use the idiom
6337 "(when (check-slime-interrupts) (return :interrupt))".
6338
6339 2008-09-15 Helmut Eller <heller@common-lisp.net>
6340
6341 Interrupt related hacking.
6342
6343 * swank-backend.lisp (*pending-slime-interrupts*): Should be
6344 thread-local. Leave global value unbound.
6345
6346 * swank.lisp (with-interrupts-enabled%): New helper macro.
6347 (with-slime-interrupts, without-slime-interrupts): Use it.
6348 (call-with-connection): Bind *pending-slime-interrupts* here.
6349 (wait-for-event): Add a report-interrupt argument. Currently used
6350 by the debugger to detect when a nested debugger session, which
6351 was triggered by an interrupt in wait-for-event, returns. Doesn't
6352 work well, though.
6353
6354 * slime.el (slime-test-interrupt-in-debugger): New test.
6355
6356 2008-09-14 Helmut Eller <heller@common-lisp.net>
6357
6358 Introduce a WAIT-FOR-INPUT backend function.
6359 CMUCL's blocking input functions READ-CHAR etc.
6360 are hard to use with interrupts. In the backend
6361 we have a more realistic chance to get interrupts working.
6362
6363 * swank-backend.lisp (wait-for-input): New function.
6364
6365 * swank-cmucl.lisp, swank-clisp.lisp (wait-for-input): Implement
6366 it.
6367
6368 * swank.lisp (wait-for-event/event-loop): Use WAIT-FOR-INPUT and
6369 rescan the event-queue if WAIT-FOR-INPUT was interrupted.
6370 (reader-event): Deleted. Merged into wait-for-event/event-loop
6371 resp. dispatch-loop.
6372 (decode-message): Drop the timeout argument.
6373 (*events-enqueued*): A counter to quickly detect new events after
6374 a wait.
6375 (call-with-connection): If the argument is already the current
6376 connection, don't rebind anything.
6377 (without-slime-interrupts, with-slime-interrupts): Don't rebind
6378 *pending-slime-interrupts*. Just to be save.
6379
6380 * slime.el (sldb-maybe-kill-buffer): New function, to handle
6381 the case when the debugger was interrupted in WAIT-FOR-INPUT and
6382 we want to return to the previous debug level.
6383
6384 2008-09-12 Helmut Eller <heller@common-lisp.net>
6385
6386 For Lispworks, parse the $LWHOME/lwdoc file.
6387
6388 * swank-lispworks.lisp (lwdoc, lookup-lwdoc, parse-lwdoc-record):
6389 New functions.
6390 (describe-symbol-for-emacs): Use it.
6391
6392 2008-09-12 Tobias C. Rittweiler <tcr@freebits.de>
6393
6394 In an SLDB buffer, `C-c C-c' will now recompile the source behind
6395 a frame. In particular, `C-u C-c C-c' will recompile the frame
6396 with high debug settings.
6397
6398 * slime.el (sldb-recompile-frame-source): New function.
6399 (sldb-mode-map): Bind `C-c C-c' to it.
6400
6401 * slime.el (sldb-overlays, sldb-delete-overlays, slime-xref-cleanup):
6402 Removed. Sldb-overlays weren't created anymore since 2008-08-17.
6403
6404 2008-09-12 Tobias C. Rittweiler <tcr@freebits.de>
6405
6406 New faces: `sldb-restartable-frame-line-face',
6407 `sldb-non-restartable-frame-line-face'.
6408
6409 The former is the face for frames that are surely restartable, the
6410 latter for frames that are surely not restartable. If
6411 restartability of a frame cannot be reliably determined, the face
6412 `sldb-frame-line-face' is used.
6413
6414 At the moment, determination of frame restartability is supported
6415 by the SBCL backend only.
6416
6417 * slime.el (sldb-frame.string): New.
6418 (sldb-frame.number): New.
6419 (sldb-frame.plist): New.
6420 (sldb-prune-initial-frames): Use them.
6421 (sldb-insert-frames): Ditto.
6422 (sldb-compute-frame-face): New.
6423 (sldb-insert-frame): Use `sldb-compute-frame-face' to insert
6424 frames with one of the faces described above.
6425
6426 * swank.lisp (defslimefun backtrace): Changed return value; each
6427 frame is now accompanied with a PLIST which at the moment can
6428 contain :RESTARTABLE NIL/T/:UNKNOWN depending on whether