From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Jimmy Yuen Ho Wong Newsgroups: gmane.emacs.devel Subject: Re: Serious performance problem with process output on Mac OSX Date: Wed, 31 Mar 2010 01:39:12 +0800 Message-ID: <2f8855f41003301039y1d159aacxbf9e33ba695d5dab@mail.gmail.com> References: <83634jglab.fsf@gnu.org> <87k4sywpvv.fsf@stupidchicken.com> <83tys2fbxs.fsf@gnu.org> <87hbo1iubm.fsf@home.jasonrumney.net> <87iq8ey981.fsf@stupidchicken.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=0016362849e0c08c610483081cb3 X-Trace: dough.gmane.org 1269970791 17766 80.91.229.12 (30 Mar 2010 17:39:51 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Tue, 30 Mar 2010 17:39:51 +0000 (UTC) Cc: Chong Yidong , Adrian Robert , Christian Lynbech , Emacs-Devel devel To: David Reitter Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Mar 30 19:39:46 2010 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1NwfPk-0003T1-74 for ged-emacs-devel@m.gmane.org; Tue, 30 Mar 2010 19:39:44 +0200 Original-Received: from localhost ([127.0.0.1]:43095 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NwfPj-0000kg-Iy for ged-emacs-devel@m.gmane.org; Tue, 30 Mar 2010 13:39:43 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NwfPe-0000k5-R5 for emacs-devel@gnu.org; Tue, 30 Mar 2010 13:39:38 -0400 Original-Received: from [140.186.70.92] (port=36230 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NwfPd-0000jl-8h for emacs-devel@gnu.org; Tue, 30 Mar 2010 13:39:38 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1NwfPZ-0005lv-Po for emacs-devel@gnu.org; Tue, 30 Mar 2010 13:39:37 -0400 Original-Received: from qw-out-1920.google.com ([74.125.92.146]:11981) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NwfPZ-0005ln-L1 for emacs-devel@gnu.org; Tue, 30 Mar 2010 13:39:33 -0400 Original-Received: by qw-out-1920.google.com with SMTP id 4so3831074qwk.24 for ; Tue, 30 Mar 2010 10:39:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :from:date:received:message-id:subject:to:cc:content-type; bh=YsiYulWQLt0L5gNYrCIMLoLNkIdLKPdqXa+o6MCUATw=; b=mIRHnosgrqZeFVCjr1z3hlpGbF4XsTi5yXmbbiPTfhYaZFS2OfE1nKMutjPFAWulvx wHlrddM6VKgJ9n0NGh/Gk/pXM0JwXOEpduIjd18o1Uz4yhmgUZ/nxNl+f5az4M24ruht zOV8W5RUOfgZm30QG2wucuKvF+Ht1Me652Wy4= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; b=I12+De0V+yQ+Xsw8ph10GdwfsqCsEPD2NEoSavaaIsXeB8w4v9mj9qQUkuFEM+HcNz 3iUiviGKxFBdC5nl8UNbyX3xgEmPMzKL+ZHWq6HQrv+TXo+2MHc3Y/LcVINP5f4ePo84 1maJesAR7fw+fdsK3wf7hPQSIlZV06SGZ7JZ0= Original-Received: by 10.229.43.12 with HTTP; Tue, 30 Mar 2010 10:39:12 -0700 (PDT) In-Reply-To: Original-Received: by 10.229.219.203 with SMTP id hv11mr83169qcb.46.1269970772200; Tue, 30 Mar 2010 10:39:32 -0700 (PDT) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:122931 Archived-At: --0016362849e0c08c610483081cb3 Content-Type: text/plain; charset=ISO-8859-1 It seems there was some code merge problem for this patch commit. I was compiling this on my MBP 10.6.3 and I got this: ./configure --with-ns ... make install ... gcc -c -Demacs -DHAVE_CONFIG_H -I. -I/Users/wyuenho/packages/emacs/emacs-23/src -Dtemacs -g -O2 -Wdeclaration-after-statement -Wno-pointer-sign -MMD -MF deps/nsterm.d nsterm.m nsterm.m: In function 'x_set_window_size': nsterm.m:1189: warning: ISO C90 forbids mixed declarations and code nsterm.m: In function 'ns_draw_fringe_bitmap': nsterm.m:2203: warning: ISO C90 forbids mixed declarations and code nsterm.m: In function '-[EmacsView keyDown:]': nsterm.m:4481: warning: 'wantsToDelayTextChangeNotifications' is deprecated (declared at /System/Library/Frameworks/AppKit.framework/Headers/NSInputManager.h:112) nsterm.m: In function '-[EmacsView initFrameFromEmacs:]': nsterm.m:5089: warning: class 'EmacsView' does not implement the 'NSWindowDelegate' protocol nsterm.m: In function '-[EmacsScroller judge]': nsterm.m:5761: warning: ISO C90 forbids mixed declarations and code nsterm.m: In function '-[EmacsScroller setPosition:portion:whole:]': nsterm.m:5800: warning: 'setFloatValue:knobProportion:' is deprecated (declared at /System/Library/Frameworks/AppKit.framework/Headers/NSScroller.h:107) nsterm.m:5807: warning: 'setFloatValue:knobProportion:' is deprecated (declared at /System/Library/Frameworks/AppKit.framework/Headers/NSScroller.h:107) gcc -c -Demacs -DHAVE_CONFIG_H -I. -I/Users/wyuenho/packages/emacs/emacs-23/src -Dtemacs -g -O2 -Wdeclaration-after-statement -Wno-pointer-sign -MMD -MF deps/nsfns.d nsfns.m nsfns.m: In function 'ns_get_screen': nsfns.m:227: warning: assignment makes pointer from integer without a cast nsfns.m: At top level: nsfns.m:690: error: conflicting types for 'ns_set_doc_edited' nsterm.h:712: error: previous declaration of 'ns_set_doc_edited' was here nsfns.m: In function 'Fx_display_color_cells': nsfns.m:2377: warning: ISO C90 forbids mixed declarations and code make[1]: *** [nsfns.o] Error 1 make: *** [src] Error 2 On Tue, Mar 30, 2010 at 9:05 PM, David Reitter wrote: > On Mar 30, 2010, at 3:43 AM, Adrian Robert wrote: > > >> One other thing I noticed which looking through the code is that the > >> Nextstep port assigns a special value, `t', to frame-title-format, and > >> processes it specially. Is there any reason to do this? If not, I > >> think this should be removed; this looks like a misfeature to me, since > >> it is not compatible with the variable as documented and can confuse > >> other people's Lisp code. > > > > Ah, OK -- this variable and value was checked for in the code I moved in > my patch, but I had no idea it was set specially by NS lisp code. I'll look > into it. > > IIRC, NS displays the file's name as the title and requires you to set it > that way if drag&drop of the file proxy icons (displayed next to the name of > the frame) is supposed to work. That's all standard functionality on NS or > at least on the Mac. If the frame name is different, I think drag&drop > doesn't work right. See xdisp.c:9503ff and also ns_set_name_as_filename() > in nsfns.m. > > Introducing a ns-* variable to override would confuse users > (frame-title-format won't work as expected), but if we set the file name > with this NS function iff ns-frame-title-format is "%f", then that would be > consistent with the other platforms. > > --0016362849e0c08c610483081cb3 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
It seems there was s= ome code merge problem for this patch commit. I was compiling this on my MB= P 10.6.3 and I got this:

./configure --with-ns
...
make inst= all
...
gcc -c =A0-Demacs -DHAVE_CONFIG_H =A0-I. -= I/Users/wyuenho/packages/emacs/emacs-23/src -Dtemacs =A0 =A0 -g -O2 -Wdecla= ration-after-statement -Wno-pointer-sign =A0 -MMD -MF deps/nsterm.d nsterm.= m
nsterm.m: In function 'x_set_window_size':
nsterm.m:= 1189: warning: ISO C90 forbids mixed declarations and code
nsterm= .m: In function 'ns_draw_fringe_bitmap':
nsterm.m:2203: w= arning: ISO C90 forbids mixed declarations and code
nsterm.m: In function '-[EmacsView keyDown:]':
nster= m.m:4481: warning: 'wantsToDelayTextChangeNotifications' is depreca= ted (declared at /System/Library/Frameworks/AppKit.framework/Headers/NSInpu= tManager.h:112)
nsterm.m: In function '-[EmacsView initFrameFromEmacs:]':
nsterm.m:5089: warning: class 'EmacsView' does not implement = the 'NSWindowDelegate' protocol
nsterm.m: In function = 9;-[EmacsScroller judge]':
nsterm.m:5761: warning: ISO C90 forbids mixed declarations and code
nsterm.m: In function '-[EmacsScroller setPosition:portion:whol= e:]':
nsterm.m:5800: warning: 'setFloatValue:knobProporti= on:' is deprecated (declared at /System/Library/Frameworks/AppKit.frame= work/Headers/NSScroller.h:107)
nsterm.m:5807: warning: 'setFloatValue:knobProportion:' is dep= recated (declared at /System/Library/Frameworks/AppKit.framework/Headers/NS= Scroller.h:107)
gcc -c =A0-Demacs -DHAVE_CONFIG_H =A0-I. -I/Users= /wyuenho/packages/emacs/emacs-23/src -Dtemacs =A0 =A0 -g -O2 -Wdeclaration-= after-statement -Wno-pointer-sign =A0 -MMD -MF deps/nsfns.d nsfns.m
nsfns.m: In function 'ns_get_screen':
nsfns.m:227: w= arning: assignment makes pointer from integer without a cast
nsfn= s.m: At top level:
nsfns.m:690: error: conflicting types for '= ;ns_set_doc_edited'
nsterm.h:712: error: previous declaration of 'ns_set_doc_edited= 9; was here
nsfns.m: In function 'Fx_display_color_cells'= :
nsfns.m:2377: warning: ISO C90 forbids mixed declarations and c= ode
make[1]: *** [nsfns.o] Error 1
make: *** [src] Error 2
=


On Tue, Mar 30, 2010 = at 9:05 PM, David Reitter <david.reitter@gmail.com> wrote:
On Mar 30, 2010, at 3:43 = AM, Adrian Robert wrote:

>> One other thing I noticed which looking through the code is that t= he
>> Nextstep port assigns a special value, `t', to frame-title-for= mat, and
>> processes it specially. =A0Is there any reason to do this? =A0If n= ot, I
>> think this should be removed; this looks like a misfeature to me, = since
>> it is not compatible with the variable as documented and can confu= se
>> other people's Lisp code.
>
> Ah, OK -- this variable and value was checked for in the code I moved = in my patch, but I had no idea it was set specially by NS lisp code. =A0I&#= 39;ll look into it.

IIRC, NS displays the file's name as the title and requires you t= o set it that way if drag&drop of the file proxy icons (displayed next = to the name of the frame) is supposed to work. =A0That's all standard f= unctionality on NS or at least on the Mac. =A0If the frame name is differen= t, I think drag&drop doesn't work right. =A0See xdisp.c:9503ff and = also ns_set_name_as_filename() in nsfns.m.

Introducing a ns-* variable to override would confuse users (frame-title-fo= rmat won't work as expected), but if we set the file name with this NS = function iff ns-frame-title-format is "%f", then that would be co= nsistent with the other platforms.


--0016362849e0c08c610483081cb3--