Re: Release D 2.072.0

2016-11-15 Thread Dicebot via Digitalmars-d-announce
On 11/11/2016 09:36 PM, Nick Sabalausky wrote:
> On 11/11/2016 08:30 AM, Dicebot wrote:
>> On Friday, 11 November 2016 at 13:21:40 UTC, Nick Sabalausky wrote:
>>> Run the new dmd. If it fails, either fix your code or go temporarily
>>> go back to the old dmd until you can fix your code.
>>
>> D will never be considered production ready as pong as this attiude
>> remaind. Your described scenario in practice works like this:
>>
>> - You decide to delay fix until you have time to investigate
> 
> I've gone through a lot of compiler upgrades on a lot of D projects, and
> in my experience, this "investigate and fix for the new dmd" has always
> been trivial (aside from one instance where Phobos's standard function
> deprecation policy wasn't followed).

Speaking of Sociomantic experience, practice has shown that any breaking
change that requires 5 min fix for any given project can easily take
from weeks to months (!) before all maintained interdependent projects
are updated. With deprecations it is not a problem at all because
everyone moves on using own schedule caring only about hard time limit.
With _any_ sort of immediate breakage it is pain because now upgrade
both becomes urgent and needs to be explicitly synced between all
developers.

It is simply another side of "nine women can't make a baby in one month"
thing. Best way to scale large teams is to split them so that amount of
people involved in any specific process is minimal, otherwise even
trivialities escalate exponentially under weight of communications. And
with software development "large" starts pretty small.

> Some things should certainly have a smooth transition path (like above,
> when replacing a Phobos function with a different one), but really, not
> everything needs to be.
> 
>> - Half of users of your library you (or your colleagues) complain that
>> they can't upgrade their projects because you areso slow
>> - You desperately find time to do required fix which proves bavkwards
>> incompatible
> 
> AFAICT, That's not the case with this particular cycle detection matter.

Yes, but this is mentality I am talking about. In vast majority of cases
providing smooth deprecation path is trivial - replacing `error` call
with `deprecation` call in DMD patch, marking symbol as deprecated
before removing in Phobos. In some of PRs I have found while checking
last breakage, amount of time spent on discussion if it is OK to make a
change was 10x more than amount of time that adding deprecations would
take. It is waste of everyone's time!

We need to establish attitude were doing deprecations is a no-brainer,
like providing unittests for new functionality already is. Not because
some weird corporate ass demands it but because it is simple and
benefits the whole dub ecosystem.



signature.asc
Description: OpenPGP digital signature


Re: Release D 2.072.0

2016-11-15 Thread Dicebot via Digitalmars-d-announce
On 11/12/2016 02:20 PM, Basile B. wrote:
> On Monday, 31 October 2016 at 01:27:08 UTC, Martin Nowak wrote:
>> Glad to announce D 2.072.0.
>>
>> http://dlang.org/download.html
>>
>> This is the release ships with the latest version of dub (v1.1.0), comes
>> with lots of phobos additions and native TLS on OSX.
>> See the changelog for more details.
>>
>> http://dlang.org/changelog/2.072.0.html
>>
>> -Martin
> 
> Sorry another regression:
> 
> https://issues.dlang.org/show_bug.cgi?id=16682
> 
> I don't know if it's a real regression, maybe the PR that breaks dfmt is
> legit but at least
> - you (you == dlang team as an entity) could start a deprecation period.
> - the community could detect that before.

Thank you for the report! Will add that to required reverts in a moment.

Both points you have mentioned indeed can and should be addressed.




signature.asc
Description: OpenPGP digital signature


Re: Release D 2.072.0

2016-11-12 Thread Basile B. via Digitalmars-d-announce

On Monday, 31 October 2016 at 01:27:08 UTC, Martin Nowak wrote:

Glad to announce D 2.072.0.

http://dlang.org/download.html

This is the release ships with the latest version of dub 
(v1.1.0), comes

with lots of phobos additions and native TLS on OSX.
See the changelog for more details.

http://dlang.org/changelog/2.072.0.html

-Martin


Sorry another regression:

https://issues.dlang.org/show_bug.cgi?id=16682

I don't know if it's a real regression, maybe the PR that breaks 
dfmt is legit but at least
- you (you == dlang team as an entity) could start a deprecation 
period.

- the community could detect that before.




Re: Release D 2.072.0

2016-11-11 Thread Jonathan M Davis via Digitalmars-d-announce
On Friday, November 11, 2016 14:36:59 Nick Sabalausky via Digitalmars-d-
announce wrote:
> On 11/11/2016 08:30 AM, Dicebot wrote:
> > On Friday, 11 November 2016 at 13:21:40 UTC, Nick Sabalausky wrote:
> >> Run the new dmd. If it fails, either fix your code or go temporarily
> >> go back to the old dmd until you can fix your code.
> >
> > D will never be considered production ready as pong as this attiude
> > remaind. Your described scenario in practice works like this:
> >
> > - You decide to delay fix until you have time to investigate
>
> I've gone through a lot of compiler upgrades on a lot of D projects, and
> in my experience, this "investigate and fix for the new dmd" has always
> been trivial (aside from one instance where Phobos's standard function
> deprecation policy wasn't followed).
>
> Some things should certainly have a smooth transition path (like above,
> when replacing a Phobos function with a different one), but really, not
> everything needs to be.

In general, I agree, but it can cause problems when something works with the
last release and not the master branch (you can't always avoid that, but
it's far better to if you can), and even when just considering releases,
having stuff work with one release and not the next can cause serious
problems when you're providing a library for someone else or dealing with
multiple programs where you can't just upgrade everything at once. Dicebot
talked about problems along those lines at Sociomantic in his talk at dconf
2015:

http://dconf.org/2015/talks/strasuns.html

It's a sucky scenario to be in, but you don't always have a choice -
especially in a corporate environment.

Another fun problem is when you try and support multiple versions of
dmd/druntime/phobos with the same project (like vibe.d does). Hard breakage
can make that difficult (though not impossible).

I don't think that it's always possible or reasonable to provide some kind
of deprecation path or to smoothly transitition from one behavior to another
(particularly when dealing with certain types of bugs), but if we don't at
least try and mitigate those types of problems, we're going to have problems
with folks who do not have the luxury of being able to simply update their
code base for the new release, even if the changes themselves are trivial.

- Jonathan M Davis



Re: Release D 2.072.0

2016-11-11 Thread Steven Schveighoffer via Digitalmars-d-announce

On 11/11/16 3:02 PM, jmh530 wrote:

On Friday, 11 November 2016 at 19:36:59 UTC, Nick Sabalausky wrote:


I've gone through a lot of compiler upgrades on a lot of D projects,
and in my experience, this "investigate and fix for the new dmd" has
always been trivial (aside from one instance where Phobos's standard
function deprecation policy wasn't followed).

Some things should certainly have a smooth transition path (like
above, when replacing a Phobos function with a different one), but
really, not everything needs to be.



They've talked about an auto-checker for dub packages. I suspect that
will go a long way to reducing regressions.


Actually, in this case, we knew this was going to break builds, and also 
in this case, the fix for user code is not trivial. Breaking a cycle 
involves breaking a module into multiple pieces, or putting the 
initialization code elsewhere.


Unfortunately, there's not much ways to do this fix in a graceful 
manner. This is a tougher one to swallow, and I don't think it's a 
normal case. The DRT options were added to ease transition.


-Steve


Re: Release D 2.072.0

2016-11-11 Thread jmh530 via Digitalmars-d-announce
On Friday, 11 November 2016 at 19:36:59 UTC, Nick Sabalausky 
wrote:


I've gone through a lot of compiler upgrades on a lot of D 
projects, and in my experience, this "investigate and fix for 
the new dmd" has always been trivial (aside from one instance 
where Phobos's standard function deprecation policy wasn't 
followed).


Some things should certainly have a smooth transition path 
(like above, when replacing a Phobos function with a different 
one), but really, not everything needs to be.




They've talked about an auto-checker for dub packages. I suspect 
that will go a long way to reducing regressions.


Re: Release D 2.072.0

2016-11-11 Thread Nick Sabalausky via Digitalmars-d-announce

On 11/11/2016 08:30 AM, Dicebot wrote:

On Friday, 11 November 2016 at 13:21:40 UTC, Nick Sabalausky wrote:

Run the new dmd. If it fails, either fix your code or go temporarily
go back to the old dmd until you can fix your code.


D will never be considered production ready as pong as this attiude
remaind. Your described scenario in practice works like this:

- You decide to delay fix until you have time to investigate


I've gone through a lot of compiler upgrades on a lot of D projects, and 
in my experience, this "investigate and fix for the new dmd" has always 
been trivial (aside from one instance where Phobos's standard function 
deprecation policy wasn't followed).


Some things should certainly have a smooth transition path (like above, 
when replacing a Phobos function with a different one), but really, not 
everything needs to be.



- Half of users of your library you (or your colleagues) complain that
they can't upgrade their projects because you areso slow
- You desperately find time to do required fix which proves bavkwards
incompatible


AFAICT, That's not the case with this particular cycle detection matter.



Re: Release D 2.072.0

2016-11-11 Thread Steven Schveighoffer via Digitalmars-d-announce

On 11/11/16 9:02 AM, Dicebot wrote:

On 11/11/2016 03:46 PM, Steven Schveighoffer wrote:

... or one can spend one extra hour to implement deprecation path and
the issue disappears completely.


There is a misunderstanding that the new cycle detection is an "upgrade"
of some kind. It's a bug fix.


There is no difference between a bug fix and "upgrade" in context of
deprecation path expectations. It affects robustness of package
ecosystem in the same way.


There is a subtle difference -- you weren't exactly "depending" on the 
buggy behavior, you didn't actually notice that the bug was there. In 
fact, you were depending on the cycle detection to find the cycles for 
you, and it was failing.


It would be like finding a flaw in the AA hashing behavior that allowed 
2 identical keys to get stored. Fix that bug, and it necessarily changes 
behavior, it may even break some code. Should we go through deprecation 
cycle for that?



I am still going to look into keeping both algorithms for this release
but don't view it as blocking regression.


It's not going to be easy. The code had to be completely rewritten, 
since the flaw in the original code was a design problem. You will 
likely have to run both algorithms separately, and only fail if both do.


You can probably use the same cycle printing code, as I separated that 
out (and now use a shortest-path algorithm to minimize the cycle size).


-Steve


Re: Release D 2.072.0

2016-11-11 Thread Steven Schveighoffer via Digitalmars-d-announce

On 11/11/16 9:06 AM, Rainer Schuetze wrote:



On 11.11.2016 14:42, Steven Schveighoffer wrote:



The option to ignore the cycles is there, added to allow for people to
use the new DMD even if cycles exist. However, it is a runtime switch,
which means you have to run it that way.



You can also embed the option into the executable. See the bottom of
https://dlang.org/spec/garbage.html#gc_config.


I didn't know that! Very nice, and a good mechanism to help those with 
deprecation issues -- if you put the oncycle=print in that list of 
options, then the new code will still run when a cycle is present, and 
old runtime will simply ignore that. No need to add the option when running.



Is there another place where --DRT-options are listed?


I don't think so. Probably a good idea to list somewhere. As there is no 
central processing of options (they are parsed, but not handled until 
requested), it's less obvious where all the usages are. I only found the 
GC options and maybe one other.


-Steve


Re: Release D 2.072.0

2016-11-11 Thread Rainer Schuetze via Digitalmars-d-announce



On 11.11.2016 14:42, Steven Schveighoffer wrote:

On 11/11/16 8:21 AM, Nick Sabalausky wrote:

On 11/11/2016 04:54 AM, Kagamin wrote:

On Thursday, 10 November 2016 at 13:58:56 UTC, Steven Schveighoffer
wrote:

Only possibility is just to ignore ALL cycles, and print them if any
are detected.


Run the new detector and if it fails, run the old one, if it succeeds,
print a message.


Or:

Run the new dmd. If it fails, either fix your code or go temporarily go
back to the old dmd until you can fix your code.



The option to ignore the cycles is there, added to allow for people to
use the new DMD even if cycles exist. However, it is a runtime switch,
which means you have to run it that way.

-Steve



You can also embed the option into the executable. See the bottom of 
https://dlang.org/spec/garbage.html#gc_config.


Is there another place where --DRT-options are listed?



Re: Release D 2.072.0

2016-11-11 Thread Dicebot via Digitalmars-d-announce
On 11/11/2016 03:46 PM, Steven Schveighoffer wrote:
>> ... or one can spend one extra hour to implement deprecation path and
>> the issue disappears completely.
> 
> There is a misunderstanding that the new cycle detection is an "upgrade"
> of some kind. It's a bug fix.

There is no difference between a bug fix and "upgrade" in context of
deprecation path expectations. It affects robustness of package
ecosystem in the same way.

> There is a path to use new DMD with your buggy code, just use
> --DRT-oncycle=ignore. It's just not the default.

Well, this is the reason why I haven't filed it as a regression. It is
bad, but being able to ignore detection if rt flag makes it tolerable.

I am still going to look into keeping both algorithms for this release
but don't view it as blocking regression.



signature.asc
Description: OpenPGP digital signature


Re: Release D 2.072.0

2016-11-11 Thread Steven Schveighoffer via Digitalmars-d-announce

On 11/11/16 8:30 AM, Dicebot wrote:

On Friday, 11 November 2016 at 13:21:40 UTC, Nick Sabalausky wrote:

Run the new dmd. If it fails, either fix your code or go temporarily
go back to the old dmd until you can fix your code.


D will never be considered production ready as pong as this attiude
remaind. Your described scenario in practice works like this:

- You decide to delay fix until you have time to investigate
- Half of users of your library you (or your colleagues) complain that
they can't upgrade their projects because you areso slow
- You desperately find time to do required fix which proves bavkwards
incompatible
- Now the other half of your users (colleagues) complain that your rush
to upgrade forces them to switch to immature compiler



If you remove cycles in your code, it will not flag cycles in the old 
compiler ;)



... or one can spend one extra hour to implement deprecation path and
the issue disappears completely.


There is a misunderstanding that the new cycle detection is an "upgrade" 
of some kind. It's a bug fix.


There is a path to use new DMD with your buggy code, just use 
--DRT-oncycle=ignore. It's just not the default.


-Steve


Re: Release D 2.072.0

2016-11-11 Thread Steven Schveighoffer via Digitalmars-d-announce

On 11/11/16 8:21 AM, Nick Sabalausky wrote:

On 11/11/2016 04:54 AM, Kagamin wrote:

On Thursday, 10 November 2016 at 13:58:56 UTC, Steven Schveighoffer
wrote:

Only possibility is just to ignore ALL cycles, and print them if any
are detected.


Run the new detector and if it fails, run the old one, if it succeeds,
print a message.


Or:

Run the new dmd. If it fails, either fix your code or go temporarily go
back to the old dmd until you can fix your code.



The option to ignore the cycles is there, added to allow for people to 
use the new DMD even if cycles exist. However, it is a runtime switch, 
which means you have to run it that way.


-Steve



Re: Release D 2.072.0

2016-11-11 Thread Dicebot via Digitalmars-d-announce
On Friday, 11 November 2016 at 13:21:40 UTC, Nick Sabalausky 
wrote:
Run the new dmd. If it fails, either fix your code or go 
temporarily go back to the old dmd until you can fix your code.


D will never be considered production ready as pong as this 
attiude remaind. Your described scenario in practice works like 
this:


- You decide to delay fix until you have time to investigate
- Half of users of your library you (or your colleagues) complain 
that they can't upgrade their projects because you areso slow
- You desperately find time to do required fix which proves 
bavkwards incompatible
- Now the other half of your users (colleagues) complain that 
your rush to upgrade forces them to switch to immature compiler


.. or one can spend one extra hour to implement deprecation path 
and the issue disappears completely.


Re: Release D 2.072.0

2016-11-11 Thread Nick Sabalausky via Digitalmars-d-announce

On 11/11/2016 04:54 AM, Kagamin wrote:

On Thursday, 10 November 2016 at 13:58:56 UTC, Steven Schveighoffer wrote:

Only possibility is just to ignore ALL cycles, and print them if any
are detected.


Run the new detector and if it fails, run the old one, if it succeeds,
print a message.


Or:

Run the new dmd. If it fails, either fix your code or go temporarily go 
back to the old dmd until you can fix your code.




Re: Release D 2.072.0

2016-11-11 Thread Kagamin via Digitalmars-d-announce
On Thursday, 10 November 2016 at 13:58:56 UTC, Steven 
Schveighoffer wrote:
Only possibility is just to ignore ALL cycles, and print them 
if any are detected.


Run the new detector and if it fails, run the old one, if it 
succeeds, print a message.


Re: Release D 2.072.0

2016-11-10 Thread Soulsbane via Digitalmars-d-announce

On Thursday, 10 November 2016 at 23:02:09 UTC, Soulsbane wrote:

On Thursday, 10 November 2016 at 15:38:08 UTC, Dicebot wrote:

On 11/05/2016 06:04 AM, Soulsbane wrote:

[...]


Can't reproduce:

$ cat sample.d
unittest
{
import std.regex;
static immutable TOC_LINE_PATTERN =
`#{1,}\s*(?P.*):\s*(?P.*)`;
auto linePattern = ctRegex!(TOC_LINE_PATTERN);
}

$ dmd-dev -release -O -inline -unittest -main -run sample.d

Can you provide more details?


Sorry I hadn't gotten back on this. Isolating the code like you 
did doesn't produce the error. It only fails in my larger 
project(same code). It's strange.


The code is in 
https://github.com/Soulsbane/luaaddon/blob/master/source/luaaddon/tocparser.d


Using struct TocParser in an empty project(just main) works 
just fine. But as part of my later project(skeletor) it fails 
to compile.


Thanks.


Linked wrong file. 
https://github.com/Soulsbane/luaaddon/blob/7d60711b7b733144f3925a57380e58eb2aab997e/source/luaaddon/tocparser.d is the correct one.


Re: Release D 2.072.0

2016-11-10 Thread Soulsbane via Digitalmars-d-announce

On Thursday, 10 November 2016 at 15:38:08 UTC, Dicebot wrote:

On 11/05/2016 06:04 AM, Soulsbane wrote:

On Monday, 31 October 2016 at 01:27:08 UTC, Martin Nowak wrote:

Glad to announce D 2.072.0.

http://dlang.org/changelog/2.072.0.html

-Martin


I've run into a problem with code using ctRegex that fails to 
compile only in release build.


Can't reproduce:

$ cat sample.d
unittest
{
import std.regex;
static immutable TOC_LINE_PATTERN =
`#{1,}\s*(?P.*):\s*(?P.*)`;
auto linePattern = ctRegex!(TOC_LINE_PATTERN);
}

$ dmd-dev -release -O -inline -unittest -main -run sample.d

Can you provide more details?


Sorry I hadn't gotten back on this. Isolating the code like you 
did doesn't produce the error. It only fails in my larger 
project(same code). It's strange.


The code is in 
https://github.com/Soulsbane/luaaddon/blob/master/source/luaaddon/tocparser.d


Using struct TocParser in an empty project(just main) works just 
fine. But as part of my later project(skeletor) it fails to 
compile.


Thanks.


Re: Release D 2.072.0

2016-11-10 Thread Dicebot via Digitalmars-d-announce
On 11/05/2016 06:04 AM, Soulsbane wrote:
> On Monday, 31 October 2016 at 01:27:08 UTC, Martin Nowak wrote:
>> Glad to announce D 2.072.0.
>>
>> http://dlang.org/changelog/2.072.0.html
>>
>> -Martin
> 
> I've run into a problem with code using ctRegex that fails to compile
> only in release build.

Can't reproduce:

$ cat sample.d
unittest
{
import std.regex;
static immutable TOC_LINE_PATTERN =
`#{1,}\s*(?P.*):\s*(?P.*)`;
auto linePattern = ctRegex!(TOC_LINE_PATTERN);
}

$ dmd-dev -release -O -inline -unittest -main -run sample.d

Can you provide more details?



signature.asc
Description: OpenPGP digital signature


Re: Release D 2.072.0

2016-11-10 Thread Dicebot via Digitalmars-d-announce
On Thursday, 10 November 2016 at 13:58:56 UTC, Steven 
Schveighoffer wrote:
This is not possible. Old behavior DID detect some cycles. The 
new algorithm detects ALL cycles, and handles them all in the 
same way. What you are asking is for cycles detected by old 
algorithm to fail, but ones that wouldn't have been detected to 
pass. Not to mention that the order of ctor execution is not 
guaranteed to be the same (i.e. some latent bug may be hiding 
there).


Only possibility is just to ignore ALL cycles, and print them 
if any are detected.



I presume I have to look for commits that implement
http://dlang.org/changelog/2.072.0.html#drt-oncycle to fixup 
this?


The PR for this was here: 
https://github.com/dlang/druntime/pull/1668



Thanks! I'll have to check the code first :)


Re: Release D 2.072.0

2016-11-10 Thread Steven Schveighoffer via Digitalmars-d-announce

On 11/10/16 8:26 AM, Dicebot wrote:

On 11/03/2016 05:51 PM, Steven Schveighoffer wrote:

On 11/3/16 10:49 AM, Johan Engelen wrote:

On Wednesday, 2 November 2016 at 15:13:43 UTC, anonymous wrote:

On Wednesday, 2 November 2016 at 15:08:26 UTC, anonymous wrote:


I confirm, dmd 2.072 can't build dmd 2.071.2, same error, but boot
since master straping works there's probably something that's been
fixed in one or two of these ddmd modules, likely a static ctor...


Maybe after this:

https://github.com/dlang/dmd/commit/1d0ab8b9c136e46bf449c506ca25d2c8a784f7b9#diff-b4674e7b5d3a44178526afdefc9aa368



ddmd.attribs was removed

https://github.com/dlang/dmd/commit/1d0ab8b9c136e46bf449c506ca25d2c8a784f7b9#diff-b4674e7b5d3a44178526afdefc9aa368L15



and it was also part of the cycle.


Thanks for the detective work.
I wonder where the bug is: in 2.071 or in 2.072 :)


Any cycles that are "newly discovered" were already there. What was
happening is that the runtime did not detect the cycle, and was
arbitrarily choosing an order for initializing these modules.


It does not justify immediate breaking change.



What should have been
done instead:

- Keep old behavior by default by default but print non-fatal runtime
message that cycles are detected.


This is not possible. Old behavior DID detect some cycles. The new 
algorithm detects ALL cycles, and handles them all in the same way. What 
you are asking is for cycles detected by old algorithm to fail, but ones 
that wouldn't have been detected to pass. Not to mention that the order 
of ctor execution is not guaranteed to be the same (i.e. some latent bug 
may be hiding there).


Only possibility is just to ignore ALL cycles, and print them if any are 
detected.



I presume I have to look for commits that implement
http://dlang.org/changelog/2.072.0.html#drt-oncycle to fixup this?


The PR for this was here: https://github.com/dlang/druntime/pull/1668

-Steve


Re: Release D 2.072.0

2016-11-10 Thread Dicebot via Digitalmars-d-announce
On 11/03/2016 05:51 PM, Steven Schveighoffer wrote:
> On 11/3/16 10:49 AM, Johan Engelen wrote:
>> On Wednesday, 2 November 2016 at 15:13:43 UTC, anonymous wrote:
>>> On Wednesday, 2 November 2016 at 15:08:26 UTC, anonymous wrote:

 I confirm, dmd 2.072 can't build dmd 2.071.2, same error, but boot
 since master straping works there's probably something that's been
 fixed in one or two of these ddmd modules, likely a static ctor...
>>>
>>> Maybe after this:
>>>
>>> https://github.com/dlang/dmd/commit/1d0ab8b9c136e46bf449c506ca25d2c8a784f7b9#diff-b4674e7b5d3a44178526afdefc9aa368
>>>
>>>
>>>
>>> ddmd.attribs was removed
>>>
>>> https://github.com/dlang/dmd/commit/1d0ab8b9c136e46bf449c506ca25d2c8a784f7b9#diff-b4674e7b5d3a44178526afdefc9aa368L15
>>>
>>>
>>>
>>> and it was also part of the cycle.
>>
>> Thanks for the detective work.
>> I wonder where the bug is: in 2.071 or in 2.072 :)
> 
> Any cycles that are "newly discovered" were already there. What was
> happening is that the runtime did not detect the cycle, and was
> arbitrarily choosing an order for initializing these modules.

It does not justify immediate breaking change. What should have been
done instead:

- Keep old behavior by default by default but print non-fatal runtime
message that cycles are detected.
- Provide options both to make cycle detection fatal and to suppress
message completely.
- Make fatal one the default one release later

I presume I have to look for commits that implement
http://dlang.org/changelog/2.072.0.html#drt-oncycle to fixup this?



signature.asc
Description: OpenPGP digital signature


Re: Release D 2.072.0

2016-11-09 Thread Daniel Kozak via Digitalmars-d-announce

Dne 9.11.2016 v 15:17 Dicebot via Digitalmars-d-announce napsal(a):


Sadly, because of overwhelming project breakage I have to revert Arch
Linux dmd package version back to 2.071.2 until 2.072.1 is out :(

Going to look into known regressions later this week, at least some of
them look easily fixable to become deprecations.

Thank you


Re: Release D 2.072.0

2016-11-09 Thread Dicebot via Digitalmars-d-announce
Sadly, because of overwhelming project breakage I have to revert Arch
Linux dmd package version back to 2.071.2 until 2.072.1 is out :(

Going to look into known regressions later this week, at least some of
them look easily fixable to become deprecations.



signature.asc
Description: OpenPGP digital signature


Re: Release D 2.072.0

2016-11-07 Thread thedeemon via Digitalmars-d-announce

On Monday, 7 November 2016 at 18:55:29 UTC, Anonymous wrote:
To be honest, I know that the D world existed before me, and I 
know that it'll still exist if I leave. Between, 2.072 is the 
worst release I've ever seen.


Yep. I tried 2.072 on a current DLangUI project under Win32. 
Compiled fine, but at runtime - exception, exception, exception, 
crash, crash, crash. Nothing works (what worked ok with previous 
dmd). Ran away screaming, back to 2.071. Sorry. I might try 
exploring the issues a bit later, can't do right now.


Re: Release D 2.072.0

2016-11-07 Thread Anonymous via Digitalmars-d-announce

On Monday, 7 November 2016 at 18:26:44 UTC, Anonymous wrote:

On Monday, 31 October 2016 at 01:27:08 UTC, Martin Nowak wrote:

Glad to announce D 2.072.0.

http://dlang.org/download.html

This is the release ships with the latest version of dub 
(v1.1.0), comes

with lots of phobos additions and native TLS on OSX.
See the changelog for more details.

http://dlang.org/changelog/2.072.0.html

-Martin


It seems that there was another regression that nobody 
detected, because nobody has build one of the major tool used 
by most of the D enthusiastic:


https://github.com/Hackerpilot/DCD/issues/352
https://issues.dlang.org/show_bug.cgi?id=16663


To be honest, I know that the D world existed before me, and I 
know that it'll still exist if I leave. Between, 2.072 is the 
worst release I've ever seen.


Re: Release D 2.072.0

2016-11-07 Thread Anonymous via Digitalmars-d-announce

On Monday, 31 October 2016 at 01:27:08 UTC, Martin Nowak wrote:

Glad to announce D 2.072.0.

http://dlang.org/download.html

This is the release ships with the latest version of dub 
(v1.1.0), comes

with lots of phobos additions and native TLS on OSX.
See the changelog for more details.

http://dlang.org/changelog/2.072.0.html

-Martin


It seems that there was another regression that nobody detected, 
because nobody has build one of the major tool used by most of 
the D enthusiastic:


https://github.com/Hackerpilot/DCD/issues/352
https://issues.dlang.org/show_bug.cgi?id=16663


Re: Release D 2.072.0

2016-11-07 Thread ikod via Digitalmars-d-announce

Hello,

Here is another bug:

https://issues.dlang.org/show_bug.cgi?id=16667

app unit tests start to fail on std.conv internal unit tests.



Re: Release D 2.072.0

2016-11-07 Thread Sönke Ludwig via Digitalmars-d-announce

Am 06.11.2016 um 09:22 schrieb Daniel Kozak via Digitalmars-d-announce:

Dne 6.11.2016 v 07:58 Sönke Ludwig via Digitalmars-d-announce napsal(a):

I checked now and the version included in the (Windows) DMD bundle
indeed reports as 1.0.0, so the fix is not present. But the next DMD
point release will include 1.1.1, which includes all changes to date.
I'll also put binaries of 1.1.0 on code.dlang.org in a few minutes.


Is there a place when one can check this? I mean in which repository
this is placed?



The version is reported with "dub --version", the change log is here:
https://github.com/dlang/dub/blob/master/CHANGELOG.md

The actual version in the bundle is not stored in a repository as far as 
I know, but is just an artifact of the build process.


Re: Release D 2.072.0

2016-11-06 Thread Daniel Kozak via Digitalmars-d-announce

Dne 6.11.2016 v 07:58 Sönke Ludwig via Digitalmars-d-announce napsal(a):


Am 03.11.2016 um 14:18 schrieb Andre Pany:

On Thursday, 3 November 2016 at 12:17:29 UTC, Sönke Ludwig wrote:

Am 03.11.2016 um 06:58 schrieb Andre Pany:

Temp-folder builds are only done if the special shebang invocation
syntax is used (i.e. "dub file.d 

Unfortunately yes, the behavior of dub included in dmd 2.072 is not as
expected (windows & linux).

/+ dub.sdl:
name "app"
+/
void main(){}

dub --single app.d

Running
..\..\..\..\..\Users\abcdef\AppData\Local\Temp\.dub\build\app-~master\application-debug-windows-x86-dmd_2072-A4FA96FDE8C9353FB025486E4835F2E0\app.exe 





Same behavior for dub build --single app.d

Kind regards
André


I checked now and the version included in the (Windows) DMD bundle 
indeed reports as 1.0.0, so the fix is not present. But the next DMD 
point release will include 1.1.1, which includes all changes to date. 
I'll also put binaries of 1.1.0 on code.dlang.org in a few minutes.


Is there a place when one can check this? I mean in which repository 
this is placed?




Re: Release D 2.072.0

2016-11-06 Thread Sönke Ludwig via Digitalmars-d-announce

Am 03.11.2016 um 14:18 schrieb Andre Pany:

On Thursday, 3 November 2016 at 12:17:29 UTC, Sönke Ludwig wrote:

Am 03.11.2016 um 06:58 schrieb Andre Pany:

Temp-folder builds are only done if the special shebang invocation
syntax is used (i.e. "dub file.d 

Unfortunately yes, the behavior of dub included in dmd 2.072 is not as
expected (windows & linux).

/+ dub.sdl:
name "app"
+/
void main(){}

dub --single app.d

Running
..\..\..\..\..\Users\abcdef\AppData\Local\Temp\.dub\build\app-~master\application-debug-windows-x86-dmd_2072-A4FA96FDE8C9353FB025486E4835F2E0\app.exe



Same behavior for dub build --single app.d

Kind regards
André


I checked now and the version included in the (Windows) DMD bundle 
indeed reports as 1.0.0, so the fix is not present. But the next DMD 
point release will include 1.1.1, which includes all changes to date. 
I'll also put binaries of 1.1.0 on code.dlang.org in a few minutes.


Re: Release D 2.072.0

2016-11-05 Thread John Colvin via Digitalmars-d-announce

On Saturday, 5 November 2016 at 04:04:12 UTC, Soulsbane wrote:

On Monday, 31 October 2016 at 01:27:08 UTC, Martin Nowak wrote:

[...]


I've run into a problem with code using ctRegex that fails to 
compile only in release build.


[...]


please report at https://issues.dlang.org/


Re: Release D 2.072.0

2016-11-05 Thread Jonathan M Davis via Digitalmars-d-announce
On Friday, November 04, 2016 00:45:18 Johan Engelen via Digitalmars-d-
announce wrote:
> On Friday, 4 November 2016 at 00:42:48 UTC, Johan Engelen wrote:
> > On Thursday, 3 November 2016 at 15:51:22 UTC, Steven
> >
> > Schveighoffer wrote:
> >> Any cycles that are "newly discovered" were already there.
> >> What was happening is that the runtime did not detect the
> >> cycle, and was arbitrarily choosing an order for initializing
> >> these modules. Either a) the arbitrary order happened to be
> >> right, or b) the order didn't matter. Most of the time it's b,
> >> because most static ctors don't depend on externally
> >> initialized items.
> >
> > My question is: any cycle is invalid?
>
> nevermind, I found this:
> https://dlang.org/spec/module.html#order_of_static_ctor

Yeah, that's why we avoid static constructors in Phobos if we can. In
theory, they're great, but in practice, they have a tendency to cause
problems. Modules which don't import much of anything else from within the
same library tend to be fine, but once a library or application has modules
which import other modules within that library, you can get circular imports
surprisingly easily, and Phobos is rife with them. There are cases where we
actually have other modules specifically to do the static constructors for
another module in order to avoid having static constructors in the import
cycle (e.g. std.stdiobase does that for std.stdio) - but that doesn't play
well with stuff like immutable, just mutable stuff that needs to be
initialized at runtime.

- Jonathan M Davis



Re: Release D 2.072.0

2016-11-04 Thread Vladimir Panteleev via Digitalmars-d-announce

On Monday, 31 October 2016 at 20:35:24 UTC, Martin Nowak wrote:

and I did take care of that forward reference bug (Issue 16607).


Thanks again for that. That one would've actually kept me from 
upgrading for my current project.




Re: Release D 2.072.0

2016-11-04 Thread Soulsbane via Digitalmars-d-announce

On Monday, 31 October 2016 at 01:27:08 UTC, Martin Nowak wrote:

Glad to announce D 2.072.0.

http://dlang.org/changelog/2.072.0.html

-Martin


I've run into a problem with code using ctRegex that fails to 
compile only in release build.


private immutable string TOC_LINE_PATTERN = 
`#{1,}\s*(?P.*):\s*(?P.*)`;


auto linePattern = ctRegex!(TOC_LINE_PATTERN);

Error:

/usr/include/dmd/phobos/std/uni.d(3133,13): Error: integral 
constant must be scalar type, not void
/usr/include/dmd/phobos/std/functional.d-mixin-200(200,1): Error: 
__a.data is not yet implemented at compile time
/usr/include/dmd/phobos/std/algorithm/searching.d(894,34):
called from here: pred2(((InversionList!(GcPolicy) __copytmp4412 
= (ref InversionList!(GcPolicy) this = __copytmp4412 = 
haystack[cast(ulong)i];) , ((ref CowArray!(GcPolicy) this = 
this.data;) , !((ref CowArray!(GcPolicy) this = this;) , 
this.data.length == 0LU) && ((ref CowArray!(GcPolicy) this = 
this;) , ((uint cnt = ((ref CowArray!(GcPolicy) this = this;) , 
this.data[__dollar - 1LU]) + 1u;)) , this.data[__dollar - 1LU] = 
cnt));) , __copytmp4412))
/usr/include/dmd/phobos/std/algorithm/searching.d(816,28):
called from here: countUntil(haystack)
/usr/include/dmd/phobos/std/regex/internal/parser.d(327,46):  
  called from here: countUntil(this.charsets, 
((InversionList!(GcPolicy) __copytmp4413 = (__copytmp4413 = 
set).__fieldPostblit();) , __copytmp4413))
/usr/include/dmd/phobos/std/regex/internal/parser.d(946,30):  
  called from here: this.g.charsetToIr(set.add(10u, 11u).add(13u, 
14u).inverted())
/usr/include/dmd/phobos/std/regex/internal/parser.d(858,26):  
  called from here: this.parseAtom()
/usr/include/dmd/phobos/std/regex/internal/parser.d(636,23):  
  called from here: this.parseRegex()
/usr/include/dmd/phobos/std/regex/package.d(378,61):
called from here: parser.this(pattern, flags)
/usr/include/dmd/phobos/std/regex/package.d(349,25):
called from here: regexImpl(pat, flags)
/usr/include/dmd/phobos/std/regex/package.d(357,17):
called from here: regex([pattern], flags)
/usr/include/dmd/phobos/std/regex/package.d(387,19):
called from here: regex(TOC_LINE_PATTERN, [])
/usr/include/dmd/phobos/std/regex/package.d(409,54): Error: 
template instance 
luaaddon.tocparser.TocParser.ctRegexImpl!(TOC_LINE_PATTERN, []) 
error instantiating
../libs/luaaddon/source/luaaddon/tocparser.d(31,22):
instantiated from here: ctRegex!(TOC_LINE_PATTERN, [])


It compiles just fine in debug build.

Thanks!




Re: Release D 2.072.0

2016-11-03 Thread Johan Engelen via Digitalmars-d-announce

On Friday, 4 November 2016 at 00:42:48 UTC, Johan Engelen wrote:
On Thursday, 3 November 2016 at 15:51:22 UTC, Steven 
Schveighoffer wrote:


Any cycles that are "newly discovered" were already there. 
What was happening is that the runtime did not detect the 
cycle, and was arbitrarily choosing an order for initializing 
these modules. Either a) the arbitrary order happened to be 
right, or b) the order didn't matter. Most of the time it's b, 
because most static ctors don't depend on externally 
initialized items.


My question is: any cycle is invalid?


nevermind, I found this:
https://dlang.org/spec/module.html#order_of_static_ctor




Re: Release D 2.072.0

2016-11-03 Thread Johan Engelen via Digitalmars-d-announce
On Thursday, 3 November 2016 at 15:51:22 UTC, Steven 
Schveighoffer wrote:


Any cycles that are "newly discovered" were already there. What 
was happening is that the runtime did not detect the cycle, and 
was arbitrarily choosing an order for initializing these 
modules. Either a) the arbitrary order happened to be right, or 
b) the order didn't matter. Most of the time it's b, because 
most static ctors don't depend on externally initialized items.


