From: Stefan Monnier <monnier@iro.umontreal.ca>
To: Kenichi Handa <handa@m17n.org>
Cc: lekktu@gmail.com, rms@gnu.org, emacs-devel@gnu.org
Subject: Re: Error during redisplay
Date: Thu, 28 Feb 2008 11:44:56 -0500 [thread overview]
Message-ID: <jwvk5kp6o1p.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <E1JUcNQ-0003nq-Cg@etlken.m17n.org> (Kenichi Handa's message of "Thu, 28 Feb 2008 15:36:20 +0900")
>> Hmm.. I'm confused. The auto-composed property is boolean, so at least
>> the auto-composition-mode code should only run once and should hence
>> generate a `composition' property value that does not depend on the
>> font used.
>> Maybe what you're saying is that this `composition' property is later
>> changed by the redisplay code and this can be redone if the same text
>> gets displayed with another font?
> Yes.
I see. So this is not directly related to the auto-composition-mode.
It can appear just as well with composition properties applied manually.
>> > By the way, I think the slowness is mainly because the
>> What slowness?
> Slowness of calculating composition properties.
I'm not sure whether by "calculating composition properties" you're
talking about the work done by auto-composition-mode to add
`composition' text properties where necessary, of the work done by the
redisplay to compile those properties into some other representation
(which I'd propose we call "compilation" of composition properties).
Also, I still don't know what slowness you're talking about: in which
circumstance is it slow?
>> > property generation is done by Lisp code through the
>> > function in composition-function-table and that involves
>> > generating many Lisp objects.
>> By the way, it might be good to replace the composition-function-table
>> (which is a char-table that maps chars to regexps and then to code) with
>> a lex-style FSM. Such a thing would also be useful for syntax-tables to
>> be able to deal with multi-char lexemes (like "begin" and "end").
> Does FSM stands for Finit State Machine?
Yes, I meant a deterministic finite state automaton (DFA).
> Currently those regexps are very simple, and just an alist
> (((FROM-CHAR . TO-CHAR) FUNC) ...) will work. But, at the
> moment, I'm not sure that such a simple specification works
> for all scripts.
For my application this won't be sufficient because I do things like map
"lambda" to λ (for example). Of course, I could just catch "la" and
then use FUNC to do the rest of the matching.
> But, if we can't attach `auto-composed' and `composition' property to
> a buffer, the requirement for the speed will be higher. We have to do
> some experiment to check the performance.
> Another idea is to have an alist of
> (FRAME . INTERVAL-FOR-COMPOSITION)
> for each buffer.
Not sure how this would work for strings.
Stefan
next prev parent reply other threads:[~2008-02-28 16:44 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-24 2:56 Error during redisplay Juanma Barranquero
2008-02-26 1:48 ` Juanma Barranquero
2008-02-26 4:18 ` Kenichi Handa
2008-02-26 4:55 ` Stefan Monnier
2008-02-26 23:46 ` Richard Stallman
2008-02-27 1:28 ` Kenichi Handa
2008-02-27 6:59 ` David Kastrup
2008-02-27 8:04 ` Kenichi Handa
2008-02-27 8:34 ` David Kastrup
2008-02-27 16:08 ` Richard Stallman
2008-02-27 16:06 ` Stefan Monnier
2008-02-28 6:36 ` Kenichi Handa
2008-02-28 16:44 ` Stefan Monnier [this message]
2008-02-27 16:07 ` Richard Stallman
2008-02-27 3:15 ` Bob Rogers
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=jwvk5kp6o1p.fsf-monnier+emacs@gnu.org \
--to=monnier@iro.umontreal.ca \
--cc=emacs-devel@gnu.org \
--cc=handa@m17n.org \
--cc=lekktu@gmail.com \
--cc=rms@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.