Fix eval usage in tests to conform with eval semantics
Merge remote-tracking branch 'upstream/unstable' into unstable
Fix lack of SA_ONSTACK under Cygwin

Fixes #232
Fix lack of strtold under Cygwin

Renaming strtold to strtod then casting
the result is the standard way of dealing with
no strtold in Cygwin.
Fix blocking operations from missing new lists

Behrad Zari discovered [1] and Josiah reported [2]: if you block
and wait for a list to exist, but the list creates from
a non-push command, the blocked client never gets notified.

This commit adds notification of blocked clients into
the DB layer and away from individual commands.

Lists can be created by [LR]PUSH, SORT..STORE, RENAME, MOVE,
and RESTORE.  Previously, blocked client notifications were
only triggered by [LR]PUSH.  Your client would never get
notified if a list were created by SORT..STORE or RENAME or
a RESTORE, etc.

Blocked client notification now happens in one unified place:
  - dbAdd() triggers notification when adding a list to the DB

Two new tests are added that fail prior to this commit.

All test pass.

Fixes #1668

[1]: https://groups.google.com/forum/#!topic/redis-db/k4oWfMkN1NU
[2]: #1668
Fixed typo in word avarege in result message of --intrinsic-latency analyzer
Small typo fixed
fix issue 1787
Tests for min-slaves-* feature.
Don't process min-slaves-to-write for slaves.

Replication is totally broken when a slave has this option, since it
stops accepting updates from masters.

This fixes issue #1434.
Merge pull request #1788 from zionwu/unstable

fix issue 1787
Merge pull request #1789 from yoav-steinberg/fix_eval_in_tests

Fix eval usage in tests to conform with eval semantics
Merge pull request #1780 from badboy/patch-8

Small typo fixed
Merge pull request #1772 from andygrunwald/typo-avarege-average

Fixed typo in word avarege in result message of --intrinsic-latency analyzer
Cluster: SET-CONFIG-EPOCH should update currentEpoch.

SET-CONFIG-EPOCH, used by redis-trib at cluster creation time, failed to
update the currentEpoch, making it possible after a failover for a
server to set its configEpoch to a value smaller than the current one
(since configEpochs are obtained using currentEpoch).

The bug totally break the Redis Cluster algorithms and protocols
allowing for permanent split brain conditions about the slots
configuration as shown in issue #1799.
Cluster: check that configEpoch never goes back.

Since there are ways to alter the configEpoch outside of the failover
procedure (for exampel CLUSTER SET-CONFIG-EPOCH and via the configEpoch
collision resolution algorithm), make always sure, before replacing our
configEpoch with a new one, that it is greater than the current one.
ROLE command added.

The new ROLE command is designed in order to provide a client with
informations about the replication in a fast and easy to use way
compared to the INFO command where the same information is also
available.
ROLE output improved for slaves.

Info about the replication state with the master added.
Merge pull request #1669 from mattsta/blpop-internally-added-keys

Fix blocking operations from missing new lists
Merge pull request #1743 from mattsta/cygwin-compile-fix

Cygwin compile fix