tech-userlevel archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: 16bit ctype table
> My point is that we need to keep both tables until the major bump.
> Minimising the differences between them keeps the runtime impact as
> small as possible. I am all for reducing the difference further, but
> until the major bump, the old table won't go away.
to clarify difference:
fundamentally, your patch and mine is not so differ.
* both libc.so.12 should have 8bit old ctype table and 16bit new ctype table
* both libc.so.13 have only 16bit new ctype table.
so that aparently there is *no* diffrence libc's size impact.
*only* diffrence is 16bit bitmask pattern.
1. _CTYPE_* is not same layout with _RUNETYPE_*, keep old layout (by joerg)
* partial source code compatibility.
* complex rune table -> ctype table conversion, by bogus _runetype_to_ctype().
2. _CTYPE_* is same layout with _RUNETYPE_* (by tnozaki)
* simple rune table -> ctype table conversion, (_CTYPE_A << 8) == _RUNETYPE_A
* no source code compatibiliy.
in my opinion again:
1. source code compatibility
in this case, it is not important, because _CTYPE_* is completely
*private* macro.
there's someone(such as libstdc++) use it and took an arrow in his
knee, i don't mind.
if you don't agree with me, why you do following change? ;)
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys/ctype_bits.h.diff?r1=1.1&r2=1.2
2. rune table -> ctype table conversion
simple conversion is good for reading, maintanance, and our health.
especially peformance, POSIX2008's multi-locale wants low-latency LC_CTYPE.
> We don't use _CTYPE_* in mklocale? Only the rune version.
oops, -current not used yet(in my private tree use it, hehe).
but in the future, we better to _CTYPE_* supersede _RUNETYPE for localedef(1).
very truly yours.
--
Takehiko NOZAKI<takehiko.nozaki%gmail.com@localhost>
Home |
Main Index |
Thread Index |
Old Index