Jumping into cold water is always a shocking experience. Being able to calm yourself, acclimatise to the temperature of the water - before you attempt to swim is how you survive. A ton of people worldwide have just plunged into the icy water of working from home, and since I’ve been doing this for six years I have some advice from the good and the bad of what I learned over the time.
One thing that has always worried me with writing C samples in documentation for my single-header libraries is that you can’t be 100% sure that they will compile successfully. You can always extract them and run them, but you might change them and forget to re-test. Having this be automatic is so powerful. Rust has this feature built in to the ecosystem so that all code samples are testing automagically.
I’ve been working on my various C/C++ single header libraries some over the Christmas break, and while I already did an update on my work, I decided to leave json.h for its own post. C89 Support One requested thing over the years has been C89 support, and I was reluctant to do this mostly out of sheer laziness. I’d have to convert a bunch of comments over and remove my use of long long.
I’ve been working on my various C/C++ single header libraries some over the Christmas break, and I thought I’d just jot down the improvements I’ve made in a post. process.h -> subprocess.h I’ve had a long standing complaint that the name process.h conflicted with a Windows system header. I’ve decided (after a good three years of indecision mind you) to just rename the header and the entry points to subprocess.h instead.
In this post, we’ll improve our floating-point scalar evolution (fpscev) to do a better job at evaluating the range of some of the more complex intrinsics we analyze. This post is the latest in a series about my experimentations with floating-point scalar evolution, you really want to read them in order: An Experimental Floating-Point Scalar Evolution Using Floating-Point Scalar Evolution to Propagate Fast-Math Flags Using Floating-Point Scalar Evolution to Simplify Instructions The fpscev pass changes discussed in this post is available on github here.