summaryrefslogtreecommitdiff
path: root/random.c
AgeCommit message (Collapse)Author
2022-01-13[DOC] Mark up the code for Kernel#rand as the same as Random#randNobuyoshi Nakada
2022-01-01Remove deprecated Random::DEFAULT [Feature #17351]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/5382
2021-12-20[DOC] Add documentation for Random.rand and Random.seedChris AtLee
Notes: Merged: https://github.com/ruby/ruby/pull/5098
2021-12-16[DOC] random number by rangeNobuyoshi Nakada
2021-12-13[DOC] Add call sequences of Random using a rangeNobuyoshi Nakada
2021-12-13[DOC] Improve Random::Formatter description and exampleNobuyoshi Nakada
2021-12-10Fix stack buffer overflowNobuyoshi Nakada
https://hackerone.com/reports/1306859 Notes: Merged: https://github.com/ruby/ruby/pull/5239
2021-11-06Check the reading size rangeNobuyoshi Nakada
2021-10-27random.c: simplify Random object deallocationKazuki Yamaguchi
This is a follow-up for commit 265c0022390e ("Do not allocate ractor-local storage in dfree function during GC", 2021-02-09). The comparison with the default rb_random_mt_t is useless in the first place, since it is never equal: no actual Random object is associated with it. [Bug #17653] https://bugs.ruby-lang.org/issues/17653 Notes: Merged: https://github.com/ruby/ruby/pull/4224
2021-10-02[Win32] Prefer Cryptography Next Generation APINobuyoshi Nakada
[BCryptGenRandom] is available since Windows Vista / Windows Server 2008. Regarding [CryptGenRandom]: > This API is deprecated. New and existing software should start > using Cryptography Next Generation APIs. Microsoft may remove > this API in future releases. [BCryptGenRandom]: https://docs.microsoft.com/en-us/windows/win32/api/bcrypt/nf-bcrypt-bcryptgenrandom [CryptGenRandom]: https://docs.microsoft.com/en-us/windows/win32/api/wincrypt/nf-wincrypt-cryptgenrandom Notes: Merged: https://github.com/ruby/ruby/pull/4924
2021-09-24HCRYPTPROV is not a HANDLENobuyoshi Nakada
Even though it is called "handle" and prefixed with "H", and its value looks like a handle.
2021-09-12Using RB_FLOAT_TYPE_P macroS-H-GAMELINKS
Notes: Merged: https://github.com/ruby/ruby/pull/4821
2021-08-27Use C99-defined macros to classify a floating-point numberNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/4783
2021-08-24netbsd coroutine uses assembly instead and little build fix.David Carlier
Notes: Merged: https://github.com/ruby/ruby/pull/4762
2021-06-24rand_bytes: prefer rng->get_bytes卜部昌平
Because why not. There was no use case of rng->get_bytes before this changeset. Notes: Merged: https://github.com/ruby/ruby/pull/4602
2021-05-04Fix compilation errors in FreeBSDPeter Zhu
__FreeBSD_version is defined in sys/param.h. Notes: Merged: https://github.com/ruby/ruby/pull/4457
2021-05-04Fix -Wundef warnings for patterns `#if HAVE`Benoit Daloze
* See [Feature #17752] * Using this to detect them: git grep -P 'if\s+HAVE' | grep -Pv 'HAVE_LONG_LONG|/ChangeLog|HAVE_TYPEOF' Notes: Merged: https://github.com/ruby/ruby/pull/4428
2021-03-19Include CommonCrypto/CommonCryptoError.h for old XcodeNobuyoshi Nakada
2021-03-19Use CommonRandom if availableNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/4289
2021-03-04Fixed syntax error with gcc on macOSNobuyoshi Nakada
Security/Authorization.h defines AuthorizationExternalForm by using clang extension which allows variably modified types in a file scope. As we just need high-level accessors only, include Security/SecRandom.h instead.
2021-02-09Do not allocate ractor-local storage in dfree function during GCNobuyoshi Nakada
2021-01-18OpenBSD has getentropy, but no sys/random.hKazuhiro NISHIYAMA
https://man.openbsd.org/getentropy Try to fix https://rubyci.s3.amazonaws.com/openbsd-current/ruby-master/log/20210118T023008Z.fail.html.gz ``` compiling random.c random.c:53:11: fatal error: 'sys/random.h' file not found # include <sys/random.h> ^~~~~~~~~~~~~~ 1 error generated. ```
2021-01-17random generator update for Mac proposalDavid CARLIER
using getentropy for seeding, reading 256 bytes at a time to avoid the EIO errno since this is the maximum. Notes: Merged: https://github.com/ruby/ruby/pull/4081
2021-01-17Include missing AvailabilityMacros.hNobuyoshi Nakada
2021-01-10Remove possibility of using same seedsNobuyoshi Nakada
2020-12-21Random instance methodszverok
Notes: Merged: https://github.com/ruby/ruby/pull/3966
2020-12-14Deprecate Random::DEFAULTBenoit Daloze
* Closes [Feature #17351].
2020-12-14Remove references to Random::DEFAULT in the documentationBenoit Daloze
* Random::DEFAULT is no longer a Random instance, and referencing it is more confusing than helpful. Related to [Feature #17351]
2020-12-01ractor local storage C-APIKoichi Sasada
To manage ractor-local data for C extension, the following APIs are defined. * rb_ractor_local_storage_value_newkey * rb_ractor_local_storage_value * rb_ractor_local_storage_value_set * rb_ractor_local_storage_ptr_newkey * rb_ractor_local_storage_ptr * rb_ractor_local_storage_ptr_set At first, you need to create a key of storage by rb_ractor_local_(value|ptr)_newkey(). For ptr storage, it accepts the type of storage, how to mark and how to free with ractor's lifetime. rb_ractor_local_storage_value/set are used to access a VALUE and rb_ractor_local_storage_ptr/set are used to access a pointer. random.c uses this API. Notes: Merged: https://github.com/ruby/ruby/pull/3822
2020-11-27Use opaque struct pointer than voidNobuyoshi Nakada
2020-11-27mark default_randKoichi Sasada
default_rand can points a Bignum seed, so it should be marked.
2020-11-27per-ractor Random::DEFAULTKoichi Sasada
Random generators are not Ractor-safe, so we need to prepare per-ractor default random genearators. This patch set `Random::DEFAULT = Randm` (not a Random instance, but the Random class) and singleton methods like `Random.rand()` use a per-ractor random generator. [Feature #17322] Notes: Merged: https://github.com/ruby/ruby/pull/3813
2020-11-27[DOC] Mersenne Twister isn't cryptographically secure [ci skip]Nobuyoshi Nakada
2020-10-09rb_const_set sets the class path nowNobuyoshi Nakada
2020-09-07Added `rb_random_base_init`Nobuyoshi Nakada
To enclose the initialization of Random::Base part. Notes: Merged: https://github.com/ruby/ruby/pull/3024
2020-09-07Added WITH_REAL macrosNobuyoshi Nakada
Added `WITH_REAL` versions to `RB_RANDOM_INTERFACE` macros. Also these macros including "without real" versions no longer contain the terminator (semicolon and comma). Notes: Merged: https://github.com/ruby/ruby/pull/3024
2020-09-07Added `get_real` interfaceNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3024
2020-09-07Added rb_int_pair_to_realNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3024
2020-09-07separate rb_random_tNobuyoshi Nakada
* random.c: separate abstract rb_random_t and rb_random_mt_t for Mersenne Twister implementation. * include/ruby/random.h: the interface for extensions of Random class. * DLL imported symbol reference is not constant on Windows. * check if properly initialized. Notes: Merged: https://github.com/ruby/ruby/pull/3024
2020-09-07Random::BaseNobuyoshi Nakada
* random.c (InitVM_Random): introduce abstract super class Random::Base. Notes: Merged: https://github.com/ruby/ruby/pull/3024
2020-08-15RARRAY_AREF: convert into an inline function卜部昌平
RARRAY_AREF has been a macro for reasons. We might not be able to change that for public APIs, but why not relax the situation internally to make it an inline function. Notes: Merged: https://github.com/ruby/ruby/pull/3419
2020-06-29rand_range: do not goto into a branch卜部昌平
I'm not necessarily against every goto in general, but jumping into a branch is definitely a bad idea. Better refactor. Notes: Merged: https://github.com/ruby/ruby/pull/3247
2020-05-11sed -i 's|ruby/impl|ruby/internal|'卜部昌平
To fix build failures. Notes: Merged: https://github.com/ruby/ruby/pull/3079
2020-05-11sed -i s|ruby/3|ruby/impl|g卜部昌平
This shall fix compile errors. Notes: Merged: https://github.com/ruby/ruby/pull/3079
2020-05-04Fixed constant initializerNobuyoshi Nakada
An expression using `static const` value seems not considered as `static const` by Visual C.
2020-05-04Make int-pair-to-real conversion more portableNobuyoshi Nakada
And utilize more bits even if DBL_MANT_DIG > 53.
2020-04-08Disable deprecation error on mingwNobuyoshi Nakada
2020-04-08Merge pull request #2991 from shyouhei/ruby.h卜部昌平
Split ruby.h Notes: Merged-By: shyouhei <shyouhei@ruby-lang.org>
2020-01-10Ensure seed data to be clearedNobuyoshi Nakada
To prevent from leaking the seed data. Notes: Merged: https://github.com/ruby/ruby/pull/2826
2020-01-10Fill siphash salt directly with random dataNobuyoshi Nakada
Expanding less random data with MT is not needed when it succeeded. Notes: Merged: https://github.com/ruby/ruby/pull/2826