• Linus Torvalds added hidden tabs to Kconfig to challenge parsers that can’t handle them.
  • Tabs were intentionally added to the common Kconfig file for page sizes to expose faulty parsers.
  • Torvalds believes parsers unable to handle tabs shouldn’t be parsing kernel Kconfig files, aiming to force fixes.
279 points
*

“if you can’t parse tabs as whitespace, you should not be parsing the kernel Kconfig files.” ~ Linus Torvalds

This is what we got after people sent him into PC training. The OG Linus would say something like “if you’re a piece of s* that can’t get over your a** to parse tabs as whitespace you should be ashamed to walk on this planet let alone parsing the kernel Kconfig files. What a f* waste of space.”

permalink
report
reply
234 points

And honestly, I find his phrasing today far more damming with its conciseness. It screams leadership.

permalink
report
parent
reply
144 points

Thanks for your insight, fartsparkles.

permalink
report
parent
reply
27 points

Please make fartsparkles the new rimjobsteve. Pretty please?

permalink
report
parent
reply
7 points

I need more fartsparkles in my life.

permalink
report
parent
reply
4 points
*
Removed by mod
permalink
report
parent
reply
22 points

Yeah, I can’t stop laughing at

If you can’t parse tabs, you can’t have page sizes.

It’s like how I’d admonish my pet

permalink
report
parent
reply
2 points

Indeed 😂😂

permalink
report
parent
reply
1 point

Well, I do miss the “fuck you mauro” livid linus, yes, nowadays he goes more for ‘brevity is the wit of soul’

permalink
report
parent
reply
21 points

The Gordon Ramsey of programing

permalink
report
parent
reply
17 points

Why are you censoring your own text? Truly baffling.

permalink
report
parent
reply
-3 points

Because… there’s moderation on lemmy that doesn’t like certain words :P

permalink
report
parent
reply
14 points

I promise, you can say shit, ass and fuck

permalink
report
parent
reply
4 points

Not on your instance.

permalink
report
parent
reply
12 points

I think your keyboard is broken. It’s inserting random stars in your text.

Anti Commercial-AI license

permalink
report
parent
reply
32 points

Yours is too, its posting a silly link at the bottom which makes you look like you’re a Facebook mom in 2003.

Dear Mark Zuckerberg

