Bigcheese's Avatar

Bigcheese

@bigcheese.pony.dev

Compilers and Ponies. PFP by @kuzuyukuroo.bsky.social Banner by @ffloweryoutoday (Twitter)

486
Followers
121
Following
22
Posts
20.09.2023
Joined
Posts Following

Latest posts by Bigcheese @bigcheese.pony.dev

Putting reference in quotes and saying "Here's the source code for Salesforce." strongly implies you think it was given access to GCC source, not that it was told if the program works when a set of TUs is built with GCC.

I would be more impressed if Claude had thought to do this itself.

07.02.2026 08:03 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

You have wildly misunderstood the article. GCC was used as a known good compiler to isolate which source files the new compiler had issues with. This is standard practice in compiler development when you have a known working compiler.

It's a bad compiler, but impressive it works as well as it does.

06.02.2026 23:12 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
BronyExpo Coming soon to the Bay Area, California!

Hello pony people! We're cooking in Northern California

To sign up for our newsletter and learn more about who we are, check out our website!

bronyexpo.com

23.12.2025 00:21 ๐Ÿ‘ 38 ๐Ÿ” 16 ๐Ÿ’ฌ 3 ๐Ÿ“Œ 2
Post image

oh, no, that's not safe to eat

14.04.2025 07:34 ๐Ÿ‘ 26 ๐Ÿ” 7 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Post image Post image

I made a flat plush.

20.03.2025 15:45 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

It also even works for C, so C++ and C can be compatible here.

13.03.2025 09:51 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

I'm thinking of proposing module maps for standardization. It's clear to me that they are the right solution for telling the toolchain which headers should be header units. Since the system headers need them too, it doesn't make sense for each compiler to have their own version.

13.03.2025 09:51 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Include translation mostly solves the duplicate definition problem, although sometimes the compiler does need to type merge. It definitely is a big task to deploy header units in a large codebase, but it's significantly less effort than moving everything to named modules.

27.02.2025 23:12 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

The huge difference is that PCH's are generally only allowed to exist once per TU and if anything changes the whole thing needs to be rebuilt, while header units form a DAG. Given well written headers, it's almost transparent to switch to header units.

27.02.2025 18:21 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

There's more toolchain and build system work needed to make this generally available to people, but nobody seems interested in working on it.

27.02.2025 18:19 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Clang modules have been made to work with distributed build systems, but I'm not aware of any publicly available build systems that currently do. Although there seems to be some effort in GN: gn.issues.chromium.org/issues/42440... and chromium.googlesource.com/chromium/src....

27.02.2025 18:19 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Header units are new in C++20. They are a way to treat a header as a separate translation unit, and then import it into any other TU that uses it by converting `#include` to `import`. Clang has had clang modules which are nearly the same thing for ~10 years now, and some companies are using this.

27.02.2025 18:19 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

I wish people weren't so against header units. They are by far the fastest way to get the build perf benefits of modules as they don't require rewriting all your code. It's also equivalent to what Apple, Google, Meta, and Microsoft are using in prod.

26.02.2025 04:17 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 0

The capitalization is the worst part here.

13.12.2024 21:22 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Well, you were likely playing on a 640ร—480 or 800ร—600 CRT, so it was better. It's a lot different on a 4k LCD.

03.12.2024 03:10 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Yeah, I have a room at the very end :(

18.11.2024 20:48 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Drawing of a ponified version of the LLVM dragon with its hooves together in a pleading pose.

Drawing of a ponified version of the LLVM dragon with its hooves together in a pleading pose.

LLVM pone wants to make more assumptions about your code.

By @rivibaes.bsky.social

29.02.2024 09:20 ๐Ÿ‘ 4 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

And here I thought canonicalizing -D and -U options would be easy:
godbolt.org/z/3dKW9ro9G

17.02.2024 00:40 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

So apparently both file locking and named semaphores are just fundamentally broken in the Unix ecosystem.

apenwarr.ca/log/20101213
membarrier.wordpress.com/2020/07/16/t...

Also Android just doesn't implement named semaphores.

I just want simple, reliable, and portable cross process sync :(

10.02.2024 11:51 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

What would your preferred API be here? C doesn't have non-trivial output iterators, so having non-bounded APIs is always going to be an issue, while in C++ it's a nice way to allocate the correct size without double formatting.

Would be better if you couldn't pass a UB on overflow iterator though.

27.11.2023 00:41 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
3 floating shelves filled with My little pony plushies

3 floating shelves filled with My little pony plushies

Added some more plush display space.

30.10.2023 05:34 ๐Ÿ‘ 5 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

`poison`

20.10.2023 09:34 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Thanks. I was searching for other LLVM/compiler people and saw it.

20.09.2023 19:47 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Not just the LLVM dragon, it's a ponified version of the LLVM dragon I had commissioned.

20.09.2023 10:03 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 0