Messages in this thread | | | From | Cort Dougan <> | Date | Fri, 22 Nov 2002 13:13:51 -0700 | Subject | Re: [PATCH] Beginnings of conpat 32 code cleanups |
| |
"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/
| |