home bbs files messages ]

Just a sample of the Echomail archive

COMPLANC:

<< oldest | < older | list | newer > | newest >> ]

 Message 242,937 of 243,097 
 Keith Thompson to Michael Sanders 
 Re: srand(0) 
 09 Jan 26 17:09:47 
 
From: Keith.S.Thompson+u@gmail.com

Michael Sanders  writes:
> On Thu, 08 Jan 2026 22:46:42 -0800, Keith Thompson wrote:
>> But your original statement implied that clang would *use* that
>> particular piece of code, which didn't make much sense.  Were you
>> just asking about how the __OpenBSD__ macro is defined, without
>> reference to srand?
>
> Well, under OpenBSD I plan on using:
>
> #ifdef __OpenBSD__
>     srand_deterministic(seed);
> #else
>     srand(seed);
> #endif
>
> But what I was asking is whether or not gcc would recognize
> the __OpenBSD__ macro (why wouldn't I'm assuming) since clang
> is the default compiler.

OK.

Do you understand that your original question was unclear?

You said that "clang would use" the quoted 5-line code snippet,
and asked whether "gcc does as well".  It's not clang or gcc that
would use that code.  It would be used by a programmer writing code
to be compiled with clang or gcc.

I understand now what you meant.  I'd like to be sure that you
understand the problem with the question as you originally wrote it.

I have clang 19.1.7 and gcc 13.2.0 installed on OpenBSD 7.8, and
both predefine the macro __OpenBSD__.

> But also about srand()... you've got me really wondering why
> OpenBSD would deviate from the standard as they have. I get
> that the those folks disagree because its deterministic, but
> its the accepted standard to be deterministic with srand().
>
> Only speaking for myself here, rather than srand_deterministic()
> and srand() (that's not deterministic under OpenBSD) it
> would've made more sense to've implemented srand_non_deterministic()
> and left srand() alone. That design decision on their part only
> muddies the waters in my thinking. Live & learn =)

I don't know why they made that decision.  It was clearly deliberate.
I agree that adding an srand_non_deterministic() function would
have been better.

--
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */

--- SoupGate-Win32 v1.05
 * Origin: you cannot sedate... all the things you hate (1:229/2)

<< oldest | < older | list | newer > | newest >> ]


(c) 1994,  bbs@darkrealms.ca