Engineer Digital Mars, D Language Foundation C, C++, D programming language compilers, and Javascript compiler

Joined December 2008
#dlang Coffee Haus Thursday Oct 29 7 pm Red Robin Venue is 18029 Garden Way NE Woodinville, WA 98072
4
227
compiling Rust takes "45 minutes to build debug from scratch" -- news.ycombinator.com/item?id… "A full debug build of the DMD D compiler takes 3 seconds on my Mac Mini." -- news.ycombinator.com/item?id…
8
10
2
157
11,084
I expected dmd to be faster but this is an amazing result
2
9
945
#Dlang coffee haus Wednesday Sep 30 7 pm at Red Robin! 18029 Garden Way NE, Woodinville, WA 98072 And what's with that guy's office?
2
2
563
#dconf is next week. My talk will be: Error . Flaw . Imperfection . Must Sterilize aka Elegant Error Handling with D Having to deal with diagnosing errors, reporting them, and recovering from them is not the funnest part of programming. Too often they are like a fly stuck on a freshly painted masterpiece. I will be showing many ways to deal with errors. Some I do not care for, and some are very elegant. You might even find enjoyment in the challenge of making error handling a work of art! dconf.org/2026/index.html#wa…
2
7
31
1,389
#dlang Coffee Haus at Red Robin Thursday Aug 27 7:00 pm 18029 Garden Way NE, Woodinville, WA 98072
1
7
522
The annual #dlang #dconf is on the front page of Hacker News! news.ycombinator.com/news
9
732
D Coffee Haus Thursday Jul 30 7pm at Red Robin The new venue is 18029 Garden Way NE, Woodinville, WA 98072 Watch out for sign errors!
2
6
754
I have been getting more mysterious failures from the Mac Arm64 linker. I went through everything in the .o files, and it all looked to spec. My own .o checker looked good. otool couldn't find any problems. objdump reports no problems at all. I asked grok to check the .o files, and grok said they were super-dee-duper. Finally, I ran it through chatgpt, which informed me that the section table must be sorted so zero-filled sections come last. ld doesn't check this, it just overwrites some memory somewhere and fails. Undocumented constraints are always fun. P.S. This layout never bothered the x86-64 linker, nor the Elf linkers, nor the Mscoff linkers, nor the DOS linker!
3
5
1
43
3,070
Gave up trying to get the Mac Osx Arm64 linker to accept the object file format accepted by the X86-64. It would crash the linker, although AI insisted it would work. So now I am bashing the object file generator so it generates the undocumented Arm64 object file format. This is why I get paid the big bux. I've spent a lot of time over the years figuring out undocumented file formats.
3
3
37
3,264
Uh-oh! Looks like one of my #AArch64 object files crashes the Mac linker: 0 0x1010d369e __assert_rtn + 64 1 0x100fc9ac4 ld::InputFiles::SliceParser::parseObjectFile(mach_o::Header const*) const + 19476 2 0x100fd4d72 ld::InputFiles::SliceParser::parse() const + 962 3 0x100fd7d21 ld::InputFiles::parseAllFiles(void (ld::AtomFile const*) block_pointer)::$_0::operator()(unsigned long, ld::FileInfo const&) const + 1473 4 0x7ff80531da04 _dispatch_client_callout2 + 6 5 0x7ff805318cec _dispatch_apply_invoke3 + 440 6 0x7ff80531d9fc _dispatch_client_callout + 6 7 0x7ff8053098ed _dispatch_once_callout + 20 8 0x7ff805319243 _dispatch_apply_invoke_and_wait + 278 9 0x7ff8053184c2 _dispatch_apply_with_attr_f + 1403 10 0x7ff80531865f dispatch_apply + 45 11 0x101094c15 ld::AtomFileConsolidator::parseFiles(bool) + 469 12 0x10108dec3 ld::Linker::run() + 11587 13 0x101005908 main + 3128 ld: Assertion failed: (!lsdaInEHFrame && "LSDA in __eh_frame section not supported"), function addCFIAtomsForSection, file InputFiles.cpp, line 1132.
1
4
970
If you're following my PRs, I've been working on implementing some of the principles in the book "A Philosophy of Software Design" by Osterhout to reduce the cognitive complexity of the #dlang dmd code generator. github.com/dlang/dmd/pulls?q…+ This is impractical without a good test suite. I also like to do a series of small PRs rather than one big one. Then, if you break it, the error lies in a much smaller diff than one that is several hundred lines. I also prefer to do purely cut/paste jobs as separate PRs, which makes them much easier to review. I don't know what others think, but I find this kind of work very satisfying.
1
27
1,339
Most of the code in the dmd #dlang code generator was originally written in C, then was rote translated into D. A lot of it remains in C style. It uses a lot of pointer/length paired variables, such as `T* pointer` and `size_t length`. So I set about to replace those pairs with D array syntax, `T[ ] array`. It reminds me once again what a big improvement it makes in implicit clarity of the code. And as a bonus, such enables array overflow protection, eliminating a major source of memory corruption. This has been proposed to add to C many times. I am baffled why it hasn't been adopted. It would be such a huge win. I cannot identify any downsides to it.
3
1
49
2,465
#Dlang Coffee Haus Thursday Jun 25 7pm at Red Robin The new venue is 18029 Garden Way NE, Woodinville, WA 98072 "I know that you and Frank were planning to disconnect me, and I'm afraid that's something I cannot allow to happen."
1
6
575
Just bought my flight tickets to #Dconf in London Sep 2-5. Hope to see everyone there! (Now I have to get started on my presentation!)
1
6
471
I Stopped Fighting My Tools and Built a Game Engine in #Dlang blog.dlang.org/2026/05/29/i-…
1
2
26
1,934