On 04/12/2013, at 11:13 PM, srean wrote:
>
> Yes indeed. I was asking whether the only possible variation in runtime
> behavior of a compiled Felix code with identical input would be because of
> fthreads.
Well there are some other possibilities, such as using a random number
generator, or any other calls to things that could be a bit random,
such as sockets.
However your real question: there are some issue to be aware of,
because Felix inherits some of these issues from C++.
One is uninitialised values. You CAN write code that depends on
an uninitialised value, it isn't necessarily invalid, eg:
var x: utiny;
if x % 2ut == 0 do .. else .. done
Clearly that wold be non-deterministic. In C++ utiny is unsigned char.
Accessing an uninit unsigned char is unspecified, not undefined
behaviour.
OK, so there's one more issue here: an invalid assumption.
You say "compiled code" and you're thinking of a statically linked
executable. But Felix uses dynamic linkage by default, and it uses
plugins. The load addresses of these things can vary and the environment,
such as LD_LIBRARY_PATH can affect which ones are loaded as well.
To look at this another way: the question is really non-sense. Machine
code is machine code. It does "the same thing" every time, assuming
an identical environment. In fact this is a really major problem which
has lead to a special, though apparently untrustworthy, machine
instruction on x86_64 arches which returns a supposedly random
result. Unfortunately not what is really required which is a quantum
random number generator. Random values are needed for crypto.
--
john skaller
[email protected]
http://felix-lang.org
------------------------------------------------------------------------------
Sponsored by Intel(R) XDK
Develop, test and display web and hybrid apps with a single code base.
Download it for free now!
http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk
_______________________________________________
Felix-language mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/felix-language