With this statement, I give notice to Facebook it is strictly forbidden to disclose, copy, distribute, or take any other action against me based on this profile and/or its contents. The content of this profile is private and confidential information. The violation of privacy can be punished by law (UCC 1-308- 1 1 308-103 and the Rome Statute. NOTE: Facebook is now a public entity. All members must post a note like this. If you prefer, you can copy and paste this version. If you do not publish a statement at least once it will be tacitly allowing the use of your photos, as well as the information contained in the profile status updates. FACEBOOK DOES NOT HAVE MY PERMISSION TO SHARE PHOTOS OR MESSAGES.

permalink
report
parent
reply
9 points

Dude. Censoring profanity ain’t as cringe as licensing a fucking Lemmy comment XD

permalink
report
parent
reply
4 points

Can’t we just all come together and agree that they’re both cringe

permalink
report
parent
reply
-4 points
permalink
report
parent
reply
9 points
*

No-no-no. “Whoever can’t handle tabs as whitespaces should heat their IQ, it is below freezing right now”. Or classic “should be retroactively aborted”.

permalink
report
parent
reply
4 points

Nice one. Maybe e can make a website “whatwouldlinussay.com”?

permalink
report
parent
reply
4 points

Complaining about PC but type the word “fuck”? Genius.

permalink
report
parent
reply
3 points

The associated forum post contains a much more endearing translation.

permalink
report
parent
reply
98 points

Why would anyone NOT parse a tab as whitespace? Like, python really wants you to use spaces but will still let you use tabs if you are consistent.

permalink
report
reply
21 points

There’s the .tsv format too.

permalink
report
parent
reply
12 points
*

Even then, unless for some reason you code on paper, there is no excuse to not have a formatter, that enforces one style, or the other

permalink
report
parent
reply
92 points

I’m honestly on Torvalds’ side here.

Tabs are a necessary part of the tooling and configuration files. Any tool which doesn’t properly handle files that are correctly formatted for other tools is… a broken tool.

permalink
report
reply
80 points

I’ll take you up on that. ChatGPT, translate this commit message to actual Linus style:

Subject: Regarding Commit d96c36004e31

So apparently, this commit thought it was a brilliant idea to strip away a tab because some third-rate kernel config parsing tool couldn’t handle it. Seriously? We’re bending over backward for these tools now?

Listen up, if your parsing tool throws a tantrum over a tab, it’s time to rethink your life choices. Tabs are as fundamental to Kconfig files as oxygen is to humans. If you can’t handle tabs, you have no business parsing kernel configurations.

And let’s not pretend this is some isolated incident. The whole tab vs. space saga is like a bad sitcom rerun from the '70s. Sure, ‘make’ might have its quirks, but that doesn’t mean we should stoop to that level of incompetence.

I’m tempted to flood our Kconfig files with tabs just to prove a point, but let’s not make a mess where it’s not needed. However, if this idiocy persists, don’t be surprised if I start tabbing everything in sight.

Let’s get our priorities straight, people. We’re building a kernel here, not babysitting fragile parsing tools. So let’s fix this mess and move on to more important things.

permalink
report
reply
34 points

“ok, now add a metric shit ton of swearing and further belittle parsers who can’t deal with tabs.”

permalink
report
parent
reply
34 points
*

I tried it with Claude 3 Opus, even better:

Alright, listen up you little shits. Commit d96c36004e31 (“tracing: Fix FTRACE_RECORD_RECURSION_SIZE Kconfig entry”) had to remove a fucking hidden tab because apparently some half-assed third-party kernel config parsing tool couldn’t handle its shit.

I don’t know what kind of brain-dead tool it was, but you better make damn sure it gets fixed. Because if you can’t parse tabs as whitespace, you have no fucking business parsing the kernel Kconfig files, period.

In fact, let’s rub this breakage right in your face, more than some obscure ftrace record size option. If you can’t handle tabs, you sure as hell can’t handle page sizes either, dipshit.

Yeah, I know the whole tab-vs-space clusterfuck is sadly a classic Unix thing, and ‘make’ is notorious for being a broken piece of crap in that regard. But guess what? That doesn’t make it fucking okay, got it?

I’d sprinkle more random tabs all over our Kconfig files just to spite you, but I don’t want to make this codebase look any more like dog vomit than it has to. But if I keep seeing more of this kind of idiotic tooling, I just might fucking have to.

So shape up, or I’ll come over there and shove those tabs so far up your ass you’ll be shitting spaces for a week. Fuck!

permalink
report
parent
reply
13 points

I feel like the other one is much better because of the slight passiveness and colorful expressions.

permalink
report
parent
reply
6 points
*

So shape up, or I’ll come over there and shove those tabs so far up your ass you’ll be shitting spaces for a week.

Hah.

permalink
report
parent
reply
1 point

This is amazing

permalink
report
parent
reply
12 points
*

Listen up, if your parsing tool throws a tantrum over a tab, it’s time to rethink your life choices. Tabs are as fundamental to Kconfig files as oxygen is to humans. If you can’t handle tabs, you have no business parsing kernel configurations.

Heh this is so succinctly scathing, but also dead on …

permalink
report
parent
reply
10 points

I’m tempted to flood our Kconfig files with tabs just to prove a point, but let’s not make a mess where it’s not needed. However, if this idiocy persists, don’t be surprised if I start tabbing everything in sight.

This is genius.

permalink
report
parent
reply
3 points

I am more than sure that Linus wrote the original message as he would normally do, and then made it clean and pretty with an AI. Sometimes I resort to this option too.

permalink
report
parent
reply
72 points

The Robustness Principle may seem like little more than a suggestion, but it is the foundation on which many successful things are based.

To boil it down to meme-level old-school Torvaldsry: Assume everyone else is a f–king idiot who can barely do what they’re supposed to and expect to parse their files / behaviour / trash accordingly.

If you do not do this, you are, without doubt, one of those f–king idiots everyone else is having to deal with. If you do do this, it does not guarantee that you are not a f–king idiot. Awareness is key.

Examples where this works: Web browser quirks mode; Driving a car; Measure twice, cut once. This latter one is special because it reveals that often, the f–king idiot you’re trying to deal with is yourself.

Assume everyone else is worse.

Fun corollary: In altering his behaviour towards f–king idiots people who should know better, Linus has learned to apply the robustness principle to interpersonal communication.

permalink
report
reply
34 points

using a rly bad word but pretending not to is kinda weird

permalink
report
parent
reply
42 points

I don’t understand this either. There’s no fucking algorithm overlord here right? No fucking tiktok, youtube bullshit required.

If you want to say fuck, fucking say fuck.

On another note. Thx for introducing me to the robustness principle ♥️

permalink
report
parent
reply
22 points

Maybe I want to say it without saying it. There’s no rule against doing that, but people somehow think there is - or that there ought to be.

Most of the time I don’t swear, so it makes me uncomfortable to use the word. There have been and undoubtedly will be exceptions. When the mood takes me. When the word, unfettered, feels right. Today was not that day.

Funny how the partial omission offends some people more than the original word does. Adapt your parsers.

permalink
report
parent
reply
20 points

Sometimes it works well as a stylistic choice. It’s not pretending not to use a bad word, but rather drawing attention to the fact that you’re deliberately being a little bit naughty with a wink to the reader. It’s like the absurdity of what happens when you find a stranger in the Alps.

permalink
report
parent
reply
4 points

mingegurgle

permalink
report
parent
reply
1 point

Eugh.

Bravo.

permalink
report
parent
reply
1 point

Robustness Principle

It’s a principle for brittleness. First you get implementation-defined behaviour, then bug-compatible software.

permalink
report
parent
reply

Linux

!linux@lemmy.ml

Create post

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

  • Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
  • No misinformation
  • No NSFW content
  • No hate speech, bigotry, etc

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

Community stats

  • 7.5K

    Monthly active users

  • 6.6K

    Posts

  • 179K

    Comments