We are currently in the process of converting the website to the new design. Some pages, like this one, are still broken. We appreciate your patience.
Andrew Bromage —
One of the traits that I've noticed in some of the best people I've worked with is the ability to…
»
Abner Coimbre —
Handmade Hero has inspired people to take up a "Handmade" project; maybe even a game of their own.…
»
Andrew Bromage —
Also, string operations (the movs and stos family of instructions). Sorry, mmozeiko and Casey are…
»
people —
you're right about "__sync_synchonize", it outputs an mfence, I should have looked at the asm outp…
»
Franz —
I love rants, but this level of ignorance about Windows is just staggering. Here is some really in…
»
Livet Ersomen Strøm —
Your last rant about APIs at the end of episode 135 prompted me to write this post. In a nutshell…
»
Kim Jørgensen —
So we got two nasty bugs. I think we need to get an owl of shame emoji added to the forum chat :) …
»
people —
I think the "InterlockedCompareExchange" call in the "AtomicCompareExchangeUInt32" function has it…
»
Franz —
Hi Casey, Your last rant about APIs at the end of episode 135 prompted me to write this post. In a…
»
Kim Jørgensen —
I think I found the bug. In LoadBitmap starting a task can fail but the state is not reset if this…
»
Mārtiņš Možeiko —
Oh, hes bool variant is the wrong one. But __sync_val_compare_and_swap should work fine. _Interloc…
»
Kim Jørgensen —
Oops! I just realized that my implementation of AtomicCompareExchangeUInt32 is bogus. I shouldn't …
»
Kim Jørgensen —
Thank you for the answers. Casey are you willing to implement CompletePreviousWritesBeforeFutureWr…
»
Casey Muratori —
Just a quick note: you do not want sfence for write barriers on x64. x64's always complete writes…
»
Mārtiņš Možeiko —
Pseudonym73, are you sure? Wouldn't we see a lot of crashing software on AMD 64-bit CPU's if they …
»
Andrew Bromage —
In the first case, you want a store fence: In most Intel CPUs, writes are not reordered with othe…
»
Mārtiņš Možeiko —
It doesn't matter what version is Visual Studio. Afaik it is available only as 32-bit. If you use …
»
Devon —
I think this is the issue...I'm looking into it. I'm not sure if I somehow ended up with a 32bit v…
»
Mārtiņš Možeiko —
Are you compiling executable as 64-bit? If you compile executable as 32-bit, then even on 64-bit O…
»
Devon —
Hey all, I recently got started watching the Handmade Hero series. I've followed up to the point w…
»
Mārtiņš Možeiko —
I'm don't think there is better way for GCC to do just write barrier. Clang should support both of…
»
Kim Jørgensen —
In order to get HH compiling again I would like to have CompletePreviousWritesBeforeFutureWrites a…
»
Casey Muratori —
Yes, just to be clear, it's because it is in a struct with a pointer that I said it would be padde…
»
elle —
Oh, ok. Thanks. I should be doing something wrong then. I should've read the MSDN docs more carefu…
»
Mārtiņš Možeiko —
__m128 is 100% NOT supported in ARM. No SSE or AVX type is supported (__m128d, __m256, etc...) If …
»
elle —
Thank you for your clear answer about casts! :) Regarding simd in Swift: this week Apple started s…
»
Mārtiņš Možeiko —
Casey is writing code assuming that on Windows it will be compiled with MSVC. Compiling with gcc w…
»
Mārtiņš Možeiko —
Oh for Swift. Afaik Swift doesn't support simd/neon intrinsic stuff. It needs to be in compiler/la…
»
elle —
I meant SIMD support in Swift specifically. I already implemented the functions in C before, but w…
»
Connor —
I was wondering if anyone knew how to compile with g++. The visual studio compiler doesn't work fo…
»