"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
> 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,
> 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.