From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Alan Mackenzie Newsgroups: gmane.emacs.devel Subject: Re: Calling C++ hackers. Please try out the new handling of C++11 lambda functions in CC Mode. Date: Wed, 24 Aug 2016 19:43:52 +0000 Message-ID: <20160824194352.GD4920@acm.fritz.box> References: <20160815122412.GA4515@acm.fritz.box> <1471643100.1410.3.camel@gmail.com> <20160820151955.GB2529@acm.fritz.box> <1471730790.1410.16.camel@gmail.com> <20160821162204.GB3813@acm.fritz.box> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: blaine.gmane.org 1472067919 3200 195.159.176.226 (24 Aug 2016 19:45:19 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 24 Aug 2016 19:45:19 +0000 (UTC) User-Agent: Mutt/1.5.24 (2015-08-30) Cc: Matthias Meulien , Emacs Development To: Richard Copley Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Aug 24 21:45:15 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bce6r-0000Pa-VK for ged-emacs-devel@m.gmane.org; Wed, 24 Aug 2016 21:45:14 +0200 Original-Received: from localhost ([::1]:53098 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bce6p-0001D0-C7 for ged-emacs-devel@m.gmane.org; Wed, 24 Aug 2016 15:45:11 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:46951) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bce63-0001BF-Gl for emacs-devel@gnu.org; Wed, 24 Aug 2016 15:44:24 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bce5z-0004u3-BJ for emacs-devel@gnu.org; Wed, 24 Aug 2016 15:44:22 -0400 Original-Received: from mail.muc.de ([193.149.48.3]:30353) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bce5z-0004tB-1N for emacs-devel@gnu.org; Wed, 24 Aug 2016 15:44:19 -0400 Original-Received: (qmail 59957 invoked by uid 3782); 24 Aug 2016 19:44:16 -0000 Original-Received: from acm.muc.de (p548C661A.dip0.t-ipconnect.de [84.140.102.26]) by colin.muc.de (tmda-ofmipd) with ESMTP; Wed, 24 Aug 2016 21:44:16 +0200 Original-Received: (qmail 6844 invoked by uid 1000); 24 Aug 2016 19:43:52 -0000 Content-Disposition: inline In-Reply-To: X-Delivery-Agent: TMDA/1.1.12 (Macallan) X-Primary-Address: acm@muc.de X-detected-operating-system: by eggs.gnu.org: FreeBSD 9.x X-Received-From: 193.149.48.3 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:206785 Archived-At: Hello, Richard. On Wed, Aug 24, 2016 at 08:27:58PM +0100, Richard Copley wrote: > Hi Alan, > Thanks for this! > I encountered a problem while trying to come up with an > example so I could suggest a different default indentation > style for lambda bodies: > int main () > { > std::cout << ([] (int x) -> int { > return 2 * x; > } (10)) << std::endl; > } > Never mind the default indentation style, life's too short! > But here is the problem I mentioned. I just pulled from master > and recompiled and the bug is still present (as of your > commit 799a8a3338389013e8a76a70f507664ccb09a14f). > >>From emacs -Q: > C-x b x RET ; switch to a new buffer > M-x c++-mode RET > { } C-p ; insert a pair of braces and put point between them > [ ; insert a left square bracket > Emacs freezes. It can be woken up by holding down C-g > for a few seconds, at which point the *Messages* > buffer has this: > Error during redisplay: (jit-lock-function 55) signaled (quit) > Error during redisplay: (jit-lock-function 57) signaled (quit) > Error during redisplay: (jit-lock-function 60) signaled (quit) > Quit [7 times] Thanks for taking the trouble to report this. What appears to be the same problem was reported by Yakov Markovitch on the CC Mode list yesterday evening. I've investigated this and prepared a putative fix. That fix is in the patch below. Could you please apply the patch, recompile CC Mode and try it out in normal C++ code, then let me know (a second opinion besides Yakov's) whether it fixes the problem completely. Thanks! At the moment, I'm trying to get everything tidied up to release CC Mode 5.33, and I'm hoping that this is the _last_ "last minute" bug. diff -r f3c92d9e3424 cc-fonts.el --- a/cc-fonts.el Sun Aug 21 15:17:45 2016 +0000 +++ b/cc-fonts.el Tue Aug 23 20:36:35 2016 +0000 @@ -1654,7 +1654,7 @@ (c-backward-token-2))) ;; Go round the following loop once per captured item. - (while (and (not (eq (char-after) ?\])) + (while (and (not (looking-at "\\s)")) (< (point) limit)) (if (eq (char-after) ?&) (progn (setq mode ?&) @@ -1703,7 +1703,7 @@ (c-forward-syntactic-ws))) (setq capture-default nil) - (forward-char)))) ; over the terminating "]". + (forward-char)))) ; over the terminating "]" or whatever. nil) -- Alan Mackenzie (Nuremberg, Germany).