digitalmars.D.learn - DMD2, Phobos: striding range
- Mihail Strashun (9/17) Mar 08 2010 Following simple program fails to compile with latest DMD 2.041 (In fact...
- Lars T. Kyllingstad (4/27) Mar 08 2010 It's definitely a bug. I've reported it:
- Mihail Strashun (2/34) Mar 08 2010
- Philippe Sigaud (7/9) Mar 08 2010 std.range use ref everywhere. I had to comment them out to get any
- Mihail Strashun (6/23) Mar 26 2010 Hm, changing "ref" on lines 716 and 724 to "auto ref" changes nothing.
- Philippe Sigaud (3/8) Mar 26 2010 Then we both do not understand what auto ref functions can do. Or maybe ...
Following simple program fails to compile with latest DMD 2.041 (In fact it fails to compile with any dmd2 version i have tried): "test.d"import std.stdio; import std.range; import std.algorithm; int main() { auto test = stride( iota(0,10,1) , 2 ); return 0; }Output: [mist mistwork d]$ dmd -run test.d /usr/include/d/std/range.d(716): Error: this._input.front() is not an lvalue /usr/include/d/std/range.d(724): Error: this._input.back() is not an lvalue Is it a bug? I managed to get stride working only on arrays. If it is the supposed way to work, how can be similar filtering done on ranges?
Mar 08 2010
Mihail Strashun wrote:Following simple program fails to compile with latest DMD 2.041 (In fact it fails to compile with any dmd2 version i have tried): "test.d" > import std.stdio; > import std.range; > import std.algorithm; > > int main() > { > auto test = stride( iota(0,10,1) , 2 ); > return 0; > } Output: [mist mistwork d]$ dmd -run test.d /usr/include/d/std/range.d(716): Error: this._input.front() is not an lvalue /usr/include/d/std/range.d(724): Error: this._input.back() is not an lvalue Is it a bug? I managed to get stride working only on arrays. If it is the supposed way to work, how can be similar filtering done on ranges?It's definitely a bug. I've reported it: http://d.puremagic.com/issues/show_bug.cgi?id=3894 -Lars
Mar 08 2010
Thanks! Lars T. Kyllingstad wrote:Mihail Strashun wrote:Following simple program fails to compile with latest DMD 2.041 (In fact it fails to compile with any dmd2 version i have tried): "test.d" > import std.stdio; > import std.range; > import std.algorithm; > > int main() > { > auto test = stride( iota(0,10,1) , 2 ); > return 0; > } Output: [mist mistwork d]$ dmd -run test.d /usr/include/d/std/range.d(716): Error: this._input.front() is not an lvalue /usr/include/d/std/range.d(724): Error: this._input.back() is not an lvalue Is it a bug? I managed to get stride working only on arrays. If it is the supposed way to work, how can be similar filtering done on ranges?It's definitely a bug. I've reported it: http://d.puremagic.com/issues/show_bug.cgi?id=3894 -Lars
Mar 08 2010
On Mon, Mar 8, 2010 at 13:00, Lars T. Kyllingstad <public kyllingen.nospamnet> wrote:It's definitely a bug. I've reported it: http://d.puremagic.com/issues/show_bug.cgi?id=3894std.range use ref everywhere. I had to comment them out to get any composition to work. But the 'auto ref' feature added a release ago was made to solve this problem, I guess. Full-blown propagation of ref when you can have it, graceful stop when you cannot. Hmm, I should try this as soon as I won't have a baby sleeping on me...
Mar 08 2010
Philippe Sigaud wrote:On Mon, Mar 8, 2010 at 13:00, Lars T. Kyllingstad <public kyllingen.nospamnet> wrote: It's definitely a bug. I've reported it: http://d.puremagic.com/issues/show_bug.cgi?id=3894 std.range use ref everywhere. I had to comment them out to get any composition to work. But the 'auto ref' feature added a release ago was made to solve this problem, I guess. Full-blown propagation of ref when you can have it, graceful stop when you cannot. Hmm, I should try this as soon as I won't have a baby sleeping on me...Hm, changing "ref" on lines 716 and 724 to "auto ref" changes nothing. Changing it to simply "auto" seems to solve problem. How "auto ref" feature is supposed to work? This ( http://www.digitalmars.com/d/2.0/function.html ) description tends to match problem with stride, but as I have just said, it gives same error.
Mar 26 2010
On Fri, Mar 26, 2010 at 11:16, Mihail Strashun <m.strashun gmail.com> wrote:Hm, changing "ref" on lines 716 and 724 to "auto ref" changes nothing. Changing it to simply "auto" seems to solve problem. How "auto ref" feature is supposed to work? This ( http://www.digitalmars.com/d/2.0/function.html ) description tends to match problem with stride, but as I have just said, it gives same error.Then we both do not understand what auto ref functions can do. Or maybe it's still a bit buggy?
Mar 26 2010