diff options
author | PhiLho <PhiLho@GMX.net> | 2010-05-21 16:03:21 +0200 |
---|---|---|
committer | PhiLho <PhiLho@GMX.net> | 2010-05-21 16:03:21 +0200 |
commit | 286e5958d662038fdc852861ecd07c89256495ab (patch) | |
tree | cea500e695b874f47358602c6433955963a9a7bc /doc/effects.txt | |
parent | 227b76c34259cf406131d27fb8e0cc88530e38f7 (diff) | |
download | Nim-286e5958d662038fdc852861ecd07c89256495ab.tar.gz |
Integrating my changes, mostly minor/cosmetic fixes; plus a big Windows lib update
Diffstat (limited to 'doc/effects.txt')
-rwxr-xr-x | doc/effects.txt | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/doc/effects.txt b/doc/effects.txt index 85de1ffdf..8084ae17a 100755 --- a/doc/effects.txt +++ b/doc/effects.txt @@ -9,7 +9,7 @@ explicit like in Haskell? The idea is that side effects and partial evaluation belong together: Iff a proc is side effect free and all its argument are evaluable at compile time, it can be evaluated by the compiler. However, really -difficult is the ``newString`` proc: If it is simply wrapped, it +difficult is the ``newString`` proc: If it is simply wrapped, it should not be evaluated at compile time! On other occasions it can and should be evaluted: @@ -20,22 +20,22 @@ and should be evaluted: result[i] = toUpper(s[i]) No, it really can always be evaluated. The code generator should transform -``s = "\0\0\0..."`` back into ``s = newString(...)``. +``s = "\0\0\0..."`` back into ``s = newString(...)``. -``new`` cannot be evaluated at compile time either. +``new`` cannot be evaluated at compile time either. Raise statement =============== -It is impractical to consider ``raise`` a statement with side effects. +It is impractical to consider ``raise`` as a statement with side effects. Solution ======== Being side effect free does not suffice for compile time evaluation. However, -the evaluator can attempt to evaluate at compile time. +the evaluator can attempt to evaluate at compile time. |