all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
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




  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.