From: Christophe R. <cs...@ca...> - 2014-05-09 06:54:55
|
Krzysztof Drewniak <krz...@gm...> writes: > 1) Should sb-unicode only exist in #+sb-unicode builds? Really, #+SB-UNICODE means "support the entire Unicode character set". Your SB-UNICODE package is likely to mean "algorithms useful on Unicode data", and even in #-SB-UNICODE builds the 256 supported characters are (I believe) assumed to be the latin-1 set -- the first 256 characters of Unicode -- so it's entirely possible that the Unicode algorithms that are implemented are useful and supportable on that restricted repertoire. So, "it depends" :-) > 2) Currently, the Unicode character database is still built whether or > not the build is #+sb-unicode. Several functions (such as upper-case-p) > depend on the database. Should I leave the database in sb-impl to avoid > breaking anything and just have sb-unicode export nice wrapper functions > or should I try to move the database to sb-unicode? I'm not sure exactly what the question is here, but if you have a package SB-UNICODE which exports symbols and is used by the SB-IMPL package, then everything will most likely carry on working (sb-impl::foo would be the same symbol as sb-unicode:foo if SB-UNICODE exports FOO). That said, I'd be slightly surprised if your work offers direct programmer access to the database. > 3) Most of the Unicode functionality is in target-char.lisp, which is > tagged :not-host in the build order. Should any files implementing > Unicode support also be :not-host? (Say, if I were to move > sb-impl::normalize-string to a different file, would that file still > need to be :not-host). "need" is too strong, but I think it's appropriate. One of the constraints on the SBCL source code is that it has to be compiled by arbitrary other Common Lisps, and hence it cannot contain non-standard characters within it. (We make some exceptions for page-break, I think, but that's about it). Therefore, the running of the cross-compiler shouldn't need to have any awareness of Unicode; that becomes purely a runtime issue -- so the Unicode functionality shouldn't need to be built by the host compiler. (If this description is a bit confusing, you might want to read <http://www.doc.gold.ac.uk/~mas01cr/papers/s32008/sbcl.pdf> Cheers, Christophe |