From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.devel Subject: Re: Inlining doesn't happen on OS X: big performance problem Date: Thu, 19 Sep 2013 08:06:03 -0700 Organization: UCLA Computer Science Department Message-ID: <523B12DB.9000305@cs.ucla.edu> References: <523AFDA5.4030607@dancol.org> <523AFFBA.3080305@cs.utoronto.ca> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1379603189 14617 80.91.229.3 (19 Sep 2013 15:06:29 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 19 Sep 2013 15:06:29 +0000 (UTC) Cc: Daniel Colascione To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Sep 19 17:06:32 2013 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1VMfoN-0006Gf-W4 for ged-emacs-devel@m.gmane.org; Thu, 19 Sep 2013 17:06:32 +0200 Original-Received: from localhost ([::1]:51658 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VMfoN-0001kc-FB for ged-emacs-devel@m.gmane.org; Thu, 19 Sep 2013 11:06:31 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:55179) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VMfoE-0001cP-Dr for emacs-devel@gnu.org; Thu, 19 Sep 2013 11:06:28 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VMfo8-0002EP-KZ for emacs-devel@gnu.org; Thu, 19 Sep 2013 11:06:22 -0400 Original-Received: from smtp.cs.ucla.edu ([131.179.128.62]:50802) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VMfo8-0002Cm-F1 for emacs-devel@gnu.org; Thu, 19 Sep 2013 11:06:16 -0400 Original-Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 5E8A939E80F8; Thu, 19 Sep 2013 08:06:08 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Original-Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RVUzg1UBPUUe; Thu, 19 Sep 2013 08:06:07 -0700 (PDT) Original-Received: from [192.168.1.9] (pool-108-0-233-62.lsanca.fios.verizon.net [108.0.233.62]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 924D839E8008; Thu, 19 Sep 2013 08:06:07 -0700 (PDT) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.0 In-Reply-To: <523AFFBA.3080305@cs.utoronto.ca> X-Enigmail-Version: 1.5.2 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 131.179.128.62 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 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-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:163470 Archived-At: Ryan Johnson wrote: > Surely something that elaborate and costly was a conscious decision... Yes, that's correct. As noted in the code's comments, the problem is that Apple's C library is incompatible with C99; see the thread here: http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html This is registered as Darwin bug 12841334, whatever that is (I don't have access to the Apple bug database). As I understand it, it it's a nontrivial bug, involving only the C library headers but also clang (the default C compiler used by Apple). I've corresponded with a developer at Apple about this (most recent correspondence August 21), and as I understand it Apple plans to fix the bug at some point, but the fix isn't public yet. When it is, I'd like to adjust Gnulib so that it avoids the problem on fixed versions of Darwin. In reviewing that correspondence I think that we could work around some cases of the problem by replacing both instances of 'defined __APPLE__' with this: (defined __APPLE__ \ && ! (defined _DONT_USE_CTYPE_INLINE_ \ && ! (defined _FORTIFY_SOURCE && _FORTIFY_SOURCE))) in m4/extern-inline.m4. This would improve performance if you compile Emacs with -D_DONT_USE_CTYPE_INLINE_ -D_FORTIFY_SOURCE=0. If you're interested in building Emacs that way I can make that change to Gnulib.