1. 07 Apr, 2012 1 commit
  2. 06 Jan, 2012 1 commit
    • Helmut Eller's avatar
      Add a "sentinel thread" to protect access to global lists. · db92b848
      Helmut Eller authored
      * 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:
      db92b848
  3. 10 Dec, 2011 1 commit
  4. 01 Dec, 2011 1 commit
  5. 27 Nov, 2011 1 commit
    • Helmut Eller's avatar
      * swank.lisp (create-server): Add a :backlog argument. · a259dee0
      Helmut Eller authored
      (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:
      a259dee0
  6. 21 Nov, 2011 1 commit
    • Helmut Eller's avatar
      * slime.el (sldb-eval-in-frame): Try to figure the package out. · ac0365fb
      Helmut Eller authored
      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.
      ac0365fb
  7. 06 Nov, 2011 5 commits
    • Helmut Eller's avatar
      Forgot this file in last commit. · 040e005b
      Helmut Eller authored
      040e005b
    • Helmut Eller's avatar
      New wire format. · d8166b0e
      Helmut Eller authored
      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.
      ([test] break): Longer timeouts.
      
      * swank-sbcl.lisp (input-ready-p): Use sb-sys:wait-until-fd-usable.
      d8166b0e
    • Helmut Eller's avatar
      * swank-abcl.lisp (accept-connection): Make it so. · 1bfb920b
      Helmut Eller authored
      * 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.
      1bfb920b
    • Helmut Eller's avatar
      * swank-backend.lisp (accept-connection): Improve docstring. In · c70f6624
      Helmut Eller authored
      particular say that we want a binary stream if the EXTERNAL-FORMAT
      argument is nil.
      c70f6624
    • Helmut Eller's avatar
  8. 14 Jun, 2011 1 commit
    • Nikodemus Siivola's avatar
      sbcl: workaround for auto-flush thread deadlocks · 9a6edb78
      Nikodemus Siivola authored
       Occasionally auto-flush thread could deadlock with a thread doing
       compilation:
      
         T1: grabs world-lock
         T2: decides to flush, grabs stream lock
         T1: needs to do output (compiler note, etc), waits on the stream lock
         T2: needs the world-lock for a while (PCL dispatch machinery setup, etc)
      
         KABOOM.
      
       This is an SBCL issue, no mistake about it -- but sorting out
       the world-lock handling is going to take a while, and sticking
       a deadline around the FINISH-OUTPUT call avoids the issue.
      9a6edb78
  9. 07 Nov, 2010 1 commit
  10. 15 Oct, 2010 1 commit
    • Attila Lendvai's avatar
      Smarten up the label-value-line macros. · b79e17dd
      Attila Lendvai authored
      - 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
      b79e17dd
  11. 09 Oct, 2010 1 commit
  12. 08 Oct, 2010 1 commit
    • Christophe Rhodes's avatar
      add richer location information to the position arg in compile-string-for-emacs · 0d9249b3
      Christophe Rhodes authored
      R's source location recording infrastructure works with line/column offsets
      rather than with character offsets, so to get the right srcrefs associated
      with some string source we need to communicate line and column information
      from the source buffer.  Unfortunately, only the emacs side can do that -- in
      principle, the R side has no direct access to the source file at all.  This
      means a protocol change, converting the position argument in
      swank:compile-string-for-emacs to a list of <position>s in the slime
      source location grammar.  At present, pass in both :position and :line
      kinds, and have swank:compile-string-for-emacs extract just the :position for
      passing on to swank-compile-string.
      0d9249b3
  13. 18 Sep, 2010 1 commit
    • Tobias C. Rittweiler's avatar
      * swank-backend.lisp (valid-function-name-p): New interface. · 9d1c2626
      Tobias C. Rittweiler authored
      	(compiler-macroexpand-1): Use it to guard against type errors
      	from COMPILER-MACRO-FUNCTION.
      
      	* swank-arglist.lisp (function-exists-p): Renamed from
      	FUNCTION-EXISTS-P. Uses new SWANK-BACKEND:VALID-FUNCTION-NAME-P
      	underneath.
      	(valid-operator-name-p): Unused, hence deleted.
      	(boundp-and-interesting): Renamed from INTERESTING-VARIABLE-P.
      9d1c2626
  14. 21 Aug, 2010 1 commit
    • Helmut Eller's avatar
      Snapshot restore support for SBCL. · 84dd0c94
      Helmut Eller authored
      * swank-backend.lisp (background-save-image): New.
      * swank-sbcl.lisp (command-line-args, dup, sys-execv, exec-image)
      (make-fd-stream, background-save-image): New.
      
      Add support to save snapshots in backround.
      
      * swank-snapshot.lisp (background-save-snapshot): New.
      (resurrect): Initialize repl streams.
      * slime-snapshot.el (slime-snapshot): With prefix-arg perform
      saving in background.  Also ask before overwriting existing files.
      84dd0c94
  15. 22 Apr, 2010 1 commit
  16. 19 Mar, 2010 1 commit
    • Tobias C. Rittweiler's avatar
      * slime.el (slime-lisp-implementation-program): New connection · 58f6f298
      Tobias C. Rittweiler authored
      	variable.
      	(slime-set-connection-info): Adapted to set it.
      	(slime-attach-gdb): Use it to invoke gdb so gdb is able to find
      	debugging symbols on non-Linux platforms.
      
      	* swank.lisp (connection-info): Include lisp-implementation-program.
      
      	* swank-backend.lisp (lisp-implementation-program): New interface.
      	Default implementation based on command-line-args.
      
      	* swank-ecl.lisp (command-line-args): Implement.
      58f6f298
  17. 18 Mar, 2010 1 commit
    • Tobias C. Rittweiler's avatar
      Add an ATTACH-GDB restart to SLDB. · 7721499c
      Tobias C. Rittweiler authored
      	* swank.lisp (call-with-gdb-restart): New. Sends the new :gdb-attach event to Emacs.
      	(with-gdb-restart): Sugar.
      	(with-top-level-restart): Also expand to with-gdb-restart.
      	(dispatch-event): Add :gdb-attach event.
      
      	* swank-backend.lisp (gdb-initial-commands): New interface
      	function so backends can customize how gdb needs to be configured
      	for their implementation.
      
      	* swank-ecl.lisp (gdb-initial-commands): Implement.
      
      	* slime.el (slime-dispatch-event): Add clause for :gdb-attach.
      	(slime-attach-gdb): New.
      7721499c
  18. 02 Mar, 2010 1 commit
    • sboukarev's avatar
      * slime.el (slime-compile-and-load-file): Accept C-u arguments for · 326a9a8e
      sboukarev authored
      compilation policy the same way as slime-compile-defun.
      
      * swank.lisp (compile-file-for-emacs): Take an additional policy argument.
      * swank-backend.lisp (swank-compile-file): Ditto.
      
      * swank-sbcl.lisp (compiler-policy, (setf compiler-policy)):
      rename from get/set-compiler-policy.
      (with-compiler-policy): New macro.
      (swank-compile-file): Use with-compiler-policy.
      (swank-compile-string): Ditto.
      326a9a8e
  19. 23 Feb, 2010 1 commit
  20. 22 Feb, 2010 2 commits
    • Tobias C. Rittweiler's avatar
      * swank-backend.lisp (converting-errors-to-error-location): Moved · 428d4519
      Tobias C. Rittweiler authored
      	here from swank-sbcl.lisp so other backends can make use of it, too.
      
      	* swank-sbcl.lisp: The above macro was called slightly
      	differently, so update uses accordingly.
      428d4519
    • Tobias C. Rittweiler's avatar
      Make it possible for SWANK backends to specify locations based on · 22c7206a
      Tobias C. Rittweiler authored
      	a TAGS file.
      
      	* slime.el (slime-postprocess-xref, slime-postprocess-xrefs): New
      	functions. They convert TAGS based locations from SWANK into
      	file+position based locations because the rest of Slime expects
      	and works with those.
      	(slime-find-definitions): Call slime-postprocess-xrefs.
      	(slime-xref): Ditto.
      	(slime-etags-to-locations): The function which does the actual
      	conversion. Extracted from `slime-etags-definitions'.
      	(slime-etags-definitions): Use it.
      
      	* swank-backend (defimplementation): Add implicit BLOCK.
      	(:etags-file, :tag): Mentioned for possible values in :LOCATION.
      22c7206a
  21. 17 Feb, 2010 1 commit
    • Helmut Eller's avatar
      Add a command to eval stuff in the inspector. · 3b0edd49
      Helmut Eller authored
      * slime.el (slime-inspector-eval): New command.
      (slime-inspector-mode-map): Bind it to 'e'.
      * swank.lisp (inspector-eval): New function.
      * swank-backend.lisp (eval-context): New function.
      * swank-cmucl.lisp (eval-context): Implement it.
      3b0edd49
  22. 06 Jan, 2010 1 commit
    • Tobias C. Rittweiler's avatar
      · 57407432
      Tobias C. Rittweiler authored
      	* swank-backend (declaration-arglist): Normalize declaration
      	specifiers to contain `variables' rather than `vars'.
      
      	* swank-arglists.lisp (arglist-dispatch ['declare]): Normalize
      	`vars' to `variables'.
      	(arglist-for-type-declaration): Ditto.
      
      	* slime-autodoc (autodoc.1 [test]): Reorganize test, add comments,
      	add cases to test declarations.
      57407432
  23. 05 Jan, 2010 1 commit
  24. 03 Jan, 2010 1 commit
    • sboukarev's avatar
      * contrib/slime-repl.el (sldb-insert-frame-call-to-repl): New function · 56b4664e
      sboukarev authored
      for inserting a call to a frame into the REPL. Bound to C-y in SLDB.
      
      * swank-backend.lisp (frame-call): New function.
      Returns a string representing a call to the entry point of a frame.
      * swank-ccl.lisp (frame-call): Implementation of the above.
      * swank-sbcl.lisp (frame-call): Ditto.
      56b4664e
  25. 22 Dec, 2009 1 commit
    • Helmut Eller's avatar
      Commands to save&restore image files without disconnecting. · 71c0d9c8
      Helmut Eller authored
      * slime-snapshot.el: New file.
      * swank-snapshot.lisp: New file.
      
      Some new backend functions used for loading image files.
      
      * swank-backend.lisp (socket-fd, make-fd-stream, dup, exec-image)
      (command-line-args): New functions.
      * swank-cmucl.lisp: Impemented.
      * swank-cmucl.lisp (reset-sigio-handlers): New function.
      (save-image): Fix quoting bug.
      
      * swank.lisp (clear-event-history): New functoin.
      (interactive-eval, eval-region): Don't use FRESH-LINE.
      71c0d9c8
  26. 19 Dec, 2009 1 commit
    • sboukarev's avatar
      * contrib/swank-asdf.lisp (asdf:operation-done-p): ASDF included with some · 44327aba
      sboukarev authored
      implementations doesn't have AROUND method combination, so guard
      against its usage. This will prevent swank:reload-system from working,
      but it will let load swank-asdf.
      Reported by Mark Evenson.
      
      * swank-backend.lisp (defpackage): export with-symbol and
      replace its fully qualified usage everywhere.
      44327aba
  27. 10 Dec, 2009 1 commit
    • Tobias C. Rittweiler's avatar
      * swank-backend.lisp (*debug-swank-backend*): New variable. If · 785a3d9c
      Tobias C. Rittweiler authored
      	true, backends should not catch internal errors (e.g. during
      	definition finding), and should not perform backtrace magic.
      	(make-error-location): New helper.
      	(find-definitions [interface]): Default to error location.
      
      	* swank-sbcl.lisp (converting-errors-to-location): New helper
      	macro. Regards new *DEBUG-SWANK-BACKEND*.
      	(find-definitions [implementation]): Use it.
      	(find-source-location [implementation]): Ditto.
      	(functiond-spec): Ditto.
      	(frame-source-location [implementation]): Ditto.
      	(*debug-definition-finding*): Removed.
      	(make-source-location-specification): Removed.
      	(safe-function-source-location): Removed.
      	(safe-source-location-for-emacs): Removed. Not needed anymore.
      
      	(call-with-debugging-environment): Do not perform stack hinting
      	depending on *DEBUG-SWANK-BACKEND*.
      785a3d9c
  28. 21 Nov, 2009 1 commit
  29. 02 Nov, 2009 1 commit
  30. 31 Oct, 2009 2 commits
  31. 20 Sep, 2009 1 commit
    • Tobias C. Rittweiler's avatar
      Generalize M-? (or M-_ respectively.) · bc35ea27
      Tobias C. Rittweiler authored
      	It will now list:
      
      	  - call sites for functions,
      
      	  - macroexpand sites for macros,
      
      	  - binding, setting, referencing sites for variables,
      
      	  - specializing methods for classes.
      
      	* slime.el (slime-xref): Deal with :not-implemented.
      	(slime-xrefs): New. Makes RPC request to XREFS.
      	(slime-edit-callers): Renamed to `slime-edit-uses'.
      	(slime-edit-uses): Use slime-xrefs.
      
      	* swank-backend.lisp (who-*): Add default implementation which
      	returns :not-implemented.
      
      	* swank.lisp (xref-doit): Extracted from XREF.
      	(xref): Pass over :not-implemented to Emacs side.
      	(xrefs): New slime fun. To return results of multiple XREF
      	requests at once.
      bc35ea27
  32. 10 Aug, 2009 1 commit
    • Helmut Eller's avatar
      Separate context info from compiler message text. · 897027d4
      Helmut Eller authored
      * swank-backend.lisp (compiler-condition): Add a new slot
      :source-context.  Remove :short-message.
      * swank-cmucl.lisp, swank-sbcl.lisp, swank-scl.lisp,
      swank-openmcl.lisp, swank-ccl.lisp: Update callers.
      * swank.lisp (make-compiler-note): Use source-context slot.
      * slime.el (slime-note.source-context): New.
      (slime-insert-compilation-log): Use it.
      (slime-note.short-message): Deleted.
      897027d4
  33. 02 Aug, 2009 1 commit
    • Tobias C. Rittweiler's avatar
      * swank-backend.lisp (severity [type]): Allow :redefinition. · ac6f2c95
      Tobias C. Rittweiler authored
      	* swank-sbcl.lisp (signal-compiler-condition): Tag redefinitions.
      
      	* slime.el (slime-maybe-show-compilation-log): Do not show
      	compilation log if each note describes just a redefinition.
      	(slime-insert-compilation-log): Insert notes indented by 2
      	spaces. Insert some more newlines so the buffer appears more
      	structured.
      	(slime-show-note-counts): Add :redefinition to ecase.
      	(slime-redefinition-note-p): New.
      	(slime-severity-label): Was unused. Adapted to be usable.
      ac6f2c95
  34. 11 Jul, 2009 1 commit