[Toybox] towards xzcat cleanup
Rob Landley
rob at landley.net
Wed Apr 10 00:00:39 PDT 2013
On 04/10/2013 01:33:12 AM, Isaac Dunham wrote:
> Hello,
> First, I'd like to thank Landley for explaining the ifconfig
> cleanup...
Yay! Glad it was useful.
Would a similar description of the recent uuencode/uudecode cleanup
help? That was fairly good code made tighter, so it's a less-obvious
cleanup...
> Second, I have a small compile-tested patch that applies some of those
> points to the mess that is xzcat, and reduces its ifdef forest
> slightly.
Happily applied. :)
I note that we have existing crc32 code in lib. toys/posix/cksum.c uses
crc_init() for example, and does both big endian and little endian
crc32. (There are 4 crc32 variants, big endian and little endian with
initialization to zero or ~0.) The comment about using the kernel's
crc32 made me think it might be possible to share that code...
(I vaguely recall bunzip2 uses crc32 too. The actual crc32 calculation
is one line in a tight loop and the function call out to another cache
line would probably slow stuff down enough I haven't had the heart to
try to put it in lib.c. But the table setup was made generic...)
> xzcat is still nearly 2kloc (per sloccount), and still contains far
> too many
> ifdefs, defines scattered everywhere, etc. But this removes #ifdef
> __KERNEL__,
> and eliminates the need for #defining XZ_DEC_ANY_CHECK and *CRC64.
> I don't have the guts to plunge into untangling the BCJ code just
> yet, though.
Large cleanups like this are often best handled in stages. I've still
got a long way to go on ifconfig, for example. Shortage of time/energy
to work on it recently (still recovering from Friday's trip to the
hospital, more dental work scheduled thursday, and the timestamp on
this message should give you an idea what my sleep schedule is like.)
But I've caught up so I'm only one day behind on email! (Checking the
web archive to see what's coming up, sometimes I cherry-pick before I
get that far. Balsa's threading is so funky that I'm just reading the
unsorted inbox, which means I'm slogging through hundreds of
linux-kernel and qemu-devel messages each day...)
I should reeeeally go to bed now.
Thanks again,
Rob
More information about the Toybox
mailing list