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?
I'd apply a patch that performs this.
On Mon, Jul 3, 2017 at 7:52 PM, Martin Simmons martin@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/
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@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.
Applied, thanks.
On Mon, Jul 3, 2017 at 8:41 PM, Martin Simmons martin@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@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.
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@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@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.
Ok, I did it in a slightly different fashion.
On Wed, Jul 5, 2017 at 1:58 PM, Martin Simmons martin@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@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@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.