January 04, 2018
On Thursday, 4 January 2018 at 08:15:50 UTC, Rainer Schuetze wrote:

> What's missing is probably legacy_stdio_definition.lib that has to be added to the linker command line for VS2015 or later.

Yes, that is the case!
Using -v flag I can see that dmd 2.077 invokes
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\bin\link.exe /NOLOGO app /OUT:"app.exe"  /OPT:NOICF /LIBPATH:"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\lib\amd64" /LIBPATH:"C:\Program Files (x86)\Windows Kits\10\\lib\x64"  /LIBPATH:"C:\Program Files (x86)\Windows Kits\10\\lib\10.0.10240.0\ucrt\x64" legacy_stdio_definitions.lib

While the new 2.078 just
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\link.exe /NOLOGO app /OUT:"app.exe"  /OPT:NOICF  /LIBPATH:"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\amd64" /LIBPATH:"C:\Program Files (x86)\Windows Kits\10\lib\10.0.10240.0\um\x64"

> Please try replacing the Environment64 section in sc.ini with just this:
>
> [Environment64]
> LIB=%@P%\..\lib64
> DFLAGS=%DFLAGS% -L/OPT:NOICF

I'm using the variant from 7z archive (not installer). Its sc.ini section already looks very much like this.
January 04, 2018
On Thursday, 4 January 2018 at 02:27:13 UTC, Mike Parker wrote:

>
> Awesome! I'll post the blog announcement and hit social media in ~12 hours.

Blog:
https://dlang.org/blog/2018/01/04/dmd-2-078-0-has-been-released/

Reddit:
https://www.reddit.com/r/programming/comments/7o2tcw/dmd_20780_has_been_released/
January 04, 2018
On Thursday, 4 January 2018 at 13:03:21 UTC, Mike Parker wrote:
> On Thursday, 4 January 2018 at 02:27:13 UTC, Mike Parker wrote:
>
>>
>> Awesome! I'll post the blog announcement and hit social media in ~12 hours.
>
> Blog:
> https://dlang.org/blog/2018/01/04/dmd-2-078-0-has-been-released/
>
> Reddit:
> https://www.reddit.com/r/programming/comments/7o2tcw/dmd_20780_has_been_released/

Nice post, good explanations and code samples.  Here's some phrases I'd change:

quality of life -> quality-of-life
stubbed out -> stubbed-out
line, or an alternative -> line or an alternate D runtime
dependent -> that depends
DMD 2.80.0 -> DMD 2.080.0
January 04, 2018
On Thursday, 4 January 2018 at 15:22:03 UTC, Joakim wrote:

>
> Nice post, good explanations and code samples.  Here's some phrases I'd change:
>
> quality of life -> quality-of-life
> stubbed out -> stubbed-out
> line, or an alternative -> line or an alternate D runtime
> dependent -> that depends
> DMD 2.80.0 -> DMD 2.080.0

Thanks!
January 04, 2018
On Thursday, 4 January 2018 at 13:03:21 UTC, Mike Parker wrote:
>
> Blog:
> https://dlang.org/blog/2018/01/04/dmd-2-078-0-has-been-released/
>
> Reddit:
> https://www.reddit.com/r/programming/comments/7o2tcw/dmd_20780_has_been_released/

I've been really liking the blog write-ups on the new releases.

On a related note, the vision document for 2018H1 has not yet been created.
January 04, 2018
On Thursday, 4 January 2018 at 15:51:55 UTC, jmh530 wrote:

> I've been really liking the blog write-ups on the new releases.

Thanks!

>
> On a related note, the vision document for 2018H1 has not yet been created.

It's a WIP.
January 04, 2018
On Thursday, 4 January 2018 at 15:53:33 UTC, Mike Parker wrote:
>> On a related note, the vision document for 2018H1 has not yet been created.
>
> It's a WIP.

If I may make a suggestion, please make the vision documents smaller and more focused. The goals laid out are typically far too broad to actually accomplish in half a year. Instead, the document should give detailed milestones for two or three long term goals which the community should complete in the six months.

E.g.

> @safety: we aim to enable large-scale uses of D with safety guarantees

and

>Static introspection: We believe this is an important strategic advantage of D and we should continue to improve both compiler support and library support.

These are not actionable and can't be achieved in just six months of work. Instead, something like

> To move toward a @safe Phobos, std.json, std.file, and std.stdio should all be 100% @safe by June.
>Static introspection: we believe this is an important strategic advantage of D, so X, Y, and Z feature should be added by June

gives contributors goals they can start making PRs for.
January 04, 2018
On Thursday, 4 January 2018 at 13:03:21 UTC, Mike Parker wrote:
> https://dlang.org/blog/2018/01/04/dmd-2-078-0-has-been-released/

