Bakul Shah writes:
> > No. Evil interface change. #ifdef hell while programs try to
> > figure out OS differences.
> 
> How so?  This or a similar change is upward compatible in
> that the existing behavior is left unchanged and it gives you
> a way to replace the algorithm.

It requies that programmers know about evil localisms. It screws over
portability of source code.

> The basic issue is just what is the expected and (implicitly)
> promised behavior of random().

You believe one implied output. Another programmer believes another.
Only way out is to make the routine "honest".

> AFAIK all random(3) implementations in various versions of
> Unix come from Earl's original 4.2BSD implementation so in my
> view the _expected_ behavior is to see the _exact_ same
> sequence starting from a given seed.  This function is called
> "random()" but it is equivalent to a mathematical function
> which must provide the same sequence for the exact same
> input.

Maybe that is the greatgrandfather. The grandchildren speak with
different accents now. :-)

> You and a number of other people are saying that the exact
> sequence is *not* promised so you are free to change the
> algortithm as long as the statistical distribution is
> uniform.

Not quite. Close. You compile program on a machine with a
constant argument to srand[om](). Run the more than once,
and rand[om]() will give you the same sequence.

Another OS, another time, another version of libc, the sequence
will again be constant, but different from last time.

> Earl chose to name his new implementation random() [even
> though clearly he was replacing rand(3)] probably to not
> break any existing scripts.  In my view any further behavior
> change should either use a new name or make an upward
> compatible change.

You have said that before, and I understand your words.

I disagree with them.

> Now the question is whether perl uses system provided
> random() or rand() or its own since perl is used extensively
> in ASIC verification.

Different question. Ask the perl developers.

M
--
Mark Murray
iumop ap!sdn w,I idlaH

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to