"Stephen J. Turnbull" <turnbull(a)sk.tsukuba.ac.jp> writes:
Hrvoje> What does direct UCS-4 support in characters buy me
Hrvoje> anyway? Will it be another case of all-encompassing Mule
Hrvoje> priorities breaking the neck of the rest of us?
It buys you direct UCS-4 support in characters.
And what does that buy me? Are we running in circles here?
o XEmacs will never again (well, for a future longer than the
history of electronic computers) need to change the abstract
format for a Lisp character.
This is true without UCS-4 too. It's only the implementation that
changes.
o Mule backwards compatibility.
Lisp code that relies on a particular representation of characters is
broken in the first place.
Sure, those may not excite you.
They don't excite me at all. 700M buffers excite me. Whose 700M
buffer is this? Zed's. Who's Zed? Zed's dead baby. Zed's dead...
Hrvoje> right, you have to modify all the C code that relies
on
Hrvoje> Lisp_Object integers fitting in an integral type called
Hrvoje> "EMACS_INT" (int or long). And there's a *lot* of such
Hrvoje> code, with possibly long integers propagating all over the
Hrvoje> place.
...I don't see that it has to be done all at once.
How else would you do it? Bignums are not just another opaque data
type -- they have to be done right. Unless, of course, you are
satisfied with half-assed solutions a la Python or, for that matter,
C.
You can (partially) implement a bignum type, and implement it where
it helps somebody. Places where it has not yet been implemented
will throw a type error automatically if you try to pass them in;
Don't you get it? It breaks any hope of large buffers working with
bignums. Integers get propagated all over the place. If you take the
easy way out and throw type errors in XINT, you could as well not
bother in the first place. That's why I never tried to add them.
Hrvoje> Also, with bignums avaialble, you would probably want
to
Hrvoje> provide compiler declarations so that reasonably
Hrvoje> efficient code can be written, i.e. (declare (fixnum
Hrvoje> x)).
Sure. But again, that's a project that can be put off until it
matters to somebody. (Maybe; I realize that it's possible that
checks for bignums will slow everything down and everybody will
care. But then the --with-bignums=no option wins.)
--without-bignums never wins. Either do it right or don't do it at
all. We aren't developing crappy commercial software here, after all.
:-)