Algorithm-ConsistentHash-JumpHash
view release on metacpan or search on metacpan
JumpHash.xs view on Meta::CPAN
MODULE = Algorithm::ConsistentHash::JumpHash PACKAGE = Algorithm::ConsistentHash::JumpHash
PROTOTYPES: DISABLE
int32_t
jumphash_numeric(uint64_t key, int32_t num_buckets)
CODE:
RETVAL = JumpConsistentHash(key, num_buckets);
OUTPUT: RETVAL
int32_t
jumphash_siphash(SV *str, uint64_t num_buckets)
CODE:
{
STRLEN len;
/* FIXME */
const char * strval = SvPVbyte(str, len);
const uint64_t hashval = siphash_2_4_from_perl(strval, len);
RETVAL = JumpConsistentHash(hashval, num_buckets);
}
OUTPUT: RETVAL
PTR2ul|5.007001||p
PTRV|5.006000||p
PUSHMARK|||
PUSH_MULTICALL||5.019003|
PUSHi|||
PUSHmortal|5.009002||p
PUSHn|||
PUSHp|||
PUSHs|||
PUSHu|5.004000||p
PUTBACK|||
PadARRAY||5.019003|
PadMAX||5.019003|
PadlistARRAY||5.019003|
PadlistMAX||5.019003|
PadlistNAMESARRAY||5.019003|
PadlistNAMESMAX||5.019003|
PadlistNAMES||5.019003|
PadlistREFCNT||5.017004|
PadnameIsOUR|||
PadnameIsSTATE|||
{
dSP;
SV* sv = newSVpv(p, 0);
PUSHMARK(sp);
eval_sv(sv, G_SCALAR);
SvREFCNT_dec(sv);
SPAGAIN;
sv = POPs;
PUTBACK;
if (croak_on_error && SvTRUE(GvSV(errgv)))
croak(SvPVx(GvSV(errgv), na));
return sv;
}
#endif
#endif
( run in 0.326 second using v1.01-cache-2.11-cpan-4e96b696675 )