> In normal D code, struct destructors are executed when an instance goes out of scope. This is handled by DRuntime, […]

This is slightly inaccurate. Regular stack cleanup doesn't involve the runtime at all; druntime only comes into play for exception handling. Since destructors also need to be run when the scope is left by an exception, they are implemented via `try {} finally {}` internally. The EH part of these depends on druntime, but not the regular path.

> One of the seemingly obscure features dependent upon DRuntime is the ModuleInfo type. It’s a type that works quietly behind the scenes as one of the enabling mechanisms of reflection and most D programmers will likely never hear of it.

This is somewhat confusingly worded as well. It's actually mostly the other way around – druntime depends on ModuleInfo to be emitted, crucially for static constructor, destructors and unit tests to be run. At least without shared libraries in the picture, it would be fairly easy to manually look up the set of ModuleInfos in a druntime-less D program.

 — David


January 05, 2018
Martin Nowak wrote:


> 
> Glad to announce D 2.078.0.

Hello and Happy New Year ! :)

Unfortunally, linux x86_64 version(*) has problems:

(*) from red hat rpm


simplest test program:

module main;

import std.stdio;

int main(string[] args)
{
    writefln("Hello World\n");
        return 0;
}

traps with follows reason:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7460299 in fwrite () from /lib64/libc.so.6
Fatal error: glibc detected an invalid stdio handle
Аварийный останов

(gdb) bt
#0  0x00007ffff7460299 in fwrite () from /lib64/libc.so.6
#1  0x00000000004046ba in std.stdio (obj=..., f=0x655160 <std.stdio>) at
/usr/include/d/std/stdio.d:4064
#2  0x00000000004045f1 in std.stdio.File.LockingTextWriter (this=...,
writeme=...)
    at /usr/include/d/std/stdio.d:2775
#3  0x0000000000403ddb in std.range.primitives (e=..., r=...) at
/usr/include/d/std/range/primitives.d:269
#4  0x0000000000403dad in std.range.primitives (e=..., r=...) at
/usr/include/d/std/range/primitives.d:358
#5  0x0000000000403d41 in std.format (this=..., writer=...) at
/usr/include/d/std/format.d:1188
#6  0x0000000000403871 in std.format (fmt=..., w=...) at
/usr/include/d/std/format.d:474
#7  0x00000000004037d1 in std.stdio.File (this=..., fmt=...) at
/usr/include/d/std/stdio.d:1496
#8  0x0000000000403759 in std.stdio (fmt=...) at
/usr/include/d/std/stdio.d:3797
#9  0x000000000040370a in D main (args=...) at hello.d:7



Thank you, yours sincerely and etc...

January 05, 2018
On 05/01/2018 2:30 PM, Глеб Куликов/Gleb Kulikov wrote:
> Martin Nowak wrote:
> 
> 
>>
>> Glad to announce D 2.078.0.
> 
> Hello and Happy New Year ! :)
> 
> Unfortunally, linux x86_64 version(*) has problems:
> 
> (*) from red hat rpm
> 
> 
> simplest test program:
> 
> module main;
> 
> import std.stdio;
> 
> int main(string[] args)
> {
>      writefln("Hello World\n");
>          return 0;
> }
> 
> traps with follows reason:
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0x00007ffff7460299 in fwrite () from /lib64/libc.so.6
> Fatal error: glibc detected an invalid stdio handle
> Аварийный останов
> 
> (gdb) bt
> #0  0x00007ffff7460299 in fwrite () from /lib64/libc.so.6
> #1  0x00000000004046ba in std.stdio (obj=..., f=0x655160 <std.stdio>) at
> /usr/include/d/std/stdio.d:4064
> #2  0x00000000004045f1 in std.stdio.File.LockingTextWriter (this=...,
> writeme=...)
>      at /usr/include/d/std/stdio.d:2775
> #3  0x0000000000403ddb in std.range.primitives (e=..., r=...) at
> /usr/include/d/std/range/primitives.d:269
> #4  0x0000000000403dad in std.range.primitives (e=..., r=...) at
> /usr/include/d/std/range/primitives.d:358
> #5  0x0000000000403d41 in std.format (this=..., writer=...) at
> /usr/include/d/std/format.d:1188
> #6  0x0000000000403871 in std.format (fmt=..., w=...) at
> /usr/include/d/std/format.d:474
> #7  0x00000000004037d1 in std.stdio.File (this=..., fmt=...) at
> /usr/include/d/std/stdio.d:1496
> #8  0x0000000000403759 in std.stdio (fmt=...) at
> /usr/include/d/std/stdio.d:3797
> #9  0x000000000040370a in D main (args=...) at hello.d:7
> 
> 
> 
> Thank you, yours sincerely and etc...
> 

Please file an issue (so it doesn't get lost) thanks!

http://issues.dlang.org