all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Ted Zlatanov <tzz@lifelogs.com>
To: emacs-devel@gnu.org
Cc: Adrian Robert <adrian.b.robert@gmail.com>
Subject: Re: Mac OS-compatible ports
Date: Sun, 01 Jan 2012 09:06:21 -0500	[thread overview]
Message-ID: <87zke7bjqa.fsf@lifelogs.com> (raw)
In-Reply-To: F0E9AA5F-24FE-46BA-9406-512FDDDF67A7@math.s.chiba-u.ac.jp

On Sun, 1 Jan 2012 10:47:38 +0900 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> wrote: 

YM> 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.

YM> As I've been repeatedly saying, the Mac port uses Cocoa for its
YM> GUI implementation.  If you call the Mac port Carbon-based, lots
YM> of the applications including those bundled with Mac OS X such as
YM> Safari.app should also be called Carbon-based.

I'll avoid calling it "Carbon-based" in the future so there's no
misunderstanding.

YM> Also, I would like to note that some of recent improvements to
YM> Mac OS X and iOS are provided outside Cocoa, especially if they
YM> are not directly related to GUI.  They are not classified as
YM> Carbon, but they are also C APIs and not provided by GNUstep.
YM> For example, Grand Central Dispatch (GCD) I mentioned in the
YM> `select' emulation without periodic polling is a C API and
YM> provided by both Mac OS X and iOS, but not by GNUstep.

YM>   http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00694.html

I recall that API was brought into Mac OS X recently and is not
available in older versions of the same OS, at least for PowerPC
architecture.  I think it makes sense to use it opportunistically, but
if using it in the NS port makes the NS port incompatible with GNUstep,
then that's a harder decision.  I'm not qualified to make that decision,
in any case.

YM> The Core Text framework I'm using for the font backend driver in
YM> the Mac port is also a C API.  Interestingly, in iOS Apple
YM> provides an advanced low-level text layout API (Core Text) only
YM> at C level, rather than copying such API (NSLayoutManager etc.)
YM> from Mac OS X Cocoa AppKit to iOS UIKit.  I think this implies
YM> Apple's preference of C API to Cocoa for advanced low-level tasks
YM> that applications such as text editors want to use.

Interesting.  So Apple's direction seems to be towards plain C APIs now,
because of the emergence of iOS, and the profitability and popularity of
that platform makes a change in that direction unlikely.  That makes
compatibility with GNUstep much harder for the NS port.  It also means
that GNU Emacs has to keep up with Apple's business choices and custom
APIs to provide a great user experience on their proprietary platform.
That seems like a difficult choice for the GNU project, and I'm sure it
will come up again in other GNU software that aims to run on Mac OS X.

I think the NS port needs to make the decision whether it will keep
trying to be compatible with GNUstep, which will make the users'
experience worse on Mac OS X, or if it will use these C APIs and lose
the GNUstep advantage.

In the latter case it may be sensible and even advantageous to GNU Emacs
to merge the Mac port's improvements into the NS port, or vice versa,
and have just one Mac OS X compatible port.  That would leave GNUstep
without a viable GNU Emacs port, though, and it may not suit your plans
for the Mac port.

So this is up to the Emacs maintainers; the NS port maintainers (at
least Adrian Robert) and developers; and possibly you, if you want to
participate in such a discussion.  FWIW, as an Emacs user on Mac OS X, I
think such a merge would benefit the Emacs users, especially if there
was a way to provide some GNUstep compatibility.  I hope all of you find
a middle ground that satisfies everyone's goals and needs.

YM> Because the Mac port already uses Cocoa AppKit for GUI, the
YM> argument about Apple's preference of Cocoa to Carbon (with
YM> respect to GUI) you made above is rather pointless.  I even have
YM> an impression that the Mac port usually behaves more like other
YM> Cocoa applications than the NS port does.

OK, I'll keep that in mind, and thank you for explaining.

Ted




  parent reply	other threads:[~2012-01-01 14:06 UTC|newest]

Thread overview: 156+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-12 13:11 C-g crash in C-x C-f (OSX Lion) Carsten Mattner
2011-12-14 17:56 ` chad
2011-12-14 20:50 ` Jan Djärv
2011-12-14 21:45   ` Carsten Mattner
2011-12-15  6:08     ` Eli Zaretskii
2011-12-15 20:42       ` Carsten Mattner
2011-12-15 20:47         ` Eli Zaretskii
2011-12-15 21:22           ` Carsten Mattner
2011-12-15 21:24       ` Carsten Mattner
2011-12-16 12:46         ` Carsten Mattner
2011-12-16 13:33           ` Jan D.
2011-12-16 14:21             ` Carsten Mattner
2011-12-16 14:32               ` Eli Zaretskii
2011-12-16 19:00                 ` Carsten Mattner
2011-12-16 19:02                   ` Carsten Mattner
2011-12-16 20:11                     ` Carsten Mattner
2011-12-16 20:14                       ` Carsten Mattner
2011-12-16 20:19                         ` Carsten Mattner
2011-12-16 20:21                           ` Carsten Mattner
2011-12-16 21:12                             ` Eli Zaretskii
2011-12-16 21:21                               ` Carsten Mattner
2011-12-16 21:11                           ` Eli Zaretskii
2011-12-16 21:22                             ` Carsten Mattner
2011-12-17  8:33                               ` Eli Zaretskii
2011-12-16 21:24                             ` Andreas Schwab
2011-12-17  3:41                               ` Stephen J. Turnbull
2011-12-17  4:36                                 ` Óscar Fuentes
2011-12-17  8:32                               ` Eli Zaretskii
2011-12-17  9:46                                 ` Jan Djärv
2011-12-17 12:03                                   ` Eli Zaretskii
2011-12-17 13:50                                     ` Jan Djärv
2011-12-17 15:39                                 ` Carsten Mattner
2011-12-17 15:49                                   ` Carsten Mattner
2011-12-17 16:08                                   ` Eli Zaretskii
2011-12-17 16:09                                   ` Jan Djärv
2011-12-17 16:20                                     ` Carsten Mattner
2011-12-17 16:47                                       ` Carsten Mattner
2011-12-17 17:15                                         ` Jan Djärv
2011-12-17 17:19                                           ` Carsten Mattner
2011-12-17 17:46                                             ` Jan Djärv
2011-12-17 18:06                                               ` Carsten Mattner
2011-12-17 18:18                                                 ` Jan Djärv
2011-12-17 18:20                                                   ` Carsten Mattner
2011-12-19  8:40                                     ` Stephen J. Turnbull
2011-12-19 10:59                                       ` Carsten Mattner
2011-12-19 11:20                                         ` Eli Zaretskii
2011-12-19 11:51                                           ` Carsten Mattner
2011-12-19 14:04                                             ` Eli Zaretskii
2011-12-19 11:53                                         ` Stephen J. Turnbull
2011-12-17  9:27                               ` Jan Djärv
2011-12-16 21:49                             ` Carsten Mattner
2011-12-17  8:13                               ` Eli Zaretskii
2011-12-17  0:22                             ` Paul Eggert
2011-12-17  9:14                               ` Jan Djärv
2011-12-17 17:30                                 ` Adrian Robert
2011-12-17 17:53                                   ` Jan Djärv
2011-12-17 18:19                                 ` Paul Eggert
2011-12-19 18:18                                   ` Jan Djärv
2011-12-19 21:31                                     ` Paul Eggert
2011-12-19  9:00                               ` René Kyllingstad
2011-12-19 11:00                                 ` Carsten Mattner
2011-12-19 15:53                                   ` Jan D.
2011-12-19 16:52                                     ` Carsten Mattner
2011-12-19 17:04                                       ` chad
2011-12-19 17:25                                       ` René Kyllingstad
2011-12-19 17:47                                         ` Carsten Mattner
2011-12-19 22:27                                         ` Dan Nicolaescu
2011-12-19 22:29                                           ` Carsten Mattner
2011-12-19 23:42                                             ` chad
2011-12-20  0:03                                         ` chad
2011-12-20  1:12                                           ` YAMAMOTO Mitsuharu
2011-12-20  1:28                                             ` YAMAMOTO Mitsuharu
2011-12-20  1:40                                             ` chad
2011-12-20  2:14                                               ` Glenn Morris
2011-12-20  2:32                                               ` YAMAMOTO Mitsuharu
2011-12-20  9:24                                                 ` YAMAMOTO Mitsuharu
2011-12-20 18:33                                                   ` Carsten Mattner
2011-12-21  0:38                                                     ` YAMAMOTO Mitsuharu
2011-12-21 10:42                                                       ` Carsten Mattner
2011-12-22  0:34                                                         ` YAMAMOTO Mitsuharu
2011-12-22 11:23                                                           ` Carsten Mattner
2011-12-22  0:42                                                   ` YAMAMOTO Mitsuharu
2011-12-22 11:28                                                     ` Carsten Mattner
2011-12-23  1:28                                                       ` YAMAMOTO Mitsuharu
2011-12-23  8:09                                                         ` Jan Djärv
2011-12-24  1:54                                                           ` YAMAMOTO Mitsuharu
2011-12-26 15:31                                                             ` Jan Djärv
2011-12-26 15:46                                                               ` David Reitter
2011-12-26 16:26                                                               ` Carsten Mattner
2011-12-26 16:41                                                               ` Stephen J. Turnbull
2011-12-27  1:28                                                                 ` YAMAMOTO Mitsuharu
2011-12-27  1:14                                                               ` YAMAMOTO Mitsuharu
2011-12-23 13:26                                                         ` Ted Zlatanov
2011-12-23 15:05                                                           ` Stephen J. Turnbull
2011-12-27 15:52                                                             ` Ted Zlatanov
2011-12-28  4:50                                                               ` Stephen J. Turnbull
2011-12-28  7:36                                                               ` YAMAMOTO Mitsuharu
2011-12-28 10:42                                                                 ` Stefan Monnier
2011-12-28 13:44                                                                   ` Jan Djärv
2011-12-29  0:18                                                                 ` Ted Zlatanov
2011-12-29  0:57                                                                   ` YAMAMOTO Mitsuharu
2011-12-29 15:15                                                                     ` Ted Zlatanov
2011-12-30  0:34                                                                       ` YAMAMOTO Mitsuharu
2011-12-30 14:52                                                                         ` Ted Zlatanov
2011-12-30 22:12                                                                           ` YAMAMOTO Mitsuharu
2011-12-31 13:22                                                                             ` Mac OS-compatible ports (was: C-g crash in C-x C-f (OSX Lion)) Ted Zlatanov
2011-12-31 14:27                                                                               ` Mac OS-compatible ports Jan D.
2012-01-01  1:54                                                                                 ` YAMAMOTO Mitsuharu
2012-01-01 10:48                                                                                   ` Jan Djärv
2012-01-01 15:31                                                                                     ` Adrian Robert
2012-01-02  0:13                                                                                       ` YAMAMOTO Mitsuharu
2012-01-01  1:47                                                                               ` Mac OS-compatible ports (was: C-g crash in C-x C-f (OSX Lion)) YAMAMOTO Mitsuharu
2012-01-01  7:02                                                                                 ` YAMAMOTO Mitsuharu
2012-01-01 21:18                                                                                   ` Mac OS-compatible ports David De La Harpe Golden
2012-01-02  6:04                                                                                     ` YAMAMOTO Mitsuharu
2012-01-01 10:50                                                                                 ` Mac OS-compatible ports (was: C-g crash in C-x C-f (OSX Lion)) Carsten Mattner
2012-01-01 14:06                                                                                 ` Ted Zlatanov [this message]
2012-01-02  0:43                                                                                   ` Mac OS-compatible ports YAMAMOTO Mitsuharu
2012-01-01  6:26                                                                               ` Leo
2012-01-01 10:36                                                                                 ` Jan Djärv
2012-01-01 10:48                                                                                   ` Carsten Mattner
2012-01-02 10:08                                                                                   ` Christian Lynbech
2012-01-07 13:09                                                                                     ` Dimitri Fontaine
2012-01-08  1:07                                                                                       ` Dave Abrahams
2012-01-08  1:10                                                                                       ` Dave Abrahams
2012-01-08  1:28                                                                                       ` chad
2012-01-08  8:37                                                                                         ` Dimitri Fontaine
2012-01-01 13:24                                                                                 ` Ted Zlatanov
2012-01-01 19:22                                                                                 ` chad
2011-12-20  1:57                                             ` C-g crash in C-x C-f (OSX Lion) Leo
2011-12-20  7:29                                             ` YAMAMOTO Mitsuharu
2011-12-19 18:15                                       ` Harald Hanche-Olsen
2011-12-19 18:50                                         ` Carsten Mattner
2011-12-19 19:40                                           ` Harald Hanche-Olsen
2011-12-19 20:16                                             ` Jan Djärv
2011-12-19 20:46                                               ` Carsten Mattner
2011-12-20 17:34                                                 ` Adrian Robert
2011-12-17 18:26             ` Richard Stallman
2011-12-17 18:30               ` Carsten Mattner
     [not found]                 ` <CACY+HvrywuKjP8-TtONhaX-D6hK7WPKFhe2gqWA9BkjkpZ_uAg@mail.gmail.com>
2011-12-18 10:22                   ` Carsten Mattner
2011-12-18 13:52                     ` Jan Djärv
2011-12-18 14:35                       ` Carsten Mattner
2011-12-18 15:09                         ` Jan Djärv
2011-12-18 17:58                       ` Carsten Mattner
2011-12-19  6:32                         ` Jan Djärv
2011-12-19 11:04                           ` Carsten Mattner
2011-12-19 13:33                             ` Carsten Mattner
2011-12-19 15:55                             ` Jan D.
2011-12-19 16:53                               ` Carsten Mattner
2011-12-19 17:48                                 ` Jan Djärv
2011-12-19 18:51                                   ` Carsten Mattner
2011-12-19 20:16                                     ` Jan Djärv
2011-12-18 16:54                     ` Eli Zaretskii
2011-12-18 17:11                       ` Carsten Mattner
2011-12-19  2:51                 ` Richard Stallman
2011-12-19 11:10                   ` Carsten Mattner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87zke7bjqa.fsf@lifelogs.com \
    --to=tzz@lifelogs.com \
    --cc=adrian.b.robert@gmail.com \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.