/[slime]/slime/ChangeLog
ViewVC logotype

Contents of /slime/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log


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