[armedbear] #421: Improve recording of source information for most kinds of definitions

armedbear armedbear-devel at common-lisp.net
Thu Nov 17 09:06:41 UTC 2016


#421: Improve recording of source information for most kinds of definitions
--------------------------+----------------------------
 Reporter:  mevenson      |           Owner:
     Type:  enhancement   |          Status:  new
 Priority:  major         |       Milestone:  1.5.0
Component:  interpreter   |         Version:  1.5.0-dev
 Keywords:  github-issue  |  Parent Tickets:
--------------------------+----------------------------
 Alan proposes in <https://github.com/armedbear/abcl/pull/5>:


 Improve recording of source information for most kinds of definitions
 e.g.

 (describe 'split-at-char)
 SPLIT-AT-CHAR is an internal symbol in the COMMON-LISP-USER package.
 Its function binding is #<SPLIT-AT-CHAR {4D969FD4}>.
 The function's lambda list is:
   (STRING CHAR)
 The symbol's property list contains these indicator/value pairs:
   SYSTEM::%SOURCE-BY-TYPE ((:COMPILER-MACRO
 "/Users/alanr/repos/lsw2/util/string.lisp" 1039)
                            ((:FUNCTION SPLIT-AT-CHAR)
 "/Users/alanr/repos/lsw2/util/string.lisp" 687))
   SYSTEM::%SOURCE (#P"/Users/lori/repos/lsw2/util/string.lisp" . 687)

 I followed the source types in slime's swank/sbcl.lisp

 This is preliminary to adding support for using this information in slime.

 What should be recorded:

     packages
     classes
     functions
     macros
     compiler-macros
     setf-expanders
     methods
     conditions
     structures
     types
     source-transforms
     variables
     constants

 Implementation

 fdefinition.lisp has the function record-source-information-for-type For
 interactive evaluation it does the work. For file compiling there are
 additions to compile-file.lisp that add forms after the prologue that add
 the information when fasl loading, during which recording by record-
 source-information-for-type is disabled, so it doesn't record the source
 positions in the fasl header.

 As you see, I haven't got rid of the now redundant sys:%source property.
 Once slime has been adjusted it might be worth doing so.

 Right now the absolute pathnames are recorded, but it might make sense to
 use logical pathnames if there were ones set up, though I expect the slime
 support with do some dwimming in any case.

--
Ticket URL: <http://abcl.org/trac/ticket/421>
armedbear <http://abcl.org>
armedbear


More information about the armedbear-ticket mailing list