www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Release D 2.096.0

reply Martin Nowak <code dawg.eu> writes:
Glad to announce D 2.096.0, ♥ to the 54 contributors.

This release comes with improved ABI compatibility for complex 
types, clarified copy constructor and postblit interaction, 
optional libunwind based backtraces, runtime-allocated global 
synchronized mutexes, and a preview for shortened lambda-style 
function definitions.

http://dlang.org/download.html
http://dlang.org/changelog/2.096.0.html

-Martin
Mar 13
next sibling parent Imperatorn <johan_forsberg_86 hotmail.com> writes:
On Saturday, 13 March 2021 at 21:15:40 UTC, Martin Nowak wrote:
 Glad to announce D 2.096.0, ♥ to the 54 contributors.

 This release comes with improved ABI compatibility for complex 
 types, clarified copy constructor and postblit interaction, 
 optional libunwind based backtraces, runtime-allocated global 
 synchronized mutexes, and a preview for shortened lambda-style 
 function definitions.

 http://dlang.org/download.html
 http://dlang.org/changelog/2.096.0.html

 -Martin
Thanks everyone 🎉
Mar 13
prev sibling next sibling parent reply Meta <jared771 gmail.com> writes:
On Saturday, 13 March 2021 at 21:15:40 UTC, Martin Nowak wrote:
 Glad to announce D 2.096.0, ♥ to the 54 contributors.

 This release comes with improved ABI compatibility for complex 
 types, clarified copy constructor and postblit interaction, 
 optional libunwind based backtraces, runtime-allocated global 
 synchronized mutexes, and a preview for shortened lambda-style 
 function definitions.

 http://dlang.org/download.html
 http://dlang.org/changelog/2.096.0.html

 -Martin
Allow shortened function implementations for single-expresssion functions. -preview=shortenedMethods is added. This allows functions to be written in a similar form to lambda functions: // these 2 are equivalent int foo() { return 1; } int foo() => 1; The syntax allows the form => expr to replace the function body { return expr; } Amazing! I had no idea this got in. I love the syntax.
Mar 13
next sibling parent Jesse Phillips <Jesse.K.Phillips+D gmail.com> writes:
On Saturday, 13 March 2021 at 21:33:20 UTC, Meta wrote:
 // these 2 are equivalent
 int foo() { return 1; }
 int foo() => 1;
 The syntax allows the form => expr to replace the function body 
 { return expr; }

 Amazing! I had no idea this got in. I love the syntax.
times, usually because I stumble on the property syntax. https://www.google.com/amp/s/csharp.christiannagel.com/2017/01/25/expressionbodiedmembers/amp/
Mar 13
prev sibling parent reply starcanopy <starcanopy protonmail.com> writes:
On Saturday, 13 March 2021 at 21:33:20 UTC, Meta wrote:
 On Saturday, 13 March 2021 at 21:15:40 UTC, Martin Nowak wrote:
 [...]
Allow shortened function implementations for single-expresssion functions. -preview=shortenedMethods is added. This allows functions to be written in a similar form to lambda functions: // these 2 are equivalent int foo() { return 1; } int foo() => 1; The syntax allows the form => expr to replace the function body { return expr; } Amazing! I had no idea this got in. I love the syntax.
It's pretty neat, but a DIP has to be drafted and approved for it to be enabled by default, right? (Unless I missed it.)
Mar 13
parent reply Max Haughton <maxhaton gmail.com> writes:
On Sunday, 14 March 2021 at 03:25:28 UTC, starcanopy wrote:
 On Saturday, 13 March 2021 at 21:33:20 UTC, Meta wrote:
 On Saturday, 13 March 2021 at 21:15:40 UTC, Martin Nowak wrote:
 [...]
Allow shortened function implementations for single-expresssion functions. -preview=shortenedMethods is added. This allows functions to be written in a similar form to lambda functions: // these 2 are equivalent int foo() { return 1; } int foo() => 1; The syntax allows the form => expr to replace the function body { return expr; } Amazing! I had no idea this got in. I love the syntax.
It's pretty neat, but a DIP has to be drafted and approved for it to be enabled by default, right? (Unless I missed it.)
Correct. To be completely honest it shouldn't have ever been merged since there was no approval from WalTila and they steer the language.
Mar 13
next sibling parent reply Meta <jared771 gmail.com> writes:
On Sunday, 14 March 2021 at 05:31:27 UTC, Max Haughton wrote:
 On Sunday, 14 March 2021 at 03:25:28 UTC, starcanopy wrote:
 On Saturday, 13 March 2021 at 21:33:20 UTC, Meta wrote:

 It's pretty neat, but a DIP has to be drafted and approved for 
 it to be enabled by default, right? (Unless I missed it.)
