Perhaps I should not respond to this immediately. But:
Douglas McIlroy <douglas.mcilroy(a)dartmouth.edu> wrote:
I'm surprised by nonchalance about bad inputs
evoking bad program behavior.
That attitude may have been excusable 50 years ago. By now, though, we have
seen so much malicious exploitation of open avenues of "undefined behavior"
that we can no longer ignore bugs that "can't happen when using the tool
correctly". Mature software should not brook incorrect usage.
It's not nonchalance, not at all!
The current behavior is to die on the first syntax error, instead of
trying to be "helpful" by continuing to try to parse the program in the
hope of reporting other errors.
"Bailing out near line 1" is a sign of
defensive precautions. Crashes and
unjustified output betray their absence.
The crashes came because errors cascaded. I don't see a reason to spend
valuable, *personal* time on adding defenses *where they aren't needed*.
A steel door on your bedroom closet does no good if your front door
is made of balsa wood. My change was to stop the badness at the
front door.
I commend attention to the LangSec movement, which
advocates for rigorously
enforced separation between legal and illegal inputs.
Illegal input, in gawk, as far as I know, should always cause a syntax
error report and an immediate exit.
If it doesn't, that is a bug, and I'll be happy to try to fix it.
I hope that clarifies things.
Arnold