forked from patmaddox/slime
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
21009 lines (15284 loc) · 767 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2012-02-07 Martin Simmons <[email protected]>
* swank-lispworks.lisp (dspec-file-position): Fall back to regexp
search if dspec-stream-position gets an error.
2012-01-06 Helmut Eller <[email protected]>
Add a "sentinel thread" to protect access to global lists.
* swank.lisp (start-sentinel, sentinel, send-to-sentinel)
(sentinel-serve, sentinel-stop-server, sentinel-maybe-exit): New.
(make-connection, close-connection, setup-server, stop-server):
Use the sentinel.
(close-connection%): Factored out.
* swank-backend.lisp (register-thread, find-registered): New.
* swank-allegro.lisp: Implement it.
* swank-ccl.lisp:
* swank-lispworks.lisp:
* swank-sbcl.lisp:
2012-01-02 Stas Boukarev <[email protected]>
* swank-loader.lisp (lisp-version-string): Append -no-threads to
SBCL without threads.
2011-12-24 Stas Boukarev <[email protected]>
* slime.el (slime-init-command): Don't call
`slime-to-lisp-filename', the lisp is not yet connected and if
there's another connection it will use the wrong translation.
2011-12-24 Stas Boukarev <[email protected]>
* swank.lisp (throw-to-toplevel): If *sldb-quit-restart* is not
found, try to invoke the last restart, which usually is a
top-level abort restart. This is useful when the debugger is
invoked from a non-slime thread.
2011-12-23 Stas Boukarev <[email protected]>
* slime.el (slime-cycle-connections): Add
`slime-cycle-connections-hook', to be used by slime-repl.
2011-12-21 Stas Boukarev <[email protected]>
* swank-sbcl.lisp (input-ready-p): Don't use
sb-impl::fd-stream-fd-type if it's not present.
2011-12-12 Stas Boukarev <[email protected]>
* slime.el (slime-compile-region): Run slime-flash-region
directly, not from `slime-before-compile-functions', which is run
also for C-c C-k.
2011-12-10 Helmut Eller <[email protected]>
* swank.lisp (auto-flush-loop): Don't use call-with-io-timeout.
Removing it had no effect on the number of failed tests. If you
want it back, first create a test case to demonstrate the problem.
* swank-backend.lisp: Mention that locks should only be used in
swank-gray.lisp.
2011-12-10 Helmut Eller <[email protected]>
* swank.lisp: Move io-redirection to contrib/swank-repl.lisp.
2011-12-10 Helmut Eller <[email protected]>
Make *active-threads* a slot of the connection struct.
* swank.lisp (*active-threads*): Deleted
([struct] multithreaded-connection): New slot active-threads.
(find-worker-thread, interrupt-worker-thread)
(thread-for-evaluation): Update accordingly.
(add-active-thread, remove-active-thread): New helpers.
2011-12-10 Helmut Eller <[email protected]>
* swank-loader.lisp (delete-stale-contrib-fasl-files): New.
(compile-contribs): Use it.
2011-12-09 Helmut Eller <[email protected]>
Create an extra thread for the indentation cache.
* swank.lisp (indentation-cache-loop): New.
([struct] multithreaded-connection): New slot
indentation-cache-thread.
(control-thread, cleanup-connection-threads): Create/kill it.
(send-to-indentation-cache): New function.
(update-indentation-information, sync-indentation-to-emacs): Use
it.
(perform-indentation-update, update-indentation/delta-for-emacs):
Add package as argument; that used to be *buffer-package. Can
again be simpler as the indentation-cache-thread doesn't share the
cache with others.
(handle-indentation-cache-request, symbol-packages): New helpers.
2011-12-07 Helmut Eller <[email protected]>
* swank.lisp (*slime-interrupts-enabled*): Describe the idea
behind the interrupt handling code a bit.
2011-12-07 Helmut Eller <[email protected]>
Make *event-queue* and *events-enqueued* slots of the connection
struct.
* swank.lisp (*event-queue*, *events-enqueued*): Deleted
([struct] singlethreaded-connection): New slots event-queue and
events-enqueued.
(poll-for-event, send-event, wait-for-event/event-loop): Update
accordingly.
2011-12-07 Helmut Eller <[email protected]>
* slime.el ([xemacs]): Use (find-coding-system 'utf-8-unix)
instead of checking the XEmacs version to decide when 'un-define
is required.
2011-12-07 Helmut Eller <[email protected]>
* swank.lisp (send-to-emacs): Add a without-slime-interrupts to
protect send/receive from arbitrary interrupts.
2011-12-07 Helmut Eller <[email protected]>
Move flow control from dispatch-event to send-to-emacs.
* swank.lisp (*send-counter*): New thread local variable.
(with-connection): Bind it.
(send-to-emacs): Call maybe-slow-down.
(maybe-slow-down, ping-pong): Go through dispatch-event instead of
writing to the socket directly.
(dispatch-event): Re-add thread arg to :ping/:emacs-pong.
Also add a :test-delay event.
(perform-indentation-update): Use with-connection to bind
*emacs-connection* and *send-counter*.
(background-message): Remove reference to connection.slowdown.
(flow-control-test): New support code for testing flow-control.
([defstruct] connection): Delete send-counter and slowdown slots.
* slime.el (slime-dispatch-event): Re-add thread arg to
:ping/:emacs-pong and :test-delay event.
([test] flow-control): New test.
2011-12-07 Helmut Eller <[email protected]>
* slime.el (slime-update-system-indentation): Moved to
contrib/slime-indentation.el.
2011-12-07 Helmut Eller <[email protected]>
* slime.el (slime-batch-test): Forgot to rename slime-run-one-test
to slime-run-test here.
(slime-net-connect): Remove coding-system argument.
(slime-xref-insert-recompilation-flags): Use insert-char instead
of (dotimes (i ..) (insert " " ..)) to avoid the compiler warning.
([test] break, slime-forward-sexp): Use _i in dotimes.
2011-12-07 Stas Boukarev <[email protected]>
* doc/.cvsignore: Add html.tgz
2011-12-07 Didier Verna <[email protected]>
* doc/.cvsignore: Add more files generated by Texinfo (.kys, .fns
and .vrs).
2011-12-05 Didier Verna <[email protected]>
* slime.el ([xemacs]): Don't require 'un-define in XEmacs 21.5 and
later. Mule-UCS is not needed anymore because of internal Unicode
support (and conflicts with it).
2011-12-06 Stas Boukarev <[email protected]>
* slime.el (slime-compile-region): Check connection before running
hooks, invoking slime-flash-region doesn't make much sense when
there's no connection.
2011-12-05 Helmut Eller <[email protected]>
Move flow control into dispatch-event.
* swank.lisp (maybe-slow-down, ping-pong): New functions.
(dispatch-event): Use it. Also require connection argument.
Update callers accordingly.
([defstruct] connection): New slots: send-counter and slowdown.
* slime.el (slime-dispatch-event): Drop thread from
:ping/:emacs-ping messages.
Use subclasses of connection. Wasn't neccessary for flow control
but seems like a good idea for the future.
* swank.lisp (multithreaded-connection)
(singlethreaded-connection): New
(make-connection): Create multi/single threaded variant depending
on style argument.
([defstruct] serve-requests, cleanup): Delete slots. Dispatch on
connection type instead.
(stop-serving-requests): New.
(close-connection): Use it. Can't use
*use-dedicated-output-stream* here.
* swank.lisp (background-message): Do nothing if
connection.slowdown is set.
2011-12-05 Helmut Eller <[email protected]>
* slime.el ([test] arglist): swank::create-server now has an
optional argument. Use swank::compute-backtrace instead.
2011-12-05 Stas Boukarev <[email protected]>
* start-swank.lisp: Remove :coding-system argument.
2011-12-04 Helmut Eller <[email protected]>
* swank.lisp (interrupt-worker-thread): Don't use find-repl-thread
as fallback.
2011-12-04 Helmut Eller <[email protected]>
* swank.lisp: Minor cleanups.
* swank-rpc.lisp:
2011-12-04 Helmut Eller <[email protected]>
* swank.lisp (create-repl): Moved to contrib/swank-repl.lisp.
(*use-dedicated-output-stream*, *dedicated-output-stream-port*
(*dedicated-output-stream-buffering*, open-streams)
(make-output-function, send-user-output)
(make-output-function-for-target, make-output-stream-for-target)
(open-dedicated-output-stream, find-repl-thread)
(spawn-repl-thread, repl-loop, initialize-streams-for-connection)
(read-user-input-from-emacs, *listener-eval-function*)
(listener-eval, *send-repl-results-function*, repl-eval)
(clear-repl-variables, track-package, send-repl-results-to-emacs)
(redirect-trace-output);
* swank-loader.lisp (*contribs*): Add swank-repl.
2011-12-04 Helmut Eller <[email protected]>
* swank-loader.lisp (*contribs*): Add swank-mrepl.
2011-12-04 Helmut Eller <[email protected]>
* swank-rpc.lisp (read-chunk): Signal end-of-file we had no input.
2011-12-03 Nikodemus Siivola <[email protected]>
* swank-sbcl.lisp (wait-for-input): Another go at this. Rip out POLL,
build on top of just INPUT-READY-P.
(input-ready-p): Outside Windows, use SYSREAD-MAY-BLOCK-P to check.
2011-12-03 G�bor Melis <[email protected]>
* swank-allegro.lisp (set-default-initial-binding): In 9.0 alpha,
*CL-DEFAULT-SPECIAL-BINDINGS* is [soon to be] deprecated. It's
otherwise the same EXCL:*REQUIRED-TOP-LEVEL-BINDINGS* (i.e. no
change in behavior).
2011-12-03 Helmut Eller <[email protected]>
* swank-clisp.lisp (wait-for-input): Add a version for windows.
2011-12-02 Stas Boukarev <[email protected]>
* swank-sbcl.lisp (wait-for-input): Define only if
#+os-provides-poll or #+win32.
2011-12-02 Helmut Eller <[email protected]>
* swank.lisp (listener-channel): Moved to contrib/swank-mrepl.lisp
(create-listener, initial-listener-bindings, spawn-listener-thread).
2011-12-01 Helmut Eller <[email protected]>
* swank-sbcl.lisp (wait-for-input): Call poll(2).
* swank-backend.lisp (wait-for-streams, wait-for-one-stream):
Deleted. Wouldn't work on binary streams.
2011-12-01 Helmut Eller <[email protected]>
* swank-loader.lisp (*contribs*): Add swank-util.
2011-12-01 Helmut Eller <[email protected]>
* swank-cmucl.lisp (method-location): Special case accessors.
2011-11-29 Helmut Eller <[email protected]>
* swank.lisp (do-symbols*, classify-symbol)
(symbol-classification-string): Moved to contrib/swank-util.lisp.
2011-11-29 Helmut Eller <[email protected]>
* swank.lisp (to-line): Increase default limit to 512.
(frame-locals-for-emacs): Let *print-right-margin* override
default line width.
2011-11-27 Helmut Eller <[email protected]>
* swank.lisp (create-server): Add a :backlog argument.
(setup-server): Pass it along.
* swank-backend.lisp (create-socket): Backlog argument.
* swank-abcl.lisp: Implement it.
* swank-allegro.lisp:
* swank-ccl.lisp:
* swank-clisp.lisp:
* swank-cmucl.lisp:
* swank-corman.lisp:
* swank-ecl.lisp:
* swank-lispworks.lisp:
* swank-sbcl.lisp:
* swank-scl.lisp:
2011-11-27 Helmut Eller <[email protected]>
* swank-cmucl.lisp (make-socket-io-stream): Create character
stream if external-format is non-nil.
2011-11-27 Helmut Eller <[email protected]>
* swank.lisp (create-server): Remove coding-system argument.
([defstruct] connection): Remove coding-system slot.
(connection.external-format, *coding-system*): Deleted.
(make-connection, start-server, create-server, setup-server)
(accept-connections): Drop coding-system arg.
(connection-info): Return supported coding systems.
(create-repl, open-dedicated-output-stream)
(open-streams, initialize-streams-for-connection): Add
coding-system arg.
* slime.el (slime-init-command): Ignore the coding-system arg.
(slime-connection-coding-systems): New connection variable.
(slime-set-connection-info): Set it.
2011-11-27 Helmut Eller <[email protected]>
* swank.lisp (eval-in-frame-aux): Don't bind *package* during
eval.
2011-11-21 Helmut Eller <[email protected]>
* swank-cmucl.lisp: Trigger compilation of utf8 stuff before first
real use.
2011-11-21 Helmut Eller <[email protected]>
* swank.lisp (*sldb-printer-bindings*): Removed. Rather useless
since the change from 2009-02-26. It could at best have some
influence on the way conditions are printed. *sldb-string-length*
and *sldb-bitvector-length* where both nil so
*sldb-pprint-dispatch-table* was also not used by default. In
summary, spending 3 pages for something that's not used by default
was pretty silly. One variable less where we can get the defaults
wrong.
2011-11-21 Helmut Eller <[email protected]>
* slime.el (sldb-eval-in-frame): Try to figure the package out.
Ask Lisp if the function for frame was defined in a particular
package and use it to read the form.
(sldb-read-form-for-frame): New helper.
* swank-backend (frame-package): New.
* swank-cmucl (frame-package): Implement it.
* swank.lisp (frame-package-name, eval-in-frame-aux): New.
(eval-string-in-frame, pprint-eval-string-in-frame): Use package
argument.
2011-11-19 Nikodemus Siivola <[email protected]>
* swank-sbcl.lisp (restart-frame): Make it possible to restart
frames of anonymous functions -- at least some of the time.
2011-11-16 Stas Boukarev <[email protected]>
* swank.lisp (open-dedicated-output-stream): Open a stream with
the right coding system.
Change (:open-dedicated-output-stream port) message to
(:open-dedicated-output-stream port coding-system), because Emacs
can no longer determine the coding system based on the main
network streams since they are binary now.
2011-11-11 Anton Kovalenko <[email protected]>
* slime.el (slime-ed): add bytep argument to destructure-case.
When it's true, position is interpreted as byte offset.
2011-11-08 Helmut Eller <[email protected]>
Restore old header format.
* swank-rpc.lisp (parse-header, write-header)
* slime.el (slime-net-decode-length, slime-net-encode-length)
2011-11-06 Helmut Eller <[email protected]>
* swank-ecl.lisp (accept-connection): Fix buffering arg.
* swank-cmucl.lisp (accept-connection): Fix buffering arg.
2011-11-06 Helmut Eller <[email protected]>
* slime.el (slime-run-test): Renamed from slime-run-one-test.
(slime-toggle-test-debug-on-error): New.
([test] break): Longer timeouts.
2011-11-06 Helmut Eller <[email protected]>
Add portable versions for string-to-utf8 and utf8-to-string.
* swank-backend.lisp (default-string-to-utf8)
(default-utf8-to-string): New.
(string-to-utf8, utf8-to-string): Use default implementations.
* swank-lispworks.lisp (make-flexi-stream): Restored.
(utf8-stream): Deleted. The utf8 stuff is now used for the
default implementation of utf8-to-string and would cause name
clashes.
2011-11-06 Helmut Eller <[email protected]>
* swank-allegro.lisp (swank-compile-string): For reader errors
return nil not (values nil nil t).
2011-11-06 Helmut Eller <[email protected]>
New wire format.
Switch from character streams to binary streams. Counting
characters was error prone because some Lisps use utf-16
internally and so READ-SEQUENCE can't be used easily.
The new format looks so:
| byte0 | 3 bytes length |
| ... payload ... |
The playload is an s-exp encoded as UTF-8 string. byte0 is
currently always 0; other values are reserved for future use.
* swank-rpc.lisp (write-message): Use new format.
(write-header, parse-header, asciify, encoding-error): New.
* swank.lisp (accept-connections): Create a binary stream.
(input-available-p): Can't read-char-no-hang on binary streams.
* slime.el (slime-net-connect): Use binary as coding system.
(slime-net-send, slime-net-read, slime-net-decode-length)
(slime-net-encode-length, slime-net-have-input-p): Use new format.
(slime-unibyte-string, slime-handle-net-read-error): New.
(featurep): Require 'un-define for XEmacs.
* swank-sbcl.lisp (input-ready-p): Use sb-sys:wait-until-fd-usable.
2011-11-06 Helmut Eller <[email protected]>
* swank.lisp (close-connection): Fix thinko.
2011-11-06 Helmut Eller <[email protected]>
* swank-backend.lisp (accept-connection): Improve docstring. In
particular say that we want a binary stream if the EXTERNAL-FORMAT
argument is nil.
* swank-abcl.lisp (accept-connection): Make it so.
* swank-clisp.lisp (accept-connection): Make it so.
* swank-cmucl.lisp (accept-connection): Make it so.
* swank-lispworks.lisp (accept-connection): Make it so.
* swank-sbcl.lisp (accept-connection): Make it so.
* swank-scl.lisp (accept-connection): Make it so.
2011-11-06 Helmut Eller <[email protected]>
* swank-backend.lisp (utf8-to-string, string-to-utf8): New.
* swank-sbcl.lisp (string-to-utf8, string-to-utf8): Implemented .
* swank-lispworks.lisp (string-to-utf8, string-to-utf8): Implemented.
* swank-cmucl.lisp (string-to-utf8, string-to-utf8): Implemented.
* swank-clisp.lisp (string-to-utf8, string-to-utf8): Implemented.
* swank-ccl.lisp (string-to-utf8, string-to-utf8): Implemented.
* swank-allegro.lisp (string-to-utf8, string-to-utf8): Implemented.
* swank-abcl.lisp (string-to-utf8, string-to-utf8): Implemented.
(octets-to-jbytes, jbytes-to-octets): New helpers.
2011-11-03 Helmut Eller <[email protected]>
* swank.lisp (close-connection): Be more careful with non-ascii.
2011-11-03 Helmut Eller <[email protected]>
Remove dependecy on FLEXI-STREAMS for Lispworks.
* swank-lispworks.lisp (make-flexi-stream): Deleted.
(utf8-stream): New class to do the transcoding.
(accept-connection): Use it.
2011-10-19 Andrew Myers <[email protected]>
* swank-allegro.lisp (frob-allegro-field-def): Add missing type to
ecase for inspector.
2011-10-13 Helmut Eller <[email protected]>
* swank.lisp (all-completions): Remove mixed case syms e.g |Foo|.
"fo" is not a prefix of "|Foo|" and it would be problematic later.
2011-10-05 Stas Boukarev <[email protected]>
* swank.lisp (clear-repl-variables): New functions, clears *, /,
and + variables.
2011-09-28 Stas Boukarev <[email protected]>
* slime.el: Remove (require 'hideshow), it's not used anymore.
Spotted by Leo Liu.
2011-09-27 Mark Evenson <[email protected]>
* swank-abcl.lisp (describe-symbol-for-emacs): Differentiate
between function, generic function, special forms, and macros by
copying SBCL implementation.
2011-09-13 Christophe Rhodes <[email protected]>
* slime.el (slime-simple-complete-symbol): only display "Complete
but not unique" message if the partial completion figures in the
completion list.
2011-08-31 Anton Kovalenko <[email protected]>
* swank-sbcl.lisp (preferred-communication-style): check for
:sb-thread before :win32, so :spawn is preferred for threaded
Windows builds.
2011-08-31 Nikodemus Siivola <[email protected]>
* swank-sbcl.lisp (make-socket-io-stream): Backwards compatibility with
SBCL < 1.0.42.43 -- and bugfix.
2011-08-26 Mark Evenson <[email protected]>
* swank-abcl.lisp (class-slots): Use exported symbol allowing
classes with non-standard metaobjects to be inspected.
2011-08-18 Helmut Eller <[email protected]>
Fix line numbers for compiler notes if is narrowing was in effect.
* slime.el (slime-canonicalized-location): Widen before calling
line-number-at-pos.
2011-08-17 Stas Boukarev <[email protected]>
* swank-allegro.lisp (with-redirected-y-or-n-p): Fix modern-mode
issues.
Patch by Andrew Myers.
2011-08-09 Nikodemus Siivola <[email protected]>
* swank-sbcl.lisp (make-socket-io-stream): Use :SERVE-EVENTS T when
using :FD-HANDLER as the communication style. SBCL will soon stop
serving events by default on socket streams.
2011-08-08 Helmut Eller <[email protected]>
* slime.el (slime-unintern-symbol): New command.
* swank.lisp (unintern-symbol): Lisp-side implementation.
2011-07-03 Nikodemus Siivola <[email protected]>
* swank-sbcl.lisp (debug-var-info): New function: calls
SB-DI::DEBUG-VAR-INFO when available.
(frame-locals, frame-var-value): Treat more-context and more-count
vars specially.
2011-06-21 Nikodemus Siivola <[email protected]>
* swank.lisp (*indentation-cache-lock*): Deleted.
(perform-indentation-update): Spawn a new thread to handle the
indentation update when using threads. Move cache-clearing to
UPDATE-INDENTATION/DELTA-FOR-EMACS. Replace the old cache by
the one returned from U-I/D-F-E.
(update-indentation/delta-for-emacs): When clearing the cache,
allocate a new table. When threads are being used, copy the
cache before mutation, to ensure that caches possibly seen by other
threads are write-only by then.
2011-06-18 Nikodemus Siivola <[email protected]>
* swank.lisp (*indentation-cache-lock*): New variable:
hash-table updates aren't necessarily thread-safe.
(perform-indentation-update, update-indentation/delta-for-emacs):
Grab the lock when necessary -- in delta-for-emacs we hold on to
it a bit longer than necessary, but the code is easier to read
this way.
2011-06-16 Nikodemus Siivola <[email protected]>
* swank.lisp (macro-indentation): Restore the old simple version.
* swank-sbcl.lisp (compiling-from-buffer-p): PROBE-FILE to
handle cases there the tmp-directory is a symlink.
(compiling-from-file-p): Ditto.
2011-06-14 Nikodemus Siivola <[email protected]>
* swank-backend.lisp (call-with-io-timeout): New DEFINTERFACE.
* swank-sbcl.lisp (call-with-io-timeout): DEFIMPLEMENTATION for it.
* swank.lisp (auto-flush-loop): Call FINISH-OUTPUT using
CALL-WITH-IO-TIMEOUT to prevent deadlocks.
* swank.lisp (macro-indentation): Fix handling of lambda-list
keywords other than &rest and &body.
* slime.el (slime-update-system-indentation): Remove stale specs
from common-lisp-system-indentation when new one arrives.
2011-06-10 Nikodemus Siivola <[email protected]>
* swank.lisp (macro-indentation): Walk the lambda-list
to construct a better indentation spec instead of just
looking for &BODY.
2011-06-09 Nikodemus Siivola <[email protected]>
* swank-sbcl.lisp (execv): Stupid SBCL hackers breaking backwards
compatibility again: SB-POSIX:SYSCALL-ERROR has a required
argument in 1.0.49, but accepts no arguments in older ones. Use
plain ERROR instead.
Support for per-package derived indentation, when
slime-indentation is used.
* swank.lisp (update-indentation/delta-for-emacs): Tell Emacs
which packages the symbol is available in. Unless
slime-indentation is used, this information is just dropped on the
floor.
* slime.el (slime-update-system-indentation): New function. Use
this to inform indentation about derived specs when
`common-lisp-system-indentation' is bound.
(slime-handle-indentation-update): Adjust to support per-package
derived indentation specs when slime-indentation is available.
2011-05-27 Helmut Eller <[email protected]>
Fix "wrong number of args" problem with slime-inspector-quit.
Reported by Anton Kovalenko.
* slime.el (slime-popup-buffer-quit-function)
(slime-quit-threads-buffer): Drop the kill-buffer-p argument.
2011-05-24 Helmut Eller <[email protected]>
* slime.el (destructure-case): Fix "`_' not left unused" warnings.
Insert an (ignore) form for empty bodies; this inhibts the
compiler transformation that leads to the spurios warning. This
has no runtime cost in compiled code, since the compiler
recognizes (ignore) and emits no code for it.
(slime-flatten-tree): Deleted. No longer used.
2011-05-23 Stas Boukarev <[email protected]>
* swank.lisp (sdlb-print-condition): New (or old new)
function. It was bound by P in sldb-mode, but for some reason it
was lost.
2011-05-23 Helmut Eller <[email protected]>
* slime.el (slime-apropos-label-properties): Deleted. Just
auto-load apropos-mode.
(slime-print-apropos): Use the variable apropos-label-face
which seems to exist in all relevant Emacsen.
2011-05-22 Helmut Eller <[email protected]>
Turn on lexical-binding for slime.el.
This mostly involves prefixing unused variables
with underscores to shut up the compiler, but
also some less harmless changes.
* slime.el (slime-dispatching-connection, slime-current-thread):
Add defvars.
(slime-connect): called-interactively-p wants 1 arg in Emacs 24
but none in Emacs 22. So we can't use it; instead add an extra
optional arg and set that to non-nil in the interactive spec.
(slime-read-from-minibuffer): Actually use the history arg.
(slime-inspector-quit): Drop the unused kill-buffer arg from the
lambda-list.
(slime-run-tests): Can't specbind slime-repl-history-file without
variable declation. I don't want to declare it here so I just
eliminated it and let somebody else fix slime-repl.el.
2011-05-21 Helmut Eller <[email protected]>
Minor tweaks to avoid some compiler warnings.
* slime.el (slime-modeline-string, slime-buffer-connection):
Declare variables.
(slime-flatten-tree): Helper function.
(destructure-case): Use it, and make '_ ignorable if
it occurs in some pattern.
(slime-connect): Avoid obsolete functions:
string-to-int -> string-to-number
interactive-p -> called-interactively-p
(slime-complete-maybe-restore-window-configuration)
last-command-char -> last-command-event
completion-base-size -> completion-base-position
(slime-xref-mode-map): Use call-interactively
when calling the remapped next-line/previous-line commands.
2011-05-09 Nikodemus Siivola <[email protected]>
* swank-sbcl.lisp (swank-compile-string): Use :SOURCE-NAMESTRING
to provide the name of the actual source file, and
:ALLOW-OTHER-KEYS for compatibility with pre-1.0.48.1 versions.
This allows SBCL to get uninteresting redefinition muffling right.
(*trap-load-time-warnings*): Default to T to make the redefinition
notes more visible, especially now that redefinition muffling hides
the boring ones.
2011-05-08 Nikodemus Siivola <[email protected]>
* slime.el (slime-intern-indentation-spec): New function. Converts
strings in an indentation spec to symbols.
(slime-handle-indentation-update): Intern the indentation spec
using slime-intern-indentation-spec, so that lisp side can pass
complex indentation specs.
* contrib/swank-indentation.lisp (application-indentation-hint):
Downcase symbol names -- any symbol in an indentation spec is
pretty much guaranteed to have a lowecase name on the Emacs side.
2011-04-16 Stas Boukarev <[email protected]>
* slime.el (slime-load-failed-fasl): New variable. Accepts `ask',
`always', and `never' symbols. Loads or not loads fasls produced by
compile-file which returned non-nil failure-p.
2011-04-14 Stas Boukarev <[email protected]>
* swank.lisp (list-threads): Call `use-threads-p' only when
*emacs-connection* is non-nil. `use-threads-p' wouldn't work in
this case, and there is no need to remove a worker thread from the
list if it's not connected.
This fixes an issue with calling swank:stop-server when slime
isn't connected.
2011-03-13 Stas Boukarev <[email protected]>
* swank.lisp (format-restarts-for-emacs): Add
without-printing-errors around restart printing.
2011-03-09 Helmut Eller <[email protected]>
Remove slime-sexp-at-point-for-macroexpansion.
* slime.el (slime-sexp-at-point-for-macroexpansion): Deleted.
(slime-eval-macroexpand): Use slime-sexp-at-point instead.
(slime-eval-macroexpand-inplace): Use
slime-bounds-of-sexp-at-point directly.
2011-03-09 Helmut Eller <[email protected]>
Move some of the logic from slime-sexp-at-point-for-macroexpansion
into slime-sexp-at-point.
* slime.el (slime-bounds-of-sexp-at-point): New. Special case if
we are at '( as slime-sexp-at-point-for-macroexpansion does.
(slime-bounds-of-symbol-at-point): New.
(slime-symbol-at-point, slime-sexp-at-point): Use the above.
2011-02-24 Stas Boukarev <[email protected]>
* swank-allegro.lisp (find-topframe): Fix excl::int-newest-frame
invocation for the latest alpha version of Allegro.
Patch by G�bor Melis.
2011-02-18 Stas Boukarev <[email protected]>
* slime.el (slime-init-popup-buffer): Don't use
multiple-value-setq on a list, XEmacs doesn't like it.
2011-02-18 Stas Boukarev <[email protected]>
* slime.el (slime-insert-threads): Make sure newlines have the
same thread-id property as the rest of the line. This fixes
confusion when point is at the end of a line.
2011-02-13 Stas Boukarev <[email protected]>
* slime.el (slime-inspector-operate-on-point): Don't save the
point when inspecting a different object.
(slime-inspector-operate-on-point): If there is no action property
directly at the point, try looking at (1- (point)), many
inspectable objects are presented the end of the line, so it's
easier to navigate to them by C-e and still being able to activate
it.
2011-02-08 Stas Boukarev <[email protected]>
* slime.el (slime-choose-overlay-region): Don't use `list' instead
of `values', GNU Emacs fakes multiple values with lists, but
XEmacs uses real multiple values.
Reported by Raymond Toy.
2011-02-04 Helmut Eller <[email protected]>
Be careful with interning.
* swank.lisp (find-definitions-for-emacs): Use parse-symbol.
2011-02-04 Helmut Eller <[email protected]>
Don't double encode results for eval-in-emacs.
* slime.el (slime-check-eval-in-emacs-result): New.
(slime-eval-for-lisp): Use it.
* swank.lisp (unreadable-object): Removed.
2011-02-02 Stas Boukarev <[email protected]>
* swank.lisp (eval-in-emacs): Return unreadable results from Emacs
as an unreadable-object, not as a string.
2011-02-02 Stas Boukarev <[email protected]>
* slime.el (slime-eval-for-lisp): Return value as a string,
because it can be unreadable, e.g. #<buffer foo>
* swank.lisp (eval-in-emacs): Prevent reader errors.
2011-02-02 Stas Boukarev <[email protected]>
* swank.lisp (eval-in-emacs): Export it.
2011-01-28 Stas Boukarev <[email protected]>
* slime.el (slime-check-location-filename-sanity): Guard
against target-filename being NIL.
2011-01-26 Helmut Eller <[email protected]>
Allow tail-merging in call-with-bindings.
* swank.lisp (call-with-bindings): Don't use progv if alist is
empty alist is empty.
2011-01-20 Stas Boukarev <[email protected]>
* swank-ecl.lisp (+TAGS+): change
(translate-logical-pathname #P"SYS:TAGS") to
(merge-pathnames "TAGS" (translate-logical-pathname "SYS:"))
because of case conversion the former results in a pathname with a
name "tags", which doesn't exist.
2010-12-10 Stas Boukarev <[email protected]>
* slime.el (slime-with-popup-buffer): Correct the docstring.
2010-12-09 Helmut Eller <[email protected]>
* slime.el (slime-toggle-break-on-signals): New command.
* swank.lisp (toggle-break-on-signals): The corresponding Lisp code.
2010-12-02 Martin Simmons <[email protected]>
* swank-lispworks.lisp (frame-actual-args): Reimplement to include
only the values like on other platforms and deal with, optional
key and rest args.
(print-frame): Format the frame as a call like in other backends.
2010-11-13 Helmut Eller <[email protected]>
Improve source locations for compiler messages in Lispworks.
* swank-lispworks.lisp (map-error-database)
(signal-error-data-base, make-dspec-progenitor-location): Pass the
edit-path along.
(signal-undefined-functions): No edit-path available so just use
nil.
2010-11-12 Helmut Eller <[email protected]>
Improve frame-source-location for Lispworks.
* swank-lispworks.lisp (frame-source-location): Exctract the
edit-path from the frame and pass it to Emacs.
(edit-path-to-cmucl-source-path): New function.
(frame-location): Use it.
* slime.el (slime-location-offset): Add a :edit-path property.
(slime-search-edit-path): New function.
(slime-search-call-site): Fix regexp to match
zero arg functions.
2010-11-07 Helmut Eller <[email protected]>
* swank-backend.lisp (label-value-line): Remove display-nil-value.
And the other stuff too.
(label-value-line*): Idem.
2010-11-07 Helmut Eller <[email protected]>
* swank-loader.lisp: ASDF free again. And proud of it!
(default-fasl-dir, load-swank): Remove asdf stuff.
2010-11-03 Stas Boukarev <[email protected]>
* swank-loader.lisp (*architecture-features*): Add :arm for CCL
ARM port.
2010-11-02 Martin Simmons <[email protected]>
* swank-lispworks.lisp (list-callers-internal): Revert to previous
low level implementation, fixed for LW6.
(list-callees-internal): Reimplement using low level instead of
the compiler's xref.
2010-10-23 Stas Boukarev <[email protected]>
* slime.el (slime-goto-location-position): In case of
(:function-name name) go to (point-min) before searching for
function. Remove redundant regexp and regexp-quote function name
before inserting it into a regexp.
2010-10-21 Helmut Eller <[email protected]>
In ABCL, try harder to find the source of stack frames.
* swank-abcl.lisp (source-location): Now a GF.
(source-location [java-stack-frame]): New.
(source-location [lisp-stack-frame]): New.
(source-location [function]): New.
(frame-source-location, find-definitions): Use them.
(*source-path*, find-definitions): New.
(system-property, pathname-parent, pathname-absolute-p)
(split-string, path-separator, search-path-property)
(jdk-source-path, class-path, zipfile-contains-p)
(find-file-in-path): Noise for filename frobbing.
2010-10-21 Helmut Eller <[email protected]>
Require ABCL 0.22 and remove obsolete conditionalisation.
* swank-abcl.lisp (call-with-debugger-hook)
(install-debugger-globally)
(call-with-debugging-environment, backtrace, print-frame, spawn):
Remove #+/#- stuff.
(preferred-communication-style): Return :spawn unconditionally.
(sys::break): Removed.
2010-10-20 Stas Boukarev <[email protected]>
* slime.el (slime-connect): Convert the port number read from
minibuffer to an integer, passing it as a string to
`make-network-process' isn't portable.
Patch by Marko Kocic.
2010-10-19 Stas Boukarev <[email protected]>
* swank.lisp (invoke-nth-restart): Make sure there is such restart
before invoking it.
2010-10-19 Stas Boukarev <[email protected]>
* swank-sbcl.lisp (deinit-log-output): Use the right symbol for
*LOG-OUTPUT*, swank package isn't available at the time
swank-backend is compiled.
2010-10-16 Stas Boukarev <[email protected]>
* swank-loader.lisp (default-fasl-dir): Guard against using :asdf
package if it doesn't exist.
Patch by Anton Vodonosov.
2010-10-16 Attila Lendvai <[email protected]>
* swank-fuzzy.lisp: speed up by 2-4 times (on sbcl).
* fuzzy.el: Clean up fuzzy completion's keymap code, drop
mimic-key-bindings.
* slime.el: Added separate host and port history for
slime-connect.
(slime-lookup-lisp-implementation): better error reporting and
allow using a functionp to generate the arguments.
* swank.lisp: Smarten up the label-value-line macros:
- support a :label emacs font property
- added key args: padding-length, display-nil-value,
hide-when-nil, splice-as-ispec, value-text
- label-value-line* will evaluate and splice the result
of the form after a @ character