|
From: William H. N. <wil...@ai...> - 2001-12-19 14:52:58
|
On Wed, Dec 19, 2001 at 08:32:14PM +1100, Brian Spilsbury wrote: > Christophe Rhodes wrote: > > >Just to clarify, you want a utf-8-encoded string. This is a mapping > >between indices and elements, so it's an array > ><http://localhost/doc/hyperspec/Body/syscla_array.html#array>, but > >it's slightly weird in that it has linear, not constant, access time > >to arbitrary elements. [...] > >Hmm. Does anyone have any idea how to square this circle? > > > I don't think that constant access time is a significant issue for the > places that these get used. > > utf8-encoded simple-strings must be immutable, since mutation can change > the length, > and this more or less limits them to symbol-names, and string-literals. > > Given that we can use fast methods for iteration (ie, not aref on each > element, but dovector, etc), > in the standard/optimised functions then we don't pay for this in > concatenate, or print, etc. I'm concerned that this might cause the implementation of things like DOVECTOR to become unreasonably baroque. > >>You can have a patch upon 0.6.13 if you like, although it isn't ready > >>for release yet and will probably be about 6 megs uncompressed. > >> > > > >Can we have something that doesn't include all the character data -- > >just the logic, in other words? It might be worth it so we can see > >what's going on... > > > Sure, but you'll still be looking at a really big patch, I'll have a > look at how big it gets. I don't want to try to merge the patch in 0.7.0, but I and probably others wouldfind it interesting to see what you've done and start thinking about it. If you don't have a place to distribute it, I can probably figure out some way to make it available on SourceForge. (Anonymous FTP is gone, but I think it's supposed to be possible to put arbitrary binary stuff up for HTTP access.) -- William Harold Newman <wil...@ai...> "Programming should be fun, programs should be beautiful." -- P. (Paul?) Graham, quoted in comp.lang.lisp by David E. Young PGP key fingerprint 85 CE 1C BA 79 8D 51 8C B9 25 FB EE E0 C3 E5 7C |