From debbugs-submit-bounces@debbugs.gnu.org Mon Jul 28 18:38:55 2014 Received: (at submit) by debbugs.gnu.org; 28 Jul 2014 22:38:56 +0000 Received: from localhost ([127.0.0.1]:41387 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XBtZG-0008C1-4f for submit@debbugs.gnu.org; Mon, 28 Jul 2014 18:38:55 -0400 Received: from eggs.gnu.org ([208.118.235.92]:50598) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XBkMO-00021L-6U for submit@debbugs.gnu.org; Mon, 28 Jul 2014 08:49:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XBkMD-00056S-Bs for submit@debbugs.gnu.org; Mon, 28 Jul 2014 08:48:54 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: * X-Spam-Status: No, score=1.8 required=5.0 tests=AC_HTML_NONSENSE_TAGS, BAYES_50, FREEMAIL_FROM autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:38380) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XBkMD-00056J-81 for submit@debbugs.gnu.org; Mon, 28 Jul 2014 08:48:49 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52286) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XBkM7-0004B5-Fe for bug-gnu-emacs@gnu.org; Mon, 28 Jul 2014 08:48:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XBkM1-0004nG-BI for bug-gnu-emacs@gnu.org; Mon, 28 Jul 2014 08:48:43 -0400 Received: from www.courier-mta.com ([216.254.115.190]:47084) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XBkM1-0004lG-07 for bug-gnu-emacs@gnu.org; Mon, 28 Jul 2014 08:48:37 -0400 Received: from octopus.email-scan.com (octopus.email-scan.com [::ffff:192.168.0.4]) (TLS: TLSv1/SSLv3,256bits,DHE-RSA-AES256-SHA) by www.courier-mta.com with ESMTPS; Mon, 28 Jul 2014 08:47:28 -0400 id 0000000000100088.0000000053D64660.00001C49 Received: from localhost (localhost [127.0.0.1]) (uid 1000) by octopus.email-scan.com with local; Mon, 28 Jul 2014 08:47:25 -0400 id 00000000002C21AC.0000000053D6465D.00006D7E From: Sam Varshavchik To: bug-gnu-emacs@gnu.org Subject: 24.3; Doxygen comments trigger anomalous C++ major mode behavior Date: Mon, 28 Jul 2014 08:47:25 -0400 Message-ID: <87ppgpiraa.fsf@octopus.email-scan.com> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -3.0 (---) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Mon, 28 Jul 2014 18:38:52 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.0 (---) I am seeing anomalous behavior in C++ major mode that's triggered by long, but not excessively long -- only a few hundred lines -- Doxygen-style comments. Cursor navigation at the end of the Doxygen comment block in the following file (just before the first typedef), and trying to add some additional text there, results in 3-5 seconds' worth of delays for nearly typed character. Highlighting the entire Doxygen comment block: M-x indent-region takes several minutes (!) with emacs consuming 100% CPU. Sample file to open in C++ major mode. ====================================cut here================================= #ifndef x_w_layoutmanager_H #define x_w_layoutmanager_H #include #include #include #include namespace LIBCXX_NAMESPACE { namespace w { #if 0 }; }; #endif //! Base class for \ref layoutmanager "layoutmanager"s. class layoutmanagerBase : public ptrrefBase { public: //! A display element factory created by a \ref layoutmanager "layout manager". //! Refer to this class as \c INSERT_LIBX_NAMESPACE::w::layoutmanager::base::factory //! //! Obtain this factory from its \ref layoutmanager "layout manager". //! Calling one of //! \ref layoutmanagerObj::factoryObj "this factory's methods" adds a //! new display element //! to the container, in the manner controlled by the container's //! layout manager. //! //! The layout manager keeps its own reference on all ref handles //! returned by this factory. Generally, the layout manager will also //! have a mechanism by which a display element, created by this //! factory, gets removed from the container, releasing the layout //! manager's reference on the display element. If the last reference //! to the container goes out of scope, the container destroys the //! layout manager, which removes any remaining display elements from //! the container, automatically. //! //! \par Primitive display elements //! //! These methods create various primitive display elements. They are //! available when none of the more standard display elements fit the //! bill. //! //! \code //! #include //! #include //! //! INSERT_LIBX_NAMESPACE::w::const_font font=window->label_font().font(); //! //! std::string str; //! std::vector ustr; //! INSERT_LIBX_NAMESPACE::w::richtextmetamap_t markup; //! INSERT_LIBX_NAMESPACE::w::dim_t initial_width; //! //! INSERT_LIBX_NAMESPACE::w::label l=factory->create_label(font, str); //! //! INSERT_LIBX_NAMESPACE::w::label l=factory->create_label(font, str, unicode::utf_8); //! //! INSERT_LIBX_NAMESPACE::w::label l=factory->create_label(font, ustr); //! //! INSERT_LIBX_NAMESPACE::w::label l=factory->create_label(ustr, markup); //! //! INSERT_LIBX_NAMESPACE::w::label l=factory->create_wrappable_label(font, str, initial_width); //! //! INSERT_LIBX_NAMESPACE::w::label l=factory->create_wrappable_label(font, str, unicode::utf_8, initial_width); //! //! INSERT_LIBX_NAMESPACE::w::label l=factory->create_wrappable_label(font, ustr, initial_width); //! //! INSERT_LIBX_NAMESPACE::w::label l=factory->create_wrappable_label(ustr, markup, initial_width); //! \endcode //! //! Creates a \ref label "label" display element. //! //! \code //! #include //! //! INSERT_LIBX_NAMESPACE::w::const_picture pic; //! INSERT_LIBX_NAMESPACE::w::canvas c=factory->create_canvas(width, height); //! //! INSERT_LIBX_NAMESPACE::w::canvas c=factory->create_canvas(width, height, INSERT_LIBX_NAMESPACE::w::rgb(0, 0, 0)); //! //! INSERT_LIBX_NAMESPACE::w::canvas c=factory->create_canvas(pic); //! //! INSERT_LIBX_NAMESPACE::w::canvas c=factory->create_canvas(pic, INSERT_LIBX_NAMESPACE::w::rgb(0, 0, 0)); //! \endcode //! //! Creates a \ref canvas "canvas" display element. //! //! \code //! #include //! //! INSERT_LIBX_NAMESPACE::w::button b=factory->create_checkbox(); //! //! INSERT_LIBX_NAMESPACE::w::button b=factory->create_radio(); //! //! INSERT_LIBX_NAMESPACE::w::button b=factory->create_standard_button("name"); //! \endcode //! //! Creates a \ref button "button" display element. //! create_standard_button() loads a standard button image, specified //! by name. create_checkbox() loads a standard checkbox button image, //! create_radio() loads a standard radio button image and additionally //! invokes the new button's oneshot() method. //! //! \code //! #include //! //! INSERT_LIBX_NAMESPACE::w::focusable element; //! //! INSERT_LIBX_NAMESPACE::w::inputfocus focus=factory->create_inputfocus(element); //! //! INSERT_LIBX_NAMESPACE::w::inputfocus focus=factory->create_inputfocus(element, INSERT_LIBX_NAMESPACE::w::rgb(0,0,0)); //! //! std::pair focuspair=factory->create_standalone_inputfocus([] //! (const INSERT_LIBX_NAMESPACE::w::gridlayout &layout) //! { //! return layout->create_checkbox(); //! }); //! //! std::pair focuspair=factory->create_standalone_inputfocus([] //! (const INSERT_LIBX_NAMESPACE::w::gridlayout &layout) //! { //! return layout->create_checkbox(); //! }, INSERT_LIBX_NAMESPACE::w::rgb(0,0,0)); //! \endcode //! //! Creates an \ref inputfocus "input focus frame" with the default or //! an explicit background color. create_inputfocus() attached an //! input focus frame to an existing display element. //! //! create_standalone_inputfocus() creates a new input focus to an //! element that gets returned by the lambda parameter, which receives //! the new input focus frame's grid layout manager, and must return //! a focusable display element. This allows the input focus frame to //! be created for a display element contained by the same input focus //! frame. create_standalone_inputfocus() returns a \c std::pair //! containing the new input focus frame display element and the //! focusable display element, returned by the lambda, that the input //! focus frame got attached to. //! //! \code //! #include //! #include //! //! INSERT_LIBX_NAMESPACE::w::xcontainer container= //! layout->create_generic_container(); //! //! INSERT_LIBX_NAMESPACE::w::xcontainer container= //! layout->create_generic_container(INSERT_LIBX_NAMESPACE::rgb(0, 0 ,0)); //! //! INSERT_LIBX_NAMESPACE::w::xfocusablecontainer container= //! layout->create_focusable_container(); //! //! INSERT_LIBX_NAMESPACE::w::xfocusablecontainer container= //! layout->create_focusable_container(INSERT_LIBX_NAMESPACE::rgb(0, 0 ,0)); //! \endcode //! //! create_generic_container() creates a generic //! \ref xcontainer "container object", //! create_focusable_container() creates a generic container that's //! also \ref focusable "focusable". The generic container //! creates an inner focusable scope. Display elements //! added to the focusable container have their own independent //! tabbing order that starts at 0. Tabbing into the focusable //! container sets input focus to the first enabled display element //! in the container. Back-tabbing sets the input focus to the last //! enabled display element. So the tabbing flow appears to be //! ordinary, however the tabbing order of the elements inside the //! focusable container is independent and separate (a display //! element inside the focusable container cannot be set to tab //! between the outside elements, and vice versa). //! //! The new container either inherits its parent container's //! background color, or uses an explicit one, for its own //! background. An optional second parameter selects //! the new container's \ref layout "layout manager", and //! defaults to the \ref gridlayout "grid layout manager". //! //! \code //! #include //! //! INSERT_LIBX_NAMESPACE::w::actionbutton button= //! layout->create_normal_actionbutton(); //! //! INSERT_LIBX_NAMESPACE::w::actionbutton_style style(INSERT_LIBX_NAMESPACE::w::rgb(0, 0, 0), //! INSERT_LIBX_NAMESPACE::w::rgb(INSERT_LIBX_NAMESPACE::w::rgb::maximum, INSERT_LIBX_NAMESPACE::w::rgb::maximum, INSERT_LIBX_NAMESPACE::w::rgb::maximum); //! INSERT_LIBX_NAMESPACE::w::actionbutton button= //! layout->create_normal_actionbutton(style); //! //! INSERT_LIBX_NAMESPACE::w::actionbutton button= //! layout->create_special_actionbutton(); //! //! INSERT_LIBX_NAMESPACE::w::actionbutton button= //! layout->create_special_actionbutton(style); //! \endcode //! //! create_normal_actionbutton() creates an //! \ref actionbutton "action button", a button with a border, //! that changes background colors when clicked; using the default //! button color for the normal and the clicked background, or //! \ref actionbutton_style "custom colors". //! //! create_special_actionbutton() creates a action button with //! a slighly thicker border. //! //! \par Standard display elements //! //! The following methods combine several primitive display elements together //! to form convenient traditional UI objects: //! //! \code //! std::pair button=layout-> //! create_checkbox_with_label("Label"); //! //! std::pair button=layout-> //! create_radio_with_label("Label"); //! \endcode //! //! create_checkbox_with_label() and create_radio_with_label() creates //! an input focus frame containing either a checkbox or a radio button, //! and a text label to the right of it. //! //! The returned \ref inputfocus "input focus frame" is the actual display //! element that gets added to the layout manager's container. The //! button object is the button inside it. //! //! \code //! std::pair> button=layout-> //! create_normal_actionbutton_with_label([] //! { //! // ... //! }, "Label"); //! //! std::pair> button=layout-> //! create_special_actionbutton_with_label([] //! { //! // ... //! }, "Label"); //! //! \endcode //! //! Creates an action button with a label, and a callback. The first //! parameter is the callback lambda that gets invoked on_activate()-ion. //! The second parameter is the button's label. Optional parameters //! follow: a character set designator, like unicode::utf_8 //! (from ), non-default regular and activated background color. //! \par Text input fields //! //! \code //! INSERT_LIBX_NAMESPACE::w::text_input_style style=w->default_text_input_style(); //! //! std::string initial_value; //! //! INSERT_LIBX_NAMESPACE::w::textinputfield input=layout->create_text_input(style, initial_value, 41, 40); //! //! INSERT_LIBX_NAMESPACE::w::textinputfield input=layout->create_text_input(style, initial_value, unicode::utf_8, 41); //! \endcode //! //! create_text_input() creates a single line text input field. Use //! the parent window's default_text_input_style() to obtain a default //! \ref drawableObj::text_input_style "text_input_style". //! //! The initial value of the text input file gets specified using the //! current locale's codeset, or by explicitly specifying the character //! string's codeset. The initial value can also be given as a //! \c std::vector. //! //! The third (or the fourth) parameter is the text input field's width, //! given in character columns. The actual width gets computed based on the //! text input style's font width, that gets multiple by the column character, //! deriving the actual width in pixels. //! //! An optional parameter after the text input field's width specifies the //! maximum number of characters that can be entered. The first example //! specifies a 41 character wide text input that accepts up to a 40 //! character text string (the additional character column accomodates the //! cursor at the end of the full text string, without scrolling). //! //! \par Selection lists //! //! \code //! //! INSERT_LIBX_NAMESPACE::w::xfocusablecontainer container=create_selection_list_rows(4); //! //! INSERT_LIBX_NAMESPACE::w::listlayoutstyle custom_style=INSERT_LIBX_NAMESPACE::w::listlayoutstyle::create(parent_window); //! //! INSERT_LIBX_NAMESPACE::w::xfocusablecontainer container=create_selection_list_rows(4, custom_style); //! \endcode //! //! create_selection_list() creates a focusable container with a //! \ref listlayoutmanager "list layout manager". The first parameter //! specifies the number of rows in the list, if the list contains only //! simple text labels. //! //! The optional second parameter specifies a custom //! \ref listlayoutstyle "list layout style". typedef ref factory; //! A nullable pointer reference to a layout manager's factory //! Refer to this class as \c INSERT_LIBX_NAMESPACE::w::layoutmanager::base::factoryptr typedef ptr factoryptr; }; #if 0 { { #endif } } #endif ====================================cut here================================= In GNU Emacs 24.3.1 (x86_64-redhat-linux-gnu, GTK+ Version 3.10.9) of 2014-05-21 on buildvm-07.phx2.fedoraproject.org Windowing system distributor `Fedora Project', version 11.0.11404000 Configured using: `configure '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--program-prefix=' '--disable-dependency-tracking' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/var/lib' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--with-dbus' '--with-gif' '--with-jpeg' '--with-png' '--with-rsvg' '--with-tiff' '--with-xft' '--with-xpm' '--with-x-toolkit=gtk3' '--with-gpm=no' 'build_alias=x86_64-redhat-linux-gnu' 'host_alias=x86_64-redhat-linux-gnu' 'CFLAGS=-DMAIL_USE_LOCKF -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' 'LDFLAGS=-Wl,-z,relro '' Important settings: value of $LANG: en_US.utf8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix default enable-multibyte-characters: t Major mode: C++/l Minor modes in effect: tooltip-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t abbrev-mode: t Recent input: SPC s [ p e p e c i f i e s SPC a SPC c u s t o m SPC l i s t SPC l a y / / ! SPC \ r e f SPC l i s t l a y o u t s t y l e SPC " l i s t SPC l a y o u t SPC s t y l e " . C-SPC w C-x C-b C-x o C-y / / ! C-SPC x i n d e n t - r e g i o n C-x 1 C-x C-s x r e p o r t - e m a c s - b u g Recent messages: Mark set [6 times] Saved text until "ef listlayoutstyle "list layout style". " Mark set [2 times] Indenting region... done scroll-down-command: Beginning of buffer scroll-up-command: End of buffer Auto-saving...done Saving file /home/mrsam/src/libcxxw-work/includes/x/w/layoutmanager.H... Wrote /home/mrsam/src/libcxxw-work/includes/x/w/layoutmanager.H Load-path shadows: None found. Features: (shadow sort gnus-util mail-extr emacsbug message cl-macs gv format-spec rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils mule-util misearch multi-isearch vc-git cc-langs cl cl-lib cc-mode cc-fonts easymenu cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process dbusbind dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs) From debbugs-submit-bounces@debbugs.gnu.org Sun Oct 06 18:43:04 2019 Received: (at 18134) by debbugs.gnu.org; 6 Oct 2019 22:43:04 +0000 Received: from localhost ([127.0.0.1]:46978 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iHFF2-0008Ow-FB for submit@debbugs.gnu.org; Sun, 06 Oct 2019 18:43:04 -0400 Received: from mail-pf1-f177.google.com ([209.85.210.177]:41162) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iHFF1-0008OK-31 for 18134@debbugs.gnu.org; Sun, 06 Oct 2019 18:43:03 -0400 Received: by mail-pf1-f177.google.com with SMTP id q7so7394593pfh.8 for <18134@debbugs.gnu.org>; Sun, 06 Oct 2019 15:43:02 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=pkcx1mTj3XGHWOCpxj8PrEXGTZjVbTuyvBUEhMScyl4=; b=mgyK/5qb27au+lL8uL9Lwjo4Vi8Y3/vjceUZurwA8IWPdPtEYbeWCcNhrXWK0y5Aa+ gUrYaPCh0ae4Vxp1wbjlaYsi7hm7YeW9V/LEFqtRcqugbZmzhZnc+JLiwrJGiVP3OnGn 86HF0k0e4z3wlStHbxOgNzBK4A65wnLgvweBLf9253ZmYj/Ww9TaM/e3IwLp7Gjl8+0P kR0l9RCfeC5nDmBJAMHliYyeRlGK+oZULbvHQb0ZWIsddWnWOG7FA55Yb8+B7D8okgrW /ZuhUxgTP9JIA5wvrWJ+jkGW4jIJoSDHVGCE73RrLH8kv13GnswzHXtcziBESee/Jc8F ZiEA== X-Gm-Message-State: APjAAAUBOy7u2WxtyKGNkBOacU5zDB3LK7k3xYhPKXpNRiNCNxHXLasN Nf3Rm9mO9RArRKtyiEyq6Xn0JLD3KcRJUnRBYG8= X-Google-Smtp-Source: APXvYqxAQsGPtlYzsbgwFS+zPBEbBaUJioNaGznacpsSaIafuxEQnsPsAAXikRVth76qb+ancrhlAieeoIb//15OZIY= X-Received: by 2002:aa7:8750:: with SMTP id g16mr28991219pfo.190.1570401777198; Sun, 06 Oct 2019 15:42:57 -0700 (PDT) MIME-Version: 1.0 From: Stefan Kangas Date: Mon, 7 Oct 2019 00:42:46 +0200 Message-ID: Subject: Re: bug#18134: 24.3; Doxygen comments trigger anomalous C++ major mode behavior To: Sam Varshavchik Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 18134 Cc: 18134@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) found 27.0.50 thanks Sam Varshavchik writes: > I am seeing anomalous behavior in C++ major mode that's triggered by > long, but not excessively long -- only a few hundred lines -- Doxygen-style > comments. > > Cursor navigation at the end of the Doxygen comment block in the > following file (just before the first typedef), and trying to add some > additional text there, results in 3-5 seconds' worth of delays for > nearly typed character. > > Highlighting the entire Doxygen comment block: M-x indent-region takes > several minutes (!) with emacs consuming 100% CPU. [Snipped a long C++ example file here.] I can reproduce both issues on current master using the provided example file. 1. Editing is very slow after the Doxygen comment block. 2. Opening the example file under "emacs -Q", pressing C-x h TAB takes several minutes and sees the emacs process consume 100 % CPU (on one core at least). Using the profiler during step 2 gives me: >- command-execute 59856 97% > - call-interactively 59856 97% > - funcall-interactively 59827 97% > - c-indent-line-or-region 59820 97% > - c-indent-region 59819 97% > - c-guess-basic-syntax 59809 97% > - c-beginning-of-statement-1 39327 63% > - c-crosses-statement-barrier-p 39105 63% > - c-backward-sws 22222 36% > + c-beginning-of-macro 492 0% > # 1 0% > c-literal-limits 9508 15% > c-literal-start 6228 10% > + c-at-macro-vsemi-p 217 0% > + c-backward-sws 61 0% > + c-at-macro-vsemi-p 16 0% > + c-beginning-of-macro 10 0% > - c-just-after-func-arglist-p 19872 32% > - c-beginning-of-statement-1 19872 32% > - c-crosses-statement-barrier-p 19795 32% > - c-backward-sws 11424 18% > + c-beginning-of-macro 287 0% > # 2 0% > c-literal-limits 4707 7% > c-literal-start 3095 5% > + c-at-macro-vsemi-p 121 0% > + c-backward-sws 17 0% > c-beginning-of-macro 2 0% > c-at-macro-vsemi-p 1 0% > + c-looking-at-inexpr-block 1 0% > + c-backward-sws 202 0% > + c-back-over-member-initializers 106 0% > + c-determine-limit 103 0% > + c-parse-state 61 0% > + c-looking-at-decl-block 55 0% > + c-looking-at-inexpr-block 19 0% > + c-syntactic-skip-backward 13 0% > + c-back-over-member-initializer-braces 4 0% > + c-beginning-of-decl-1 4 0% > + c-in-literal 3 0% > + c-at-macro-vsemi-p 1 0% > + c-inside-bracelist-p 1 0% > + c-at-statement-start-p 1 0% > + c-indent-line 9 0% > + execute-extended-command 7 0% > - byte-code 29 0% > + read-extended-command 29 0% >+ ... 1784 2% (Quoted above so Gmail doesn't mess it up...) Best regards, Stefan Kangas From debbugs-submit-bounces@debbugs.gnu.org Sun Oct 06 18:45:19 2019 Received: (at control) by debbugs.gnu.org; 6 Oct 2019 22:45:19 +0000 Received: from localhost ([127.0.0.1]:46987 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iHFHD-0000Kf-9n for submit@debbugs.gnu.org; Sun, 06 Oct 2019 18:45:19 -0400 Received: from mail-pg1-f172.google.com ([209.85.215.172]:36228) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iHFHB-0000DB-EL for control@debbugs.gnu.org; Sun, 06 Oct 2019 18:45:18 -0400 Received: by mail-pg1-f172.google.com with SMTP id 23so7038449pgk.3 for ; Sun, 06 Oct 2019 15:45:17 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=kq0k2P/q9f+wnc4tMW/ypUaz7OW0nPLx36YPtiQBILc=; b=Im6sXIAh9FPoxnvSQcoocmvUdkWM681nuVg4GdJ8iPIyJayFOvgsZDBS2iHrwy7x6F elKcU29JX674CliG15tPWBp9AKyovGTLYsCCS609apSjRwTouMG1CHF8nDf58Sq8QCN1 NydWNdRsr6N4ZJiq7CjpSOmv9tqdg9J9UhdpgM4/uxPkMp6GaxGoJ2/Fheqhdr4lOLwx yuUcp1UvRSb/GlpDUPFBecklPJeuWdbUrx+brr1bINsdEuJftBmX/syx9xMTXhu/9zCF +ungUijAklngsITAowP8tM5z6Wc5sQx1Pi2I1G9IJb8kxRRoE5ArF1tnvhMhnoMlwDI0 kJfg== X-Gm-Message-State: APjAAAWCmcYowLjR3EHbzP3mq3zDJuQt1pgoat/a3+c98qdXGq2CpGoP 5mH2Lf5UqR+i+kDrHWg9xtXmdVEslNC1OFw8SL/Lt9++KCU= X-Google-Smtp-Source: APXvYqzXADsujUGhYaExdGhGwc43sP8FOPIbjyySkeZxoIVY31tiAeRMwKxM/sNTwjqyOUgllOF1jvt8+6vtBHvx6hU= X-Received: by 2002:a17:90b:8c4:: with SMTP id ds4mr15524447pjb.106.1570401911328; Sun, 06 Oct 2019 15:45:11 -0700 (PDT) MIME-Version: 1.0 From: Stefan Kangas Date: Mon, 7 Oct 2019 00:44:59 +0200 Message-ID: Subject: To: control@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 2.2 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: found 18134 27.0.50 quit Content analysis details: (2.2 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 0.2 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (stefankangas[at]gmail.com) -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [209.85.215.172 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [209.85.215.172 listed in wl.mailspike.net] 2.0 BLANK_SUBJECT Subject is present but empty 0.0 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and EnvelopeFrom freemail headers are different X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.2 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: found 18134 27.0.50 quit Content analysis details: (1.2 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [209.85.215.172 listed in wl.mailspike.net] -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [209.85.215.172 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.2 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (stefankangas[at]gmail.com) -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager 2.0 BLANK_SUBJECT Subject is present but empty 0.0 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and EnvelopeFrom freemail headers are different found 18134 27.0.50 quit From debbugs-submit-bounces@debbugs.gnu.org Mon Oct 07 14:51:42 2019 Received: (at 18134) by debbugs.gnu.org; 7 Oct 2019 18:51:42 +0000 Received: from localhost ([127.0.0.1]:49113 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iHY6f-0008QL-OU for submit@debbugs.gnu.org; Mon, 07 Oct 2019 14:51:42 -0400 Received: from colin.muc.de ([193.149.48.1]:36202 helo=mail.muc.de) by debbugs.gnu.org with smtp (Exim 4.84_2) (envelope-from ) id 1iHY6d-0008QC-QP for 18134@debbugs.gnu.org; Mon, 07 Oct 2019 14:51:40 -0400 Received: (qmail 80670 invoked by uid 3782); 7 Oct 2019 18:51:37 -0000 Received: from acm.muc.de (p4FE15C71.dip0.t-ipconnect.de [79.225.92.113]) by colin.muc.de (tmda-ofmipd) with ESMTP; Mon, 07 Oct 2019 20:51:35 +0200 Received: (qmail 6285 invoked by uid 1000); 7 Oct 2019 18:51:35 -0000 Date: Mon, 7 Oct 2019 18:51:35 +0000 To: Stefan Kangas Subject: Re: bug#18134: 24.3; Doxygen comments trigger anomalous C++ major mode behavior Message-ID: <20191007185135.GA5606@ACM> References: <87ppgpiraa.fsf@octopus.email-scan.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) X-Delivery-Agent: TMDA/1.1.12 (Macallan) From: Alan Mackenzie X-Primary-Address: acm@muc.de X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 18134 Cc: 18134@debbugs.gnu.org, Sam Varshavchik X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, Stefan. On Mon, Oct 07, 2019 at 00:42:46 +0200, Stefan Kangas wrote: > found 27.0.50 > thanks > Sam Varshavchik writes: > > I am seeing anomalous behavior in C++ major mode that's triggered by > > long, but not excessively long -- only a few hundred lines -- Doxygen-style > > comments. > > Cursor navigation at the end of the Doxygen comment block in the > > following file (just before the first typedef), and trying to add some > > additional text there, results in 3-5 seconds' worth of delays for > > nearly typed character. > > Highlighting the entire Doxygen comment block: M-x indent-region takes > > several minutes (!) with emacs consuming 100% CPU. > [Snipped a long C++ example file here.] > I can reproduce both issues on current master using the provided example > file. > 1. Editing is very slow after the Doxygen comment block. > 2. Opening the example file under "emacs -Q", pressing C-x h TAB takes > several minutes and sees the emacs process consume 100 % CPU (on one > core at least). I will be looking at this in the coming days. It is likely to take several (or even many) days to resolve, not hours. [ .... ] > Best regards, > Stefan Kangas -- Alan Mackenzie (Nuremberg, Germany). From debbugs-submit-bounces@debbugs.gnu.org Mon Oct 07 15:05:16 2019 Received: (at 18134) by debbugs.gnu.org; 7 Oct 2019 19:05:16 +0000 Received: from localhost ([127.0.0.1]:49175 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iHYJo-0002QO-0G for submit@debbugs.gnu.org; Mon, 07 Oct 2019 15:05:16 -0400 Received: from mail-pg1-f177.google.com ([209.85.215.177]:41543) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iHYJl-0002Q6-Vp for 18134@debbugs.gnu.org; Mon, 07 Oct 2019 15:05:14 -0400 Received: by mail-pg1-f177.google.com with SMTP id t3so2936629pga.8 for <18134@debbugs.gnu.org>; Mon, 07 Oct 2019 12:05:13 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=aDqbxETcUzWzkJaPvPqhrYqXPQd3a63KIlDVPFOFfAc=; b=I9PMmX5FGCWd7/aMoAbvoFFEPpJOaI7ndfvVzRltdqjhL7Pq2OaqhbxDDVFpquBBe/ hobRJZ8MpPeKAs7OUnWbRPPVs8yOfrKfVoL4WqcoWhJaoRfRspnJWTqU6xq+yf24zZrR nJgljiCg5c3lo1iMwAw/Qog86yvQLeCSaMqgEf1f9WtyCv7buJ1eHd9WBBLabQDIWfFH 6JY1BPwmQUxXvN8Ol5eXG8StbC4pUqauehYACthRm0f9ErDIunmGji9uXsc8qmsIBKOW qpHA+vqGj+IIoQXdBvb8g9ZmbZpn3N25UF0HIksO+bG+OyRmiWugalAvr5989w+LtU/L WnGg== X-Gm-Message-State: APjAAAXA3j2sGuScYKjrTP6VFfuLwJzDvkx3NbXUMdlQaH4NhIB4u0nV dT/pr55kk02qQR8PoybNYLAG3IhXMwvHm1U9M64= X-Google-Smtp-Source: APXvYqw1qpnT8tAKnnThvvtYuoexaOgy2PuYn76QZLDfCwFk/3lj09dPqdWfZ8nDRXRpofd7t6UHpVqHuM48Ny4RI1c= X-Received: by 2002:aa7:8750:: with SMTP id g16mr33786265pfo.190.1570475108186; Mon, 07 Oct 2019 12:05:08 -0700 (PDT) MIME-Version: 1.0 References: <87ppgpiraa.fsf@octopus.email-scan.com> <20191007185135.GA5606@ACM> In-Reply-To: <20191007185135.GA5606@ACM> From: Stefan Kangas Date: Mon, 7 Oct 2019 21:04:56 +0200 Message-ID: Subject: Re: bug#18134: 24.3; Doxygen comments trigger anomalous C++ major mode behavior To: Alan Mackenzie Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 18134 Cc: 18134@debbugs.gnu.org, Sam Varshavchik X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Hi Alan, Alan Mackenzie writes: > I will be looking at this in the coming days. It is likely to take > several (or even many) days to resolve, not hours. Thanks! Best of luck with the debugging. Best regards, Stefan Kangas From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 19 12:13:18 2019 Received: (at 18134) by debbugs.gnu.org; 19 Oct 2019 16:13:18 +0000 Received: from localhost ([127.0.0.1]:53486 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iLrLx-0001nW-RS for submit@debbugs.gnu.org; Sat, 19 Oct 2019 12:13:18 -0400 Received: from colin.muc.de ([193.149.48.1]:33311 helo=mail.muc.de) by debbugs.gnu.org with smtp (Exim 4.84_2) (envelope-from ) id 1iLrLt-0001nG-EM for 18134@debbugs.gnu.org; Sat, 19 Oct 2019 12:13:16 -0400 Received: (qmail 69569 invoked by uid 3782); 19 Oct 2019 16:13:11 -0000 Received: from acm.muc.de (p2E5D550D.dip0.t-ipconnect.de [46.93.85.13]) by colin.muc.de (tmda-ofmipd) with ESMTP; Sat, 19 Oct 2019 18:13:10 +0200 Received: (qmail 9571 invoked by uid 1000); 19 Oct 2019 16:13:05 -0000 Date: Sat, 19 Oct 2019 16:13:05 +0000 To: Stefan Kangas Subject: Re: bug#18134: 24.3; Doxygen comments trigger anomalous C++ major mode behavior Message-ID: <20191019161305.GB7911@ACM> References: <87ppgpiraa.fsf@octopus.email-scan.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) X-Delivery-Agent: TMDA/1.1.12 (Macallan) From: Alan Mackenzie X-Primary-Address: acm@muc.de X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 18134 Cc: 18134@debbugs.gnu.org, Sam Varshavchik X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, Stefan and Sam. On Mon, Oct 07, 2019 at 00:42:46 +0200, Stefan Kangas wrote: > found 27.0.50 > thanks > Sam Varshavchik writes: > > I am seeing anomalous behavior in C++ major mode that's triggered by > > long, but not excessively long -- only a few hundred lines -- Doxygen-style > > comments. > > Cursor navigation at the end of the Doxygen comment block in the > > following file (just before the first typedef), and trying to add some > > additional text there, results in 3-5 seconds' worth of delays for > > nearly typed character. > > Highlighting the entire Doxygen comment block: M-x indent-region takes > > several minutes (!) with emacs consuming 100% CPU. > [Snipped a long C++ example file here.] > I can reproduce both issues on current master using the provided example > file. > 1. Editing is very slow after the Doxygen comment block. > 2. Opening the example file under "emacs -Q", pressing C-x h TAB takes > several minutes and sees the emacs process consume 100 % CPU (on one > core at least). Yes. Some optimisation is needed in c-crosses-statement-barrier-p for large blocks of comments. Please try out this patch, and let me know if anything untoward happens: diff -r d84523ed901e cc-engine.el --- a/cc-engine.el Sat Oct 12 08:55:31 2019 +0000 +++ b/cc-engine.el Sat Oct 19 16:06:23 2019 +0000 @@ -1474,10 +1474,13 @@ (progn (if (setq lit-start (c-literal-start from)) ; Have we landed in a string/comment? (goto-char lit-start)) - (c-backward-syntactic-ws) ; ? put a limit here, maybe? + (c-backward-syntactic-ws (c-point 'bopl)) (setq vsemi-pos (point)) (c-at-vsemi-p)))) (throw 'done vsemi-pos)) + ((progn (c-forward-syntactic-ws to) + (>= (point) to)) + (throw 'done nil)) ;; In a string/comment? ((setq lit-range (c-literal-limits from)) (goto-char (cdr lit-range))) > Using the profiler during step 2 gives me: > >- command-execute 59856 97% > > - call-interactively 59856 97% > > - funcall-interactively 59827 97% > > - c-indent-line-or-region 59820 97% > > - c-indent-region 59819 97% > > - c-guess-basic-syntax 59809 97% > > - c-beginning-of-statement-1 39327 63% > > - c-crosses-statement-barrier-p 39105 63% <==== > > - c-backward-sws 22222 36% > > + c-beginning-of-macro 492 0% > > # 1 0% > > c-literal-limits 9508 15% > > c-literal-start 6228 10% > > + c-at-macro-vsemi-p 217 0% > > + c-backward-sws 61 0% > > + c-at-macro-vsemi-p 16 0% > > + c-beginning-of-macro 10 0% > > - c-just-after-func-arglist-p 19872 32% > > - c-beginning-of-statement-1 19872 32% > > - c-crosses-statement-barrier-p 19795 32% > > - c-backward-sws 11424 18% > > + c-beginning-of-macro 287 0% > > # 2 0% > > c-literal-limits 4707 7% > > c-literal-start 3095 5% > > + c-at-macro-vsemi-p 121 0% > > + c-backward-sws 17 0% > > c-beginning-of-macro 2 0% > > c-at-macro-vsemi-p 1 0% > > + c-looking-at-inexpr-block 1 0% > > + c-backward-sws 202 0% > > + c-back-over-member-initializers 106 0% > > + c-determine-limit 103 0% > > + c-parse-state 61 0% > > + c-looking-at-decl-block 55 0% > > + c-looking-at-inexpr-block 19 0% > > + c-syntactic-skip-backward 13 0% > > + c-back-over-member-initializer-braces 4 0% > > + c-beginning-of-decl-1 4 0% > > + c-in-literal 3 0% > > + c-at-macro-vsemi-p 1 0% > > + c-inside-bracelist-p 1 0% > > + c-at-statement-start-p 1 0% > > + c-indent-line 9 0% > > + execute-extended-command 7 0% > > - byte-code 29 0% > > + read-extended-command 29 0% > >+ ... 1784 2% > (Quoted above so Gmail doesn't mess it up...) > Best regards, > Stefan Kangas -- Alan Mackenzie (Nuremberg, Germany). From debbugs-submit-bounces@debbugs.gnu.org Sun Oct 20 09:36:42 2019 Received: (at 18134) by debbugs.gnu.org; 20 Oct 2019 13:36:42 +0000 Received: from localhost ([127.0.0.1]:54069 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iMBNy-0006oD-9H for submit@debbugs.gnu.org; Sun, 20 Oct 2019 09:36:42 -0400 Received: from mail-pg1-f179.google.com ([209.85.215.179]:42949) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iMBNv-0006o0-UN for 18134@debbugs.gnu.org; Sun, 20 Oct 2019 09:36:40 -0400 Received: by mail-pg1-f179.google.com with SMTP id f14so5991374pgi.9 for <18134@debbugs.gnu.org>; Sun, 20 Oct 2019 06:36:39 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=5+RlOrVCFFmfRmjX+kwDwE9lhs/GxvDl1YiGpww8ujw=; b=sK1yFDyjJ7t/kicsDj4fsJ/dESEPQFKKWrMU2wuHDtiWeLmtS53CHooIvSE2PPuX5S o8oVntj3j4f79ib58QVAfh8Cstg0XDYCyCkNfuEfSYOWyIDV7YfjhnKXmpKOrWNOaq98 LZWTQqxifTMom5wTBwQItzDFOERie9x7C7ixwmYbgvsjYsxlqEpbRlguWbe5yeprHumX HcQP1GD9Vjah8C4RkWGPdDbUt6JZ2rmytC8I7vMgod2At1oYcgEzgBh08UlNcbOK5w3C mmJK5UD6uNpiIjy1DhSQOBboKL8PnFqpm+E5HfCnOnZ5Xyp5K4ZcAs06gmQTstnUE4Ck 5Y0g== X-Gm-Message-State: APjAAAVHm/9ZzahA4cxGZAoFfxQa8bX/NvmDYYL+CJN/hTaJ2DcMkKpa 6zsaY5D/qcBaDUtPCLkHywFY+guSs96TYi+ABOU= X-Google-Smtp-Source: APXvYqyO8jx7gOE99HhYhb7SYysBjUis+jDcIrJXrErBTQML0FsRqEJ32/EIQRbW9BUKlNL48luBJNfuQ1fUaCVfcX4= X-Received: by 2002:a63:4046:: with SMTP id n67mr18883402pga.200.1571578594134; Sun, 20 Oct 2019 06:36:34 -0700 (PDT) MIME-Version: 1.0 References: <87ppgpiraa.fsf@octopus.email-scan.com> <20191019161305.GB7911@ACM> In-Reply-To: <20191019161305.GB7911@ACM> From: Stefan Kangas Date: Sun, 20 Oct 2019 15:36:23 +0200 Message-ID: Subject: Re: bug#18134: 24.3; Doxygen comments trigger anomalous C++ major mode behavior To: Alan Mackenzie Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 18134 Cc: 18134@debbugs.gnu.org, Sam Varshavchik X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) Hi Alan, Alan Mackenzie writes: > Yes. Some optimisation is needed in c-crosses-statement-barrier-p for > large blocks of comments. Please try out this patch, and let me know if > anything untoward happens: I've now tried the patch, and it fixes both the slow editing and the indentation. I don't code much C++ these days, so I didn't test it much beyond that. Thanks for providing a fix. Best regards, Stefan Kangas From debbugs-submit-bounces@debbugs.gnu.org Sun Oct 20 13:04:27 2019 Received: (at 18134-done) by debbugs.gnu.org; 20 Oct 2019 17:04:27 +0000 Received: from localhost ([127.0.0.1]:55206 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iMEd0-0007o6-M5 for submit@debbugs.gnu.org; Sun, 20 Oct 2019 13:04:26 -0400 Received: from colin.muc.de ([193.149.48.1]:56063 helo=mail.muc.de) by debbugs.gnu.org with smtp (Exim 4.84_2) (envelope-from ) id 1iMEcy-0007nx-C7 for 18134-done@debbugs.gnu.org; Sun, 20 Oct 2019 13:04:25 -0400 Received: (qmail 39889 invoked by uid 3782); 20 Oct 2019 17:04:22 -0000 Received: from acm.muc.de (p4FE15F91.dip0.t-ipconnect.de [79.225.95.145]) by colin.muc.de (tmda-ofmipd) with ESMTP; Sun, 20 Oct 2019 19:04:19 +0200 Received: (qmail 4935 invoked by uid 1000); 20 Oct 2019 17:04:15 -0000 Date: Sun, 20 Oct 2019 17:04:15 +0000 To: Stefan Kangas Subject: Re: bug#18134: 24.3; Doxygen comments trigger anomalous C++ major mode behavior Message-ID: <20191020170415.GA7284@ACM> References: <87ppgpiraa.fsf@octopus.email-scan.com> <20191019161305.GB7911@ACM> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) X-Delivery-Agent: TMDA/1.1.12 (Macallan) From: Alan Mackenzie X-Primary-Address: acm@muc.de X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 18134-done Cc: 18134-done@debbugs.gnu.org, Sam Varshavchik X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello, Stefan and Sam. On Sun, Oct 20, 2019 at 15:36:23 +0200, Stefan Kangas wrote: > Hi Alan, > Alan Mackenzie writes: > > Yes. Some optimisation is needed in c-crosses-statement-barrier-p for > > large blocks of comments. Please try out this patch, and let me know if > > anything untoward happens: > I've now tried the patch, and it fixes both the slow editing and the > indentation. I don't code much C++ these days, so I didn't test it > much beyond that. > Thanks for providing a fix. Thanks for the quick test. I've now committed the fix to master, and I'm closing the bug with this post. > Best regards, > Stefan Kangas -- Alan Mackenzie (Nuremberg, Germany). From debbugs-submit-bounces@debbugs.gnu.org Sun Oct 20 19:12:24 2019 Received: (at 18134) by debbugs.gnu.org; 20 Oct 2019 23:12:24 +0000 Received: from localhost ([127.0.0.1]:55462 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iMKN5-0005zs-VC for submit@debbugs.gnu.org; Sun, 20 Oct 2019 19:12:24 -0400 Received: from mail-ua1-f53.google.com ([209.85.222.53]:44115) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iMKN0-0005zd-O9 for 18134@debbugs.gnu.org; Sun, 20 Oct 2019 19:12:22 -0400 Received: by mail-ua1-f53.google.com with SMTP id n2so3259741ual.11 for <18134@debbugs.gnu.org>; Sun, 20 Oct 2019 16:12:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=+QVpETlTAVCIC+DxP8D1u9eCONsTJpcJF4fOq7QFIq4=; b=qIxDWorvkF0xcZ5du+9sJ/GAZn+7jEYNYslPbmZr4OblYqW2J0sNvKqBJp5FrMsH+i cQ1s863xNy8WoTYnG6QPCCE1V4gVRMbaHmhsBvzETno3kgtOgH757Iy0L6shFaLGDEuR Bszd1lSsTZlaWFRdDDbbwZda3NEMOs2cAASiwbJVUzlHaBEHIDYkSTtgPANkMyTPRUyT h/Wr2TMlPVQYy6bRc4asC0PUgA3/sG26JouLHslhUUd7iy2SDnVH4C4LmaT1EpyJJn58 iP0GGmnzGBs4JchaN5wHJaxbWeOIwxumiuiiJTMKt4jL4CFDquAYkda7IHm6jscRXNec ItYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=+QVpETlTAVCIC+DxP8D1u9eCONsTJpcJF4fOq7QFIq4=; b=HLwOlatnsQG9DpE5PTLGZAD6mRNX1EOE/kmVGbVVeJKaIqUsc+AjX6V1rvW9Wl06Uq ealNQ1AqIjdgnU/OTVE7GHDW66d14rfwJ4by7q48IsFxyNhvKUfcDzFRKIiZ9SwT9q3V 9q1j4zY7BfV6FIT5I9Vt7hQ83HMYqq3Ar8wyTr6vCp8dq4laOMmXaJIS3fUM3DEPjRs/ t/eSs7i3Pmwa9Y+b22U2YX4KOdjrJ7/5GJKlIpo2wiEMsVXJ+xpDmGnr1QffOjDTB05D wLIX0zTLySzkz1poUz1QreQ6DfQb8hgCXI+s5fwJat7/Weh2ZxoNnXeL/rYidhaZTMOD FTfw== X-Gm-Message-State: APjAAAVTjGt0SeZg2nIds9DzZWGh+eoyiFER9D5r5wDqnvQkpfl3pul6 z0vZSEygW0YkN/owmkxyXeEczAqcWMkOssqbZD3Sag== X-Google-Smtp-Source: APXvYqymwVxMItEMo6056ehwOJ4NmfQRo23Xxv+dUIOWusAUxRyHrmcQ1Ezx5d5Dx9hAIiPAFi6D0SQW/36z0wnETyo= X-Received: by 2002:ab0:2250:: with SMTP id z16mr11052867uan.135.1571613132782; Sun, 20 Oct 2019 16:12:12 -0700 (PDT) MIME-Version: 1.0 References: <87ppgpiraa.fsf@octopus.email-scan.com> <20191019161305.GB7911@ACM> In-Reply-To: From: Sam Varshavchik Date: Sun, 20 Oct 2019 19:12:01 -0400 Message-ID: Subject: Re: bug#18134: 24.3; Doxygen comments trigger anomalous C++ major mode behavior To: Stefan Kangas Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 18134 Cc: Alan Mackenzie , 18134@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Thanks to everyone for looking into this. From unknown Sun Jun 22 17:16:41 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 18 Nov 2019 12:24:08 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator