
Am Donnerstag, 16. April 2009 10:06 schrieb Patai Gergely:
unsafePerformIO is apparently never inlined, i.e. each instance is executed once, so sharing works as desired
But expressions that use unsafePerformIO might get inlined.
CSE is no problem either, it even helps if it's performed (and it is with optimisations turned on), since it results in smaller equivalent networks
What about evaluation time? If I remember correctly, the values of signals depend on the time when the signal expressions are evaluated. So evaluating them multiple times might lead to different behavior. Is this correct?
I think we can expect it to be fairly well-behaving, because the 'side effect' of Elerea primitives is basically the same as that of pure values in general: upon evaluation a value is created in the memory and we get a reference to it.
But in contrast to ordinary values, you have an internal mutable state, don’t you? Best wishes, Wolfgang