GNU bug report logs - #16103
24.3.50; `read' and circular objects

Previous Next

Package: emacs;

Reported by: Drew Adams <drew.adams <at> oracle.com>

Date: Tue, 10 Dec 2013 20:52:02 UTC

Severity: minor

Found in version 24.3.50

Done: Andreas Schwab <schwab <at> linux-m68k.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Drew Adams <drew.adams <at> oracle.com>
Subject: bug#16103: closed (Re: bug#16103: 24.3.50; `read' and circular
 objects)
Date: Tue, 10 Dec 2013 22:48:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#16103: 24.3.50; `read' and circular objects

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 16103 <at> debbugs.gnu.org.

-- 
16103: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16103
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Andreas Schwab <schwab <at> linux-m68k.org>
To: Drew Adams <drew.adams <at> oracle.com>
Cc: 16103-done <at> debbugs.gnu.org
Subject: Re: bug#16103: 24.3.50; `read' and circular objects
Date: Tue, 10 Dec 2013 23:47:27 +0100
You didn't set print-circle.

Andreas.

-- 
Andreas Schwab, schwab <at> linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

[Message part 3 (message/rfc822, inline)]
From: Drew Adams <drew.adams <at> oracle.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.3.50; `read' and circular objects
Date: Tue, 10 Dec 2013 12:51:16 -0800 (PST)
Dunno whether this is a bug.  If it is not, I'd appreciate some help
understanding it.  (elisp) `Circular Objects' does not seem to cover it,
AFAICT.

This Lisp code is in a file:

((last-sort-comparer
  (bmkp-info-cp bmkp-gnus-cp bmkp-url-cp bmkp-local-file-type-cp)
  bmkp-alpha-p)
 (last-reverse-sort-p)
 (last-reverse-multi-sort-p)
 (last-latest-bookmark-alist #1=(#4=#("setq" 0 4
				      (bmkp-full-record #1#))
				    (filename . "~/.emacs")
				    (buffer-name . ".emacs")
				    (front-context-string . "      (append (l")
				    (rear-context-string . "(setq load-path\n")
				    (front-context-region-string)
				    (rear-context-region-string)
				    (visits . 0)
				    (time . #2=(21158 44564 146055 551000))
				    (created . #2#)
				    (position . 17)))
 (last-bmenu-omitted-bookmarks)
 (last-bmenu-marked-bookmarks)
 (last-bmenu-filter-function)
 (last-bmenu-filter-pattern . #3="")
 (last-bmenu-title . #3#)
 (last-bmenu-bookmark . #4#)
 (last-specific-buffer . #3#)
 (last-specific-file . #3#)
 (last-bmenu-toggle-filenames . t)
 (last-bmenu-before-hide-marked-alist)
 (last-bmenu-before-hide-unmarked-alist)
 (last-bookmark-file . "/home/fcihh/.emacs.bmk"))

With point at bob in the file, I do (read (current-buffer)), and this
is the result:

((last-sort-comparer
  (bmkp-info-cp bmkp-gnus-cp bmkp-url-cp bmkp-local-file-type-cp)
  bmkp-alpha-p)
 (last-reverse-sort-p)
 (last-reverse-multi-sort-p)
 (last-latest-bookmark-alist
  (#("setq" 0 4
     (bmkp-full-record #2))
   (filename . "~/.emacs")
   (buffer-name . ".emacs")
   (front-context-string . "      (append (l")
   (rear-context-string . "(setq load-path\n")
   (front-context-region-string)
   (rear-context-region-string)
   (visits . 0)
   (time 21158 44564 146055 551000)
   (created 21158 44564 146055 551000)
   (position . 17)))
 (last-bmenu-omitted-bookmarks)
 (last-bmenu-marked-bookmarks)
 (last-bmenu-filter-function)
 (last-bmenu-filter-pattern . "")
 (last-bmenu-title . "")
 (last-bmenu-bookmark .
                      #("setq" 0 4
                        (bmkp-full-record
                         (#2
                          (filename . "~/.emacs")
                          (buffer-name . ".emacs")
                          (front-context-string . "      (append (l")
                          (rear-context-string . "(setq load-path\n")
                          (front-context-region-string)
                          (rear-context-region-string)
                          (visits . 0)
                          (time 21158 44564 146055 551000)
                          (created 21158 44564 146055 551000)
                          (position . 17)))))
 (last-specific-buffer . "")
 (last-specific-file . "")
 (last-bmenu-toggle-filenames . t)
 (last-bmenu-before-hide-marked-alist)
 (last-bmenu-before-hide-unmarked-alist)
 (last-bookmark-file . "/home/fcihh/.emacs.bmk"))

Notice the remaining #2 occurrences.  I would have expected the above
pp-written sexp to be similar to what was in the file: a representation
of similar circular list structure.

Or if not that, I would at least expect that all #-notation references
to shared structure would be resolved, so that there are no orphaned
references like #2.

I would prefer to have `read' give me the (equivalent/similar) list
structure, with circularities.  But I could probably live with
`read' giving me a tree with copies where there originally was shared
structure (i.e., all # references resolved).

What I'm seeing looks to me like a bug.  Help understanding is
appreciated.  I write out a list structure that has circularities,
and I want to `read' the result to get back a similar structure.  What
should I be doing differently, or what is it that I need to be aware
of, that I'm currently missing?  Thx.

In GNU Emacs 24.3.50.2 (i686-pc-mingw32)
 of 2013-11-28 on LEG570
Bzr revision: 115271 rgm <at> gnu.org-20131128203155-qjc1xsp19z2k64b2
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
 `configure --enable-checking 'CFLAGS=-O0 -g3' CPPFLAGS=-DGLYPH_DEBUG=1'



This bug report was last modified 11 years and 224 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.