Linus Torvalds on AI-assisted kernel contributions

81 points by thang 19 hours ago on lobsters | 155 comments

pralkarz | 13 hours ago

Linus, like many, seems to have fallen victim to the narrative that LLMs' efficacy (or the lack thereof, depending on whom you ask) is the only factor to consider when deciding whether to use them or not. No consideration for ethics, the environment, and the robots' impact on society as a whole. Many such cases, alas.

elliotmorris | 13 hours ago

Yeah. Considerations like these are often there, but I think can sometimes get expressed through efficacy points, as for some reason our culture biases against us talking about these more global considerations in professional spheres.

I struggle to take someone seriously if they assume efficacy as the only point of contention, not only does it tend to be a complete misreading of the room, but is also an indication that I won't find that persons moral character all that up to snuff. It's like, you can be a car-nerd, that's fine given the context, but if you like the burning of fossil fuels and think there is nothing wrong with it, or even that it's good, then we have a problem.

And quite honestly, in my experience, the people I respect and call intelligent are not the ones that shy away from using new and interesting tools.

What an awful thing to say given the grander context of things. You could say the same to people who refuse to take cocaine or amphetamines, or people who won't fly due to carbon concerns.

tonyarkles | 8 hours ago

I struggle to take someone seriously if they assume efficacy as the only point of contention, not only does it tend to be a complete misreading of the room, but is also an indication that I won't find that persons moral character all that up to snuff

I think the thing with Linus in this particular case is that it's, to the extent that the world treats Linus's tree as "mainline", it's still his room. I don't think this is a case of "misreading the room" but rather a case of "setting the tone in his room".

elliotmorris | 8 hours ago

I think that's a fair point.

jfloren | 5 hours ago

Lately I've been thinking a lot about an argument I saw which went like this:

When people argue that torture is a bad thing to do, they often add "and anyway, torture doesn't work!" Well, suppose it did? If the thing is effective enough, do we throw all moral and ethical considerations out the window? Are they just window-dressing on pragmatism?

mikedorf | 5 hours ago

It's an argument whether some objective evil can be justifiable. Is it moral to commit an evil act, if by doing so you save many others? If the act can't ever save people then it can't ever be justified.

Imagine a trolley problem but the only thing the switch does is kill everyone instead of one track or the other. The only reason to pull the switch is if you want maximum suffering.

aaronm04 | 6 hours ago

I am struggling to take Linus seriously after this email...

flockofbirbs | 9 hours ago

Linus has never cared about any of that stuff. His refusal to upgrade to GPLv3 to protect against the anti-social practices of Tivo and all who followed is one clear sign of that.

mikedorf | 5 hours ago

I think his explanation is reasonable.

I don't think Linus has "fallen victim" to being a inconsiderate prick, because he has never not been one.

Also -- efficacy to what end? These tools have made the lives of artists, writers, musicians that I would like to experience harder. They now have less time to produce things that I would like to enjoy. They have made it more difficult for me to find the information that I want, it's lost in a sea of spam that they enable. In spite of their ability to audit code, the quality of shipped software that I interact with has declined.

On the whole, things have not gotten better due to AI.

weaksauce | 2 hours ago

yeah his entire logic here is a big strawman in the first place.

yshui | 17 hours ago

oh no, I think Linus has lost it... did he just compare vibecoding to using a compiler and an editor?

creesch | 16 hours ago

That's not how I read it, hey clearly states that someone needs to show understanding of what they are doing.

A while back ago KDE as a project had some controversy about a proposed AI that according to many didn't go far enough. But, they nailed one thing that I feel like Linus also say in more blunt wording.

LLM usage

The golden rule for LLM usage in KDE is Don't be lazy:

  1. Don't try to use a tool to replace your own judgment, interpersonal communication, or learning process.
  2. Don't take unsustainable shortcuts.
  3. Don't avoid growing as a person.

The result will be poor-quality work that eventually becomes someone else's problem.

Linus has been reviewing a wide variety of contributions for decades now. If there is one person who I'd think is capable of critically reviewing the output of LLMs or people's work I'd say it is him.

marginalia | 14 hours ago

Linus has been reviewing a wide variety of contributions for decades now. If there is one person who I'd think is capable of critically reviewing the output of LLMs or people's work I'd say it is him.

I'm not sure Linus would be more resistant to LLM fatigue than anyone else. It's not a skill as much as a bandwidth limitation of the human brain.

creesch | 10 hours ago

As I said, the man has decades of rigorously reviewing code of others under his belt. A lot of people find it fatiguing (including me) because reviewing code that you didn't write is difficult. I am not completely discounting the possibility of this happening to him, but unlike many other people he is fairly uniquely qualified to be able to handle this.

Comment removed by author

bityard | 3 hours ago

I'm not sure Linus would be more resistant to LLM fatigue than anyone else.

I mean, why not? The guy has been writing and reviewing some of the most challenging low-level code, systems, and abstractions ever released as open source. For literal decades. As far as I'm concerned, there may actually be no one else alive with the level of grit it must take to keep Linux on the rails, especially when you consider all the competing interests involved. I wouldn't want his job in a million years, even if I had the technical capability. (Which I very much do not!)

I don't follow LKML religiously, but I would eat my hat right now if Linus hasn't declined to review or merge many LLM-authored patches by this point. He does not strike me as the kind of guy to waste time on actual slop. From what I have read, his strategy is to ignore or berate patches at the first whiff of shoddiness, no matter who or what wrote them. He's not going to sit there and go, "oh darn, another huge mess I have to sit here and spend hours reading." He's going to say, "make this not suck or don't come back."

yshui | 9 hours ago

You are very much missing the point here, and how good Linus is at reviewing code has nothing to do with this. He is not saying "I use LLM to generate code and that's fine", which would've been pretty ewww, but your defense for him would work.

What he is actually saying is "anyone who rejects vibecoding is idiotic and it's like not using a compiler or an editor to code". which is completely out of whack.

creesch | 9 hours ago

What he is actually saying is "anyone who rejects vibecoding is idiotic and it's like not using a compiler or an editor to code". which is completely out of whack.

