all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Andy Moreton <andrewjmoreton@gmail.com>
Cc: emacs-devel@gnu.org
Subject: Re: HarfBuzz is available on MS-Windows
Date: Sat, 08 Jun 2019 15:45:54 +0300	[thread overview]
Message-ID: <83sgsknt31.fsf@gnu.org> (raw)
In-Reply-To: <86blz86zul.fsf@gmail.com> (message from Andy Moreton on Sat, 08 Jun 2019 13:11:46 +0100)

> From: Andy Moreton <andrewjmoreton@gmail.com>
> Date: Sat, 08 Jun 2019 13:11:46 +0100
> 
> Emacs should be capable of finding a font to display all of the 
> characters in HELLO, as it can do so given some fontset customisation.

Only if fonts to support all of the characters are available on the
user's system.  It could be that all of the fonts are available on
Windows 10 (I don't have such a system handy to verify that), but this
certainly isn't so on older versions of Windows.

> > In addition, quality of built-in fonts changes with time, so a font
> > that comes with the system today might be less desirable to use
> > tomorrow. Thus, including those fonts in our sources would mean we
> > need to track the development of system fonts, update the fonts in our
> > default fontsets, and perhaps make the fontset dependent on the OS
> > version. This would be a maintenance burden.
> 
> It is more important to give users a working tool than to reduce
> maintenance effort.

This is a noble goal, but it's impractical to expect that, at least
for Windows.  Guess how many developers actually touch the related
code, or even have a good enough understanding of what happens there.

> The selection of fonts shipped with each platform changes fairly
> slowly, so this should not present an undue burden.

My experience is very different.  Specifically wrt Windows, we have a
major new version every 2 to 3 years, with minor updates in-between.
This is more frequent than Emacs releases its major versions.  And if
you want to get an idea regarding the amount of font-related changes
in each major release of Windows, look here:

  https://docs.microsoft.com/en-us/globalization/input/font-support

Just to study and understand what each new font means will take a
significant amount of time.

Besides, even the information about which fonts are available on what
versions of Windows, and which scripts they cover reasonably well, is
currently not available in the form that can be directly compared with
our fontset setup (the above page only lists _new_ fonts, but
significant changes are also made in existing fonts).

So we are nowhere near being on top of this.  If you want to
contribute to improving this situation, please consider coming
on-board and collecting the necessary information, then we could start
talking about where we have inadequate support and how to make things
better.  Otherwise, at best things will be left where they are now,
because no one works on this on a routine basis, and (speaking about
myself personally) I doubt if we even have enough expert knowledge,
let alone free time and energy, for doing the job.

> > If you'd like to try debugging this, I can help by pointing to the
> > code where this happens. In general, start with the fontset as defined
> > in fontset.el, and then look in w32font.c:w32font_list_internal and
> > its subroutines.
> 
> I can try debugging from there - any further hints are welcome.

The function add_font_entity_to_list is the first place to look.  It
performs all the checks to determine whether a font might fit the
requirements of the font spec.  For Uniscribe and HarfBuzz, the
match_data->opentype_only flag is set.  The subroutines of
add_font_entity_to_list, font_matches_spec and font_supported_scripts
also perform important checks.

If you have more specific questions, I will try my best to answer
them.  TIA.



  reply	other threads:[~2019-06-08 12:45 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-31 13:57 HarfBuzz is available on MS-Windows Eli Zaretskii
2019-05-31 14:25 ` Óscar Fuentes
2019-05-31 14:59   ` Eli Zaretskii
2019-05-31 16:44     ` Óscar Fuentes
2019-05-31 17:13       ` Óscar Fuentes
2019-05-31 18:04         ` Eli Zaretskii
2019-05-31 19:35           ` Óscar Fuentes
2019-05-31 18:00       ` Eli Zaretskii
2019-05-31 20:53 ` Óscar Fuentes
2019-05-31 22:10   ` Óscar Fuentes
2019-06-01  6:36     ` Eli Zaretskii
2019-06-02 18:46 ` Phillip Lord
2019-06-02 18:56   ` Eli Zaretskii
2019-06-02 19:07     ` Phillip Lord
2019-06-02 20:36       ` Óscar Fuentes
2019-06-03  2:42         ` Eli Zaretskii
2019-06-03  3:27           ` Óscar Fuentes
2019-06-03  3:52             ` Eli Zaretskii
2019-06-03  4:07               ` Óscar Fuentes
2019-06-03  6:49                 ` Eli Zaretskii
2019-06-04  4:51 ` Tak Kunihiro
2019-06-04 14:16   ` Eli Zaretskii
2019-06-07 17:05 ` Andy Moreton
2019-06-07 20:00   ` Eli Zaretskii
2019-06-07 21:13     ` Andy Moreton
2019-06-08  6:18       ` Eli Zaretskii
2019-06-08 12:11         ` Andy Moreton
2019-06-08 12:45           ` Eli Zaretskii [this message]
  -- strict thread matches above, loose matches on Subject: below --
2019-05-31 20:24 Angelo Graziosi
2019-06-01  6:13 ` Eli Zaretskii

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=83sgsknt31.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=andrewjmoreton@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.