SWANK defines defstructs in the keyword package

Stas Boukarev stassats at gmail.com
Wed Jul 5 13:45:42 UTC 2017


Ok, I did it in a slightly different fashion.

On Wed, Jul 5, 2017 at 1:58 PM, Martin Simmons <martin at lispworks.com> wrote:
> Thanks, here is another one, in swank.lisp this time (hopefully the last one).
>
>
>
>>>>>> On Mon, 3 Jul 2017 22:57:50 +0300, Stas Boukarev said:
>>
>> Applied, thanks.
>>
>> On Mon, Jul 3, 2017 at 8:41 PM, Martin Simmons <martin at lispworks.com> wrote:
>> > Thanks, I've attached a patch that works for LispWorks, but I think only SBCL
>> > uses the readers.
>> >
>> >>>>>> On Mon, 3 Jul 2017 20:04:46 +0300, Stas Boukarev said:
>> >>
>> >> I'd apply a patch that performs this.
>> >>
>> >> On Mon, Jul 3, 2017 at 7:52 PM, Martin Simmons <martin at lispworks.com> wrote:
>> >> > Hi,
>> >> >
>> >> > swank/backend.lisp defines some defstructs in the keyword package:
>> >> >
>> >> > (defstruct (:location (:type list) :named
>> >> >                       (:constructor make-location
>> >> >                                     (buffer position &optional hints)))
>> >> >   buffer position
>> >> >   ;; Hints is a property list optionally containing:
>> >> >   ;;   :snippet SOURCE-TEXT
>> >> >   ;;     This is a snippet of the actual source text at the start of
>> >> >   ;;     the definition, which could be used in a text search.
>> >> >   hints)
>> >> >
>> >> > (defstruct (:error (:type list) :named (:constructor)) message)
>> >> >
>> >> > ;;; Valid content for BUFFER slot
>> >> > (defstruct (:file       (:type list) :named (:constructor)) name)
>> >> > (defstruct (:buffer     (:type list) :named (:constructor)) name)
>> >> > (defstruct (:etags-file (:type list) :named (:constructor)) filename)
>> >> >
>> >> > ;;; Valid content for POSITION slot
>> >> > (defstruct (:position (:type list) :named (:constructor)) pos)
>> >> > (defstruct (:tag      (:type list) :named (:constructor)) tag1 tag2)
>> >> >
>> >> >
>> >> > This is generally a bad idea because it can lead to clashes in the namespace
>> >> > of structure names (as used by the :include option).
>> >> >
>> >> > AFICS, except for "location", these definitions are never used because they
>> >> > are always constructed using backquote or list.
>> >> >
>> >> > Would you consider removing the defstructs and adding defuns for make-location
>> >> > and its readers?
>> >> >
>> >> > --
>> >> > Martin Simmons
>> >> > LispWorks Ltd
>> >> > http://www.lispworks.com/
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> With best regards, Stas.
>> >>
>>
>>
>>
>> --
>> With best regards, Stas.
>>



-- 
With best regards, Stas.



More information about the slime-devel mailing list