You are conflating your interpretation of your reading with an absolute truth. As I said, I am reading it differently. Based on how I have seen him communicate other things over the years. It is also possible that my read is wrong, but I am aware of that. We are both missing context here to draw absolute conclusions on his thinking and process as that isn't present in the information available to use.

yshui | 8 hours ago

We are both missing context

I feel you are trying to gaslight me. What are we even talking about here? Sure, you are absolutely free to be wrong, if that's the "absolute truth" you are talking about. But like, this is an email thread about removing the "Assisted-by" line in git commit messages, i.e. about AI disclosure rules. They were discussing the rules that should be applied to the kernel developers community, that's the "rules" what he was talking when he said:

Do you not see how UTTERLY STUPID those kinds of rules would be?

Yeah you are reading it differently, I am just telling you that you are wrong.

alanmeira | 5 hours ago

As I said, I am reading it differently.

you can have your own interpretation (and even take it as an absolute truth), but what you are reading is not what is clearly written there. He literally said that using editors and compilers is the same as using LLMs.

bityard | 3 hours ago

He literally said

It was a metaphor.

creesch | 3 hours ago

(and even take it as an absolute truth),

Nope, I am saying the opposite. It is silly to think you hold the absolute truth on most things.

And yes, he is comparing LLMs to compilers and editors. Which, I might not entirely agree with. But the person I replied to says he is comparing them to vibecoding.

If you watch Linus's recent interview (https://www.youtube.com/watch?v=fi29pfLcW4I), he claims that usually doesn't review the code that he merges in detail, but trusts the people he's delegated to do the review for him. He claims to think of himself more as a manager than a hands-on programmer, though things he said later imply he does still spot-check them, at least.

So, no, the work of reviewing the LLM-generated code is not falling on him.

creesch | an hour ago

Ah, I was not aware of that. I find that a bit more troublesome. Because that also means those folks deal with most of the slop I recon.

alper | 12 hours ago

If there is one person who I'd think is capable of critically reviewing the output of LLMs or people's work I'd say it is him.

If you know something to that level of depth, I don't see any issues with reviewing LLM output. The volume issues were there before as well I imagine.

The question is mostly do you have the skills to do this work and do you have the motivation.

atmosx | 17 hours ago

If by vibe coding you mean understanding the LLM generated code to a reasonable extend, then yes.

If by vibe coding you mean generating code that you have no idea how it works, then no.

He is famous for saying something similar long time ago, like in early 00s: “Don’t show me your code, I don’t understand or care about it. Show me your models and I will figure out the rest easily”.

From his PoV it’s all about the right level of abstraction.

jackdk | 17 hours ago

Don’t show me your code, I don’t understand or care about it. Show me your models and I will figure out the rest easily

That sounds like the old Fred Brooks: "Show me your flowcharts and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won’t usually need your flowcharts; they’ll be obvious."

matthiasportzel | 12 hours ago

I pretty famously remember Linus saying the opposite: "Talk is cheap. Show me the code."

=> https://lkml.org/lkml/2000/8/25/132

tobin_baker | 4 hours ago

Funny then that Linux has always avoided design review in favor of code review. (This leads of course to totally broken interfaces like epoll, in contrast with sane interfaces like kqueue that were the product of an actual design process.)

he's starting to speak like the average HN AI booster lol

gunduzc | 14 hours ago

Linus has lost it long ago.

I read it like he was comparing it to not using clang-tidy or clippy or gofmt or perf. As in, "use the available tools to help with your work."

elobommart | 17 hours ago

His argument about the compiler feels so out of place. He’s comparing a deterministic algorithm with a stochastic process. AI is just a tool yada yada yada. Hasn’t this been debunked long ago?

My thoughts on this topic are still evolving, so please don't read this as a pro-LLM "gotcha!", but I wanted to say that compilers are not as deterministic as you think. Having worked a little bit on getting deterministic builds set up for a large project, I can confidently say that production compilers in their default configuration are mostly deterministic.

gunduzc | 14 hours ago

That's really not a helpful association. It's like saying, "Gambling is entirely based on dumb luck? Well, creating a business or investing in your education is not that 'deterministic', either".

Also, a good compiler IS deterministic, even if unpredictable. Being unpredictable does not mean being non-deterministic or stochastic. Hash functions are a good example.

"Well, then if LLMs were deterministic you'd be okay with them?" You know what? I'd complain less. At least they'd be a little more reproducable in the slightest. The same inputs giving you the same outputs is never a bad thing in my book.

To my knowledge, LLMs are deterministic, if you have a "temperature" of zero. The temperature value is basically how much noise you add into the process, and you still have a deterministic seeding process.

So LLMs are repeatable (like any other algorithm), most just don't use them this way.

gunduzc | 9 hours ago

More importantly, with common user subscriptions, you're not allowed to use it that way. You either pay a fortune for frontier API access, or you run your own local models.

Plus, you don't even get to set a seed for randomization most of the time. So you can't apply deterministic pseudorandomization either.

This is a glaring deficiency of reproducibility in modern AI tooling (and design).

k749gtnc9l3w | 8 hours ago

If we are talking about the sins of frontier labs, you cannot find out whether the model today is the exact same model as yesterday (and I think OpenAI once applied a «minor» finetuning update that drastically changed behaviour)

tazjin | 9 hours ago

In theory, yes, in practice, mostly no. It's possible to run fully deterministic inference but this has a performance penalty, and due to the scarcity and price of GPUs not everyone is willing to take that hit.

Check out for example this post: https://thinkingmachines.ai/blog/defeating-nondeterminism-in-llm-inference/

This is not the first time I hear this as a counterpoint to the argument that compilers are deterministic. Probably not even the second or third.

LLMs are deterministic if their temperature is zero, that is true, but can we reasonably determine the inputs that will lead them to output complex well-formed programs?

If I had to fake my expectations towards that being viable, the best solution I could come up with is an initial series of prompts that would give you something close enough to the well-formed program, with minor patching prompts added by the operator (and, obviously, correctly processed by the LLM).

