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/lib/nfcomp.lisp

    r12411 r12463  
    451451                          :external-format *fcomp-external-format*)
    452452    (let* ((old-file (and (neq filename *compiling-file*) *fasl-source-file*))
    453            (*fasl-source-file* filename)
     453           (*fasl-source-file* (or orig-file filename))
    454454           (*fcomp-toplevel-forms* nil)
    455455           (*fasl-eof-forms* nil)
     
    468468          (let* ((*fcomp-stream-position* (file-position stream))
    469469                 (*nx-warnings* nil)) ;; catch any warnings from :compile-toplevel forms
     470            (when (and *fcomp-stream-position* orig-offset)
     471              (incf *fcomp-stream-position* orig-offset))
    470472            (unless (eq read-package *package*)
    471473              (fcomp-compile-toplevel-forms env)
     
    10701072        (harsh *fasl-non-style-warnings-signalled-p*))
    10711073    (dolist (w warnings)
    1072       (setf (compiler-warning-file-name w) *fasl-source-file*)
    1073       (setf (compiler-warning-stream-position w) *fcomp-stream-position*)
     1074      (unless (compiler-warning-source-note w)
     1075        (setf (compiler-warning-source-note w)
     1076              (make-source-note :source nil
     1077                                :filename *fasl-source-file*
     1078                                :start-pos *fcomp-stream-position*
     1079                                :end-pos *fcomp-stream-position*)))
    10741080      (if (and (typep w 'undefined-reference)
    10751081               (eq w (setq w (macro-too-late-p w env))))
     
    10951101                     (eq 'macro (cadr info)))))
    10961102          (make-instance 'macro-used-before-definition
    1097             :file-name (compiler-warning-file-name w)
     1103            :source-note (compiler-warning-source-note w)
    10981104            :function-name (compiler-warning-function-name w)
    10991105            :warning-type ':macro-used-before-definition
Note: See TracChangeset for help on using the changeset viewer.