My question is: any cycle is invalid?

-Johan


Re: Release D 2.072.0

2016-11-03 Thread Steven Schveighoffer via Digitalmars-d-announce

On 11/3/16 10:49 AM, Johan Engelen wrote:

On Wednesday, 2 November 2016 at 15:13:43 UTC, anonymous wrote:

On Wednesday, 2 November 2016 at 15:08:26 UTC, anonymous wrote:


I confirm, dmd 2.072 can't build dmd 2.071.2, same error, but boot
since master straping works there's probably something that's been
fixed in one or two of these ddmd modules, likely a static ctor...


Maybe after this:

https://github.com/dlang/dmd/commit/1d0ab8b9c136e46bf449c506ca25d2c8a784f7b9#diff-b4674e7b5d3a44178526afdefc9aa368


ddmd.attribs was removed

https://github.com/dlang/dmd/commit/1d0ab8b9c136e46bf449c506ca25d2c8a784f7b9#diff-b4674e7b5d3a44178526afdefc9aa368L15


and it was also part of the cycle.


Thanks for the detective work.
I wonder where the bug is: in 2.071 or in 2.072 :)


Any cycles that are "newly discovered" were already there. What was 
happening is that the runtime did not detect the cycle, and was 
arbitrarily choosing an order for initializing these modules. Either a) 
the arbitrary order happened to be right, or b) the order didn't matter. 
Most of the time it's b, because most static ctors don't depend on 
externally initialized items.


