No discussion of
would be complete without an acknowledgement that it includes one of
the worst design botches in the history of Unix. The use of tab
characters as a required leader for command lines associated with a
production means that the interpretation of a makefile can change
drastically on the basis of invisible differences in whitespace.
Why the tab in column 1? Yacc was new, Lex was brand new. I
hadn't tried either, so I figured this would be a good excuse to
learn. After getting myself snarled up with my first stab at Lex, I
just did something simple with the pattern newline-tab. It
worked, it stayed. And then a few weeks later I had a user population
of about a dozen, most of them friends, and I didn't want to screw up
my embedded base. The rest, sadly, is history.
[an error occurred while processing this directive]