Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
* swank-backend.lisp (type-specifier-p): New. Implement it for ACL, ECL, CCL, Clisp, SBCL, LW. * contrib/swank-util.lisp (symbol-classification-string): Use type-specifier-p.
* swank-ecl.lisp (accept-connection): Fix a typo, line => :line.
* swank-ecl.lisp (frame-var-value): Return the value without name.
* swank-ecl.lisp (describe-symbol-for-emacs): Include bound symbols even those without documentation. * slime.el (slime-print-apropos): Do some input validation to detect bugs on the Lisp side. * swank-backend.lisp (describe-symbol-for-emacs): Allow NIL where :NOT-DOCUMENTED was needed.
* swank-ecl.lisp (swank-mop): MOP works well now, import all symbols.
call-with-compilation-hooks in swank-ecl.lisp called the same function twice.
* clean up: (signal (make-condition ...)) => (signal ...)
* swank-ecl.lisp (wait-for-input): Provide implementation that doesn't need serve-event.
In swank-ecl.lisp, import compute-applicable-methods-using-classes when its fboundp (ECL 12.5.1 will provide it).
In MAKE-LOCK (swank-ecl.lisp) make it explicit the need for recursive locks.
Even more long line breaking.
* swank-ecl.lisp (accept-connection): Use the proper element-type for the stream.
* 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:
* swank-ecl.lisp (accept-connection): Fix buffering arg. * swank-cmucl.lisp (accept-connection): Fix buffering arg.
Some changes to the ECL backend so that it works with the new bytecodes compiler.
* 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.
frame-decode-env did not ignore FLET bindings in bytecodes environments.
* slime.el (slime-lisp-implementation-program): New connection 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.
Add an ATTACH-GDB restart to SLDB. * 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.
* swank-ecl.lisp (source-location): Also return EXT::FOO as candidate to search through the TAGS file because SI and EXT both name the same package, and in ECL's code base, sometimes the former, sometimes the latter is used.
* swank-ecl.lisp (source-location): Move call to TRANSLATE-LOGICAL-PATHNAME from here into MAKE-FILE-LOCATION because locations-via-annotations may now also involve logical pathnames.
* swank-ecl.lisp (*original-sigint-handler*) (install-sigint-handler): Deleted; we directly implement call-with-user-break-handler instead. (call-with-user-break-handler): New. Correctly interrupt main thread instead of newly spawned handle-signal thread on SIGINT. (make-interrupt-handler): New helper.
* swank-ecl.lisp (source-location): Don't do (setq file (tmpfile-to-buffer file)) in a COND condition, otherwise next cond clause will get null file. Apply translate-logical-pathname to pathnames.
* swank-ecl.lisp: Make backend depend on ECL version 10.3.1 which just got released. We do not support older versions. Previous version pretty much didn't work in combination with Slime anyway.
Ecl: Make M-. work on function interactively compiled via C-c C-c. * swank-ecl.lisp (*tmpfile-map*, note-buffer-tmpfile) (tmpfile-to-buffer): New helpers. (swank-compile-string): Use them. Also use new COMPILE-FILE keywords :SOURCE-TRUENAME and :SOURCE-OFFSET available in ECL HEAD. (find-definitions): Slurp in definition of FIND-DEFINITIONS-BY-NAME. (find-definitions-by-name): Hence not needed anymore. (source-location): Use TMPFILE-TO-BUFFER to get buffer source location of interactively compiled functions.
* slime.el (slime-compile-and-load-file): Accept C-u arguments for 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.
* swank-backend.lisp (when-let): New macro. For backends and swank.lisp. * swank-ecl.lisp: Use it. Also use new location support of ECL git HEAD.
* swank-ecl.lisp (preferred-communication-style): Go back to NIL. Some parts (like the compiler and CLOS) of ECL do not seem to be thread-safe yet. Also get rid of non-working implementation of :FD-HANDLER. (poll-streams, wait-for-input): Implement on top of select() for communication-style=NIL. (*descriptor-handlers*, add-fd-handler, remove-fd-handlers): Get rid of. (grovel-docstring-for-arglist): Get rid of it, too. (arglist): ECL now provides an extra accessor to a function's arglist. Use that instead. (emacs-inspect): Get rid of the default method. Don't see its point.
Make swank-ecl.lisp work with latest ECL Git HEAD. * swank-ecl.lisp (assert-TAGS-file): Simplified. (assert-source-directory): New helper. (c-function-p): New helper. (c-function): Type based on above. (source-location): Move bits from FIND-DEFINITIONS-FOR-TYPE to this function. Use CONVERTING-ERRORS-TO-ERROR-LOCATION. (find-definitions-for-type): Simplified by using it.
Make M-. be able to jump right into the C source for ECL. Because it's based on TAGS files, M-. and M-* will DTRT once in a .c file. * swank-ecl.lisp (assert-TAGS-file): New helper. (classify-definition-name): Ditto. (find-definitions-for-type): Ditto. Understands Lisp and C functions. (find-definitions): Use them. (source-location): New helper. Extracted from FIND-SOURCE-LOCATION. (find-source-location): Use it. (swank-compile-string): Only try to delete temporary files if they exist.
More work on ECL's swank-backend. * swank-ecl.lisp (accept-connection): Handle :buffering, and :external-format. (external-format): New helper. (find-external-format): Make sure to only return :default in case ECL was built with --disable-unicode; it'll barf on anything else. (socket-fd): Add two-way-stream case due to recent changes in ECL. (make-file-location, make-buffer-location): New helpers. (condition-location): Use them. (swank-compile-file): Handle :external-format. (compile-from-stream): Deleted. Slurped into swank-compile-string. (swank-compile-string): Call SI:MKSTEMP correctly. Make sure to also remove fasl file, not just source file. (grovel-docstring-for-arglist): Do not look at "Syntax:" entry in docstring because that was a kludge. Upstream ECL should be modified instead. (in-swank-package-p, is-swank-source-p, is-ignorable-fun-p): Commented out. They make debugging ECL's swank-backend harder.
Pimp my swank. * swank-ecl.lisp: We depend on ECL 10.2.1 which is not released yet -- you need git/cvs HEAD. Added :spawn, and :fd-handler as communication-style (Thanks to Ram Krishnan), improve compilation hooks so highligting of warnings works, + various cleanup.
* swank-ecl.lisp: Update threading code. ECL doesn't still work with :spawn, though. Work in progress.
* contrib/swank-asdf.lisp (asdf:operation-done-p): ASDF included with some 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.
* swank-ecl.lisp (swank-mop:compute-applicable-methods-using-classes): Add a dummy function. ECL doesn't have it, but some contribs are using it. Patch by Andy Hefner.
* swank-ecl.lisp (function-name): Use clos:generic-function-name for generic functions. (arglist): Check fro symbol before calling special-operator-p and macro-function. Patch by Andy Hefner.
swank-ecl.lisp(find-source-location): Missing comma before error message formatting. Patch by Andy Hefner.
* swank-ecl.lisp (grovel-docstring-for-arglist): ECL's arglists for macros include macro name at the first place, unlike arglists for functions. cdr arglists only for macros and special operators. Reported by Andy Hefner.
2009-07-27 Geo Carncross <firstname.lastname@example.org> * swank-ecl.lisp: Support for older ECL installs from patch by Mark Evenson
* swank-ecl.lisp (find-external-format): Copied from swank-sbcl.lisp. A lot of backends seem to share the same implementation, perhaps some refactoring is needed.
swank-ecl.lisp: Package profiling support
Profiling support by Marko Kocić
* swank-backend.lisp (frame-source-location): Renamed from frame-source-location-for-emacs. Update callers accordingly.
Support new environment changes in recent ECL/CVS patch largely from ECL maintainer.
2009-01-30 Geo Carncross <email@example.com> * swank-ecl.lisp (grovel-docstring-for-arglist): Fix for arglist that reads, but isn't a list
* swank-backend.lisp (swank-compile-file): Take output-file as additional argument. Update backends accordingly. * swank.lisp (*fasl-directory*): New variable. (fasl-pathname): New function. (compile-file-for-emacs): Use it.
* swank-backend.lisp (swank-compile-string): Pass the buffer-file-name to Lisp, not only the directory. Update callers accordingly
As of now, `C-u C-c C-c' compiled a function with maximum debug settings (SBCL only.) Now, `M-- C-c C-c' will compile a function with maximum _speed_ settings (still SBCL only) --- useful to elicit compiler notes. * slime.el (slime-compilation-debug-level): Renamed to `slime-compilation-policy'. (slime-normalize-optimization-level): Renamed to `slime-compute-policy'. * swank.lisp (compile-string-for-emacs): Takes a policy now. (compile-multiple-strings-for-emacs): Ditto. * swank-backend.lisp (swank-compile-string): Change :DEBUG key arg to :POLICY. * swank-scl.lisp, swank-openmcl.lisp, swank-lispworks.lisp * swank-ecl.lisp, swank-corman.lisp, swank-cmucl.lisp, * swank-clisp.lisp, swank-allegro.lisp, swank-sbcl.lisp: Changed accordingly.
* swank-backend.lisp (frame-restartable-p): New function. (swank-frame): Deleted. Update implemenetations accordingly. (print-frame): Renamed back from print-swank-frame. * swank.lisp (backtrace): Don't clutter the backtrace with '(:restartable :unknown). For practical purposes :unknown is the same as nil. * slime.el (sldb-compute-frame-face): Only accept nil or t for the :restartable prop.
* swank-lispworks.lisp (with-swank-compilation-unit): Return the values of BODY. (compile-from-temp-file) * swank-allegro.lisp (compile-from-temp-file) * swank-clisp.lisp (swank-compile-string) * swank-abcl.lisp (swank-compile-string): Return T on success. * swank.lisp (collect-notes): Check return type of FUNCTION.
* swank-backend.lisp (swank-compile-file): Return the same values as COMPILE-FILE. Update backends accordingly.
Improve ECL's arglist support somewhat. * swank-ecl.lisp (grovel-docstring-for-arglist): New function. (arglist): Use it. Now also try to find an arglist for special operators, and macros.
* swank-ecl.lisp: Forgot to update ECL's backend when introducing swank-frames in commit on 2008-09-12.
Adjust positions in files with CRLF-style end-on-line markers. * slime.el (slime-eol-conversion-fixup): New function. (slime-goto-location-position): Use it. Also add a new position type :offset, so that we don't adjust offsets in strings that were sent over the wire (which uses LF eol-convention). * swank-abcl.lisp * swank-allegro.lisp * swank-clisp.lisp * swank-cmucl.lisp * swank-corman.lisp * swank-ecl.lisp * swank-lispworks.lisp * swank-openmcl.lisp * swank-sbcl.lisp * swank-scl.lisp: Create :offset style positions where needed. * swank-lispworks.lisp (skip-comments): New function. (dspec-stream-position): Use it.
* swank-ecl.lisp: Add :load-toplevel and :execute to EVAL-WHENs to fix loading.
* contrib/swank-listener-hooks.lisp: Add missing IN-PACKAGE.
Improve interrupt safety for single-threaded lisps. * slime.el (slime-interrupt): Send a :emacs-interrupt message together with SIGINT. SIGINT now means "check for new events" instead of "invoke the debugger". * swank-backend.lisp (install-sigint-handler) (call-with-user-break-handler): New functions. * swank.lisp (simple-serve-requests,install-fd-handler): Use it. (read-packet, read-char): New function. Check for interrupts. (wait-for-event/event-loop): Check for interrupts.
* swank-ecl.lisp (thread-id): Assign an non-nil id to unknown threads.
Spawn the auto-flush thread in the front end. This removes some copy&paste code in various backends. * swank.lisp (auto-flush-loop): New function. (open-streams): Use it. * swank-backend.lisp (make-stream-interactive): Deleted.
Drop distinction between "recursive" and non-recursive locks. * swank-backend.lisp (make-recursive-lock) (call-with-recursive-lock-held): Deleted. Make the default locks "recursive" instead.
Bugfix: qualify fixnump
Trim swank sources from the ECL backtrace.
Remove frames from the backtrace that are in a swank package as those are misleading. Fixup locals display.
Backtrace and frame/eval improvements
basic/simple implementation of find-definitions
fixup flushing and location create
Initial support for find-source-location with functions
C-c C-c with prefix args now uses the maximal debug level. (By Zach Beane.) Only implemented for SBCL. * slime.el (slime-compile-with-maximum-debug): New variable. (slime-compile-defun, slime-compile-region): Use it. * swank.lisp (compile-string-for-emacs): Accept new debug argument. Update backend accordingly.
ECL moved gray streams into GRAY package
Drop the first return value of emacs-inspect. * swank.lisp (emacs-inspect): Drop the first return value. It wasn't used anymore. Update all methods and callers.
Inspector cleanups. * swank.lisp (emacs-inspect): Renamed from inspect-for-emacs. Changed all method-defs acordingly. (common-seperated-spec, inspector-princ): Moved to swank-fancy-inspector.lisp. (inspector-content): Renamed from inspector-content-for-emacs. (value-part): Renamed from value-part-for-emacs. (action-part): Renamed from action-part-for-emacs. (inspect-list): Renamed from inspect-for-emacs-list. (inspect-list-aux): New. (inspect-cons): Renamed from inspect-for-emacs-simple-cons. (*inspect-length*): Deleted. (inspect-list): Ignore max-length stuff. (inspector-content): Don't allow nil elements. (emacs-inspect array): Make the label of element type more consistent with the others.
Drop second argument from inspect-for-emacs
Make ELC inspection better; should be able to handle all builtin types and CLOS objects now.
try to parse the Args: line in most ecl functions to make modelines more interesting
Add ECL threads implementation to swank
* swank-ecl.lisp (compile-from-stream): Fixed typo that prevented `slime-compile-defun' from actually compiling a function.
(find-external-format, guess-external-format): New. (swank-compile-file): The external-format argument is now a backend specific value returned by find-external-format. Update implementations accordingly.
swank-backend.lisp (definterface): Drop that incredibly unportable CLOS stuff. Use plists and plain functions instead. Update backends accordingly.
* Improve the robustness of connection establishment.
(accept-connection): New argument: buffering.
Use *gray-stream-symbols* instead of enumerating them in each backend.
Initial port to ECL
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.
|Powered by ViewVC 1.1.5|