Note that the push to remove imports to packages and instead import more 
specific submodules (i.e. import std.range.primitives instead of 
std.range) also plays a factor (it's how I discovered the cycles were 
broken). I doubt there was much of that in dmd front end.


-Steve


Re: Release D 2.072.0

2016-11-03 Thread Dicebot via Digitalmars-d-announce
On 10/31/2016 03:27 AM, Martin Nowak wrote:
> Glad to announce D 2.072.0.

NB: Current release notes are outdated and wrong about
`-transition=safe` flag. It was completely repurposed in stable branch
(https://github.com/dlang/dmd/pull/6183) but somehow changes to release
notes there do not propagate to released changelog.




signature.asc
Description: OpenPGP digital signature


Re: Release D 2.072.0

2016-11-03 Thread Johan Engelen via Digitalmars-d-announce

On Wednesday, 2 November 2016 at 15:13:43 UTC, anonymous wrote:

On Wednesday, 2 November 2016 at 15:08:26 UTC, anonymous wrote:


I confirm, dmd 2.072 can't build dmd 2.071.2, same error, but 
boot since master straping works there's probably something 
that's been fixed in one or two of these ddmd modules, likely 
a static ctor...


Maybe after this:

https://github.com/dlang/dmd/commit/1d0ab8b9c136e46bf449c506ca25d2c8a784f7b9#diff-b4674e7b5d3a44178526afdefc9aa368

ddmd.attribs was removed

https://github.com/dlang/dmd/commit/1d0ab8b9c136e46bf449c506ca25d2c8a784f7b9#diff-b4674e7b5d3a44178526afdefc9aa368L15

and it was also part of the cycle.


Thanks for the detective work.
I wonder where the bug is: in 2.071 or in 2.072 :)


