Not sure what they're going to do regarding fork, but they say this at the end of the gist:
TODO
Snapshotting (Fork and Write) is not perfect, right now we simply block requests while memory is dumped on disk. We are working on a solution that will give us better performance. An update will be released soon.
I wonder if they contacted Redis author before starting to work on this. You know, with the patch so big and radical, there's a possibility he doesn't even want to accept it.
What then, all this effort for basically nothing except a fork, which you then have to continue maintaining etc.
I wouldn't expect anyone to accept the patch in this state, but I hope that the "who cares about Windows" attitude dies and a dialog to get proper support into redis is started.
It's a shame that we're using an unofficial version on that platform right now.
You don't have to have a "who cares about Windows?" attitude to write programs that don't work on Windows; all you have to have is a "want to make the best use of Unix" attitude.
I would imagine they have activated "Compile as C++" for certain files. VC++ doesn't support C99, and it's probably easier to fix up any C++ incompatibilities than try to C89-ize everything.
I wouldn't so much call it "bad form" as just non-idiomatic. It doesn't really have big downsides in practice.
It's mostly a habit people pick up from C++ (where it's mandatory due to stricter typing), and if you want to build C code with a C++ compiler, you need to add the casts.
Given Microsoft's C++ fetish, I'm unsurprised by this.
I suppose one downside would be if you cast a voidptr to a pointer to (an element that has a different size), then calling operator++ moves it by more than if you had left it as a voidptr.
Does Redis still do that thing where it forks and the child writes its core to disk? How does that work under Windows, which doesn't have fork?
Finally, this is one big patch:
With many of the changes along the lines of: or Eliminating compiler warnings is nice and whatever, but probably not the best thing to include in your "add major feature" patch.