File: gawk.info, Node: Bug definition, Next: Bug address, Up: Bugs B.4.1 Defining What Is and What Is Not A Bug -------------------------------------------- Before talking about reporting bugs, let's define what is a bug, and what is not. A bug is: * When 'gawk' behaves differently from what's described in the POSIX standard, and that difference is not mentioned in this Info file as being done on purpose. * When 'gawk' behaves differently from what's described in this Info file. * When 'gawk' behaves differently from other 'awk' implementations in particular circumstances, and that behavior cannot be attributed to an additional feature in 'gawk'. * Something that is obviously wrong, such as a core dump. * When this Info file is unclear or ambiguous about a particular feature's behavior. The following things are _not_ bugs, and should not be reported to the bug mailing list. You can ask about them on the "help" mailing list (*note Asking for help::), but don't be surprised if you get an answer of the form "that's how 'gawk' behaves and it isn't going to change." Here's the list: * Missing features, for any definition of "feature". For example, additional built-in arithmetic functions, or additional ways to split fields or records, or anything else. The number of features that 'gawk' does _not_ have is by definition infinite. It cannot be all things to all people. In short, just because 'gawk' doesn't do what _you_ think it should, it's not necessarily a bug. * Behaviors that are defined by the POSIX standard and/or for historical compatibility with Unix 'awk'. Even if you happen to dislike those behaviors, they're not going to change: changing them would break millions of existing 'awk' programs. * Behaviors that differ from how it's done in other languages. 'awk' and 'gawk' stand on their own and do not have to follow the crowd. This is particularly true when the requested behavior change would break backwards compatibility. This applies also to differences in behavior between 'gawk' and other language compilers and interpreters, such as wishes for more detailed descriptions of what the problem is when a syntax error is encountered. * Documentation issues of the form "the manual doesn't tell me how to do XYZ." The manual is not a cookbook to solve every little problem you may have. Its purpose is to teach you how to solve your problems on your own. * General questions and discussion about 'awk' programming or why 'gawk' behaves the way it does. For that use the "help" mailing list: see *note Asking for help::. For more information, see 'Fork My Code, Please!--An Open Letter To Those of You Who Are Unhappy' (http://www.skeeve.com/fork-my-code.html), by Arnold Robbins and Chet Ramey. A Note About Fuzzers In recent years, people have been running "fuzzers" to generate invalid 'awk' programs in order to find and report (so-called) bugs in 'gawk'. In general, such reports are not of much practical use. The programs they create are not realistic and the bugs found are generally from some kind of memory corruption that is fatal anyway. So, if you want to run a fuzzer against 'gawk' and report the results, you may do so, but be aware that such reports don't carry the same weight as reports of real bugs do.