frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

A Note from LWN

https://lwn.net/Articles/1090585/
91•rwky•29m ago•15 comments

Commodore 64 released September 1, 1982

https://dfarq.homeip.net/commodore-64-released-september-1-1982/
187•giuliomagnifico•5h ago•92 comments

A Small Telescope That Surprised Me

https://adfr.io/thoughts/20260831_a_small_telescope_that_surprised_me/
43•speckx•22h ago•27 comments

HomeOS – A self-hosted family dashboard for a kitchen touchscreen

https://github.com/danialkhilji/HomeOS
23•danialkhilji•42m ago•18 comments

Claude Fable 5.1 and Claude Mythos 5.1

https://www.anthropic.com/claude-fable-and-mythos-5-1
1327•denysvitali•19h ago•1263 comments

The Lost Art of Carrying Loads

https://www.carryology.com/insights/the-lost-art-of-carrying-loads/
25•surprisetalk•2d ago•22 comments

Ending my elixir exploratory writing

https://lucassifoni.info/blog/the-end-of-this-elixir-log/
25•ffin•1h ago•7 comments

The Emergent Symbolic Structure of Artificial Neural Networks

https://arxiv.org/abs/2608.29530
210•schmuhblaster•9h ago•70 comments

Mistral now trains on user input by default, except on enterprise tier

https://help.mistral.ai/en/articles/455207-can-i-opt-out-of-my-input-or-output-data-being-used-fo...
8•teekert•1h ago•1 comments

Move in C++ without a std:move

https://andreasfertig.com/blog/2026/09/move-in-cpp-without-a-stdmove/
24•dalvrosa•1d ago•17 comments

You Know Who Hates AI? Insurance Claims Adjusters

https://www.wired.com/story/insurance-claims-adjusters-really-hate-ai/
93•joozio•2d ago•52 comments

Just Bury Your Trash

https://www.worksinprogress.news/p/just-bury-your-trash
5•eamag•23m ago•0 comments

Quasar 438B: Europe's Leading AI Model

https://multiversecomputing.com/resources/introducing-quasar-438b-europe-s-leading-ai-model
75•amunozo•3h ago•58 comments

How accurate have Ed Zitron's AI skeptic predictions been?

https://danluu.com/zitron/
792•jatins•19h ago•888 comments

A Beginner's Deep Dive Guide to Entra Passkeys

https://emsroute.com/2026/03/19/passkeys-beginners-101/
4•speckx•31m ago•1 comments

Telli (YC F24) is hiring engineers and designers [Berlin, on-site]

https://careers.telli.com/
1•sebselassie•5h ago

It's OK to hardcode feature flags (2025)

https://code.mendhak.com/hardcode-feature-flags/
39•biscuits1•2h ago•22 comments

Dutch central bank moves share of gold from U.S., Canada to London

https://nltimes.nl/2026/09/02/dutch-central-bank-moves-share-gold-us-canada-london-cites-instability
27•TechTechTech•50m ago•14 comments

LLMs: Intelligence vs. Cost

https://openteams.com/intelligence-vs-cost/
3•theanonymousone•42m ago•0 comments

Fine, I'll build my own text editor

https://dbushell.com/2026/09/01/text-editor/
189•Alephinitesimal•20h ago•178 comments

The Cables That Connect the World

https://xn--gckvb8fzb.com/the-cables-that-connect-the-world/
4•surprisetalk•43m ago•0 comments

Aging Brains Blend Memories Together Instead of Just Forgetting Them

https://studyfinds.com/aging-brains-blend-memories-together-instead-of-forgetting-them-study-finds/
7•mdp2021•47m ago•2 comments

Sweden pauses Denmark power cable over EU grid rules

https://www.nordiskpost.com/2026/05/08/sweden-power-cable-dispute-freezes-link-to-denmark/
46•leonidasrup•4h ago•35 comments

FBI Probes Service Selling 153M+ Drivers Licenses

https://krebsonsecurity.com/2026/09/fbi-probes-service-selling-153m-drivers-licenses/
304•tatersolid•14h ago•167 comments

Why humanoid robots won't catch up to human workers any time soon

https://www.understandingai.org/p/why-humanoid-robots-wont-catch-up
3•speckx•53m ago•0 comments

Banca Etica Suspends A/I's Account While Condemning the Sanctions Behind It

https://sabot.media/post/banca-etica-statement-english
20•rendx•3h ago•11 comments

Introducing Ad Blocker for Firefox on iOS

https://blog.mozilla.org/en/firefox/ad-blocker-on-ios/
545•HieronymusBosch•23h ago•171 comments

Open Battery Information

https://github.com/mnh-jansson/open-battery-information
32•toomuchtodo•3d ago•10 comments

9000 RPM is faster than your screen refreshes

https://ma.ttias.be/9000-rpm/
3•Mojah•1h ago•0 comments

Using jq to format JSON on the clipboard

