Sun May 13 11:50:04 EDT 2007 Taylor R Campbell * Update SLIME ChangeLog date to 2007-05-13. Sun May 13 11:48:30 EDT 2007 Taylor R Campbell * Update README to reflect renaming `scratch' to `user'. Sun May 13 11:28:59 EDT 2007 Taylor R Campbell * Add faux ChangeLog for SLIME version kludge. Sun May 13 11:06:21 EDT 2007 Taylor R Campbell * Resolve conflicts from patch to rename `scratch' to `user' and to use the command processor's user environment to initialize SLIME48's. Sat May 12 18:00:03 EDT 2007 Taylor R Campbell * Update REPL for CVS SLIME's new REPL output protocol. This is not the best way to go about it: the new protocol allows for the output to be generated incrementally, so that we don't need to store it in one gigantic string. At some point, we also want to implement nested presentations, which are easier with the new protocol. Sat May 12 17:59:29 EDT 2007 Taylor R Campbell * Update inspector so that SWANK:INIT-INSPECTOR accepts :EVAL, :RESET, and :DWIM-MODE keyword arguments, per the RPC's new signature in CVS SLIME. Sat May 12 17:54:20 EDT 2007 Taylor R Campbell * New Swank RPCs LIST-ALL-SYSTEMS-KNOWN-TO-ASDF and LIST-ASDF-SYSTEMS, which are currently identical to LIST-ALL-SYSTEMS-IN-CENTRAL-REGISTRY. We take `ASDF' to mean just `the module system'. Sat May 12 18:55:09 EDT 2007 Taylor R Campbell * Implement rudimentary Swank protocol version detection. This is a provisional kludge to avoid having to silence the protocol version mismatch warnings every time SLIME48 starts up. Sat May 12 18:48:33 EDT 2007 Taylor R Campbell * Rename `scratch' to `user', and use the existing command processor's user environment to initialize SLIME48's user environment. Sat May 12 15:22:16 EDT 2007 Taylor R Campbell * Fix Swank RPC names: SWANK-COMPILER-MACROEXPAND[-1], not COMPILER-MACROEXPAND[-1]. Sat May 12 14:23:50 EDT 2007 Taylor R Campbell * Send (:ABORT) rather than (:ABORT reason) to abort a Swank RPC, because not everything in slime.el can handle an optional reason. This is a temporary kludge; it should be reverted once SLIME is fixed. Sat May 12 14:19:00 EDT 2007 Taylor R Campbell * Simplify implementation of REPL presentation tables, and use ABORT-SWANK-RPC rather than ERROR when the table is absent. Tue Mar 13 23:07:13 EDT 2007 Taylor R Campbell * Fix bug in SWANK:EVAL-AND-GRAB-OUTPUT: the expression may yield zero values, which DELIMITED-OBJECT-LIST-STRING is not prepared to handle. Mon Mar 12 15:34:25 EDT 2007 Taylor R Campbell * Fix bug in MAKE-FRAME-LOCAL-FOR-EMACS, which was giving Emacs symbols when it found generated names instead of those symbols' strings. Thu Feb 1 14:39:04 EST 2007 Taylor R Campbell * Expand package change notification, and ensure that Emacs always receives strings to identify packages, never symbols, in these notifications. Sun Oct 15 18:03:04 EDT 2006 Taylor R Campbell * New thread browser support. Sun Oct 15 17:04:56 EDT 2006 Taylor R Campbell * Define a variable `slime-sprofile-graph' to dynamically hold the profile graph in slime-sprof.el, rather than using the implicit dynamic binding of the lambda parameter `graph'. Sun Oct 15 15:38:56 EDT 2006 Taylor R Campbell * New statistical profiling support. Fri Nov 24 19:28:17 EST 2006 Taylor R Campbell * Rewrite Swank input request mechanism, to clarify & simplify it and so that it informs Emacs of aborted reads if the waiting thread is terminated. Fri Nov 24 03:06:00 EST 2006 Taylor R Campbell * Refactor handling of interrupts from Emacs so that they cause an interrupt event to be sent to the session scheduler, instead of just appending some cruft onto the continuation of the thread in question with INTERRUPT-THREAD to signal a breakpoint condition. The procedure that we add to the thread's continuation with INTERRUPT-THREAD won't actually be run until the thread itself is run. For blocked threads, this means that the procedure won't be run at all until the thread is unblocked -- which may never happen, in a deadlock situation. (Deadlock will usually never happen in SLIME48 because of the usual command processor always waiting for console input.) If we send an interrupt event to the session scheduler, though, it can act immediately and reliably. In order for the scheduler to push a level usefully on interrupt, though, it must have winder & unwinder procedures for the level. There are, for this, two new Swank session data slots, initialized in the SLIME48 instantiation as SLDB-SEND-ACTIVATION and SLDB-SEND-RETURN; we can't just call those procedures directly, however, because that would introduce a circular module dependency, and I prefer to maintain the property of independence of the session system from the debugger mechanism. Sun Oct 15 19:23:27 EDT 2006 Taylor R Campbell * New teledebugging support, along with a number of smaller features, after massive changes to several parts of the SLIME48 system. SLIME48 sessions now have infrastructure for connection to and disconnection from I/O interfaces. This allows for detached sessions that can be controlled programmatically, and for attaching to detached sessions in order to debug them, possibly remotely. Documentation for this feature, which should make SLIME48 very useful in deploying and debugging server applications, is forthcoming. The network interface has been completely redesigned and better abstracted, and it now has hooks for authentication, implemented currently by SLIME's simple (and not exactly secure) mechanism of storing a secret key in `~/.slime-secret'. (Still missing, though, is a decent socket interface and restriction of incoming connections to particular peer addresses...) The implementation of support for single- versus multi-session servers has been greatly simplified by the changes in the network interface abstraction. SLDB and the session system have been extended to support the explicit specification of sessions to work with, rather than assuming that some scheduler of the current thread knows what the current session is. This allows straightforward interleaving of level stacks without getting mixed up, and some parts of the level system are simplified by the reliable availability of a current session fluid in any threads running under a Swank session. The network I/O interface has been rewritten to be more robust in general, to signal conditions better, to handle EOF gracefully, and to disconnect the session on the reception of EOF. There may be still other changes lurking in the patch which have long since escaped my memory. I think I have identified all, though. Sat Nov 25 18:49:40 EST 2006 Taylor R Campbell * Implement new RPCs COMPLETIONS-FOR-KEYWORD and COMPLETIONS-FOR-CHARACTER, with bogus but provisionally working definitions. Sat Nov 25 12:38:05 EST 2006 Taylor R Campbell * Modify suggested entry on `slime-mode-hook' so that it sets `slime-buffer-package' always to a string, regardless of the type of the value in `scheme48-package', which may also be a symbol or a list. Sun Nov 5 18:38:32 EST 2006 Taylor R Campbell * Fix thread synchronization bug in Swank output: use ATTEMPT-COPY-BYTES!, not COPY-BYTES!, to move data from a port's buffer, since the buffer is concurrently updated and read. Sat Oct 28 15:43:29 EDT 2006 Taylor R Campbell * Permit name completion without any explicit package: use the interaction environment in that case. Sun Oct 15 18:48:13 EDT 2006 Taylor R Campbell * Implement passage of messages back to the Emacs system when aborting Swank RPCs. Sun Oct 15 18:46:30 EDT 2006 Taylor R Campbell * Remove MAKE-SWANK-TCP-OUTPUT-PORT from SWANK-I/O-INTERFACE. If it is ever implemented, it can be returned to the interface, but as things are it just causes a spurious warning on startup. Sun Oct 15 18:13:56 EDT 2006 Taylor R Campbell * Simplify and restructure the Swank environment construction mechanism. Sun Oct 15 18:02:21 EDT 2006 Taylor R Campbell * Export SEND-SLDB-ACTIVATION and SEND-SLDB-RETURN from the SLDB interface. Sun Oct 15 17:30:51 EDT 2006 Taylor R Campbell * Open all of SWANK-SESSIONS in SWANK-COMPLETION-RPC structure, not just a limited subset of it. Sat Oct 7 23:28:22 EDT 2006 Taylor R Campbell * Revert INSPECT-RESULTS to a signature compatible with its original one by making the RESET? parameter optional, since it turns out that this procedure is used elsewhere (in SLDB, for example). Fri Sep 29 21:38:00 EDT 2006 Taylor R Campbell * Update inspector for changes to its interface in SLIME CVS. The table of inspected parts is now preserved for the duration of the inspection, and each whole object being inspected is included as well as its parts; whole objects are passed back with their identifiers as well as their titles, types, and contents. SWANK:INIT-INSPECTOR now accepts an optional second argument specifying whether or not to reset the inspection state. The procedure INSPECT-RESULTS now takes a required second argument specifying the same thing. This is an incompatible change to that exported procedure, but I doubt whether anyone actually relied on its old signature. Thu Sep 14 14:19:49 EDT 2006 Taylor R Campbell * Tighten condition on which interactive evaluation results are shown in four radices: the value must be not only an integer but also exact, or otherwise Scheme48's NUMBER->STRING loses. Fri Jul 21 12:31:43 EDT 2006 Taylor R Campbell * Change the symbol completion routines to check the prefix string more carefully and to permit empty prefix strings, which have the effect of listing all bound symbols. Thu Jul 20 14:13:51 EDT 2006 Taylor Campbell * Ensure that the structures opened by the interaction environment are loaded in various commands that evaluate user code. Wed Jul 19 13:26:50 EDT 2006 Taylor Campbell * Add section on special packages in SLIME48 to the README. Fri Jul 14 05:40:55 EDT 2006 Taylor Campbell * Add accidentally omittted newline after `Environment:' in inspector presentation of closures. Thu Jul 13 01:29:35 EDT 2006 Taylor Campbell * Clean up top-level startup code and properly support single-session SLIME48. The former mess of a procedure SPAWN-SLIME48-TCP-SERVER is now considerably cleaned up and better abstracted. There is now a separate operation for running a Swank server socket that accepts a solitary session and then closes. There is a new Emacs variable in slime48.el controlling the persistence of the server. Thu Jul 13 01:10:27 EDT 2006 Taylor Campbell * Make session ids useful by making them unique to their respective Swank worlds, rather than the TCP server that created them, and by turning Swank worlds' sets of sessions into tables mapping session ids to sessions. Tue Jul 11 18:33:14 EDT 2006 Taylor Campbell * Fix emission of short message option in compiler notes if the short message isn't actually there. Tue Jul 11 18:32:18 EDT 2006 Taylor Campbell * Add inspection method for ports. Tue Jul 11 00:18:21 EDT 2006 Taylor Campbell * Fix the last change to the inspection method for vectors so that the length is interpreted as a literal number, not an integer label. Tue Jul 11 00:12:20 EDT 2006 Taylor Campbell * Expand presentation of locations, and guard it against undefined or unassigned ones. Mon Jul 10 18:52:23 EDT 2006 Taylor Campbell * Add inspection methods for tables and debug data. Mon Jul 10 18:36:29 EDT 2006 Taylor Campbell * Regularize line separation in inspector presentations, and omit redundant output from simple data inspectors. Every inspector presentation now ends with an empty line, and everything that generates subpresentations now ends with a newline and assumes that it will start on a fresh line. Mon Jul 10 18:35:55 EDT 2006 Taylor Campbell * Spiff up the inspector's presentation of templates and closures to name template header fields and to include templates' contents in closures. Mon Jul 10 16:15:56 EDT 2006 Taylor Campbell * Change least specific inspector method to try DISCLOSE before giving up and passing the buck to the writer. Mon Jul 10 12:32:49 EDT 2006 Taylor Campbell * Update stub definitions of arglist RPCs for changes starting 2006-03-18 in SLIME that would make them fail spectacularly, not silently. Now they are back to failing silently. Mon Jul 10 12:00:40 EDT 2006 Taylor Campbell * Fix recording of file names in SWANK:COMPILE-STRING-FOR-EMACS so that the source file name given to the compiler at least works for package definitions, even if it is not correct. The RPC implementation formerly would construct a complete file name from the buffer name and directory supplied, but this would confuse Scheme48 if the buffer were named `packages.scm<2>' or something, because Scheme48 thinks that `>' is a directory separator and would not strip the `packages.scm<2>' part at all when computing the names of other files in the same directory as the file in which the package was defined. This is necessary for loading files in packages to work at all, since otherwise they would be taken relatively, and changing the current working directory would screw up any unloaded packages. Fortunately, FILE-NAME-DIRECTORY is idempotent, so it is safe, for the purposes of the module system, to pass along only the directory. This means, though, that (%FILE-NAME%), from the SOURCE-FILE-NAMES structure, will evaluate to a directory name, not an actual file name, which is incorrect. Until SLIME passes a file name along with the directory path, however, this is the best we can do, and I don't *think* there will be much of a problem with %FILE-NAME%, since it is seldom used outside the module system, and even more seldom used without FILE-NAME-DIRECTORY anyway. Fri Jun 30 15:51:10 EDT 2006 Taylor Campbell * Substituted hybrid writing for limited or circular writing as appropriate. Principles of new usage: - Use WRITE where machine-readability is necessary, human-readability is unnecessary / excessive output is unconsequential, shared structure is unimportant, and circular structure is known not to occur. Example: Swank I/O. - Use LIMITED-WRITE when machine-readability is *not* necessary, excessive output *is* desirable to avoid, and shared structure is unimportant or distracting. Circular structure is irrelevant. Example: showing S-expressions, such as source display in the debugger. - Use CIRCULAR-WRITE when machine-readability might or might not be necessary in the future but doesn't matter now, complete output outweights excessive output, and shared or circular structure might well be important. Example: REPL or inspector output. (Ideally, the pretty-printer would support shared structure, so that we could use CIRCULAR-WRITE where machine-readability is more important and CIRCULAR-PP where human-readability is more importnat.) - Use HYBRID-WRITE when human-readability trumps machine-readability, excessive output is undesirable, and shared or circular structure might well be important. Examples: fields of inspected objects; results of evaluation that will go into the minibuffer. - Use the pretty-printer only where requested by the user, since it is unsafe and also not very good. These shortcomings should be fixed at some point so that we can use the pretty-printer more. Fri Jun 30 15:45:04 EDT 2006 Taylor Campbell * Change term `circular writing' to `shared writing' in order to reflect actual meaning more clearly. Fri Jun 30 14:56:10 EDT 2006 Taylor Campbell * Replaced ad-hoc circwrite.scm and limwrite.scm with an extended and more easily customizable writer. Fri Jun 30 14:30:48 EDT 2006 Taylor Campbell * Regularized presentation of evaluation RPC results. Fri Jun 30 11:54:23 EDT 2006 Taylor Campbell * Moved implementation of general Swank RPCs into its own file general.scm. Thu Jun 22 19:23:19 EDT 2006 Taylor Campbell * Refactored apropos to add functionality, to simplify the code, to fix a potentially lurking bug with non-symbolic bound names, and to paginate. The `Exported symbols only?' question now determines whether to look through the exports of structures available in the config package or whether to look at the bindings visible inside a package, where before it was merged with the package specifier in an ad-hoc way. Nil for the package specifier now means either to look through all structures, if exported symbols only are interesting, or to look through the interaction environment, if not. Thu Jun 22 16:39:03 EDT 2006 Taylor Campbell * Fixed bug in APROPOS with variable types, and added information to output about primitive and integrated procedures. Wed May 24 16:15:55 EDT 2006 Taylor Campbell * Add definition of BREAKPOINT condition type. Interrupting running threads now works again. Unfortunately, interrupting threads waiting for I/O still has no effect. Sun Apr 23 19:29:48 EDT 2006 Taylor Campbell * Moved output forcing from RPC evaluator to the Scheme48 run-time system by using PERIODICALLY-FORCE-OUTPUT!, rather than hoping that the I/O would be finished by the time the RPC finishes. Tue Apr 18 12:28:22 EDT 2006 Taylor Campbell * Moved output forcing from REPL to RPC evaluator, so that it is forced after all RPCs, not just REPL ones. Tue Apr 18 12:00:43 EDT 2006 Taylor Campbell * Fixed and simplified SLDB restarting commands (ABORT, CONTINUE, THROW-TO-TOPLEVEL). Tue Apr 18 11:58:36 EDT 2006 Taylor Campbell * Extended FIND-RESTARTER with an optional restarter list parameter, defaulting to the current restarters. Tue Apr 4 16:36:55 EDT 2006 Taylor Campbell * Rewrote source location code. In addition to simplifying and clarifying this code, this now filters out packages from the beginning if their filenames are empty strings, which is the case for statically linked packages. Tue Apr 4 16:36:35 EDT 2006 Taylor Campbell * Factored debug data name displaying into a separate procedure, in preparation for its use in a statistical profiler. Tue Apr 4 16:33:18 EDT 2006 Taylor Campbell * Changed SOURCE-LOCATION-HINTS to use LIMITED-WRITE-TO-STRING instead of SYMBOL->STRING for the call site, since calls' operators are not limited to symbols. Thu Mar 30 21:07:42 EST 2006 Taylor Campbell * Disabled arglist-on-space feature in elisp initialization code suggested by the README. Fri Mar 17 19:37:43 EST 2006 Taylor Campbell * Changed `slime48-init-command' in slime48.el to use %S instead of %s when generating the =slime48/ filename translation. This is necessary for filenames that may contain spaces and backslashes, for instance on Windows. Wed Mar 15 00:59:43 EST 2006 Taylor Campbell * Implemented inspection of records. Wed Mar 15 00:51:35 EST 2006 Taylor Campbell * Included machine instance in connection info. A recent change to slime.el in the SLIME CVS repository made this information necessary. The change improves support for running Lisp instances on remote machines, and although SLIME48 doesn't currently support that it still needs the machine instance name to identify machines. Sat Feb 25 16:44:15 EST 2006 Taylor Campbell * Added optional arguments to ABORT-SWANK-RPC for log messages. This is non-optimal, but it will do until I have the inclination to try to push more informative messages in :ABORT RPC answers to official SLIME. Fri Feb 24 14:42:46 EST 2006 Taylor Campbell * Added the printed representation of inspectee to inspector titles. Fri Feb 24 13:59:33 EST 2006 Taylor Campbell * Converted Swank interrupts & breaks to use BREAKPOINT conditions, not conditions with some special SWANK-USER-INTERRUPT condition type. Fri Feb 24 13:58:54 EST 2006 Taylor Campbell * Fixed typo in SWANK:SLDB-DISASSEMBLE -- ABORT-SWANK-RPC, not SWANK-ABORT-RPC. Fri Feb 24 13:50:27 EST 2006 Taylor Campbell * Robustified frame variable inspection and source location in SLDB. Fri Feb 24 13:48:07 EST 2006 Taylor Campbell * Fixed bug in backtrace generation, tickled by slime.el's `sldb-fetch-all-frames'. Mon Jan 16 16:13:05 EST 2006 Taylor Campbell * Implemented inspection of closures. Mon Jan 16 15:56:45 EST 2006 Taylor Campbell * Implemented disassembly of debugger frames. Mon Jan 16 15:42:38 EST 2006 Taylor Campbell * Modified slime48.el to provide the `slime48' feature after loading. Mon Jan 16 15:40:56 EST 2006 Taylor Campbell * Fixed LOAD-FILE hack for appending .scm extension so that it works even if the .scm extension is already there, rather than causing LOAD to lose due to receiving a bogus filename argument. Mon Jan 16 15:36:50 EST 2006 Taylor Campbell * Reorganized and simplified code to inspect vectors and templates, and added disassembly to template inspection. Mon Jan 16 15:32:15 EST 2006 Taylor Campbell * Clarified note about slowness and warnings in loading SLIME48. Sun Dec 18 14:25:01 EST 2005 Taylor Campbell * Removed unnecessary `slime-lisp-implementations' cruft in slime48.el, now that it has been moved into the suggested initialization code in the README. Sun Dec 18 14:12:27 EST 2005 Taylor Campbell * Turned on Scheme48's LOAD-NOISILY switch in `slime48-init-command'. Sun Dec 18 14:12:02 EST 2005 Taylor Campbell * Overhauled README to reflect integration with SLIME's new Lisp implementation selection system, rather than the old, manual SLIME48 startup routine. Sun Dec 18 12:06:39 EST 2005 Taylor Campbell * Renamed CL:BREAK -> SWANK:SIMPLE-BREAK, since the change was made in SLIME CVS. Sun Dec 18 12:05:47 EST 2005 Taylor Campbell * Removed ,IN & ,IN-PACKAGE REPL shortcut, since it was added to SLIME CVS. Sun Dec 18 11:55:29 EST 2005 Taylor Campbell * Added SWANK:COMPILER-MACROEXPAND & SWANK:COMPILER-MACROEXPAND-1 to macro expansion RPC interface. Sun Dec 18 11:53:48 EST 2005 Taylor Campbell * Implemented SWANK:PPRINT-INSPECTOR-PART. Sun Dec 18 11:33:18 EST 2005 Taylor Campbell * Fixed SWANK:SET-PACKAGE to load the package if it is not already loaded before setting the interaction environment to it. Sun Dec 18 11:20:16 EST 2005 Taylor Campbell * Added scheme-mode & scheme48-mode to the recognized SLIME Lisp modes in slime48.el. Sun Dec 18 11:18:09 EST 2005 Taylor Campbell * Fixed source disclosure hack for CALL-WITH-VALUES so that it will not barf if the first operand is not a LAMBDA expression. Sun Dec 18 11:16:25 EST 2005 Taylor Campbell * Implemented procedure definition finding. Sun Dec 18 11:09:12 EST 2005 Taylor Campbell * Changed SWANK:LIST-ALL-PACKAGE-NAMES to list all the structures in the Swank world, not all the packages. (See the comment inserted above the change for details.) Sun Dec 18 11:06:34 EST 2005 Taylor Campbell * Fixed completion so that generated names defined in a package would not cause errors when trying to complete. Tue Nov 8 01:55:38 EST 2005 Taylor Campbell * Clarified error message for unbound variables in MAYBE-BINDING-VALUE in module.scm. Mon Nov 7 17:16:50 EST 2005 Taylor Campbell * Fixed circular writing of dotted lists to include the dotted cdr. Wed Nov 2 23:41:27 EST 2005 Taylor Campbell * Implemented the Swank compilation & loading RPCs. Wed Nov 2 23:40:41 EST 2005 Taylor Campbell * Fixed redefinition by tossing in the package mutation sentinel at every RPC evaluation. Redefining a binding in one package should now update all references to it in compiled code of other packages. Wed Nov 2 23:39:43 EST 2005 Taylor Campbell * Implemented SWANK:UNDEFINE-FUNCTION (which can undefine anything, of course, not just functions, because Scheme does not separate namespaces). Wed Nov 2 22:35:02 EST 2005 Taylor Campbell * Fixed implementation of USE-PACKAGE so that it would actually load the package first. Wed Nov 2 17:47:35 EST 2005 Taylor Campbell * Fixed SWANK:SLDB-ABORT, which was previously operating on a bogus assumption that there should always be an ABORT restarter even after skipping the one set up by Swank. Tue Nov 1 16:45:49 EST 2005 Taylor Campbell * Implemented generalization of SWANK:QUIT-LISP, so that SLIME48 started from Emacs can exit the Scheme48 image on ,QUIT and SLIME48 started manually in a pre-existing Scheme48 image can specify how SLIME48's quit should be handled, which by default only terminates the Swank session. Tue Nov 1 15:43:45 EST 2005 Taylor Campbell * Updated for the new connection info & multiple Lisp support in SLIME. `slime48.el' is now usable, because an erroneous reference to my own local function LOAD-SLIME was replaced, and useful to others, because it provides utilities for starting up SLIME48 on its own. Also, the hack of setting the default values of SLIME-LISP-PACKAGE:CONNLOCAL & SLIME-LISP-PACKAGE-PROMPT-STRING:CONNLOCAL is no longer needed, due to SLIME's new general support for multiple Lisps. Mon Oct 10 17:49:26 EDT 2005 Taylor Campbell * Massively reworked SLDB basis and abstracted much functionality into a separate module. Tue Oct 4 14:08:29 EDT 2005 Taylor Campbell * Introduced LIMITED-WRITING structure for a more general limited writing facility to replace that of DISPLAY-CONDITIONS. The LIMITED-WRITING structure provides centralized fluids for the current depth & length for limited writing and removes the need for passing explicit arguments and maintaining this information manually, so all of the randomness like REPL-PRINT-DEPTH, SLDB-PRINT-LENGTH, &c., has been expunged. LIMITED-WRITE-TO-STRING from STRING-I/O now also respects the current write depth & length. Tue Oct 4 12:58:50 EDT 2005 Taylor Campbell * Reflected changes to REPL-EVAL-STRING's interface in inspector and SLDB evaluation-in-frame commands. Tue Oct 4 12:43:46 EDT 2005 Taylor Campbell * Simplified and tightened a number of packages' OPEN clauses in packages.scm. Replaced two erroneously introduced references to SIGNALS with SIMPLE-SIGNALS. Tue Oct 4 11:33:53 EDT 2005 Taylor Campbell * Implemented fancy inspection of byte vectors. Tue Oct 4 02:59:39 EDT 2005 Taylor Campbell * Upcased quoted literal symbols in apropos output to match the convention of the rest of the code. Tue Oct 4 02:44:17 EDT 2005 Taylor Campbell * Changed evaluation in SLDB frames to use UID->PACKAGE to compute the package to evaluate in reliably, rather than guessing heuristically from the package name in the frame's debug data record. Tue Oct 4 02:42:09 EDT 2005 Taylor Campbell * Implemented UID->PACKAGE in MODULE-CONTROL. Mon Oct 3 22:15:14 EDT 2005 Taylor Campbell * Fixed typo: 'elsewherea' -> 'elsewhere' in comment about internal facility interfaces in interfaces.scm. Mon Oct 3 22:14:42 EDT 2005 Taylor Campbell * Finished listing of Swank RPC interfaces in interfaces.scm and corrected some entries. Mon Oct 3 15:51:15 EDT 2005 Taylor Campbell * Corrected boolean argument interpretation in SWANK:APROPOS-LIST-FOR-EMACS RPC. Mon Oct 3 15:31:37 EDT 2005 Taylor Campbell * Implemented apropos support. Mon Oct 3 15:28:28 EDT 2005 Taylor Campbell * Implemented simple name completion. Mon Oct 3 03:14:40 EDT 2005 Taylor Campbell * Fixed the one remaining -*- line, of module.scm, that specified scheme48-mode and a 'package' local variable. Mon Oct 3 01:59:50 EDT 2005 Taylor Campbell * Removed half-assed definitions of PACKAGE-OPEN! & PACKAGE-UNDEFINE! from module.scm and replaced them with the built-in PACKAGE-MUTATION structure's exports. Package mutation is now more likely to work, though I haven't tried it yet. I previously avoided PACKAGE-MUTATION because I was also using my own hacks for undefined global errors (to install restarts) and because I thought it probably relied on the presence of the rest of the built-in command processor's bulk, which is not the case. Mon Oct 3 01:59:21 EDT 2005 Taylor Campbell * Introduced USE-PACKAGE Swank RPC and ,USE(-PACKAGE) SLIME REPL command. Mon Oct 3 01:09:15 EDT 2005 Taylor Campbell * Added slime48.el, a collection of utilities augmenting slime.el on the Emacs side of SLIME48. Mon Oct 3 00:19:53 EDT 2005 Taylor Campbell * Expounded on hackishness of the #. reader macro needed to implement presentations. Mon Oct 3 00:15:08 EDT 2005 Taylor Campbell * Fixed backwards REPL presentation switch toggling. Mon Oct 3 00:07:24 EDT 2005 Taylor Campbell * Removed uses of POSIX pids, which don't work on Windows and which are unnecessary for multithreaded Swank servers, only SIGIO ones. Mon Oct 3 00:06:00 EDT 2005 Taylor Campbell * Renamed :READ-OUTPUT -> :WRITE-STRING in Scheme-to-Emacs output interface. Mon Oct 3 00:05:42 EDT 2005 Taylor Campbell * Made circular writer ignore nil. Mon Oct 3 00:01:38 EDT 2005 Taylor Campbell * Brought REPL & inspector up to date and implemented REPL presentations. Sat Oct 1 20:16:16 EDT 2005 Taylor Campbell * Renamed defrectype*.scm to defrectype.scm. Tue Sep 20 23:32:06 EDT 2005 Taylor Campbell * Modified SLIME48-START in load.scm & SLIME48 in top.scm to accept an option for specifying either a port or a file to write the OS-selected port to. SLIME48-START & SLIME48 now have an optional argument, which may be either a number or a string: if it is a number, the Swank TCP server listens on that service; if it is a string, the selection of the port number is left to the OS, and then a file is created whose contents are that port number, for the remote system to poll to find the port by which to connect to the Scheme48 Swank server. Tue Sep 20 23:31:32 EDT 2005 Taylor Campbell * Introduced SWANK-TCP-SERVER-PORT-NUMBER. Sun Sep 18 12:59:11 EDT 2005 Taylor Campbell * Added a log message when closing Swank TCP servers. Sun Sep 18 12:58:28 EDT 2005 Taylor Campbell * Fixed the SLIME48 starter so that the README's explanation of how to close the server is accurate. Sun Sep 18 12:54:05 EDT 2005 Taylor Campbell * Changed '-*- mode: scheme48; package: ... -*-' lines to '-*- mode: scheme; scheme48-package: ... -*-' in all Scheme source files. Not everyone has scheme48.el, and a buffer-local `package' variable is a bad idea, because it is frequently meant to be a function-local variable in elisp, but WITH-CURRENT-BUFFER would pre-empt that. Sat Sep 17 20:52:51 EDT 2005 Taylor Campbell * Added circular writing (CL-style #n=... & #n#). Implemented a simple CIRCULAR-WRITE (naively written using alists for the circular object tables) and improved the safety of several parts by using that instead of the standard writer or the pretty-printer, which are now used only where safe or necessary. Sat Sep 17 20:42:10 EDT 2005 Taylor Campbell * initial revision