Skip to content

fix: drop distinction between rand and random function in NEM#366

Open
samuelortion wants to merge 1 commit intolabgem:devfrom
samuelortion:dev
Open

fix: drop distinction between rand and random function in NEM#366
samuelortion wants to merge 1 commit intolabgem:devfrom
samuelortion:dev

Conversation

@samuelortion
Copy link

On gcc 15, using -std=c99 (as set in setup.py, for NEM c source compilation), the random function is not defined. (at least this is the case on Fedora 43).

According to stdlib.h file, both rand and random function uses the same generator in glibc implementation.

/* These are the functions that actually do things.  The `random\', `srandom',
   `initstate' and `setstate' functions are those from BSD Unices.
   The `rand' and `srand' functions are required by the ANSI standard.
   We provide both interfaces to the same random number generator.  */
 /* Return a random long integer between 0 and 2^31-1 inclusive. */

So I think we can simply drop the distinction between the two functions and use rand and srand everywhere, hence solving the compilation error with gcc on pip install on Fedora.

On gcc 15, using -std=c99 (as set in setup.py, for NEM c source compilation), the random function is not defined.
(at least this is the case on Fedora 43).

According to stdlib.h file, both rand and random function uses the same generator in glibc implementation.
> /* These are the functions that actually do things.  The `random\', `srandom',
>   `initstate' and `setstate' functions are those from BSD Unices.
>   The `rand' and `srand' functions are required by the ANSI standard.
>   We provide both interfaces to the same random number generator.  */
> /* Return a random long integer between 0 and 2^31-1 inclusive. */

So I think we can simply drop the distinction between the two functions and use rand and srand everywhere, hence solving the compilation error with gcc on pip install on Fedora
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant