Ignore:
Timestamp:
Jul 26, 2009, 1:24:19 PM (10 years ago)
Author:
gz
Message:

Some changes in support of Slime:

Implement CCL:COMPUTE-APPLICABLE-METHODS-USING-CLASSES

Add a :stream-args argument to CCL:ACCEPT-CONNECTION, for one-time initargs for the stream being created. E.g. (accept-connection listener :stream-args `(:external-format ,external-format-for-this-connection-only))

Add CCL:TEMP-PATHNAME

Bind new var CCL:*TOP-ERROR-FRAME* to the error frame in break loops, to make it available to debugger/break hooks.

Add CCL:*SELECT-INTERACTIVE-PROCESS-HOOK* and call it to select the process to use for handling SIGINT.

Add CCL:*MERGE-COMPILER-WARNINGS* to control whether warnings with the same format string and args but different source locations should be merged.

Export CCL:COMPILER-WARNING, CCL:STYLE-WARNING, CCL:COMPILER-WARNING-FUNCTION-NAME and CCL:COMPILER-WARNING-SOURCE-NOTE.

Create a CCL:COMPILER-WARNING-SOURCE-NOTE even if not otherwise saving source locations, just using the fasl file and toplevel stream position, but taking into account compile-file-original-truename and compiler-file-original-buffer-offset. Get rid of stream-position and file-name slots in compiler warnings.

Export CCL:REPORT-COMPILER-WARNING, and make it accept a :SHORT keyword arg to skip the textual representation of the warning location.

Export CCL:NAME-OF, and make it return the fully qualified name for methods, return object for eql-specializer

Make CCL:FIND-DEFINITION-SOURCES handle xref-entries.

Export CCL:SETF-FUNCTION-SPEC-NAME, make it explicitly ignore the long-form setf method case.

Export the basic inspector API from the inspector package.

Export EQL-SPECIALIZER and SLOT-DEFINITION-DOCUMENTATION from OPENMCL-MOP

Refactor things a bit in backtrace code, define and export an API for examining backtraces:

CCL:MAP-CALL-FRAMES
CCL:FRAME-FUNCTION
CCL:FRAME-SUPPLIED-ARGUMENTS
CCL:FRAME-NAMED-VARIABLES

other misc new exports:

CCL:DEFINITION-TYPE
CCL;CALLER-FUNCTIONS
CCL:SLOT-DEFINITION-DOCUMENTATION
CCL:*SAVE-ARGLIST-INFO*
CCL:NATIVE-TRANSLATED-NAMESTRING
CCL:NATIVE-TO-PATHNAME
CCL:HASH-TABLE-WEAK-P
CCL;PROCESS-SERIAL-NUMBER
CCL:PROCESS-EXHAUSTED-P
CCL:APPLY-IN-FRAME

Other misc tweaks:

Make cbreak-loop use the break message when given a uselessly empty condition.

Use setf-function-name-p more consistently

Make find-applicable-methods handle eql specializers better.

Try to more consistently recognize lists of the form (:method ...) as method names.

Add xref-entry-full-name (which wasn't needed in the end)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/level-1/l1-sockets.lisp

    r12267 r12463  
    896896                (set-socket-fd-blocking fd was-blocking)))))))
    897897
    898 (defun accept-socket-connection (socket wait stream-create-function)
     898(defun accept-socket-connection (socket wait stream-create-function &optional stream-args)
    899899  (let ((listen-fd (socket-device socket))
    900900        (fd -1))
    901901    (unwind-protect
    902       (progn
     902      (let ((keys (append stream-args (socket-keys socket))))
    903903        (setq fd (socket-accept listen-fd wait))
    904904        (cond ((>= fd 0)
    905                (prog1 (apply stream-create-function fd (socket-keys socket))
     905               (prog1 (apply stream-create-function fd keys)
    906906                 (setq fd -1)))
    907907              ((eql fd (- #$EAGAIN)) nil)
     
    910910        (fd-close fd)))))
    911911
    912 (defgeneric accept-connection (socket &key wait)
     912(defgeneric accept-connection (socket &key wait stream-args)
    913913  (:documentation
    914914  "Extract the first connection on the queue of pending connections,
     
    916916tcp-stream or file-socket-stream representing the newly established
    917917connection.  The tcp stream inherits any properties of the listener socket
    918 that are relevant (e.g. :keepalive, :nodelay, etc.) The original listener
     918that are relevant (e.g. :keepalive, :nodelay, etc.) Additional arguments
     919may be specified using STREAM-ARGS. The original listener
    919920socket continues to be open listening for more connections, so you can call
    920921accept-connection on it again."))
    921922
    922 (defmethod accept-connection ((socket listener-socket) &key (wait t))
    923   (accept-socket-connection socket wait #'make-tcp-stream))
    924 
    925 (defmethod accept-connection ((socket file-listener-socket) &key (wait t))
    926   (accept-socket-connection socket wait #'make-file-socket-stream))
     923(defmethod accept-connection ((socket listener-socket) &key (wait t) stream-args)
     924  (accept-socket-connection socket wait #'make-tcp-stream stream-args))
     925
     926(defmethod accept-connection ((socket file-listener-socket) &key (wait t) stream-args)
     927  (accept-socket-connection socket wait #'make-file-socket-stream stream-args))
    927928
    928929(defun verify-socket-buffer (buf offset size)
Note: See TracChangeset for help on using the changeset viewer.