[dmd-internals] [D-Programming-Language/dmd] a00f2a: CTFE: don't rvalue interpret ref slice assign
noreply at github.com
noreply at github.com
Tue May 17 19:33:50 PDT 2011
Branch: refs/heads/master
Home: https://github.com/D-Programming-Language/dmd
Commit: a00f2a9bf6943c62079490354c5ab9b1ee311da2
https://github.com/D-Programming-Language/dmd/commit/a00f2a9bf6943c62079490354c5ab9b1ee311da2
Author: Don Clugston <dclugston at googlemail.com>
Date: 2011-05-16 (Mon, 16 May 2011)
Changed paths:
M src/interpret.c
Log Message:
-----------
CTFE: don't rvalue interpret ref slice assign
a[] = b[] shouldn't do an rvalue interpret if the array contents are references.
This fixes a wrong-code bug.
Commit: d1c758a78f172bd420531356f1a55e1861689f00
https://github.com/D-Programming-Language/dmd/commit/d1c758a78f172bd420531356f1a55e1861689f00
Author: Don Clugston <dclugston at googlemail.com>
Date: 2011-05-16 (Mon, 16 May 2011)
Changed paths:
M src/interpret.c
Log Message:
-----------
CTFE: remove special cases in reference assignment
Fixes some bugs involving reference assignment, and dramatically simplifies the
code.
Commit: b910eb2114f1e9bb0e0ed9f3a2d9235516e89a53
https://github.com/D-Programming-Language/dmd/commit/b910eb2114f1e9bb0e0ed9f3a2d9235516e89a53
Author: Don Clugston <dclugston at googlemail.com>
Date: 2011-05-16 (Mon, 16 May 2011)
Changed paths:
M test/compilable/interpret3.d
Log Message:
-----------
CTFE: tests for 6015 + string ref assignment
Commit: 0bcc15502a34d2bdd2705142c4b0506e5a182f6f
https://github.com/D-Programming-Language/dmd/commit/0bcc15502a34d2bdd2705142c4b0506e5a182f6f
Author: Don Clugston <dclugston at googlemail.com>
Date: 2011-05-17 (Tue, 17 May 2011)
Changed paths:
M src/interpret.c
Log Message:
-----------
CTFE refactor: dotvar assignment
Combine ref + non-ref dotvar assignment. Now dotvar assignment is no longer
treated as a special case.
Commit: 3bcaf85ed7aa480da34fba5a1fe0d00bc8f7abf5
https://github.com/D-Programming-Language/dmd/commit/3bcaf85ed7aa480da34fba5a1fe0d00bc8f7abf5
Author: Don Clugston <dclugston at googlemail.com>
Date: 2011-05-17 (Tue, 17 May 2011)
Changed paths:
M src/interpret.c
Log Message:
-----------
6001 CTFE: ICE(interpret.c): mutating ref array
References of references weren't treated properly. This commit also tightens
the invariants about what a variable is allowed to contain.
Commit: 4977b4a69e1d4eb95dbd225be86eb48b4eb2dbd6
https://github.com/D-Programming-Language/dmd/commit/4977b4a69e1d4eb95dbd225be86eb48b4eb2dbd6
Author: Don Clugston <dclugston at googlemail.com>
Date: 2011-05-17 (Tue, 17 May 2011)
Changed paths:
M src/interpret.c
Log Message:
-----------
CTFE: Optimize indexing of sliced array variables
Any expression of the form v[n], where v is a dynamic array containing a slice
of another array, can be transformed from arr[a..b][n] into arr[a+n], avoiding
creation of a useless temporary array.
This saves more than 400 array duplications in compiling Phobos unittests.
Commit: a316552c8f22d1865eeee10887def3c1cb2460bf
https://github.com/D-Programming-Language/dmd/commit/a316552c8f22d1865eeee10887def3c1cb2460bf
Author: Don Clugston <dclugston at googlemail.com>
Date: 2011-05-17 (Tue, 17 May 2011)
Changed paths:
M src/interpret.c
Log Message:
-----------
4910 [CTFE] Cannot evaluate a function that has failed at once
A failure to interpret the parameters (including 'this') shouldn't mark the
function as 'cantInterpret'.
Commit: 23cd285626e315d2435802d1ff527e0015381c61
https://github.com/D-Programming-Language/dmd/commit/23cd285626e315d2435802d1ff527e0015381c61
Author: Don Clugston <dclugston at googlemail.com>
Date: 2011-05-17 (Tue, 17 May 2011)
Changed paths:
M test/compilable/interpret3.d
Log Message:
-----------
Test cases for 4910 5845 6001
Commit: f7627f6a4e871c6431a156408ee95414317bd538
https://github.com/D-Programming-Language/dmd/commit/f7627f6a4e871c6431a156408ee95414317bd538
Author: Don Clugston <dclugston at googlemail.com>
Date: 2011-05-17 (Tue, 17 May 2011)
Changed paths:
M src/interpret.c
Log Message:
-----------
CTFE: one extra case of bug 4910
Passing a non-var as a ref parameter shouldn't invalidate later calls.
Commit: 420986904258abe285470931e3f3e5fbd8890a1b
https://github.com/D-Programming-Language/dmd/commit/420986904258abe285470931e3f3e5fbd8890a1b
Author: Don Clugston <dclugston at googlemail.com>
Date: 2011-05-17 (Tue, 17 May 2011)
Changed paths:
M src/constfold.c
Log Message:
-----------
CTFE: Massive speedup for array indexing
It's slow because it checks for side effects on EVERY element of the array --
turning every array indexing into an O(n) operation.
This is silly. It should only check for side effects on the element which is
returned. This simple change speeds up the test case in bug 1392 comment 7
from 55 seconds to 2 seconds.
Commit: 3888ff0df5e72aa8f62507704b4e4dcd5d9921c5
https://github.com/D-Programming-Language/dmd/commit/3888ff0df5e72aa8f62507704b4e4dcd5d9921c5
Author: Walter Bright <walter at walterbright.com>
Date: 2011-05-17 (Tue, 17 May 2011)
Changed paths:
M src/constfold.c
M src/interpret.c
M test/compilable/interpret3.d
Log Message:
-----------
Merge pull request #69 from donc/ctfe5966
CTFE ref parameters and struct literals
Compare: https://github.com/D-Programming-Language/dmd/compare/587fa66...3888ff0
More information about the dmd-internals
mailing list