frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

Thoroughly Understanding C++ ABI

https://ykiko.me/en/articles/692886292/
18•rramadass•5d ago

Comments

rramadass•4d ago
As always, read wikipedia and follow links as needed - https://en.wikipedia.org/wiki/Application_binary_interface
rramadass•4d ago
GNU libstdc++ "Dual ABI" issue - https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_a...
jdw64•15m ago
I understand that Move Semantics led to better implementations and that this is why things changed. I know that in this case, problems arose when transitioning from C++98 to what's commonly called Modern C++ (C++11). However, I'm not very familiar with what the specific issues were with COW. If you happen to know of any documents that describe this problem in more detail, I'd appreciate it if you could let me know. I'm sorry for always asking questions. I've looked up a few documents, but since you clearly know much more about this than I do, I'm asking to study it myself as well. If it's too much trouble, feel free not to reply.
Dwedit•29m ago
C++ ABIs are why Win32 settled on things like COM to do cross-module passing of objects. Because nobody could agree on a standard, the COM standard enforced a very specific calling convention, and a very specific vtable layout for COM objects.
pjmlp•10m ago
Not only, there is also XPC and IO/DriverKit on Apple, Android IPC, D-BUS, FIDL on Fucshia,....

Also C ABI also does not exist, people keep mistaking the ABI of their favourite C compiler with the OS ABI, which only overlap if the OS was written in C to start with.

For example on mainframes and micros, naturally not written in C, it is either a bytecode based ABI like TIMI on IBM i, or language environments like on z/OS, ClearPath MCP, OS 2200 and so forth.

And as a reminder, from a famous WG14 and WG21 member, and former Rust contributor,

"To Save C, We Must Save ABI"

https://thephd.dev/to-save-c-we-must-save-abi-fixing-c-funct...

jdw64•24m ago
Does the C++ standard guarantee binary ABI? Isn't that something that compiler and library contributors handle separately? So I think the arguments you see online are more accurate—vendors are the ones maintaining it.

In other words, the ABI we rely on today isn't really part of the C+ standard—it's more like the Itnaium C++ ABI or the MSVC C++ ABI.

In the end, I think the ABI stays stable because of community conventions established by compiler vendors.

andyg_blog•9m ago
It doesn't, and FWIW the article says that. A meta note: ABI stability is a holy war inside the C++ community. Those against it argue that it's holding back real language evolution. Herb Sutter is even working on his own C++ offshoot that shows what could be.
jcranmer•6m ago
No, ABI is not part of the C++ standard, although there are parts of C++ that do go "this is an ABI thing" (e.g., [[no_unique_address]]).

