May 17, 2011 [dmd-internals] [D-Programming-Language/dmd] a00f2a: CTFE: don't rvalue interpret ref slice assign | ||||
---|---|---|---|---|
| ||||
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 |
Copyright © 1999-2021 by the D Language Foundation