Re: [PATCH] Beginnings of conpat 32 code cleanups

From: Cort Dougan (cort@fsmlabs.com)
Date: Fri Nov 22 2002 - 15:13:51 EST


"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/



This archive was generated by hypermail 2b29 : Sat Nov 23 2002 - 22:00:41 EST