Re: [PATCH] Beginnings of conpat 32 code cleanups

Cort Dougan (cort@fsmlabs.com)
Fri, 22 Nov 2002 13:13:51 -0700


"IMHO"? Larry, you're never humble about your opinions :)

} IMHO, the thing that the early Unix systems did wrong was to not have
} u8, u16, u32, etc as basic ctypes in sys/types.h. And C should have
} had a way to fake it if they weren't native.
}
} Anyone who has ported a networking stack or worked on driver knows exactly
} what I'm talking about.
}
} And while I'm whining,
}
} assert(strlen(any typedef) < 8));

Plan9 takes it a step further and tackles the char/8-byte issue. A
printable character is a 16-byte entity - a rune - while char is an 8-byte
quantity. Doing everything in UNICODE forced the issue, I think.

Even better, everything was designed to run with different byte-ordering
schemes so:

ulong
getlong(void)
{
ulong l;

l = (getchar()&0xFF)<<24;
|= (getchar()&0xFF)<<16;
l |= (getchar()&0xFF)<<8;
l |= (getchar()&0xFF)<<0;
return l;
}

always works correctly. They even ripped out the darn c-preprocessor and
just made a smarter optimization compiler.

Improvements in C without ending up with something like C# or C++. Can't
beat that with a stick.

Ah, yes... the streets are paved with gold in the land of Plan9.

} I like my stack variable declarations to line up. I despise some_long_name_t
} typedefs with a passion.

There is a special kind of mind that allows people to follow 5 levels worth
of typedef to struct including stuct with typedefs in them. It involves
having a very unhealthy outlook on the world.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/