[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: "The starting list count" ?????
From: |
Alan Mackenzie |
Subject: |
Re: "The starting list count" ????? |
Date: |
Mon, 3 Jan 2022 21:33:01 +0000 |
Hello again, Stefan.
On Mon, Jan 03, 2022 at 16:15:32 -0500, Stefan Monnier wrote:
> > Debugger entered--Lisp error: (quit)
> > copy-tree((1 . #1) t)
> > macroexp-strip-symbol-positions((1 . #1))
> > byte-compile-constant((1 . #1))
> > byte-compile-quote('(1 . #2))
> > byte-compile-form('(1 . #2))
> >> The #1 means "the second heap object between the root and here" and in
> >> (1 . #1) there's only one heap object.
> > I can cope with "the second heap object", but what is "the root"?
> I suspect in the above backtrace, every arglist is passed to print as
> is, so the "root" is the arglist.
> >> (1 . #1)
> > Yes. Looking at seq-tests.el, it's clear the original source for it is
> > (let ((l1 '#1=(1 . #1#))) ....)
> Ah, one of those rare cases where the source code includes circular data.
Yes. But the current byte-compiler copes with it. The version I have
in scratch/correct-warning-pos doesn't, because of that copy-tree call
(and possibly the further processing in macroexp-strip-symbol-positions,
too).
> Maybe we should apply the patch below.
Hmm. That feels like papering over the problem rather than solving it.
> Stefan
> diff --git a/test/lisp/emacs-lisp/seq-tests.el
> b/test/lisp/emacs-lisp/seq-tests.el
> index 9e5d59163f9..48ed72a1b06 100644
> --- a/test/lisp/emacs-lisp/seq-tests.el
> +++ b/test/lisp/emacs-lisp/seq-tests.el
> @@ -474,7 +474,8 @@ test-sequences-oddp
> (should-error (seq-random-elt "")))
> (ert-deftest test-seq-mapn-circular-lists ()
> - (let ((l1 '#1=(1 . #1#)))
> + (let ((l1 (list 1)))
> + (setcdr l1 l1)
> (should (equal (seq-mapn #'+ '(3 4 5 7) l1)
> '(4 5 6 8)))))
--
Alan Mackenzie (Nuremberg, Germany).
- Re: "The starting list count" ?????, (continued)
- Re: "The starting list count" ?????, Stefan Monnier, 2022/01/03
- Re: "The starting list count" ?????, Alan Mackenzie, 2022/01/03
- Re: "The starting list count" ?????, Stefan Monnier, 2022/01/03
- Re: "The starting list count" ?????, Stefan Monnier, 2022/01/03
- Re: "The starting list count" ?????, Alan Mackenzie, 2022/01/03
- Re: "The starting list count" ?????, Stefan Monnier, 2022/01/03
- Re: "The starting list count" ?????,
Alan Mackenzie <=
- Re: "The starting list count" ?????, Stefan Monnier, 2022/01/03
Re: "The starting list count" ?????, Andreas Schwab, 2022/01/03