/[slime]/slime/ChangeLog
ViewVC logotype

Contents of /slime/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log


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