On Monday, 8 April 2013 at 15:07:31 UTC, Jacob Carlborg wrote:
On 2013-04-08 14:52, Iain Buclaw wrote:
On 8 April 2013 13:25, Jacob Carlborg <[email protected]
<mailto:[email protected]>>
wrote:
On 2013-04-08 10:29, Iain Buclaw wrote:
This information could possibly be helpful. Though
given that
most of
(gdc) codegen is on par with g++, there's probably not
much on
the list
that isn't already detected by the backend optimisation
passes.
Multiple calls to pure functions could be cached.
--
/Jacob Carlborg
Not always, but in some circumstances, yes.
---
struct Foo
{
int a = 0;
pure int bar (immutable int x)
{
++a;
return x * 2;
}
}
void main()
{
Foo f;
int i = f.bar(2) + f.bar(2);
assert (i == 8);
assert (f.a == 2);
}
I though that wasn't possible. What's the point of pure if
that's possible?
You have to think that this is an hidden parameter. The function
touch that parameter, no global state.