From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Adrian Robert" Newsgroups: gmane.emacs.devel Subject: Re: font-backend mechanism on Windows and Mac? Date: Wed, 12 Sep 2007 09:51:25 -0400 Message-ID: <55f7df060709120651w4f20ba44ge7c1ef74f8fe5db2@mail.gmail.com> References: <55f7df060709100539o41c6fdb2w72d909199371fa1f@mail.gmail.com> <55f7df060709111404naf766b1pfc14fb93982e6653@mail.gmail.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Trace: sea.gmane.org 1189605110 15871 80.91.229.12 (12 Sep 2007 13:51:50 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Wed, 12 Sep 2007 13:51:50 +0000 (UTC) Cc: emacs-devel@gnu.org To: "Stefan Monnier" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Sep 12 15:51:48 2007 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.50) id 1IVScv-0000zm-0q for ged-emacs-devel@m.gmane.org; Wed, 12 Sep 2007 15:51:33 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IVScu-0004pz-Tb for ged-emacs-devel@m.gmane.org; Wed, 12 Sep 2007 09:51:32 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1IVScq-0004pe-TB for emacs-devel@gnu.org; Wed, 12 Sep 2007 09:51:28 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1IVScp-0004pS-C4 for emacs-devel@gnu.org; Wed, 12 Sep 2007 09:51:28 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IVScp-0004pO-8o for emacs-devel@gnu.org; Wed, 12 Sep 2007 09:51:27 -0400 Original-Received: from rv-out-0910.google.com ([209.85.198.184]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1IVSco-0004Zz-NG for emacs-devel@gnu.org; Wed, 12 Sep 2007 09:51:26 -0400 Original-Received: by rv-out-0910.google.com with SMTP id c27so178885rvf for ; Wed, 12 Sep 2007 06:51:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=weM1B7eKEZZtiLGSQ6NXqI2MtydbylX9NsmOnpYXpXM=; b=HZR96NTHGSLty5N1bHQg+71tigBnwPwPbMI3cnG5nAyO08fVtT4/xS/La7zyOFTGBA4tHZXFg1k0aTBPyZ3s6k+WZexHHhqaOGXPjxZyWYFLuVp2ZR23Tptu75OkQmf7eDRHnpOy6nP1M7ayzEObbGIm8x6qnZx8GytWFyXbdcU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=RdTvf/cp1mThWhMwZDDdXn4ppAGzO8VXcE/z4d00vgJIj5I5NTZx/v18wl2WxltBq3pi67OF7p4eYKIasFGyO8IhdRytgaUvJxupEt71syeHoYezU1BBlaHtldfm6Mu/AKpqkWJVvOWvO1V8p1mV6Wgm4Fy8Qy6kIBnZRfqmPrA= Original-Received: by 10.140.251.1 with SMTP id y1mr277545rvh.1189605085715; Wed, 12 Sep 2007 06:51:25 -0700 (PDT) Original-Received: by 10.141.164.19 with HTTP; Wed, 12 Sep 2007 06:51:25 -0700 (PDT) In-Reply-To: Content-Disposition: inline X-Detected-Kernel: 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:78675 Archived-At: On 9/11/07, Stefan Monnier wrote: > I do hope that it's somewhat limited to the redisplay and that the rest of > the Carbon-Emacs effort (unrelated to UI) will be preserved. But to tell > you the truth, I do not know what that amounts to, so for all I know, > there's nothing left to preserve there. The Cocoa and Carbon ports share about as much code as any other pair, e.g. X11 and W32. It would be like if the GTK port and the X11 port were first created independently without using either of each others' code. Except that, additionally, the Cocoa port (higher level, like GTK) cannot use the Carbon port's code even if it wants to now, because these APIs are not available under GNUstep. In the reverse direction, I'm not sure whether Carbon-Appkit was able to take much from the Cocoa port, or if the constraints of its own architecture made this impractical. There's not much code in the ports that's NOT related to UI, which is the way it should be (*), but where there is, e.g. Andrew Choi's Mac unexec module, the Cocoa port uses it. (*) Generally a lot of code is shared between all ports. E.g. X11, Carbon, and Cocoa all use the same code for parsing lisp menus into widget_value structures. I split this into nsmenu_common.c (1000 lines), but did not modify xmenu.c or macmenu.c to use it. There's a line between refactoring of this kind that simplifies maintenance (less understanding of emacs internals needed by window system coders, less identical code in multiple files to keep in sync) and that makes things too inflexible for some ports to easily work with, but IMHO there's a lot more that could be done. Though in a large project like this, it's not easy. -Adrian