Correct. To be completely honest it shouldn't have ever been merged since there was no approval from WalTila and they steer the language.
I raised a similar concern before with something else (don't remember what it was), but apparently things can be merged without W&A's approval if they're behind a switch (in the opinion of at least some of the core maintainers, at least).
Mar 13
parent Imperatorn <johan_forsberg_86 hotmail.com> writes:
On Sunday, 14 March 2021 at 07:15:57 UTC, Meta wrote:
 On Sunday, 14 March 2021 at 05:31:27 UTC, Max Haughton wrote:
 On Sunday, 14 March 2021 at 03:25:28 UTC, starcanopy wrote:
 On Saturday, 13 March 2021 at 21:33:20 UTC, Meta wrote:

 It's pretty neat, but a DIP has to be drafted and approved 
 for it to be enabled by default, right? (Unless I missed it.)
Correct. To be completely honest it shouldn't have ever been merged since there was no approval from WalTila and they steer the language.
I raised a similar concern before with something else (don't remember what it was), but apparently things can be merged without W&A's approval if they're behind a switch (in the opinion of at least some of the core maintainers, at least).
Yeah, iirc preview switches can be added without a DIP because it's not a part of the language per se. It's probably a reasonable approach, because otherwise you would get a multitude of forks instead.
Mar 14
prev sibling parent reply starcanopy <starcanopy protonmail.com> writes:
On Sunday, 14 March 2021 at 05:31:27 UTC, Max Haughton wrote:
 On Sunday, 14 March 2021 at 03:25:28 UTC, starcanopy wrote:
 On Saturday, 13 March 2021 at 21:33:20 UTC, Meta wrote:
 On Saturday, 13 March 2021 at 21:15:40 UTC, Martin Nowak 
 wrote:
 [...]
Allow shortened function implementations for single-expresssion functions. -preview=shortenedMethods is added. This allows functions to be written in a similar form to lambda functions: // these 2 are equivalent int foo() { return 1; } int foo() => 1; The syntax allows the form => expr to replace the function body { return expr; } Amazing! I had no idea this got in. I love the syntax.
It's pretty neat, but a DIP has to be drafted and approved for it to be enabled by default, right? (Unless I missed it.)
Correct. To be completely honest it shouldn't have ever been merged since there was no approval from WalTila and they steer the language.
Given your status as a member of the Foundation, is there a plan/track of sorts to convert such a DIP-less -preview feature to a full-fledged one? I know it's a lot of work to write an improvement proposal, and deliberation with the community is a seemingly tiring (but necessary) ordeal, but I'm concerned that this feature will be in purgatory if its author becomes busy or forgets about it. (Barring another individual assuming proprietorship.)
Mar 14
next sibling parent Max Haughton <maxhaton gmail.com> writes:
On Sunday, 14 March 2021 at 18:25:51 UTC, starcanopy wrote:
 On Sunday, 14 March 2021 at 05:31:27 UTC, Max Haughton wrote:
 On Sunday, 14 March 2021 at 03:25:28 UTC, starcanopy wrote:
 [...]
Correct. To be completely honest it shouldn't have ever been merged since there was no approval from WalTila and they steer the language.
Given your status as a member of the Foundation, is there a plan/track of sorts to convert such a DIP-less -preview feature to a full-fledged one? I know it's a lot of work to write an improvement proposal, and deliberation with the community is a seemingly tiring (but necessary) ordeal, but I'm concerned that this feature will be in purgatory if its author becomes busy or forgets about it. (Barring another individual assuming proprietorship.)
I'm not sure. I will bring it up at the next foundation meeting.
Mar 15
prev sibling parent Adam D. Ruppe <destructionator gmail.com> writes:
On Sunday, 14 March 2021 at 18:25:51 UTC, starcanopy wrote:
 int foo() { return 1; }
 int foo() => 1;
I'm concerned that this feature will be in purgatory if its author becomes busy or forgets about it. (Barring another individual assuming proprietorship.)
I wrote the implementation for that and I've made it clear that I have zero interest in going through the DIP process; I'm done with it as is. Someone else will have to do whatever else they decide to do.
Mar 15
prev sibling next sibling parent Walter Bright <newshound2 digitalmars.com> writes:
Thank you, Martin!
Mar 13
prev sibling next sibling parent Guillaume Piolat <first.name spam.org> writes:
On Saturday, 13 March 2021 at 21:15:40 UTC, Martin Nowak wrote:
 Glad to announce D 2.096.0, ♥ to the 54 contributors.

 This release comes with improved ABI compatibility for complex 
 types, clarified copy constructor and postblit interaction, 
 optional libunwind based backtraces, runtime-allocated global 
 synchronized mutexes, and a preview for shortened lambda-style 
 function definitions.

 http://dlang.org/download.html
 http://dlang.org/changelog/2.096.0.html

 -Martin
Great!
Mar 14
prev sibling parent Mario =?UTF-8?B?S3LDtnBsaW4=?= <linkrope github.com> writes:
The fix for Issue 21508 - _private class p in file p.d visible 
outside the file (module)_ removed a behavior that was (wrongly) 
used from time to time:

```
module Foo;
class Foo {...}
```

The class `Foo` can no longer be imported with `import Foo;` This 
is a surprising breaking change. Perhaps it should be documented 
more explicitly.
Apr 12