Would it make sense to put so much cognitive effort into getting something like that to work when current LLMs are as inscrutable as they could possibly be?

singpolyma | 4 hours ago

I mean, poker is less dumb luck that most start ups so maybe this is less of a dichotomy than you think?

gunduzc | an hour ago

Sure, poker and a few games are possible to play game theory optimally-ish and are exceptions to the rule. Good luck playing game theory optimal roulette wheels or slot machines.

jschuster | 7 hours ago

Yeah, this is why I don't like using the phrase "nondeterministic" to describe this kind of problem with LLMs. It's not just that they're nondeterministic; it's that there's no particular specified or guaranteed behavior we can rely on. I tried to explain my thoughts on this at https://jschuster.org/blog/2026/09/28/specifications-not-determinism-why-llms-are-not-compilers/.

The question that some readers (rightly) raised is, what's the alternative adjective we use to describe LLMs? Unspecified? Unpredictable? I haven't found the right word yet that quickly conveys this idea.

Gaelan | 4 hours ago

Yeah. A compiler protecting a program inconsistent with its input is something that happens to a software engineer maybe a few times in a career; “it’s never a compiler bug” is a meme for a reason.

An LLM producing a program inconsistent with its prompt is a day ending in y.

Yes, they tend to insert timestamps. Sometimes multithreaded links will put the same functions in different orders in the object file. The nondeterminism is very tightly bounded.

But, at least for me, it's not about determinism: A compiler, when it miscompiles something, can be debugged, fixed, regression tests can be added, and you know you'll never have that problem again. Furthermore, you can understand why you had that problem, what systems could be impacted, and do a clear analysis of the situation. You, the human, is able to do something to make things work for you.

I think that when most people say "deterministic", they mean "can be debugged and understood".

nobe4 | 14 hours ago

I'm curious if you could expand more here? Because unless you have some statistically-based code generation in your compiler, I would still call it deterministic. But maybe that's a definition issue as well.

sjamaan | 13 hours ago

Not OP but to weigh in here with some experience: in CHICKEN, we needed to fix a few things to make the build output fully reproducible and deterministic:

  • Whether running on a 32-bit platform or 64-bit platform should not matter for the output, and this means representing fixnums between 31 and 63 bits specially so that they can be read back as full integers on either platform (as bignums on 32-bit platforms, fixnums on 64-bit platforms).
  • Do not embed usernames, timestamps, paths or build hostnames (even as comments) in the emitted code.
  • Whenever emitting something from a hash table (which is randomized to defeat DoS attacks), sort the keys first to get them to emit in a fixed order.

