Project

General

Profile

Feature #16827

C API for writing custom random number generator that can be used as Random objects

Added by mrkn (Kenta Murata) 2 months ago. Updated about 2 months ago.

Status:
Open
Priority:
Normal
Target version:
-
[ruby-core:98124]

Description

I want to write custom random number generators (RNGs) that can be used as an alternative to a Random object.
Now custom RNGs with #rand method can be used for that purpose, but there is the method call overhead in the current implementation because #rand method is called through rb_funcallv_public.
I want C API for writing RNGs because all of the random number generator algorithms I want to write are originally written in C.

Nobu already created a pull-request for such purpose.

Updated by matz (Yukihiro Matsumoto) about 2 months ago

Sounds OK. Go ahead.

Matz.

Updated by Eregon (Benoit Daloze) about 2 months ago

IMHO it's not nice to replace a nice Ruby-level API by a C API one.
Is there a benchmark of how much is it slower with rb_funcallv_public?

Also, will it still work when passing a custom object understanding rand?
If so, there are two ways to dispatch, doesn't seem nice either API-wise.

Also available in: Atom PDF