August 10, 2010
Here's another one that compiles on 2.047 but not on 2.048.  This one's a reduced test case from attempting to compile ParallelFuture.

import std.algorithm;

pragma(msg, typeof(reduce!"a + b"([1,2,3])));

test9.d(3): Error: forward reference to inferred return type of function call reduce([1,2,3])

I've gotten to the point where I think std.algorithm really needs to just be reverted until the relevant compiler issues are fixed.  If std.algorithm contains several regressions in this release, then this release will just be flat out unusable for me and probably for several other people.

On 8/10/2010 7:11 PM, Walter Bright wrote:
> New beta. Fixes OSX bug and filter bug.
>
> Walter Bright wrote:
>>
>> http://ftp.digitalmars.com/dmd2beta.zip
>>
> _______________________________________________
> dmd-beta mailing list
> dmd-beta at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/dmd-beta
>

August 10, 2010

David Simcha wrote:
> Still no go:
>
> import std.algorithm;
>
> void main() {
>     auto arr = [1,2,3,4,5];
>     auto m = map!"a + 1"(filter!"a < 4"(arr));
> }
>
> d:\dmd2\windows\bin\..\..\src\phobos\std\algorithm.d(776): Error: function std.algorithm.Map!(result,Filter).Map.save cannot get frame pointer to filter
>
> This one is fixable, though, by simply making the Filter struct static (which it probably should be anyhow, since it doesn't need access to the filter() function scope as far as I can tell).  Someone who's more sure that this fix is reasonable please either commit it or confirm that it's a good fix so I can.

Making it static won't work at all. The unit tests fail miserably.

>
> Also, I just want to point out how I'm finding these issues so others can do the same in parallel.  I don't have any fancy test suites or anything.  All I'm trying to do is compile and unittest a few libraries that I wrote and know the code to inside out.  I know these work on 2.047, so if they don't work on 2.048 and it's not a documented breaking change, then it's a regression.  Because I wrote them and know the code well, it's relatively easy to figure out where the root cause of any problems is.  I think most people on the beta list are the main author of a library or two.  If so, they should probably do the same with their libraries.
>
> On 8/10/2010 7:11 PM, Walter Bright wrote:
>> New beta. Fixes OSX bug and filter bug.
>>
>> Walter Bright wrote:
>>>
>>> http://ftp.digitalmars.com/dmd2beta.zip
>>>
>> _______________________________________________
>> dmd-beta mailing list
>> dmd-beta at puremagic.com
>> http://lists.puremagic.com/mailman/listinfo/dmd-beta
>>
>
> _______________________________________________
> dmd-beta mailing list
> dmd-beta at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/dmd-beta
>
>
August 10, 2010

David Simcha wrote:
> Still no go:
>
> import std.algorithm;
>
> void main() {
>     auto arr = [1,2,3,4,5];
>     auto m = map!"a + 1"(filter!"a < 4"(arr));
> }
>
> d:\dmd2\windows\bin\..\..\src\phobos\std\algorithm.d(776): Error: function std.algorithm.Map!(result,Filter).Map.save cannot get frame pointer to filter

I don't get that error. It compiles and runs for me.

August 10, 2010

David Simcha wrote:
> Here's another one that compiles on 2.047 but not on 2.048.  This one's a reduced test case from attempting to compile ParallelFuture.
>
> import std.algorithm;
>
> pragma(msg, typeof(reduce!"a + b"([1,2,3])));
>
> test9.d(3): Error: forward reference to inferred return type of function call reduce([1,2,3])
>
> I've gotten to the point where I think std.algorithm really needs to just be reverted until the relevant compiler issues are fixed.  If std.algorithm contains several regressions in this release, then this release will just be flat out unusable for me and probably for several other people.
>

I hear you, but can you please give them to me all at once? This one is unrelated to the filter problems. I ask because it takes me several hours to get to a release build, just to find another unrelated problem.
August 10, 2010
I just realized now that it only happens with -inline.

On 8/10/2010 8:52 PM, Walter Bright wrote:
>
>
> David Simcha wrote:
>> Still no go:
>>
>> import std.algorithm;
>>
>> void main() {
>>     auto arr = [1,2,3,4,5];
>>     auto m = map!"a + 1"(filter!"a < 4"(arr));
>> }
>>
>> d:\dmd2\windows\bin\..\..\src\phobos\std\algorithm.d(776): Error: function std.algorithm.Map!(result,Filter).Map.save cannot get frame pointer to filter
>
> I don't get that error. It compiles and runs for me.
>
> _______________________________________________
> dmd-beta mailing list
> dmd-beta at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/dmd-beta
>

August 10, 2010
I'll try but this might not always be possible because the way I'm finding these is by tring to compile libraries that I wrote.  Once they encounter their first error, they stop compiling and won't get to another error until the first one is fixed.

On 8/10/2010 8:56 PM, Walter Bright wrote:
>
>
> David Simcha wrote:
>> Here's another one that compiles on 2.047 but not on 2.048.  This one's a reduced test case from attempting to compile ParallelFuture.
>>
>> import std.algorithm;
>>
>> pragma(msg, typeof(reduce!"a + b"([1,2,3])));
>>
>> test9.d(3): Error: forward reference to inferred return type of function call reduce([1,2,3])
>>
>> I've gotten to the point where I think std.algorithm really needs to just be reverted until the relevant compiler issues are fixed.  If std.algorithm contains several regressions in this release, then this release will just be flat out unusable for me and probably for several other people.
>>
>
> I hear you, but can you please give them to me all at once? This one
> is unrelated to the filter problems. I ask because it takes me several
> hours to get to a release build, just to find another unrelated problem.
> _______________________________________________
> dmd-beta mailing list
> dmd-beta at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/dmd-beta
>

August 10, 2010

David Simcha wrote:
> I'll try but this might not always be possible because the way I'm finding these is by tring to compile libraries that I wrote.  Once they encounter their first error, they stop compiling and won't get to another error until the first one is fixed.
>

The usual way to deal with that is to comment out the failing code and soldier on.

Also, it looks like it will be a good idea to incorporate your code into the test suite.
August 10, 2010

David Simcha wrote:
>
> I've gotten to the point where I think std.algorithm really needs to just be reverted until the relevant compiler issues are fixed.  If std.algorithm contains several regressions in this release, then this release will just be flat out unusable for me and probably for several other people.
>

I tried that, but it causes more problems as it is not compatible with other updated modules.
August 10, 2010
I'd be glad to help out with this.  Let me know what adding my code to the test suite would consist of.  The best lib for exercising the compiler is probably dstats (http://dsource.org/projects/dstats), because it abuses templates so much.  I have no idea how it would integrate into the rest of the test suite, but basically all I've been doing is compiling it and then running the unittests in each file to instantiate all the templates and make sure there aren't any wrong code issues.

On 8/10/2010 9:28 PM, Walter Bright wrote:
>
>
> David Simcha wrote:
>> I'll try but this might not always be possible because the way I'm finding these is by tring to compile libraries that I wrote.  Once they encounter their first error, they stop compiling and won't get to another error until the first one is fixed.
>>
>
> The usual way to deal with that is to comment out the failing code and soldier on.
>
> Also, it looks like it will be a good idea to incorporate your code
> into the test suite.
> _______________________________________________
> dmd-beta mailing list
> dmd-beta at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/dmd-beta
>

August 10, 2010
On Aug 10, 2010, at 8:56 PM, Walter Bright <walter at digitalmars.com> wrote:

> 
>> 
> I ask because it takes me several hours to get to a release build, just to find another unrelated problem.

What? That really shouldn't be! Maybe it's time to set up continuous integration.

If you're not familiar, it's basically would do the following in sequence:
1. Detect a commit to dmd
2. Rebuild the dmd executable
3. Run dmd test suite
4. Rebuild druntime
5. Run druntime tests (if they exist)
6. Rebuild phobos
7. Run phobos unit tests
8. Bundle a release package
9. Post everything to a folder/website
10. Send any emails

Obviously, if any error is encountered, it will jump to #9. There's even desktop apps with a status icon so you can passively see the status.

As far as iterations for dmd-beta, it should be as simple as checking in your fix and just wait for the server/beta testers to validate the release.