Thread overview | ||||||||
---|---|---|---|---|---|---|---|---|
|
March 08, 2010 DMD2, Phobos: striding range | ||||
---|---|---|---|---|
| ||||
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? |
March 08, 2010 Re: DMD2, Phobos: striding range | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mihail Strashun | 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 |
March 08, 2010 Re: DMD2, Phobos: striding range | ||||
---|---|---|---|---|
| ||||
Posted in reply to Lars T. Kyllingstad | 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
|
March 08, 2010 Re: DMD2, Phobos: striding range | ||||
---|---|---|---|---|
| ||||
Posted in reply to Lars T. Kyllingstad Attachments:
| 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...
|
March 26, 2010 Re: DMD2, Phobos: striding range | ||||
---|---|---|---|---|
| ||||
Posted in reply to Philippe Sigaud | 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. |
March 26, 2010 Re: DMD2, Phobos: striding range | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mihail Strashun Attachments:
| 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?
|
Copyright © 1999-2021 by the D Language Foundation