From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: YAMAMOTO Mitsuharu Newsgroups: gmane.emacs.devel Subject: Re: Mac OS-compatible ports (was: C-g crash in C-x C-f (OSX Lion)) Date: Sun, 1 Jan 2012 16:02:30 +0900 Message-ID: <2273100E-CEC7-4513-88A7-6DE60A86509E@math.s.chiba-u.ac.jp> References: <9E637EAB-A0C5-421B-9CCA-71C41442AF52@gmail.com> <87ipl7zaea.fsf@lifelogs.com> <87sjkbib14.fsf@uwakimon.sk.tsukuba.ac.jp> <87d3baui4b.fsf@lifelogs.com> <87mxacqlg4.fsf@lifelogs.com> <87fwg3pfy4.fsf@lifelogs.com> <8739c2dscy.fsf@lifelogs.com> <87ehvkdgfr.fsf_-_@lifelogs.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 (Apple Message framework v1251.1) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: dough.gmane.org 1325401400 24539 80.91.229.12 (1 Jan 2012 07:03:20 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sun, 1 Jan 2012 07:03:20 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Jan 01 08:03:16 2012 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RhFRp-0005vC-Po for ged-emacs-devel@m.gmane.org; Sun, 01 Jan 2012 08:03:14 +0100 Original-Received: from localhost ([::1]:51960 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RhFRo-0006io-9V for ged-emacs-devel@m.gmane.org; Sun, 01 Jan 2012 02:03:12 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:38003) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RhFRk-0006ij-TN for emacs-devel@gnu.org; Sun, 01 Jan 2012 02:03:09 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RhFRi-0004Fz-OI for emacs-devel@gnu.org; Sun, 01 Jan 2012 02:03:08 -0500 Original-Received: from mathmail.math.s.chiba-u.ac.jp ([133.82.132.2]:49622) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RhFRi-0004EG-9B for emacs-devel@gnu.org; Sun, 01 Jan 2012 02:03:06 -0500 Original-Received: from [192.168.1.22] (p7104-ipad03akita.akita.ocn.ne.jp [221.185.218.104]) by mathmail.math.s.chiba-u.ac.jp (Postfix) with ESMTPSA id 1823BC055D for ; Sun, 1 Jan 2012 16:03:02 +0900 (JST) In-Reply-To: X-Mailer: Apple Mail (2.1251.1) X-detected-operating-system: by eggs.gnu.org: NetBSD 3.0 (DF) X-Received-From: 133.82.132.2 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:147113 Archived-At: On 2012/01/01, at 10:47, YAMAMOTO Mitsuharu wrote: > > On 2011/12/31, at 22:22, Ted Zlatanov wrote: > >> I agree with your statement, but we're not "pushing" the NS port only >> because it's for GNUstep. It's quite usable on Mac OS X. I said that >> "in its defense" it is compatible with GNUstep by using the Cocoa API, >> which your port isn't. So, to make the current situation clear, the >> Mac OS port choice is between: >> >> 1) NS port: Cocoa API, works on Mac OS X with some issues, compatible >> with GNUstep and can work there (it needs lots of work though). Apple >> has repeatedly stated Cocoa is the preferred API for Mac OS X >> developers, especially for new software. >> >> 2) your Carbon-based port: works on Mac OS X well, can't be compatible >> with GNUstep. Apple has not been clear about Carbon's future, even >> though Carbon seems to be well entrenched at this point. > > As I've been repeatedly saying, the Mac port uses Cocoa for its > GUI implementation. If you call the Mac port Carbon-based, lots > of the applications including those bundled with Mac OS X such as > Safari.app should also be called Carbon-based. Also, I would like to note that some of recent improvements to Mac OS X and iOS are provided outside Cocoa, especially if they are not directly related to GUI. They are not classified as Carbon, but they are also C APIs and not provided by GNUstep. For example, Grand Central Dispatch (GCD) I mentioned in the `select' emulation without periodic polling is a C API and provided by both Mac OS X and iOS, but not by GNUstep. http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00694.html The Core Text framework I'm using for the font backend driver in the Mac port is also a C API. Interestingly, in iOS Apple provides an advanced low-level text layout API (Core Text) only at C level, rather than copying such API (NSLayoutManager etc.) from Mac OS X Cocoa AppKit to iOS UIKit. I think this implies Apple's preference of C API to Cocoa for advanced low-level tasks that applications such as text editors want to use. Because the Mac port already uses Cocoa AppKit for GUI, the argument about Apple's preference of Cocoa to Carbon (with respect to GUI) you made above is rather pointless. I even have an impression that the Mac port usually behaves more like other Cocoa applications than the NS port does. http://lists.gnu.org/archive/html/bug-gnu-emacs/2011-12/msg00735.html YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp