Configuration Menu Language (CML) was used, in Linux kernel versions prior to 2.5.45, to configure the values that determine the composition and exact functionality of the kernel. Many possible variations in kernel functionality can exist; and customization is possible, for instance for the specifications of the exact hardware it will run on. It can also be tuned for administrator preferences.
CML was written by Raymond Chen in 1993. Its question-and-answer interface allowed systematic selection particular behaviors without editing multiple system files.
Eric S. Raymond wrote a menu-driven module named CML2 to replace it, but it was officially rejected. Linus Torvalds attributed the rejection in a 2007 lkml.org post to a preference for small incremental changes, and concern that the maintainer had not been involved in the rewrite. "You can't just...go do your own thing and expect it to be merged," he said, noting that Raymond "left with a splash" over the rejection.
LinuxKernelConf replaced CML in kernel version 2.5.45, and remains in use for the 4.0 kernel.
^Torvalds, Linus (2007-07-28). "Linux Kernel Mailing List post". Retrieved 2007-07-29. Quite frankly, the current scheduler situation looks very much like the CML2 situation. Anybody remember that? The developer there also got rejected, the improvement was made differently (and much more in line with existing practices and maintainership), and life went on.