ABI is more of OS-level thing. Most systems these days follow the SysV ABI, which is largely defined by the hardware manufacturers via the processor-specific supplements (the x86-64 one is here: https://gitlab.com/x86-psABIs/x86-64-ABI). These largely delegate C++-specific conventions to the Itanium C++ ABI (which they likely directly reference), although the ARM ecosystem uses a somewhat different layout for the exception handling tables. Microsoft uses a different ABI for both the underlying C ABI and for the C++ compatibility layer built on top of the C ABI.

One of the issues that crops up is that vendors end up needing to add extensions to the ABI for various reasons, and these extensions tend to end up being incompatible, since they're added before they've had a time to be standardized. 16-bit floats is a particular historical bugbear, as is the C23 _BitInt stuff.

pjmlp
•
6m ago
No, neither does the C standard.

With exception of Swift, D, and bytecode based languages, the ABI is left to the vendors.

For those that think ISO/IEC 9899:2024 PDF has anything related to ABI, the actual ABI used by C compilers, is the OS ABI, if the OS was written in C to start with, and naturally this overlaps quite nicely with UNIX like OSes, and Windows.

It isn't like that on other platforms that decided to either use other systems languages, or expose their OS APIs in a different way, e.g. mainframes, micros, Android, ChromeOS, WebOS,...

US strikes $1.2B deal to pay German firm to halt offshore wind projects

https://www.bbc.com/news/articles/c1e1vg0gjl5o
656•defrost•4h ago•604 comments

U.S. economy lost 23,000 jobs in July, a sudden reversal

https://www.nbcnews.com/business/economy/july-2026-jobs-report-rcna591138
217•ceejayoz•2h ago•146 comments

Show HN: Wyzer Programming Language

https://github.com/Wyzer-Lang/wyzer
45•v0id_isgood•2h ago•19 comments

New Mexico court orders Meta to pay $567m over harms to children’s mental health

https://www.theguardian.com/technology/2026/aug/06/new-mexico-court-meta
479•boplicity•14h ago•267 comments

99% of My Website Traffic Is Bots

https://patronview.com/news/99-percent-of-my-website-traffic-is-bots/
3•petercooper•7m ago•1 comments

AMD acquires Taalas to boost inference performance by etching models in silicon

https://www.theregister.com/systems/2026/08/06/amd-acquires-ai-chip-startup-taalas-to-boost-infer...
766•itvision•18h ago•581 comments

U.S. Lost 23,000 Jobs in July, While Unemployment Ticked Lower

https://www.wsj.com/economy/jobs/july-jobs-report-unemployment-0d7c08a7
42•JumpCrisscross•1h ago•2 comments

Thoroughly Understanding C++ ABI

https://ykiko.me/en/articles/692886292/
18•rramadass•5d ago•10 comments

Kitesurf: Agent-first browser that runs in V8 isolates

https://blog.cloudflare.com/kitesurf/
36•m3h•4h ago•7 comments

The web server deployment model breaks at hobby scale

https://w.on-t.work/web-deployment-model
46•meetpateltech•1h ago•35 comments

Taste Is All That's Left

https://notashelf.dev/posts/taste-is-all-thats-left
552•tsak•21h ago•417 comments

US's largest newspaper chain partners with Palantir to analyze audience data

https://www.niemanlab.org/2026/08/americas-largest-newspaper-chain-usa-today-co-partners-with-pal...
54•cdrnsf•57m ago•15 comments

A quine in Piet – a GIF image that prints itself [video]

https://www.youtube.com/watch?v=GwMtzhjCzyc
53•surprisetalk•4d ago•3 comments

São Paulo resident transforms degraded area into urban forest

https://saopaulosecreto.com/en/tiquatira-linear-park-en/
227•rmason•5d ago•95 comments

Scientists discover Kelvin-Helmholtz Instability on the surface of the Sun

https://nso.edu/press-release/nsf-inouye-solar-telescope-enables-major-discovery-of-a-hidden-sola...
276•neversaydie•1d ago•53 comments

Bioengineered chewing gum may offer a way to fight HPV and other microbes

https://www.sciencedaily.com/releases/2026/08/260803080917.htm
173•Audiophilip•17h ago•49 comments

TypeStax: A type scale generator with vintage audio hardware interface

https://www.typestax.com/
24•jasim•1w ago•7 comments

Show HN: textlog – A quiet, text-only microblogging platform, open-source, no JS

https://textlog.cc/about
13•stagas•4h ago•0 comments

GitHub Actions and Pages are experiencing degraded availability

https://www.githubstatus.com/incidents/qcvjkzcs7j74
450•Footkerchief•23h ago•374 comments

Radical Study Suggests Life on Earth Arose Twice

https://www.sciencealert.com/radical-study-suggests-life-on-earth-arose-from-non-living-matter-twice
29•jnord•2h ago•31 comments

Improving GPT‑5.6 Sol in ChatGPT, expanding GPT‑5.6 Luna access for free users

https://openai.com/index/improving-gpt-5-6-sol-in-chatgpt/
275•tedsanders•21h ago•224 comments

Welcoming the Nepalese Government to Have I Been Pwned

https://www.troyhunt.com/welcoming-the-nepalese-government-to-have-i-been-pwned/
190•gnabgib•17h ago•28 comments

Launch HN: ProvenMetal (YC S26) delivers circuit boards in days instead of weeks

https://provenmetal.com
214•willcarkner•23h ago•151 comments

Why Estonians invite strangers into their back gardens each summer

https://www.bbc.com/travel/article/20260731-why-estonians-invite-strangers-into-their-backyards-e...
116•koolhead17•3d ago•46 comments

Herdr is joining Y Combinator. The runtime stays open

https://herdr.dev/blog/herdr-is-joining-y-combinator/
249•collinmanderson•19h ago•175 comments

The BBC Tetris Companion

https://www.leadedsolder.com/2026/07/28/bbc-bridge-companion-part-1-overview.html
40•zdw•1w ago•2 comments

My phone detects going on a run as “someone snatching my phone and running off”

https://mastodon.gamedev.place/@rygorous/117047697255584965
174•luu•20h ago•304 comments

Mario Meets Pareto

https://www.mayerowitz.io/blog/mario-meets-pareto
1104•theanonymousone•1d ago•162 comments

STV: A full-motion video codec for the Atari ST

https://medium.com/@jonas.eschenburg/stv-a-video-codec-for-the-atari-st-6e46355c50e4
79•indyjo•1w ago•10 comments

Making Postgres 300x faster for analytics: batching, operator fusion, and SIMD

https://malisper.me/how-we-made-postgres-hundreds-of-times-faster-the-query-engine/
34•poly2it•3h ago•8 comments