Re: Release D 2.072.0

2016-11-03 Thread Steven Schveighoffer via Digitalmars-d-announce

On 11/2/16 8:36 AM, Johan Engelen wrote:

On Tuesday, 1 November 2016 at 16:40:42 UTC, Andrei Alexandrescu wrote:

On 11/01/2016 11:41 AM, Johan Engelen wrote:

On Monday, 31 October 2016 at 01:27:08 UTC, Martin Nowak wrote:

Glad to announce D 2.072.0.


DMD 2.072.0 miscompiles/uncovers a bug in LDC, so I switched back to DMD
2.071.2 for CI testing. :(


Is there somebody working on that bug? Thanks. -- Andrei


LDC built with DMD 2.072.0 gives the following error when run:
object.Error@src/rt/minfo.d(356): Cyclic dependency between module
ddmd.traits and ddmd.cond
ddmd.traits* ->
ddmd.attrib ->
ddmd.cond* ->
ddmd.expression ->
ddmd.traits*


The issue is that DDMD has cycles, always has. But the cycle detection 
was broken. This is now fixed in 2.072. An unfortunate side effect from 
having broken cycle detection since 2011 is that many projects will now 
detect cycles. 2.072 is going to break a lot of code that was already 
"broken". I use scare quotes because likely the code is just fine, but 
the cycle detection is so broad that it's easy to get caught in the net.


The best answer is to somehow do better cycle detection (e.g. determine 
if there really are dependencies that break with cycles). We have some 
ideas, but nothing has been fleshed out yet.


-Steve


Re: Release D 2.072.0

2016-11-03 Thread Andre Pany via Digitalmars-d-announce

On Thursday, 3 November 2016 at 12:17:29 UTC, Sönke Ludwig wrote:

Am 03.11.2016 um 06:58 schrieb Andre Pany:

Temp-folder builds are only done if the special shebang 
invocation syntax is used (i.e. "dub file.d Building with "dub --single file.d" should build normally. This 
was the case within the thread, too. Has anything changed since 
then?


Unfortunately yes, the behavior of dub included in dmd 2.072 is 
not as expected (windows & linux).


/+ dub.sdl:
name "app"
+/
void main(){}

dub --single app.d
Running 
..\..\..\..\..\Users\abcdef\AppData\Local\Temp\.dub\build\app-~master\application-debug-windows-x86-dmd_2072-A4FA96FDE8C9353FB025486E4835F2E0\app.exe


Same behavior for dub build --single app.d

Kind regards
André


Re: Release D 2.072.0

2016-11-03 Thread Sönke Ludwig via Digitalmars-d-announce

Am 03.11.2016 um 06:58 schrieb Andre Pany:

On Monday, 31 October 2016 at 01:27:08 UTC, Martin Nowak wrote:

Glad to announce D 2.072.0.

http://dlang.org/download.html

This is the release ships with the latest version of dub (v1.1.0), comes
with lots of phobos additions and native TLS on OSX.
See the changelog for more details.

http://dlang.org/changelog/2.072.0.html

-Martin


Thanks for the new release.

There is an issue with this Dub version, which is as far as I understand
a bug.
While building/running a single source file project (dub information
included in D source file) the artifacts are created in a temporary
folder instead of the source file folder.
This makes the single file functionality in dub more or less not usable
for me, as you cannot influence the behavior.

http://forum.rejectedsoftware.com/groups/rejectedsoftware.dub/thread/13012/

Kind regards
André


Temp-folder builds are only done if the special shebang invocation 
syntax is used (i.e. "dub file.d --single file.d" should build normally. This was the case within the 
thread, too. Has anything changed since then?


Re: Release D 2.072.0

2016-11-02 Thread Andre Pany via Digitalmars-d-announce

On Monday, 31 October 2016 at 01:27:08 UTC, Martin Nowak wrote:

Glad to announce D 2.072.0.

http://dlang.org/download.html

This is the release ships with the latest version of dub 
(v1.1.0), comes

with lots of phobos additions and native TLS on OSX.
See the changelog for more details.

http://dlang.org/changelog/2.072.0.html

-Martin


Thanks for the new release.

There is an issue with this Dub version, which is as far as I 
understand a bug.
While building/running a single source file project (dub 
information included in D source file) the artifacts are created 
in a temporary folder instead of the source file folder.
This makes the single file functionality in dub more or less not 
usable for me, as you cannot influence the behavior.


http://forum.rejectedsoftware.com/groups/rejectedsoftware.dub/thread/13012/

Kind regards
André


Re: Release D 2.072.0

2016-11-02 Thread Jack Stouffer via Digitalmars-d-announce

On Monday, 31 October 2016 at 01:27:08 UTC, Martin Nowak wrote:

Glad to announce D 2.072.0.

http://dlang.org/download.html

This is the release ships with the latest version of dub 
(v1.1.0), comes

with lots of phobos additions and native TLS on OSX.
See the changelog for more details.

http://dlang.org/changelog/2.072.0.html

-Martin


https://www.reddit.com/r/programming/comments/5aru4f/d_version_2072_released_over_200_bugs_fixed/


Re: Release D 2.072.0

2016-11-02 Thread anonymous via Digitalmars-d-announce

On Wednesday, 2 November 2016 at 15:08:26 UTC, anonymous wrote:
On Wednesday, 2 November 2016 at 12:36:45 UTC, Johan Engelen 
wrote:

LDC built with DMD 2.072.0 gives the following error when run:
object.Error@src/rt/minfo.d(356): Cyclic dependency between 
module ddmd.traits and ddmd.cond

ddmd.traits* ->
ddmd.attrib ->
ddmd.cond* ->
ddmd.expression ->
ddmd.traits*

Pretty much all of LDC's D code is DDMD front-end code, master 
is at front-end version 2.071.2. I hope someone can try to 
build DMD 2.071.2 using 2.072.0 and see if a similar issue is 
found.


I confirm, dmd 2.072 can't build dmd 2.071.2, same error, but 
boot since master straping works there's probably something 
that's been fixed in one or two of these ddmd modules, likely a 
static ctor...


Maybe after this:

https://github.com/dlang/dmd/commit/1d0ab8b9c136e46bf449c506ca25d2c8a784f7b9#diff-b4674e7b5d3a44178526afdefc9aa368

ddmd.attribs was removed

https://github.com/dlang/dmd/commit/1d0ab8b9c136e46bf449c506ca25d2c8a784f7b9#diff-b4674e7b5d3a44178526afdefc9aa368L15

and it was also part of the cycle.


Re: Release D 2.072.0

2016-11-02 Thread anonymous via Digitalmars-d-announce
On Wednesday, 2 November 2016 at 12:36:45 UTC, Johan Engelen 
wrote:

LDC built with DMD 2.072.0 gives the following error when run:
object.Error@src/rt/minfo.d(356): Cyclic dependency between 
module ddmd.traits and ddmd.cond

ddmd.traits* ->
ddmd.attrib ->
ddmd.cond* ->
ddmd.expression ->
ddmd.traits*

Pretty much all of LDC's D code is DDMD front-end code, master 
is at front-end version 2.071.2. I hope someone can try to 
build DMD 2.071.2 using 2.072.0 and see if a similar issue is 
found.


I confirm, dmd 2.072 can't build dmd 2.071.2, same error, but 
boot since master straping works there's probably something 
that's been fixed in one or two of these ddmd modules, likely a 
static ctor...


Re: Release D 2.072.0

2016-11-02 Thread Johan Engelen via Digitalmars-d-announce
On Tuesday, 1 November 2016 at 16:40:42 UTC, Andrei Alexandrescu 
wrote:

On 11/01/2016 11:41 AM, Johan Engelen wrote:

On Monday, 31 October 2016 at 01:27:08 UTC, Martin Nowak wrote:

Glad to announce D 2.072.0.


DMD 2.072.0 miscompiles/uncovers a bug in LDC, so I switched 
back to DMD

2.071.2 for CI testing. :(


Is there somebody working on that bug? Thanks. -- Andrei


LDC built with DMD 2.072.0 gives the following error when run:
object.Error@src/rt/minfo.d(356): Cyclic dependency between 
module ddmd.traits and ddmd.cond

ddmd.traits* ->
ddmd.attrib ->
ddmd.cond* ->
ddmd.expression ->
ddmd.traits*

Pretty much all of LDC's D code is DDMD front-end code, master is 
at front-end version 2.071.2. I hope someone can try to build DMD 
2.071.2 using 2.072.0 and see if a similar issue is found.


Re: Release D 2.072.0

2016-11-01 Thread Andrei Alexandrescu via Digitalmars-d-announce

On 11/01/2016 11:41 AM, Johan Engelen wrote:

On Monday, 31 October 2016 at 01:27:08 UTC, Martin Nowak wrote:

Glad to announce D 2.072.0.


DMD 2.072.0 miscompiles/uncovers a bug in LDC, so I switched back to DMD
2.071.2 for CI testing. :(


Is there somebody working on that bug? Thanks. -- Andrei



Re: Release D 2.072.0

2016-11-01 Thread Johan Engelen via Digitalmars-d-announce

On Monday, 31 October 2016 at 01:27:08 UTC, Martin Nowak wrote:

Glad to announce D 2.072.0.


DMD 2.072.0 miscompiles/uncovers a bug in LDC, so I switched back 
to DMD 2.071.2 for CI testing. :(


-Johan



Re: Release D 2.072.0

2016-11-01 Thread Nick Treleaven via Digitalmars-d-announce

On Monday, 31 October 2016 at 07:27:50 UTC, Ali Çehreli wrote:
Is the only valid remaining use for the comma operator the 
'for' loop iteration?


for ( ; ; ++i, ++j) {
// ...
}

Are there other uses?


The changelog shows it can be used for an expression statement:

  // This is okay, the result is not used.
  if (!mc)
mc = new MyContainerClass, mc.append(new Entry);

I've made a pull to improve the comma examples, e.g. adding 
brackets (mc = ...), mc.append and removing unnecessary 
statements:


https://github.com/dlang/dlang.org/pull/1502

Would be good if someone could review and merge.


Re: Release D 2.072.0

2016-10-31 Thread ag0aep6g via Digitalmars-d-announce

On 10/31/2016 09:35 PM, Martin Nowak wrote:

There weren't any open regressions left in Bugzilla blocking this
release,


What makes a regression blocking? There are three open regressions in 2.072:

https://issues.dlang.org/show_bug.cgi?id=16013
https://issues.dlang.org/show_bug.cgi?id=16273
https://issues.dlang.org/show_bug.cgi?id=16574



Re: Release D 2.072.0

2016-10-31 Thread Martin Nowak via Digitalmars-d-announce
On 10/31/2016 08:45 AM, Sönke Ludwig wrote:
> BTW, I was really surprised that there was not at least one release
> candidate. There is a forward reference regression that happened after
> the last beta and affects vibe.d. I'll see if I can find a workaround.

There weren't any open regressions left in Bugzilla blocking this
release, and I did take care of that forward reference bug (Issue 16607).
I did not want to delay the release any further. We can always follow up
with point releases if more fixes come in.
I hope https://ci.dawg.eu/ helps to avoid accumulating so many issues in
the first place.

-Martin



Re: Release D 2.072.0

2016-10-31 Thread Martin Nowak via Digitalmars-d-announce
On 10/31/2016 08:24 AM, Sönke Ludwig wrote:
> Hm, looks like DUB 1.1.0 was tagged on master instead of stable, which
> means that some fixes are missing and some changes haven't gone through
> a testing phase. Can we still fix this for this release?

Shoot, sorry for that. We still need to integrate dub into
http://wiki.dlang.org/DMD_Release_Building.



Re: Release D 2.072.0

2016-10-31 Thread Basile B. via Digitalmars-d-announce

On Monday, 31 October 2016 at 01:27:08 UTC, Martin Nowak wrote:

Glad to announce D 2.072.0.

http://dlang.org/download.html

This is the release ships with the latest version of dub 
(v1.1.0), comes

with lots of phobos additions and native TLS on OSX.
See the changelog for more details.

http://dlang.org/changelog/2.072.0.html

-Martin


Thanks,

About http://dlang.org/changelog/2.072.0.html#drt-oncycle
I'll maybe propose this: 
https://issues.dlang.org/show_bug.cgi?id=16583


The ability to solve conflicts with selective/global imports as a 
language spec.





Re: Release D 2.072.0

2016-10-31 Thread John Colvin via Digitalmars-d-announce

On Monday, 31 October 2016 at 07:24:23 UTC, Sönke Ludwig wrote:

Am 31.10.2016 um 02:27 schrieb Martin Nowak:

Glad to announce D 2.072.0.

http://dlang.org/download.html

This is the release ships with the latest version of dub 
(v1.1.0), comes

with lots of phobos additions and native TLS on OSX.
See the changelog for more details.

http://dlang.org/changelog/2.072.0.html

-Martin



Hm, looks like DUB 1.1.0 was tagged on master instead of 
stable, which means that some fixes are missing and some 
changes haven't gone through a testing phase. Can we still fix 
this for this release?


Martin, have you considered posting each release* here on the 
newsgroup 24 hours before the actual release, marked "pre-release 
sanity check" so mistakes like this are more likely to be caught?


* and I mean the actual bit-for-bit identical release packages 
here; this is test-firing the actual rocket that's going to space.


Re: Release D 2.072.0

2016-10-31 Thread Sönke Ludwig via Digitalmars-d-announce

Am 31.10.2016 um 08:24 schrieb Sönke Ludwig:

Am 31.10.2016 um 02:27 schrieb Martin Nowak:

Glad to announce D 2.072.0.

http://dlang.org/download.html

This is the release ships with the latest version of dub (v1.1.0), comes
with lots of phobos additions and native TLS on OSX.
See the changelog for more details.

http://dlang.org/changelog/2.072.0.html

-Martin



Hm, looks like DUB 1.1.0 was tagged on master instead of stable, which
means that some fixes are missing and some changes haven't gone through
a testing phase. Can we still fix this for this release?


BTW, I was really surprised that there was not at least one release 
candidate. There is a forward reference regression that happened after 
the last beta and affects vibe.d. I'll see if I can find a workaround.


Re: Release D 2.072.0

2016-10-31 Thread Sönke Ludwig via Digitalmars-d-announce

Am 31.10.2016 um 08:24 schrieb Sönke Ludwig:

Am 31.10.2016 um 02:27 schrieb Martin Nowak:

Glad to announce D 2.072.0.

http://dlang.org/download.html

This is the release ships with the latest version of dub (v1.1.0), comes
with lots of phobos additions and native TLS on OSX.
See the changelog for more details.

http://dlang.org/changelog/2.072.0.html

-Martin



Hm, looks like DUB 1.1.0 was tagged on master instead of stable, which
means that some fixes are missing and some changes haven't gone through
a testing phase. Can we still fix this for this release?


2a90bd1c0d18d5a706723757cf01aeffc179ee1f is the right commit hash.


Re: Release D 2.072.0

2016-10-31 Thread Ali Çehreli via Digitalmars-d-announce

On 10/30/2016 06:27 PM, Martin Nowak wrote:

Glad to announce D 2.072.0.

http://dlang.org/download.html

This is the release ships with the latest version of dub (v1.1.0), comes
with lots of phobos additions and native TLS on OSX.
See the changelog for more details.

http://dlang.org/changelog/2.072.0.html

-Martin



Thanks!

Is the only valid remaining use for the comma operator the 'for' loop 
iteration?


for ( ; ; ++i, ++j) {
// ...
}

Are there other uses?

Ali



Re: Release D 2.072.0

2016-10-31 Thread Sönke Ludwig via Digitalmars-d-announce

Am 31.10.2016 um 02:27 schrieb Martin Nowak:

Glad to announce D 2.072.0.

http://dlang.org/download.html

This is the release ships with the latest version of dub (v1.1.0), comes
with lots of phobos additions and native TLS on OSX.
See the changelog for more details.

http://dlang.org/changelog/2.072.0.html

-Martin



Hm, looks like DUB 1.1.0 was tagged on master instead of stable, which 
means that some fixes are missing and some changes haven't gone through 
a testing phase. Can we still fix this for this release?


Re: Release D 2.072.0

2016-10-30 Thread Nick Sabalausky via Digitalmars-d-announce

On 10/30/2016 09:27 PM, Martin Nowak wrote:


This is the release ships with the latest version of dub (v1.1.0),


Changelog for dub 1.1.0?




Release D 2.072.0

2016-10-30 Thread Martin Nowak via Digitalmars-d-announce
Glad to announce D 2.072.0.

http://dlang.org/download.html

This is the release ships with the latest version of dub (v1.1.0), comes
with lots of phobos additions and native TLS on OSX.
See the changelog for more details.

http://dlang.org/changelog/2.072.0.html

-Martin