Ar an tríú lá is fiche de mí Iúil, scríobh Stephen J. Turnbull:
(Moved from the XEmacs Patches thread with the same Subject.)
Aidan Kehoe writes:
> > Well, since this shouldn't actually be happening :-) (and in
> > practice is fairly unusual even for most European users, I
> > believe),
>
> No it’s not.
http://mid.gmane.org/f2g834$sds$1@sea.gmane.org ,
>
http://mid.gmane.org/87ll1xcm3r.fsf@xemacs.org . I could trawl the
> lists some more if you want.
My point here is about *performance* of an exception-based mechanism,
which (as with all issues about the performance of coding systems) is
that coding of text is a one-pass operation, and in almost all cases
the process of handling an exception is simply not going to cause
delay perceptible to a user.
You’ve done work in this direction, right? And it’s been basically
impossible to do, right?
If this stuff were happening thousands of times a second in loops,
I'd
worry about it.
We need a more reliable and more maintainable coding system framework.
You've taken a step in that direction for Cyrillic, assuming that CCL
can be considered reliable and maintainable when there's only one
XEmacs developer who understands it at all. But then you say similar
coding systems would be inappropriate for Latin scripts and advocate
that kludge latin-unity instead, except maybe for Greek. Huh?
I don’t consider latin-unity especially a kludge, no more so than these
coding systems.
> It would be appropriate to move iso-8859-7 to being this kind
of
> coding system, I think, since the Greeks don’t want ISO-2022
> encoding either,
Nobody wants ISO 2022 extensions in any ISO 8859 coding systems AFAIK.
And they wouldn’t get them if latin-unity was turned on in the appropriate
language environments by default. And it works on 21.4 too.
> Mule-UCS was faster than the 21.5 utf-8 implementation for me
in
> practice--I’ve just double-checked this impression.
And would you like to explain your methodology so others can replicate
the experiment, and try to figure out where the slowness occurs?
Something like:
(setq sexp (byte-compile-sexp
'(let ((string (make-string 256 ?\000)))
(loop for i from 0 to 255
do (aset string i (int-to-char i)))
(list
(current-time-string)
(loop for i from 0 to #x10000
do (encode-coding-string string 'utf-8))
(current-time-string)))))
(eval sexp)
And there’s no real mystery as to why it is; Mule-UCS calls fewer C
functions, does less error checking, and does its table lookups in simpler
(and bigger) tables.
--
On the quay of the little Black Sea port, where the rescued pair came once
more into contact with civilization, Dobrinton was bitten by a dog which was
assumed to be mad, though it may only have been indiscriminating. (Saki)
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta