GNU bug report logs -
#56629
CC Mode 5.35.1 (C++//l); Cache state inconsistency
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 56629 in the body.
You can then email your comments to 56629 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-cc-mode <at> gnu.org
:
bug#56629
; Package
cc-mode
.
(Mon, 18 Jul 2022 14:43:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Michael Welsh Duggan <mwd <at> md5i.com>
:
New bug report received and forwarded. Copy sent to
bug-cc-mode <at> gnu.org
.
(Mon, 18 Jul 2022 14:43:01 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Package: cc-mode
From emacs -Q:
Load the attached file (inline). Turn on parse state debugging:
M-x c-toggle-parse-state-debug RET
Navigate to the uint8_t:
C-s 8
Delete the 8 and start to replace it:
<backspace> 1
At this point I get a cache inconsistency warning:
c-parse-state inconsistency at 179: using cache: nil, from scratch: (145). POINT-MIN: 1
Old state:
(setq c-state-cache nil c-state-cache-good-pos 81 c-state-nonlit-pos-cache nil c-state-nonlit-pos-cache-limit 1 c-state-brace-pair-desert nil c-state-point-min 1 c-state-point-min-lit-type nil c-state-point-min-lit-start nil c-state-min-scan-pos 1 c-state-old-cpp-beg nil c-state-old-cpp-end nil c-parse-state-point 179)
This inconsistency has not yet caused incorrect editing behavior (that I
have noticed, but I know that any cache problem has the possibility of
causing problems down the line.
[Message part 2 (text/x-c++hdr, inline)]
class DataType :
public types::NamedType<std::uint16_t, struct DataTypeParam,
types::EqComparable, types::Hashable>
{
using base = types::NamedType<std::uint8_t, struct DataTypeParam,
types::EqComparable, types::Hashable>;
public:
using base::NamedType;
};
[Message part 3 (text/plain, inline)]
Emacs : GNU Emacs 29.0.50 (build 2, x86_64-pc-linux-gnu, X toolkit, cairo version 1.16.0)
of 2022-07-15
Package: CC Mode 5.35.1 (C++//l)
Buffer Style: Pharos
c-emacs-features: (pps-extended-state col-0-paren posix-char-classes gen-string-delim gen-comment-delim syntax-properties 1-bit)
current state:
==============
(setq
c-basic-offset 2
c-comment-only-line-offset 0
c-indent-comment-alist '((anchored-comment column . 0) (end-block space . 1)
(cpp-end-block space . 2))
c-indent-comments-syntactically-p nil
c-block-comment-prefix ""
c-comment-prefix-regexp '((pike-mode . "//+!?\\|\\**") (awk-mode . "#+")
(other . "//+\\|\\**"))
c-doc-comment-style '((java-mode . javadoc) (pike-mode . autodoc)
(c-mode . gtkdoc) (c++-mode . gtkdoc))
c-cleanup-list '(scope-operator)
c-hanging-braces-alist '((brace-list-open) (brace-entry-open)
(statement-cont) (substatement-open after)
(block-close . c-snug-do-while)
(extern-lang-open after) (namespace-open after)
(module-open after) (composition-open after)
(inexpr-class-open after)
(inexpr-class-close before) (arglist-cont-nonempty))
c-hanging-colons-alist nil
c-hanging-semi&comma-criteria '(c-semi&comma-inside-parenlist)
c-backslash-column 48
c-backslash-max-column 72
c-special-indent-hook nil
c-label-minimum-indentation 1
c-offsets-alist '((inexpr-class . +)
(inexpr-statement . +)
(lambda-intro-cont . +)
(inlambda . 0)
(template-args-cont c-lineup-template-args +)
(incomposition . +)
(inmodule . +)
(innamespace . 0)
(inextern-lang . 0)
(composition-close . 0)
(module-close . 0)
(namespace-close . 0)
(extern-lang-close . 0)
(composition-open . 0)
(module-open . 0)
(namespace-open . 0)
(extern-lang-open . 0)
(objc-method-call-cont
c-lineup-ObjC-method-call-colons
c-lineup-ObjC-method-call
+
)
(objc-method-args-cont . c-lineup-ObjC-method-args)
(objc-method-intro . [0])
(friend . 0)
(cpp-define-intro c-lineup-cpp-define +)
(cpp-macro-cont . +)
(cpp-macro . [0])
(inclass . +)
(stream-op . c-lineup-streamop)
(arglist-cont-nonempty
c-lineup-gcc-asm-reg
c-lineup-arglist
)
(arglist-cont c-lineup-gcc-asm-reg 0)
(comment-intro
c-lineup-knr-region-comment
c-lineup-comment
)
(catch-clause . 0)
(else-clause . 0)
(do-while-closure . 0)
(access-label . /)
(case-label . *)
(substatement . +)
(statement-case-intro . *)
(statement . 0)
(brace-entry-open . 0)
(brace-list-entry . 0)
(brace-list-close . 0)
(block-close . 0)
(block-open . 0)
(inher-cont . c-lineup-multi-inher)
(inher-intro . +)
(member-init-cont . c-lineup-multi-inher)
(member-init-intro . +)
(annotation-var-cont . +)
(annotation-top-cont . 0)
(topmost-intro . 0)
(knr-argdecl . 0)
(func-decl-cont . +)
(inline-close . 0)
(class-close . 0)
(class-open . 0)
(defun-block-intro . +)
(defun-close . 0)
(defun-open . 0)
(c . c-lineup-C-comments)
(string . c-lineup-dont-change)
(topmost-intro-cont . c-lineup-topmost-intro-cont)
(brace-list-intro . +)
(brace-list-open . 0)
(inline-open . 0)
(arglist-close . +)
(arglist-intro . +)
(statement-cont . c-lineup-math)
(statement-case-open . *)
(label . *)
(substatement-label . 2)
(substatement-open . 0)
(knr-argdecl-intro . +)
(statement-block-intro . +)
)
c-buffer-is-cc-mode 'c++-mode
c-tab-always-indent t
c-syntactic-indentation t
c-syntactic-indentation-in-macros t
c-ignore-auto-fill '(string cpp code)
c-auto-align-backslashes t
c-backspace-function 'backward-delete-char-untabify
c-delete-function 'delete-char
c-electric-pound-behavior nil
c-default-style '((java-mode . "java") (awk-mode . "awk") (other . "gnu"))
c-enable-xemacs-performance-kludge-p nil
c-old-style-variable-behavior nil
defun-prompt-regexp nil
tab-width 8
comment-column 32
parse-sexp-ignore-comments t
parse-sexp-lookup-properties t
auto-fill-function nil
comment-multi-line t
comment-start-skip "\\(?://+\\|/\\*+\\)\\s *"
fill-prefix nil
fill-column 70
paragraph-start "[ ]*\\(//+\\|\\**\\)[ ]*$\\|^\f"
adaptive-fill-mode t
adaptive-fill-regexp "[ ]*\\(//+\\|\\**\\)[ ]*\\([ ]*\\([-–!|#%;>*·•‣⁃◦]+[ ]*\\)*\\)"
)
--
Michael Welsh Duggan
(md5i <at> md5i.com)
Information forwarded
to
bug-cc-mode <at> gnu.org
:
bug#56629
; Package
cc-mode
.
(Sun, 24 Jul 2022 15:30:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 56629 <at> debbugs.gnu.org (full text, mbox):
Hello, Michael.
Thank you indeed for another bug report.
On Mon, Jul 18, 2022 at 10:42:16 -0400, Michael Welsh Duggan wrote:
> Package: cc-mode
> >From emacs -Q:
> Load the attached file (inline). Turn on parse state debugging:
> M-x c-toggle-parse-state-debug RET
> Navigate to the uint8_t:
> C-s 8
> Delete the 8 and start to replace it:
> <backspace> 1
> At this point I get a cache inconsistency warning:
> c-parse-state inconsistency at 179: using cache: nil, from scratch: (145). POINT-MIN: 1
> Old state:
> (setq c-state-cache nil c-state-cache-good-pos 81 c-state-nonlit-pos-cache nil c-state-nonlit-pos-cache-limit 1 c-state-brace-pair-desert nil c-state-point-min 1 c-state-point-min-lit-type nil c-state-point-min-lit-start nil c-state-min-scan-pos 1 c-state-old-cpp-beg nil c-state-old-cpp-end nil c-parse-state-point 179)
> This inconsistency has not yet caused incorrect editing behavior (that I
> have noticed, but I know that any cache problem has the possibility of
> causing problems down the line.
> class DataType :
> public types::NamedType<std::uint16_t, struct DataTypeParam,
> types::EqComparable, types::Hashable>
> {
> using base = types::NamedType<std::uint8_t, struct DataTypeParam,
> types::EqComparable, types::Hashable>;
> public:
> using base::NamedType;
>
>
> };
The cause of this bug is the text properties put on the <s and >s. These
are intended to be category properties in Emacs, but syntax-table
properties in XEmacs. The mechanism which tests the presence of the
category property is chaotic in Emacs, though I think it works properly
in the standalone CC Mode; the detection is (wrongly) done both at
compile time and load time, and delivers different answers. :-(
I will sort this out and let you know when it's done.
> Emacs : GNU Emacs 29.0.50 (build 2, x86_64-pc-linux-gnu, X toolkit, cairo version 1.16.0)
> of 2022-07-15
> Package: CC Mode 5.35.1 (C++//l)
> Buffer Style: Pharos
> c-emacs-features: (pps-extended-state col-0-paren posix-char-classes gen-string-delim gen-comment-delim syntax-properties 1-bit)
[ .... ]
--
Alan Mackenzie (Nuremberg, Germany).
Information forwarded
to
bug-cc-mode <at> gnu.org
:
bug#56629
; Package
cc-mode
.
(Tue, 26 Jul 2022 19:54:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 56629 <at> debbugs.gnu.org (full text, mbox):
Hello again, Michael.
On Sun, Jul 24, 2022 at 15:28:56 +0000, Alan Mackenzie wrote:
[ .... ]
> The cause of this bug is the text properties put on the <s and >s. These
> are intended to be category properties in Emacs, but syntax-table
> properties in XEmacs. The mechanism which tests the presence of the
> category property is chaotic in Emacs, though I think it works properly
> in the standalone CC Mode; the detection is (wrongly) done both at
> compile time and load time, and delivers different answers. :-(
> I will sort this out and let you know when it's done.
I have now committed a patch for this to the savannah master branch,
which I am confident has sorted the problem out.
Could I ask you please to update your Emacs-29 to this branch, and test
it out on your real C++ code, and confirm that the bug is indeed fixed
(or that it's not fixed). Then we can close the bug. Thanks!
> > Emacs : GNU Emacs 29.0.50 (build 2, x86_64-pc-linux-gnu, X toolkit, cairo version 1.16.0)
> > of 2022-07-15
> > Package: CC Mode 5.35.1 (C++//l)
> > Buffer Style: Pharos
> > c-emacs-features: (pps-extended-state col-0-paren posix-char-classes gen-string-delim gen-comment-delim syntax-properties 1-bit)
> [ .... ]
--
Alan Mackenzie (Nuremberg, Germany).
Information forwarded
to
bug-cc-mode <at> gnu.org
:
bug#56629
; Package
cc-mode
.
(Wed, 27 Jul 2022 03:24:01 GMT)
Full text and
rfc822 format available.
Message #14 received at 56629 <at> debbugs.gnu.org (full text, mbox):
Alan Mackenzie <acm <at> muc.de> writes:
> Hello again, Michael.
>
> On Sun, Jul 24, 2022 at 15:28:56 +0000, Alan Mackenzie wrote:
>
> [ .... ]
>
>> The cause of this bug is the text properties put on the <s and >s. These
>> are intended to be category properties in Emacs, but syntax-table
>> properties in XEmacs. The mechanism which tests the presence of the
>> category property is chaotic in Emacs, though I think it works properly
>> in the standalone CC Mode; the detection is (wrongly) done both at
>> compile time and load time, and delivers different answers. :-(
>
>> I will sort this out and let you know when it's done.
>
> I have now committed a patch for this to the savannah master branch,
> which I am confident has sorted the problem out.
>
> Could I ask you please to update your Emacs-29 to this branch, and test
> it out on your real C++ code, and confirm that the bug is indeed fixed
> (or that it's not fixed). Then we can close the bug. Thanks!
Thus far, I have not encountered any problems. I'll let you know if
that changes.
>> > Emacs : GNU Emacs 29.0.50 (build 2, x86_64-pc-linux-gnu, X
>> > toolkit, cairo version 1.16.0)
>> > of 2022-07-15
>> > Package: CC Mode 5.35.1 (C++//l)
>> > Buffer Style: Pharos
>> > c-emacs-features: (pps-extended-state col-0-paren
>> > posix-char-classes gen-string-delim gen-comment-delim
>> > syntax-properties 1-bit)
>
>> [ .... ]
--
Michael Welsh Duggan
(md5i <at> md5i.com)
Reply sent
to
Alan Mackenzie <acm <at> muc.de>
:
You have taken responsibility.
(Sat, 30 Jul 2022 09:34:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Michael Welsh Duggan <mwd <at> md5i.com>
:
bug acknowledged by developer.
(Sat, 30 Jul 2022 09:34:02 GMT)
Full text and
rfc822 format available.
Message #19 received at 56629-done <at> debbugs.gnu.org (full text, mbox):
Hello, Michael.
> On Tue, Jul 26, 2022 at 23:23:16 -0400, Michael Welsh Duggan wrote:
> Alan Mackenzie <acm <at> muc.de> writes:
> > I have now committed a patch for this to the savannah master branch,
> > which I am confident has sorted the problem out.
> > Could I ask you please to update your Emacs-29 to this branch, and test
> > it out on your real C++ code, and confirm that the bug is indeed fixed
> > (or that it's not fixed). Then we can close the bug. Thanks!
> Thus far, I have not encountered any problems. I'll let you know if
> that changes.
OK, that's three days, now, with no further problems. So I'm closing the
bug with this post.
> --
> Michael Welsh Duggan
> (md5i <at> md5i.com)o
--
Alan Mackenzie (Nuremberg, Germany).
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Sat, 27 Aug 2022 11:24:04 GMT)
Full text and
rfc822 format available.
This bug report was last modified 2 years and 356 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.