From mboxrd@z Thu Jan 1 00:00:00 1970 From: random832@fastmail.com (Random832) Date: Fri, 05 May 2017 10:01:55 -0400 Subject: [TUHS] dmr note on BSD's sins In-Reply-To: <20170504231436.GC2932@mcvoy.com> References: <93E87A49-523F-4BCE-9D89-E62351410A8C@tfeb.org> <20170504231436.GC2932@mcvoy.com> Message-ID: <1493992915.3765984.966912328.38F55A2B@webmail.messagingengine.com> On Thu, May 4, 2017, at 19:14, Larry McVoy wrote: > On Thu, May 04, 2017 at 03:59:22PM +0100, Tim Bradshaw wrote: > > On 3 May 2017, at 14:41, Nemo wrote: > > > > > > Along these lines, who said "Cat went to Berkely, came back waving flags." > > > > And anyone who lived through the SunOS 4 -- SunOS 5 transition will know that some of those Berkeley flags (not specifically for cat, but almost certainly including those for cat) were really quite useful. I remember spending really a long time finding and building BSD/GNU versions of utilities which actually had the options you needed on early SunOS 5 machines: later on Sun themselves put some of them back. I mean, there's a legitimate argument that some of them would have been just as useful or more as separate utilities than as flags. But to some extent the fully generalized version seems questionable. I mean, to apply the design philosophy to, say, ls -t (nevermind that this particular flag has in fact existed since Unix V1, it's exactly the *kind* of thing that should prompt someone who is consistently applying Pike's idea of the unix philosophy to say "sorting should be the sort tool"), you would have to have A) a basic "ls" command which does all the filesystem-accessing work and prints timestamps and all other relevant output in a format that can be sorted lexicographically, B) run it through sort(1), C) a command [or maybe an awk script] that will pare it back down to the usual human-readable formats (names only, ls -l, or maybe a timestamp-and-name format, with human-friendly timestamps). And then D) another tool to sort it into columns. And you'd have to type in all of those every time you want a directory listing, or maybe have it packaged up in a script (which would then need a name, and unique names for every combination of behaviors you might want to use). At that point, who gets to decide that ls -t is useful enough to be "proper unix" but cat -v is "some ridiculous idea from berkeley"? Anyway, on the original subject of unlimited symbol name and filename lengths - ultimately there's a tradeoff - your symbols or filenames probably don't have to get very large before it makes more sense to use a variable-length format to save space, and the smallest reasonable limit for a variable-length format is 255.