https://chris48s.github.io/blogmarks/posts/2021/jsontidy/
5•stefanvdw1•1h ago•1 comments
Open in hackernews

Move in C++ without a std:move

https://andreasfertig.com/blog/2026/09/move-in-cpp-without-a-stdmove/
23•dalvrosa•1d ago

Comments

hn45e7pbij•1d ago
I'd push back slightly on move — at small scale the opposite has been true for me.
dalvrosa•1d ago
Not sure what you mean, but std::move is one of the greatest tools in C++
pdpi•42m ago
This is one case where Rust benefited from C++’s experience — move by default with opt-in clone/copy is IMO the better setup.
sprocketz•39m ago
And the most important idea: destructive moves. Since C++ doesn't track lifetimes it has to leave the object in a "valid state" after a move and the destructor still runs which has to have a check if it should do something or not.
bluGill•32m ago
std::move is a great tool when used correctly. However used incorrectly it makes code worse: more verbose and less performant. Since I have no idea how you are using it I can't comment on your experience. My experience is people (including me!) get it wrong fairly often. Fortunately tools can detect a lot of cases where you get it wrong.
tom_•1h ago
If the author is reading: both complicated examples are the same.
quuxplusone•49m ago
Yeah, the second one is supposed to read `Apple&& Cat(Apple&& val) { return val; }` — but the return type's `&&` was omitted by accident.
fluoridation•59m ago
Unfortunately, I don't think there's getting away from just understanding value semantics to get the correct and/or performant behavior.
sprocketz•45m ago
What is that makes NVRO so much more difficult to implement? Why couldn't they mandate that just like RVO? Do compilers literally just special case a simple return statement of a direct construction or something?
bluGill•35m ago
The simple cases are simple. However the complex cases get hard.

    mytype foo() {
       mytype one;
       ...
       if(something) {
          mytype two;
          ...
          return two;
       }
    return one;
    }
Is going to be much harder because you don't know are compile time which is returned and so cannot construct the one you return in the correct place. That is just off the top of my head, I'm not a compiler writer, I'm sure they have figured out the simple versions of the above, but you can start to see the complex versions that they can't.
fluoridation•28m ago
N/RVO works by (at the machine language level, of course) rewriting the function signature to return void and take an extra pointer parameter, which is written to before returning. If you're returning a newly-constructed object, the compiler can rewrite that into calling the constructor on the pointer, but if you're returning a named object, the class may have a non-trivial destructor that needs to run after the move, such that it's not possible to rewrite uses of the local object into uses of the pointer.

I'm not too confident on that last part, because such an implementation would mess with semantics in case of an exception, so anyone feel free to correct me on that.

dataflow•24m ago
> N/RVO works by (at the machine language level, of course) rewriting the function signature to return void and take an extra pointer parameter

This sounds wrong, are you sure? Would you mind demonstrating with an example on godbolt? Whether NRVO applies or not, the ABI should be the same, AFAIK.

fluoridation•11m ago
Yes, of that I'm sure. This optimization is only possible if the compiler has control of both sides of a call. If the function may be callable from other translation units or modules I imagine it generates a thin wrapper that's externally callable.
dataflow•19m ago
The point of (N)RVO is to directly construct the return value in-place at the calling frame. Which requires knowing what object will land there.

In RVO there is no problem because you know what object is the one you need to put there.

In NRVO there is a problem because you might have one of multiple objects being returned and you need to know which one to construct at the call site; it can't be all of them on top of each other. But you don't necessarily know at the time of construction whether that object will be the one that is actually returned. Doing so requires imperfect code analysis so the standard would need to define the complicated analyses to perform.

whizzter•18m ago
RVO is easy to detect since it happens only in expressions in return-statements.

NRVO requires the compiler to analyze the flow, like if 2 different variables/constructions can lead to the return (what one do we take, or can we do either later?).

Also, with RVO it's easy to detect and elide destruction calling for things going out of scope whilst NRVO would require more careful management of destruction order,etc.

Basically, NRVO touches a lot of things in "inconventient" places that can easily require reworking internal compiler structures to track destinations whilst RVO was probably far easier to just "hack in".

sprocketz•3m ago
I figured any half decent compiler already do plenty of flow and liveness analysis on everything for register allocation, dead code elimination and what not.

Maybe it's the guaranteed elision that makes it a problem, like you can't fail the analysis, but then maybe you go the rust route - fail to compile and urge the programmer to rewrite their code so it accepts it.

Make it opt in with [[must_elide]] so old code still works I guess.

locknitpicker•10m ago
> What is that makes NVRO so much more difficult to implement?

I recall reading that at a high level RVO is implemented by treating the return value as an external object. In simple terms (simplistic terms) RVO then works by

- first instantiating the return variable,

- passing the var by reference to the function,

- and then use return value to actually initialize the variable passed by reference.

The moment there's some funny logic on what to write to that output value, the problem gets far more complex.