I think there may have been a few other things that I forgot. Surely in multithreaded compilers you may have race conditions leading to differing ordering of output depending on which thread finishes first. These are just the basic things, if you have something like a genetic algorithm (which isn't unheard of in this space, e.g. Postgres famously uses one for planning large queries) you might get even more nondeterministic output.

Nevertheless, this is a far cry from the unknowable black box that an LLM is.

nobe4 | 11 hours ago

Thanks for the context, that's fascinating!

this is a far cry from the unknowable black box that an LLM is. Hard agree.

Nevertheless, this is a far cry from the unknowable black box that an LLM is.

Yes, indeed. I tried (and perhaps failed) to express that in my comment.

@sjamaan mentioned most of the stuff I saw. We had to eliminate build timestamps, and tracked down a very subtle bug with a distributed compilation system where filesystem paths would be different if an object file was built on a local machine vs one from the build cloud.

I don't think we ran into it, but IIRC certain kinds of LTO can be nondeterministic depending on how careful the passes are implemented. It's getting better, but back then deterministic builds were seen as a specialist thing and most compiler engineers weren't focusing on it.

And if LLMs are "like compilers" – I disagree for the same reason as you, but let's assume for the sake of discussion – then what's the source code now? Natural prose?! Could there be a worse programming language than human natural prose?! And surely we need that prose checked into git and published, and integrated into the build system, it being the preferred form of modification now apparently!

This doesn't even get started on the "compilers" being (mostly) proprietary and hidden behind remote APIs. Imagine during Linux' rise if someone proposed that you'd need a proprietary remotely hosted compiler to work on the project! Surely Linus himself would have laughed them out of the mailing list? (Yes, I know the story of BK. We all know and agree that that was a bad idea.)

thisalex | 13 hours ago

No, it’s not prose. That would be what vibecoders use — not practical for the good result.

High quality output is usually the result of long interactive agentic sessions. Also, there are a lot of people who try to replace this interactivity with a loop-process where code is ping-ponged between the agents which rely on complex predefined rules and principles. In this case, the “source code” is the combination of these rules.

No, it’s not prose. That would be what vibecoders use — not practical for the good result.

High quality output is usually the result of long interactive agentic sessions.

And in those interactive sessions, the human surely uses prose, no? So OK, the "source code" isn't prose, it's even worse – it's interactive dialog in prose! Are we seriously suggesting this is a good programming language?

thisalex | 10 hours ago

It’s absolutely not a good programming language. I didn’t try to say that it is. That is a way to delegate time consuming coding part of the job while keeping the judgment part.

Linus could do complex refactoring and use his time to verify the result instead of manually going thru every change. He wouldn’t be able to do this without good understanding of code

It’s absolutely not a good programming language. I didn’t try to say that it is. That is a way to delegate time consuming coding part of the job while keeping the judgment part.

This is a subthread discussing whether an LLM agent is "like a compiler". Assuming that it is (I don't think it is, but whatever), it's interesting to discuss the quality of its input source language.

It’s absolutely not a good programming language. I didn’t try to say that it is. That is a way to delegate time consuming coding part of the job while keeping the judgment part.

The time consuming part is the judgement and understanding. The final code I produce in a year could be typed in a couple of weeks, and possibly less. Almost the entire speedup from LLMs is from being able to skip understanding the problem.

kingmob | 12 hours ago

then what's the source code now?

Specifications, unironically. They're more formal than prose, and more succinct and error-tolerant than code.

sjamaan | 10 hours ago

I suppose specifications are more error-tolerant than code, in the sense that you can have errors sitting undetected in the specifications because specs are not executable. Code will at least crash or misbehave if there are errors, surfacing them.

Most specs have had major issues until people started actually writing implementations against them, and people manually struggling with the prose in the spec. That's also why many communities require a reference implementation before accepting a spec.

So I don't think this is a helpful point of view at all, because if you throw an LLM at a new spec, it will produce some code, but who can verify that it even implements the spec (correctly)?

This sounds like the worst idea in the history of ideas.

And the idea that "specifications are more error-tolerant than code" is ludicrous, unless "error" has a very very special definition here (like "the definition of error is deviation from the specification").

tauonmsdz | 7 hours ago

Imagine if someone proposed that you'd need a proprietary remotely hosted compiler to work on the project!

Setting aside the determinism/compiler analogy topic, Linus’ comments aren’t about mandating any use, just not forbidding it, if I understood them correctly, right?

IMO that’s quite the huge and an important difference, and shouldn’t be wrongly equated, even within an analogy.

The fear is that once it's allowed, there will be a huge asymmetry between the producer and the consumer. The former have used LLMs to generate code that, over time, will take LLM assistance to build on.

Rich Hickey has a post (on Linkedin of all places) where he argues AI is indeed not a tool, but an automation. These are not the same.

Github mirror: https://gist.github.com/svieira/619d60dea942a8d4498cba3bb6b11c02

sjamaan | 13 hours ago

For context, here is the Lobste.rs discussion of that post.

amw-zero | 5 hours ago

Hang on. We can't just adopt that terminology as fact because Rich Hickey posted about it on LinkedIn.

joshuao | 14 hours ago

I think there's 2 versions of this argument.

Type 1 is: "LLM's are just a higher order compiler, GCC is also not wholly deterministic in practice" Type 2 is: "LLMs, like compilers, are tools to writer code faster. Their level of determinism is a consideration, but not foundational, because as tools they're wielded according to their properties".

I think type 1 is wrong, and I /think/ Linus would agree and is not making this argument. He's previously said one of the reasons C has stuck around in the kernel is you can more or less read C and have a good guess at how the assembly looks, this property is obviously not upheld by LLMs.

Given he also mentions this text-editor example, I think he was making type 2 argument, which I think is stronger than type 1.

Determinism, while desirable, is a distraction, the real problem is that LLMs do not have semantics https://isaacvando.com/nondeterminisms-not-the-problem (discussion)

k749gtnc9l3w | 11 hours ago

Can humans actually use the semantics of C? I think it was also in the Linux kernel where «oh this read is technically UB so let's drop the pointer check before the write» happened?

mitsuhiko | 16 hours ago

In practice that doesn’t really matter though. Compilers change and agents validate what they do. If they are deterministic or not doesn’t really matter at all in practice.

gunduzc | 14 hours ago

I couldn't disagree more. To me, the definition of a reliable tool is one that outputs the same output when given the same input more than once.

mitsuhiko | 13 hours ago

That's for sure one way to look at the world, but in the real world determinism just does not exist. Even within computers in many ways at this point its impossible to get full determinism. Determinism is useful, and it definitely has use, but it's not what makes something reliable or not.

A lot of people find refuge in computers because of the determinism; it's easier and more comfortable to operate in a world of perfect abstractions where things mechanically ensue.

Perhaps it should not be surprising programmers are so antagonistic to structures that are hard to reason about and predict, like people or LLMs.

amw-zero | 5 hours ago

I bet you've used very few reliable tools in your life then. Determinism is not something the software industry does well at all.

dchest | 12 hours ago

Comment removed by author

faassen | 13 hours ago

I think fuzzers or property testing are both an interesting point of comparison. We have fuzzer and property testing tools, and they're not deterministic.

Well, they are deterministic in a sense, as they use pseudo random number generators, which are deterministic. But in that sense LLMs as far as I know are deterministic too. It's not a very useful sense.

Another point: humans developers are subject to a lot more random processes than LLMs are, from the weather to someone sneezing on you making you sick. This affects our work in various ways, so we have to deal with this during software development. Therefore we have processes and practices in place to handle this.

junot | 12 hours ago

deterministic algorithm

Have you met -ffast-math? Spooky action at a distance starts the first optimization level over -O0.

Have you met -ffast-math?

Of course. It allows the compiler to disobey certain rules about floating point numbers. These rules help you reason about floating point operations. If you feel that those rules aren't worth constraining the compiler for, you can choose to let it ignore them.

This has nothing to do with determinism. Smart humans have clear plans when they write compiler logic for operation with and without said floating point rules. There is nothing fuzzy here.

Spooky action at a distance starts the first optimization level over -O0.

Yes, the compiler may act in ways where seemingly unrelated parts of your source code interact. The ways in which the compiler acts, however, is well-understood and premeditated by the authors of the compiler. When the compiler has acted surprisingly, you can find out why. You can read the code of a human being. You can interrogate their intent. Not so with LLMs.

junot | 11 hours ago

What do you think those rules are and what do you think determinism means?

The flag allows the compiler to ignore the "rules" ordering floating point operations. This makes them literally non-deterministic. The same calculation can produce different results on different systems with this optimization applied.

What do you think those rules

Among other things, as you say, the disregard for the ordering of certain operations. These operations are order-independent for true mathematical reals, and allowing the compiler to pretend that that's also true for floats can have performance gains.

what do you think determinism means?

Determinism means different things in different contexts. It's up to the people introducing the concept to explain what they mean in a particular setting.

The flag allows the compiler to ignore the "rules" ordering floating point operations.

I know.

This makes them literally non-deterministic. The same calculation can produce different results on different systems with this optimization applied.

It seems you have a definition of "determinism" that entails "must produce identical results on different hardware". Fair enough, but that's not an obvious definition that everyone always uses.

You can, for example, decide to calculate the worst-case outcome on all the hardware you care about, and determine that you can live with that. A lot of people would say that's "deterministic", too.

Yes, it's deterministically changing the rules of floating point. You can even do error analysis on it, if you want.

Finally a sensible reply. It seems like the parent poster thinks that -ffast-math is magic.

I seriously doubt that most developers really understand what goes into a build of their software or how it's all compiled together. I bet many developers pass flags like -O3 or -Ofast and don't think twice about whether the program they imagine is the one the compiler actually produced. Even if they made more conservative optimization choices, it's still hard enough to get reproducible builds and reproducible program behavior with the same exact compiler, optimization flags, toolchain, dependencies, build environment, and target architecture.

My point is that how knowable or "deterministic" the compiler is is moot in comparison to the million other choices and variables that go into the end product, often entirely included based on trust rather than knowledge just so that software can ever get out the door. All of those things can negatively compromise the effects and experiences of software, of course; they very often do, eluding even the ideal developer that reads every change log and knows everything about the compiler. Knowing how hard it is to get things right and still deliver anything at all, we don't set the standard of submitting software to how much a developer can tell us about their tools, but rather to how much they can be held accountable to the final product.

dchest | 12 hours ago

LLMs are deterministic — external randomness is introduced at token sampling time to diversify next token selection. Seems like it helps, but it's not required. You can run an LLM with a deterministic sampler, e.g. by always selecting the top probability or by using a seeded PRNG and publishing the seed.

Of course, none of the currently popular "AI tools" allow this.

Sanity | 10 hours ago

The GPU may reorder operations which can lead to different outputs, there are many other minor issues as well https://discuss.pytorch.org/t/deterministic-non-deterministic-results-with-pytorch/9087

dchest | 10 hours ago

That's an implementation detail.

kolja | 11 hours ago

I thought the amount of calculations required, paired with the fixed width of the floats, introduced (theoretically surmountable, but at a cost) enough randomness on its own to prevent true determinism in the output. Am I misinformed?

thombles | 11 hours ago

I’ve been down this rabbit hole and will defer to an expert, but you’re right - essentially if you offload calculation to a GPU, in practice you don’t have enough control over the order in which work will be done to guarantee that floats will have bit-identical values from run to run.

k749gtnc9l3w | 11 hours ago

llama.cpp does! And what can be done locally creeps up at the same speed as frontier. (But sure, slower)

dchest | 10 hours ago

Sure, I meant Anthropic, OpenAI, etc. -- those who provide APIs for closed models.

k749gtnc9l3w | 9 hours ago

I am not sure I have seen a public LLM policy that distinguishes local / hosted-known-weights (e.g. GLM-5.3) / hosted-fully-closed! My personal «policy» is to minimise use of hosted ones and with local ones, not limit their use, but not trust them.

archagon | 10 hours ago

Comment removed by author

elliotmorris | 13 hours ago

It is frustrating that one of the best features of Linux, the ability for me to have uncomplicated feelings of positivity towards it, is now being deprecated.

kemitchell | 7 hours ago

Never meet your heroes.

It’s people all the way down.

gnafuthegreat | 4 hours ago

Only now? I've had conflicted feelings for a long time, what with major contributions from companies like Meta. I don't think using LLMs for code review is anywhere near the most harmful association in Linux kernel development.

nickmonad | 3 hours ago

I don’t understand the point about contributions from companies, even a particular one like Meta. What exactly is the fear there?

maximilian | 3 hours ago

It's not about fear, it's about complicated feelings. You know, like facilitating genocides in other countries.

gnafuthegreat | 2 hours ago

Exactly. I like Linux and I like Btrfs. I don't like that their development depends in part on a company like Meta. I am also a Fedora user, and Meta-employed developers have done a lot of work I've benefited from. I feel safe in saying social media in general and specifically Facebook have done far more harm than LLMs.

colefox | 19 hours ago

We need a term, maybe, for someone who trusts their tools too much...

I personally have trouble sleeping at night given the current climate at work. I am constantly fighting the whole "well Claude says..." Crowd there and I'm starting to lose my sanity quite honestly.

And I don't mean to sound like someone who is smarter than everyone else ... And I do use AI tools to help me summarize the 300k+ diff that someone has "full confidence in" which to leads to conversations such as:

"I ran Claude against it all night for security issues"

"So what's the reason for another 100k lines after I pointed out the flaw in the fundamental x thing?"

"Just adding y feature"

And now they've wasted my entire day trying to understand their code more than they do.

nobe4 | 14 hours ago

I feel that this should be expanded beyond one's tool, and the word I would use for that is "gullible".

Trusting "too much" also apply to people, systems, media, ... And IMHO trusting "anything" too much can be detrimental. Now, not everyone can be a neurosurgeon, so at some point one might have to "blindly trust" a person, especially in emergency situations. But in most day-to-day life, I feel that putting some thoughts and criticism is always a positive attitude.

It also speaks to the fallacy of alleged certainty, as if "X said Y" is any proof that "Y" is correct. And con artists and LLMs alike are great at faking confidence.

maximilian | 9 hours ago

And con artists and LLMs alike are great at faking confidence.

Considering how much con artist content is in the corpus of consumed texts... perhaps we shouldn't be too surprised.

alper | 14 hours ago

We need a term, maybe, for someone who trusts their tools too much...

Human.

toastal | 15 hours ago

Lost 7% of my battery to pass the Anubis check :(

bitshift | 7 hours ago

Oh no! How long did the check take—did it have to spin for a few minutes or something?

ianloic | 18 hours ago

I'm sympathetic. In college I was a steadfast vi user. I thought emacs's auto indentation and vim's syntax highlighting were distractions. If you really understood your code you didn't need them.

Anyway, I was wrong. I'm glad I got over myself and embraced the tools that let me build better software more effectively.

elliotmorris | 13 hours ago

Not many people felt vim or emacs were contributing to mass social and political decline, untold wealth concentration, were almost definitely going to crash the economy, or were the product of what many people consider a grand theft against humanity.

Folk talk past each other on this a lot, and I must admit in the past I've artificially bolstered my AI capability case because I was in denial, as the consequences socially for AI adoption seem so damning and unacceptable.

It's tough.

I wish people could separate the impact of LLMs on society from the impact on systems and code.

LLMs can be good for kernel security/maintenance and also disastrous for society as a whole, just as Facebook can be convenient to sell a chair but probably not great for democracy's health.

But that's like saying "I made machine that kills puppies and plants trees, and every time I plant a tree people complain about the dead puppies! I wish they could separate the impact of the dead puppies from the impact of planting trees."

If someone trains a model on truly public data (or that is able to respect OSS licenses), and I can run it locally, then I'll consider using an LLM for what it's good at.

I disagree.

I'm old enough to remember the same arguments being levered against nuclear (minus the corporatism aspect). The same splitting atoms for bombs and heating homes, and we couldn't stomach it. And now our children and grandchildren will have 50 more years of carbon debt to pay off.

The internet was a DARPA project. Passive RF came from Theremin in a sharashka. The V2 scientists went on to NASA to get man on the moon. "Evil/unpalatable" origins don't make technology inherently bad.

I love free software and hardware. I think they're a societal good. And yet, I type this message on closed silicon, in a browser whose development/existence can largely be attributed to mass surveillance and ads.

If someone trains a model on truly public data (or that is able to respect OSS licenses), and I can run it locally, then I'll consider using an LLM for what it's good at.

This, to me, is equivalent to "Once we disarm every ballistic missile and have completely fail proof reactors, I will consider supporting nuclear energy". Relevant xkcd.

ariaaaa | 3 hours ago

"Evil/unpalatable" origins don't make technology inherently bad.

right, but we're not talking about their origins. we're talking about the things that are happening right now in order to make AI work, and the things that the frontier labs themselves think are likely to happen because of their existence.

DeepSeek Flash V4.1 and Kimi K3 will continue to run on local hardware, even if frontier labs all went bust today. I'm sure they would be of value for certain tasks for kernel development.

I don't know what you're talking about, I am (and Linus was, on the mailing list) talking about the usefulness of LLMs for developers.

things that are happening right now in order to make AI work

What makes AI work is 4xRTX 6000 Blackwells for 200 TPS at home, or a 20-200$ subscription. API prices are exceedingly reasonable with modern setups.

I'm fine with arguing about whether LLMs make kernel code worse, or increase maintainer burden. I'm kind of sad every discussion devolves into "the water, the datacenters, the copyright, the theft".

ianloic | 5 hours ago

They're tools. A hammer is great for attaching pieces of wood together. It's both socially unacceptable and illegal to hit someone in the head with a hammer. We need to update our laws and norms to constrain how new tools like LLMs and Facebook are used.

I've been hammering the tool perspective since the earliest, non-agentic, models.

The issue with talking about laws, norms and regulation is it's hard to do if all the technical people in the room are screeching and fearmongering like Greenpeace at a NIMBY protest.

mass social and political decline, untold wealth concentration, were almost definitely going to crash the economy

I'm sure they would have opposed the rail barons as well. And probably the dismantling of the rail network in favor of trucking and automobiles too, for that matter.

tonyarkles | 2 hours ago

It's both socially unacceptable and illegal to hit someone in the head with a hammer. We need to update our laws and norms to constrain how new tools like LLMs and Facebook are used.

it's hard to do if all the technical people in the room are screeching and fearmongering like Greenpeace at a NIMBY protest

That's one of the things that makes this so complicated: Hammers themselves aren't particularly regulated. Actions are regulated. There's no law against hitting someone in the head with a hammer, there's a law against hurting someone [in the head, but also in other places].

One of the biggest meta-worries I have with the way a lot of this has been framed overall is getting really clear about what we're actually trying to accomplish with laws and regulations. We can go overly narrow (I'm not hitting someone with a hammer, I'm poking them with a screwdriver, therefore not illegal) or overly broad (a law against hurting someone means that the doctor can't give me a needle, because that hurts).

There's also the part where different people have different notions of what the actual harm is and how difference facets are prioritized or weighted. If we managed to, hypothetically, make an open-weight LLM that could fit on a microcontroller and generate 1000 tok/s on half a watt... that would quite handily address the wealth concentration and environmental problems, but not at all any of the societal or economic issues. Some people would then be fine with LLMs now that the environmental and oligarchy issues were addressed, some wouldn't.

Arguably the social decline isn't caused by AI directly, even though it is clearly the vehicle that the ultra wealthy are using to push their agenda. The damage is real, but its fundamentally a policy question that we don't have any say over.

To me the way we criticize genAI is already ceding a lot of ground to the wealthy investors and politicians that are using this technology to attack the working class. These issues can all be fixed, but we aren't even talking about holding the owners accountable or setting reasonable AI policy like China has done.

ianloic | 5 hours ago

It's tough.

I'm extremely worried about the social and political impact. The fact that some things like writing code and generating images got dramatically cheaper suddenly is going to have really significant impacts that will take a long time to shake out.

The way the models were trained on IP stolen from me and everyone else, and the environmental cost of running datacenters full of GPUs is a huge concern.

But as someone who is newly dealing with significant vision loss (yay cancer!) the ease with which I can build bespoke systems to act on my behalf, summarize text, give mostly passable TTS, and explore my coding ideas is incredible.

It feels a bit like in broader culture the question of separating the art from the artist. Michael Jackson wrote some bops.

tonyarkles | 2 hours ago

It feels a bit like in broader culture the question of separating the art from the artist. Michael Jackson wrote some bops.

Oh, wow, I tip my hat to you for nailing that in a way that I haven't seen yet in the overall broad and messy discussion. I feel like that's a concept that has been... I don't want to say ignored, but the ability to separate those two ideas seems to be somewhat of a lost art.

some bops

And that turn of phrase gave me a really big smile because of how perfectly it captures his work. And now I'm humming Billie Jean...

I don't understand what syntax highlighters and autoindenters have to do with coding agents. The only commonality I see is "they're computer programs that manipulate your source code". That's such a big category of widely disparate things that it's entirely unhelpful as an analogy.

andyferris | 9 hours ago

The similarity seems to be they are all “tools”.

The widely disparate thing I notice is the divide between those that treat LLMs as neutral tools and those that seem to ascribe them as good/evil.

I think the good/evil all come from second-order effects (how people tend to use the tool, how their use impacts others, etc) and in a way both are true, but the discussions are rarely productive…

ianloic | 5 hours ago

They make things easier in ways that (I thought) made a programmer less in touch with the code they were writing. If you're managing indentation manually you have to think about the structure of your code more as you're writing it. With syntax highlighting you can see what's going on at a glance rather than having to really pay attention to the code.

These are things that LLMs can also be used for. They're things I use LLMs for. They're things that make me a better programmer.

Unless you're in an indentation-aware language, I don't understand this at all. Your scopes have to be correct in e.g. Rust or C. There's your understanding. Turning that into a semantically irrelevant indentation for visual preference is a purely mechanical task. Most people who push LLMs don't just use them for purely mechanical tasks.

zetashift | 15 hours ago

I've seen some interesting usecases for LLMs(where the non-determinism can cut down the bias), but I still never understood these comparisons with editors and compilers when looked through the lens of the problems I have with LLMs.

If vim's code was sourced[0] from OSS, subscription-only, worsened the social bonds between humans, electricity hungry for writing text, would you still embrace it like that?

Maybe the result and rigor(edit: also plenty achievable outside of LLMs!) in software matters more than the culture. I think it's okay just say that, at least it's better than these metaphors. which break down really easily, and frankly underestimate how easy it is to make LLMs somebody's personality or see the current problems people have with LLMs.

[0]: ironically enough, Linux being probably in the datasets prominently, would make kernel development an okay place to use?? Not a philosopher :s.

matthiasportzel | 14 hours ago

A couple years ago on HN people would say you were wasting time and you could write code faster if you unplugged your mouse and learned vim keyboard shortcuts exclusively.

A lot of LLM proponents sound similar: oh you can write code so much faster if you never look at it yourself and just use the LLM.

It seems disrespectful to judge the method in that way, rather than judging the result. You can (and still should) criticize the output of LLMs when the quality is below that of a human coder (which is very often) and of course you can criticize the social and environmental impacts.

nobe4 | 14 hours ago

Interesting, I went back and forth on the "syntax highlighting" topic and now have a very minimal theme that basically only dims comments, and highlight strings.

I found that after reading code in various languages for a while, the color added to functions/variables/... was not actually helping my comprehension of the code.

Especially when some languages blur the lines between what's a "function" and what's a "variable". E.g. in ruby I see this pattern a lot:

class stuff
  def do_something
    puts "foo: #{foo}"
  end

  def foo
    @foo ||= {  # something to cache }
  end
end

Is foo a variable, is it a function, does it even matter to understand how the code works?

maximilian | 19 hours ago

And quite honestly, in my experience, the people I respect and call
intelligent are not the ones that shy away from using new and
interesting tools.

He may not curse people out publicly anymore, but he's still just as inflammatory and derogatory.

This post feels pretty off-topic, though.

rtfeldman | 19 hours ago

At almost all times, there is at least one post on the Lobsters front page whose entire content is the author's personal emotional reaction to AI.

I think these consistently fail the Lobsters "rules of thumb for great stories to submit: Will this improve the reader's next program? Will it deepen their understanding of their last program? Will it be more interesting in five or ten years?" test from the topicality guidelines, but obviously they get upvoted a lot anyway.

[OP] thang | 18 hours ago

That's true to some extent, but this is Linus Torvalds weighing in on AI use in kernel development. Given his influence, I'd argue his views carry more weight than a typical personal reaction

jrgtt | 16 hours ago

Linus has already stated his position on LLM usage and it has made rounds here before. If it was about how Linus uses AI, I would have given more credit, but this thread adds nothing new to my perspective.

[OP] thang | 16 hours ago

Fair point. I did submit a similar thread a while back. I thought it'd be interesting to revisit the discussion given how much has changed since then. But I can see how this doesn't add much new. I'll keep that in mind and be more selective about posting similar threads in the future.

eyesinthefire | 18 hours ago

I've had vibecoding filtered between 6months ago until now (browsed while logged out and was surprised by how much I had been filtering out, so have turned it back on out of morbid curiousity for a few days), and gosh it feels like a much bleaker website.

hawski | 14 hours ago

I filter it out and also have seen the logged out experience. I lately take a look at the vibecoding tag in isolation. But there are almost exclusively things of no value to me. There are some things that I agree with like rants, but other than small fleeting feeling of comfort that there are people out there thinking more like me, it is not really valuable.

IMO the tag is becoming problematic. From one side I think vibecoding is in direct contrast with how technical centric (as in show me the code and be ready to widen your understanding) this community try to be. So for a new prospective user this community seem to be welcoming to such a content, even if it is not the full story. At the same time there is a significant part of the community that would not agree with me, that this belongs here.

If I remember correctly business posts are deemed off-topic because they often fail to produce good conversation and they are not technical. A proposed tag to make it possible to filter out would make it seem acceptable to post more content to fit it and if it would be filtered out by default people would post it under different tags to slip through. I think that vibecoding is like the mythical business tag already. The problem seems to be that there is a divide in this community and I don't know how to address this.

gerikson | 14 hours ago

Can you expand in how the site feels bleaker? Is it because most submissions are critical or pessimistic about GenAI-assisted software development, or that so many submissions are about it at all?

hibachrach | 5 hours ago

As much as I often agree with those posts, I do think @rtfeldman is correct here. We as the Lobsters community give it a pass b/c we (as a whole, on average) are fairly hostile to the tech and support most critiques of it. And I think it's partially b/c we as an industry are going through it and have few places to vent those frustrations (and because all social media users--of which Lobsters is a part--inevitably sort into factions...whether directed by an algorithm or just through traditional factionalism).

That said, I do think the topicality guidelines are lacking as a whole anyway. Take the "person" tag. I can't imagine that the following posts achieved any of the goals of the stated in the rule of thumb:

Despite that, they were highly upvoted and seem (to me) to be very on-topic to the "spirit" of Lobsters and I'm happy for the attention and discussion they engendered. I wish I could articulate why. In my mind, the focus of Lobsters is programming when severed from the modern industry of software, though I know that's probably a contentious and imperfect description.

flockofbirbs | 9 hours ago

Linus Torvalds has really gone off the deep end and the kernel so many of us depend on will be worse for it. I wonder if he'd yell at Rich Hickey for his recent essay, too. Every crisis is an opportunity, so perhaps this is the event needed to get more people working on microkernels (particularly the ones with capability security).

I switched to NetBSD (personal laptop) and 9front (fun stuff), after 28 years using Linux for everything.

JulianWgs | 16 hours ago

And btw, you had better not use an editor to write that commit message either.

I just want remind everyone that Linus uses an editor without syntax highlighting…

https://m.youtube.com/shorts/BHmyxsIdOHQ?ra=m (the transcription is crap)

Sanity | 14 hours ago

Which makes sense considering how he was so amazed that an LLM could find the call sites of a function, which IDE's have been able to do since IDE's were invented.

Why bother, he asked, to search for all of the call sites of a function he has just modified, when the tool can fix them all automatically?

https://lwn.net/SubscriberLink/1099594/be20382b54a9b4cd/

kolja | 11 hours ago

Since C does not allow overloading, grep and sed et. al. can already be considered "part of the Un*x C IDE", it's a really weird argument.

FRIGN | 11 hours ago

I don't either, and haven't been for over a decade. I can definitely recommend it.

hawski | 14 hours ago

I wonder if that is still the case. This video is from April 2025, a year and a half ago. I don't know how he vibe codes. I understand it is possible from a terminal, but I wouldn't be surprised if he uses something else to do this. My foundations are shaking.

lilac | 6 hours ago

linus continues to have a way of saying a thing I agree with in a way that entirely makes me wish I didn’t agree with him.

ultimately I don’t really care about what people are doing right now during the hype cycle, because that’s a lost cause. I care that people come to understand things at least in retrospect and that we can talk more plainly eventually without any mention of an obviously useful technology immediately turning into a fight for someone.

…but the way he talks about llms here makes me believe he has thought about the technology and its ramifications shocking little for someone so trusted as “thoughtful, even if a jackass”

I don't blame the submitter, but this is not a very good submission.

It is part of a conversation from a high-context environment, removed from that context, by a poster who is known to be provocative, which is written in inflammatory language, about a topic that is currently very divisive, where the post is not particularly substantive, that does not derive legitimacy from additional corroborating details, from well-considered argumentation, or relying on (explicated) judgement within an established field of expertise (e.g., the post makes assertions about community and organisational dynamics.)

As a result… we all get to project our own believes on an intentionally inflammatory post written by a famous person.

Is there anything here that meaningfully advances the conversation?

atmosx | 17 hours ago

I would love to see a similar approach from BSDs because they need it more than Linux and it could close the substantial gap that keeps widening, leading to ever smaller communities.

At this rate Linux will be unusably bad in less than a couple of years, I'd like to have somewhere to escape to once that happens.

gerikson | 13 hours ago

Same. I place my hopes on the BSDs.

luker | 10 hours ago

Maybe the Linux kernel can actually get away with it.

  • they don't have a public github, sending patches is more difficult and the process more cumbersome.
  • they have a reputation of mistreating contributors

All of that is both extra pressure to do better and (more importantly) friction before actually sending them something.

They simply get extremely less slop than the average github project.

Do remember that Linus already said that not being on github and not allowing C++ was done exactly to avoid low quality I-am-just-going-to-throw-this-here code.

The "no AI whatsoever" argument would also prevent AI analysis and tiny cleanups, and it's not really possible to enumerate all cases where it's good and where it's not.

Friction as a feature. I think I should start to gate contributions behind a CLA just to avoid slop.

According to the LWN article from the maintainer summit, they do struggle with slop patches on the mailing list

hsivonen | 7 hours ago

I’ve had worse presumed-LLM patches come to me to review in a project that requires a CLA than in a larger project that does not require a CLA.

alanmeira | 5 hours ago

Now we know not even the best programmers are immune to AI psychosis. Let's see how long it takes for him to notice it.

pbsds | 14 hours ago

Does Linus often review new patches himself nowadays, or does he mainly view the patches that has made it past other reviewers?

k749gtnc9l3w | 11 hours ago

Theoretically, mostly things that made it past reviewers. Practically, I sometimes see his emails with questions whether anyone had ever compiled the version sent for inclusion in the mainline.

… of all superificial polish LLMs can mimic, might compiling before declaring the work finished be the most seducive personally to Linus Torvalds?

junot | 12 hours ago

There are works like the Chicago Manual of Style. Wikipedia has extensive guidance on style and best practice. Where are the writing standards and style guidelines for commit messages and code comments? I haven't seen any. It seems like LLMs are making the industry actually consider the quality of these things in addition to code quality. That's good, right?

TodPunk | 5 hours ago

There are several in various arenas, like ASD-STE100 Simplified Technical English: https://www.asd-ste100.org/assets/files/ASD-STE100_ISSUE9.pdf

How useful they are in a variety of settings really depends on goals. Communication is messy, commit messages and code comments don't have one goal or even one audience, so it's really difficult to even discuss effectiveness. There's definitely not agreement, let alone a measure that's objective.

pyfisch | 11 hours ago

Conventional commits is the most well-known style.

junot | 11 hours ago

Conventional Commits does not constrain or promote specific grammar in most of the commit message, specifically in the "free form" description or body, in any way relevant to the concerns of people against the use of LLMs for writing them.

A longer commit body MAY be provided after the short description, providing additional contextual information about the code changes. The body MUST begin one blank line after the description. A commit body is free-form and MAY consist of any number of newline separated paragraphs.

The structure and comprehensibility of those paragraphs is at issue.

atilaneves | 11 hours ago

Do I always agree with Linus? Of course not, that doesn't happen with anyone (cough, C++, cough). But: he's usually right, and it saddens me to see so many comments thinking that he's wrong. He's not.

archagon | 10 hours ago

This is just an appeal to authority with zero additional content.

alper | 12 hours ago

Torvalds seems a lot mellower than he should be given the backwardness he's dealing with.