Linus Torvalds adds arbitrary tabs to kernel code

Context of the Change

  • A patch changed a tab to a space in Linux kernel Kconfig to satisfy an external parser.
  • The project lead later reverted this, adding tabs back and explicitly breaking such tools.
  • Many commenters see this as enforcing the kernel’s longstanding style (tabs, 8-width) and rejecting “fixing the kernel for a broken tool.”

Responsibility: Fix the Parser or the Kernel?

  • One side: It’s “hubris” to change one of the world’s core codebases to accommodate a third‑party parser, especially without fully documenting the tool or why it’s hard to fix.
  • Opposing view: Developers routinely tweak code for tooling; changing formatting for a parser is normal practice, so making a big deal out of it shows hubris on the maintainer’s side too.
  • Some argue it’s specifically the maintainer’s role to make such calls; thus not hubris but proper governance.

Tabs vs Spaces: Practical Arguments

  • Pro‑spaces:
    • Layout is predictable across editors and web viewers.
    • Easier for multi-line alignment and ASCII‑art.
    • Avoids mixed tabs/spaces confusion and tab-width dependency.
  • Pro‑tabs:
    • Intended for indentation; width can be user‑configured for readability and accessibility.
    • Recommended pattern: tabs for indentation, spaces for alignment.
    • Disk space savings for large repos are mentioned, but others argue they’re economically negligible.
  • Several note that mixing tabs and spaces is fragile in real tools/editors, leading many projects to de facto “spaces only”.

Tooling, Formatters, and Future Directions

  • External Kconfig parsers (e.g., Rust crates) are acknowledged to have whitespace bugs; kernel currently acts as the de facto test suite.
  • Many advocate auto-formatters (Go, Rust, Python, clang-format) to remove human discretion and eliminate style drift.
  • Others warn formatters can cause noisy diffs and reformat conflicts, especially in large, distributed projects.
  • Some envision AST‑based tooling and token/AST diffs to decouple code structure from text layout, but merging and handling comments/alignment are noted as hard problems.

Whitespace Philosophy

  • Some call significant whitespace or relying on external tools’ assumptions a design mistake.
  • Others defend rich formatting and alignment as an important aid to readability, not mere cosmetic style.