Re: Release D 2.077.0

2017-11-03 Thread Seb via Digitalmars-d-announce
On Friday, 3 November 2017 at 14:00:38 UTC, Arun Chandrasekaran 
wrote:
Mike, thanks for the blog post. Few lines about how the name 
mangling issue was addressed would've been interesting know on 
the blog.


The regarding main PR contains a lot of info: 
https://github.com/dlang/dmd/pull/5855

For example, some quick stats on the reduced size of Phobos:

https://github.com/dlang/dmd/pull/5855#issuecomment-315565256


Re: Reorganization and list of D libraries (300+)

2017-11-03 Thread codephantom via Digitalmars-d-announce

On Saturday, 4 November 2017 at 00:16:35 UTC, Ali Çehreli wrote:
This effort should be combined with the current work being done 
to http://code.dlang.org/


I'd like to see code.dlang.org to have a new column that 
explicitely shows the licence being used, and the capacity to 
search/filter by licence type would be great too.




Re: LDC 1.5.0

2017-11-03 Thread codephantom via Digitalmars-d-announce

On Friday, 3 November 2017 at 17:17:04 UTC, kinke wrote:

Hi everyone,

on behalf of the LDC team, I'm glad to finally officially 
announce LDC 1.5. The highlights of this version in a nutshell:




Great stuff.

No binary release for FreeBSD though??

:-(



Re: LDC 1.5.0

2017-11-03 Thread kinke via Digitalmars-d-announce
On Saturday, 4 November 2017 at 00:14:59 UTC, David Nadlinger 
wrote:
On Friday, 3 November 2017 at 23:50:33 UTC, Nicholas Wilson 
wrote:
Does `-link-internally` mean that you don't require command 
line tool/dev installation for OS X and Windows? That would be 
awesome for getting workshops for non-programmers (the 
biologists at my Uni) to work.


You still need the system libraries to link against, 
unfortunately.


And `-link-internally` is currently restricted to MSVC targets. 
https://github.com/ldc-developers/ldc/pull/2203 enables ELF and 
Mach-O output too, but for those targets you'll most likely need 
a lot of extra linker flags.


Re: Reorganization and list of D libraries (300+)

2017-11-03 Thread Guillaume Piolat via Digitalmars-d-announce

On Saturday, 4 November 2017 at 00:16:35 UTC, Ali Çehreli wrote:

On 11/03/2017 05:12 PM, Fra Mecca wrote:


https://github.com/FraMecca/D_Libraries_Registry


This effort should be combined with the current work being done 
to http://code.dlang.org/




See also: https://wiki.dlang.org/Libraries_and_Frameworks


Re: Reorganization and list of D libraries (300+)

2017-11-03 Thread Ali Çehreli via Digitalmars-d-announce

On 11/03/2017 05:12 PM, Fra Mecca wrote:


https://github.com/FraMecca/D_Libraries_Registry


This effort should be combined with the current work being done to 
http://code.dlang.org/


I hope Martin, Seb, and others that are involved will see this thread. 
(Yes, I'm pinging them. :) )


Ali


Re: LDC 1.5.0

2017-11-03 Thread David Nadlinger via Digitalmars-d-announce

On Friday, 3 November 2017 at 23:50:33 UTC, Nicholas Wilson wrote:
Does `-link-internally` mean that you don't require command 
line tool/dev installation for OS X and Windows? That would be 
awesome for getting workshops for non-programmers (the 
biologists at my Uni) to work.


You still need the system libraries to link against, 
unfortunately.


 — David


Reorganization and list of D libraries (300+)

2017-11-03 Thread Fra Mecca via Digitalmars-d-announce

Hi all.

Lurking in this forum I had the feeling that lots of D developers 
tend to rewrite lots of code that could be found in libraries. 
This is not bad per se but I thought that one of the reason could 
have been the current process of library discovery.


For this reason I have edited a list of libraries that could aid 
in this process.


I also considered that the following features could be of 
importance to you:

- License
- Garbage collector
- last modification (automated)

The list is of course not complete and I could not test all of 
the libraries I included.


I welcome you to modify it, open PRs or issues on github.

https://github.com/FraMecca/D_Libraries_Registry

I hope it could lead to a better ecosystem for the whole D 
community.





Re: LDC 1.5.0

2017-11-03 Thread Nicholas Wilson via Digitalmars-d-announce

On Friday, 3 November 2017 at 17:17:04 UTC, kinke wrote:

Hi everyone,

on behalf of the LDC team, I'm glad to finally officially 
announce LDC 1.5. The highlights of this version in a nutshell:


* Based on D 2.075.1.
* Polished LLVM 5.0 support (now also used for the prebuilt 
release packages).

* Prebuilt ARM-Linux package available again.
* New command-line option `-linker` and ~25 new advanced ones 
for codegen fine-tuning.

* Bugfixes, as always.

Full release log and downloads: 
https://github.com/ldc-developers/ldc/releases/tag/v1.5.0


Thanks to all contributors!

[LDC master is at v2.076.1, so LDC 1.6 won't take long.]


Great!

Does `-link-internally` mean that you don't require command line 
tool/dev installation for OS X and Windows? That would be awesome 
for getting workshops for non-programmers (the biologists at my 
Uni) to work.




Re: Release D 2.077.0

2017-11-03 Thread Dmitry Olshansky via Digitalmars-d-announce

On Friday, 3 November 2017 at 19:46:58 UTC, Walter Bright wrote:

On 11/3/2017 3:02 AM, Mike Parker wrote:
For clarity, where the changeling says that GDC & LDC use 
auto-vectorization, that's actually happening with the array 
operations and core.simd is not required, correct?


I think that GDC and LDC do do auto-vectorization, but I 
haven't verified it myself.


Auto-vectorization is a fundamentally bizarre feature. It takes 
low level code and reverse-engineers it back into a higher 
level construct, and then proceeds to generate code for that 
higher level construct.


Everything else a compiler does is start from a high level 
construct and then generate low level code.


The trouble with AV is whether it succeeds or not depends on 
peculiarities (and I mean peculiarities) of the particular 
vector instruction set target. It can decided to not vectorize 
based on seemingly trivial and innocuous changes to the loop.


I’ll share an anecdotal experience from a time I worked in 
reasearch lab of a well known tech giant. 2 senior researchers 
spent literally 2 weeks trying to coerce compiler into 
vectorizing an inner loop of a non-trivial matrix algorithm.


The only diagnostic from compiler was “loop form is not correct”. 
Thankfully it did tell them it failed, else they’d have to 
disassemble it each time.


I think eventually they either rewritten it to fit heuristic or 
just carried on with explicit intrinsics.



What's needed is a language feature that is straightforwardly 
vectorizable. That would be D's array operations.


Sadly array ops would be insufficient for said problem. It wasn’t 
a direct element wise expression.





Re: Release D 2.077.0

2017-11-03 Thread Walter Bright via Digitalmars-d-announce

On 11/3/2017 3:02 AM, Mike Parker wrote:
For clarity, where the changeling says that GDC & LDC use auto-vectorization, 
that's actually happening with the array operations and core.simd is not 
required, correct?


I think that GDC and LDC do do auto-vectorization, but I haven't verified it 
myself.

Auto-vectorization is a fundamentally bizarre feature. It takes low level code 
and reverse-engineers it back into a higher level construct, and then proceeds 
to generate code for that higher level construct.


Everything else a compiler does is start from a high level construct and then 
generate low level code.


The trouble with AV is whether it succeeds or not depends on peculiarities (and 
I mean peculiarities) of the particular vector instruction set target. It can 
decided to not vectorize based on seemingly trivial and innocuous changes to the 
loop. The only way to tell is to benchmark it or look at the object file - 
methods that are unreliable (benchmarking) or do not scale (manually looking at 
the object file).


What's needed is a language feature that is straightforwardly vectorizable. That 
would be D's array operations.


Re: Release D 2.077.0

2017-11-03 Thread Daniel Kozak via Digitalmars-d-announce
I have SIGSEGV when using DMD and simd types. This code works ok with GDC
and LDC fine, but SIGSEGV with latest DMD (maybe even with previous
versions I do not know)

https://dpaste.dzfl.pl/5476f5bef828

On Fri, Nov 3, 2017 at 5:04 PM, Steven Schveighoffer via
Digitalmars-d-announce  wrote:

> On 11/3/17 10:00 AM, Arun Chandrasekaran wrote:
>
>> On Friday, 3 November 2017 at 13:47:55 UTC, Mike Parker wrote:
>>
>>> On Thursday, 2 November 2017 at 22:35:03 UTC, Martin Nowak wrote:
>>>
 Glad to announce D 2.077.0.

 This release comes with a new, more compact mangling, templated vector
 operations, reproducible dmd builds, and various fixes.
 Thanks to everyone involved in this 👏.

 http://downloads.dlang.org/releases/2.x/2.077.0/
 http://dlang.org/changelog/2.077.0.html
 The dlang.org website will get updated soon.

 -Martin

>>>
>>> Blog:
>>> https://dlang.org/blog/2017/11/03/dmd-2-077-0-released/
>>>
>>
>> Mike, thanks for the blog post. Few lines about how the name mangling
>> issue was addressed would've been interesting know on the blog.
>>
>
> A blog post I wrote about the issue itself (and a workaround that I
> employed to achieve the same result) is here:
>
> http://www.schveiguy.com/blog/2016/05/have-your-voldemort-ty
> pes-and-keep-your-disk-space-too/
>
> I hope Rainer agrees to the blog post as well. While I understand the
> concept, a detailed description of how the back references work would be
> very interesting.
>
> -Steve
>


Re: Release D 2.077.0

2017-11-03 Thread Joakim via Digitalmars-d-announce

On Friday, 3 November 2017 at 13:47:55 UTC, Mike Parker wrote:
On Thursday, 2 November 2017 at 22:35:03 UTC, Martin Nowak 
wrote:

Glad to announce D 2.077.0.

This release comes with a new, more compact mangling, 
templated vector operations, reproducible dmd builds, and 
various fixes.

Thanks to everyone involved in this 👏.

http://downloads.dlang.org/releases/2.x/2.077.0/
http://dlang.org/changelog/2.077.0.html
The dlang.org website will get updated soon.

-Martin


Blog:
https://dlang.org/blog/2017/11/03/dmd-2-077-0-released/

Reddit:
https://www.reddit.com/r/programming/comments/7ajg71/dmd_20770_released/


Typo: particulary

"case so that," -> "case, so that" (I'd also remove the comma 
after that)




LDC 1.5.0

2017-11-03 Thread kinke via Digitalmars-d-announce

Hi everyone,

on behalf of the LDC team, I'm glad to finally officially 
announce LDC 1.5. The highlights of this version in a nutshell:


* Based on D 2.075.1.
* Polished LLVM 5.0 support (now also used for the prebuilt 
release packages).

* Prebuilt ARM-Linux package available again.
* New command-line option `-linker` and ~25 new advanced ones for 
codegen fine-tuning.

* Bugfixes, as always.

Full release log and downloads: 
https://github.com/ldc-developers/ldc/releases/tag/v1.5.0


Thanks to all contributors!

[LDC master is at v2.076.1, so LDC 1.6 won't take long.]


Re: Release D 2.077.0

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

On 11/3/17 10:00 AM, Arun Chandrasekaran wrote:

On Friday, 3 November 2017 at 13:47:55 UTC, Mike Parker wrote:

On Thursday, 2 November 2017 at 22:35:03 UTC, Martin Nowak wrote:

Glad to announce D 2.077.0.

This release comes with a new, more compact mangling, templated 
vector operations, reproducible dmd builds, and various fixes.

Thanks to everyone involved in this 👏.

http://downloads.dlang.org/releases/2.x/2.077.0/
http://dlang.org/changelog/2.077.0.html
The dlang.org website will get updated soon.

-Martin


Blog:
https://dlang.org/blog/2017/11/03/dmd-2-077-0-released/


Mike, thanks for the blog post. Few lines about how the name mangling 
issue was addressed would've been interesting know on the blog.


A blog post I wrote about the issue itself (and a workaround that I 
employed to achieve the same result) is here:


http://www.schveiguy.com/blog/2016/05/have-your-voldemort-types-and-keep-your-disk-space-too/

I hope Rainer agrees to the blog post as well. While I understand the 
concept, a detailed description of how the back references work would be 
very interesting.


-Steve


Re: Caching D compiler - preview version

2017-11-03 Thread Dmitry Olshansky via Digitalmars-d-announce
On Wednesday, 1 November 2017 at 19:33:15 UTC, Walter Bright 
wrote:

On 10/29/2017 9:25 AM, Dmitry Olshansky wrote:
On Saturday, 28 October 2017 at 23:18:05 UTC, Martin Nowak 
wrote:

On 10/24/2017 05:02 PM, Dmitry Olshansky wrote:
Experimental std.regex.v2 is sadly broken by a recent change 
to array ops. It would be very interesting to check as it 
eats up to 17Gb of RAM.


What got broken there?


New array ops implemented as __simd, I think it needs a __ctfe 
branch.



Please post a bugzilla issue for it.


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


Re: Release D 2.077.0

2017-11-03 Thread crimaniak via Digitalmars-d-announce

On Friday, 3 November 2017 at 14:41:06 UTC, Gerald wrote:
On Thursday, 2 November 2017 at 22:35:03 UTC, Martin Nowak 
wrote:

Glad to announce D 2.077.0.


... The new version is much better with only a 6 MB difference 
between the stripped and non-stripped versions.


My vibe-d application debug build reduced from 56Mb to 44Mb 
(release = 19Mb).




Re: Release D 2.077.0

2017-11-03 Thread Gerald via Digitalmars-d-announce

On Thursday, 2 November 2017 at 22:35:03 UTC, Martin Nowak wrote:

Glad to announce D 2.077.0.

This release comes with a new, more compact mangling, templated 
vector operations, reproducible dmd builds, and various fixes.

Thanks to everyone involved in this 👏.

http://downloads.dlang.org/releases/2.x/2.077.0/
http://dlang.org/changelog/2.077.0.html
The dlang.org website will get updated soon.

-Martin


Great release, in Tilix the dmd executable was quite large due to 
all the symbols generated in GtkD for event handling (mea culpa 
since I did that PR). The new version is much better with only a 
6 MB difference between the stripped and non-stripped versions.


Re: Diamond MVC / Template Engine - v2.1.0 Released

2017-11-03 Thread WebFreak001 via Digitalmars-d-announce

On Friday, 3 November 2017 at 14:16:53 UTC, bauss wrote:

On Thursday, 2 November 2017 at 22:55:04 UTC, WebFreak001 wrote:

On Thursday, 19 October 2017 at 23:29:57 UTC, bauss wrote:
I'm pleased to announce that I have just released Diamond 
2.1.0.


There has been a lot of updating to Diamond since last 
announced release.


[...]


Looks really useful, how about making a longer example and 
provide a template project? I could also include that template 
project in the code-d project creation dialog


I don't normally use VS Code, so to create a template for it 
are there anything specific it must include?


And yeah I'll come up with some longer examples and tutorials, 
for now I've made a temporary website with a bit of 
documentation as well API docs.


https://diamondmvc.github.io/Diamond/


Cool, I will take a look at that website.

There aren't actually templates in vscode but my D plugin adds 
some for D projects, you can check the folder in here: 
https://github.com/Pure-D/code-d/tree/master/templates


Re: Diamond MVC / Template Engine - v2.1.0 Released

2017-11-03 Thread bauss via Digitalmars-d-announce

On Thursday, 2 November 2017 at 22:55:04 UTC, WebFreak001 wrote:

On Thursday, 19 October 2017 at 23:29:57 UTC, bauss wrote:
I'm pleased to announce that I have just released Diamond 
2.1.0.


There has been a lot of updating to Diamond since last 
announced release.


[...]


Looks really useful, how about making a longer example and 
provide a template project? I could also include that template 
project in the code-d project creation dialog


I don't normally use VS Code, so to create a template for it are 
there anything specific it must include?


And yeah I'll come up with some longer examples and tutorials, 
for now I've made a temporary website with a bit of documentation 
as well API docs.


https://diamondmvc.github.io/Diamond/


Re: Release D 2.077.0

2017-11-03 Thread Mike Parker via Digitalmars-d-announce
On Friday, 3 November 2017 at 14:00:38 UTC, Arun Chandrasekaran 
wrote:


Mike, thanks for the blog post. Few lines about how the name 
mangling issue was addressed would've been interesting know on 
the blog.






There's a link in the post to the documentation describing the 
enhancement. As for how Rainer settled on that solution, I'm 
hoping to get a guest post out of him (though I haven't asked him 
yet, so s!).


[1] https://dlang.org/spec/abi.html#back_ref



Re: Release D 2.077.0

2017-11-03 Thread Arun Chandrasekaran via Digitalmars-d-announce

On Friday, 3 November 2017 at 13:47:55 UTC, Mike Parker wrote:
On Thursday, 2 November 2017 at 22:35:03 UTC, Martin Nowak 
wrote:

Glad to announce D 2.077.0.

This release comes with a new, more compact mangling, 
templated vector operations, reproducible dmd builds, and 
various fixes.

Thanks to everyone involved in this 👏.

http://downloads.dlang.org/releases/2.x/2.077.0/
http://dlang.org/changelog/2.077.0.html
The dlang.org website will get updated soon.

-Martin


Blog:
https://dlang.org/blog/2017/11/03/dmd-2-077-0-released/


Mike, thanks for the blog post. Few lines about how the name 
mangling issue was addressed would've been interesting know on 
the blog.




Reddit:
https://www.reddit.com/r/programming/comments/7ajg71/dmd_20770_released/





Re: Release D 2.077.0

2017-11-03 Thread Mike Parker via Digitalmars-d-announce

On Thursday, 2 November 2017 at 22:35:03 UTC, Martin Nowak wrote:

Glad to announce D 2.077.0.

This release comes with a new, more compact mangling, templated 
vector operations, reproducible dmd builds, and various fixes.

Thanks to everyone involved in this 👏.

http://downloads.dlang.org/releases/2.x/2.077.0/
http://dlang.org/changelog/2.077.0.html
The dlang.org website will get updated soon.

-Martin


Blog:
https://dlang.org/blog/2017/11/03/dmd-2-077-0-released/

Reddit:
https://www.reddit.com/r/programming/comments/7ajg71/dmd_20770_released/


Re: Release D 2.077.0

2017-11-03 Thread ANtlord via Digitalmars-d-announce

On Thursday, 2 November 2017 at 22:35:03 UTC, Martin Nowak wrote:

Glad to announce D 2.077.0.

This release comes with a new, more compact mangling, templated 
vector operations, reproducible dmd builds, and various fixes.

Thanks to everyone involved in this 👏.

http://downloads.dlang.org/releases/2.x/2.077.0/
http://dlang.org/changelog/2.077.0.html
The dlang.org website will get updated soon.

-Martin


It's time to update documentation on devdocs


Re: Release D 2.077.0

2017-11-03 Thread Mike Parker via Digitalmars-d-announce

On Friday, 3 November 2017 at 10:14:27 UTC, Joakim wrote:
See the linked druntime pull, core.simd is only imported for 
dmd:


https://github.com/dlang/druntime/pull/1891/files#diff-c17bbc97c8719ab709a4a54e2f6924ceR67


Ah, I see. I misunderstood Walter to be saying the user needed 
core.simd to get the vectorization. Thanks!


Re: Release D 2.077.0

2017-11-03 Thread Martin Nowak via Digitalmars-d-announce

On Friday, 3 November 2017 at 09:28:37 UTC, Daniel Kozak wrote:

How should I compile my program to enable array vectorization?


Array operations refers to 
https://dlang.org/spec/arrays.html#array-operations.



I have tried dmd -march=native, -march=avx2 as changlog suggest


It's -mcpu= not -march= for dmd, my bad.
Unfortunate that dmd uses different switches than gcc.
If you're compiling for 64-bit, you'll get SSE2 by default.




Re: Release D 2.077.0

2017-11-03 Thread Joakim via Digitalmars-d-announce

On Friday, 3 November 2017 at 10:07:25 UTC, Mike Parker wrote:

On Friday, 3 November 2017 at 10:02:18 UTC, Mike Parker wrote:

[...]


OK, I'm a bit confused here. This gives the impression that the 
vectorization happens automatically with array operations:


"Array operations have been converted from dedicated assembly 
routines for some array operations to a generic template 
implementation for all array operations. This provides huge 
performance increases (2-4x higher throughput) for array 
operations that were not previously vectorized. Furthermore the 
implementation makes better use of vectorization even for short 
arrays to heavily reduce latency for some operations (up to 
4x)."


Where does core.simd fit in?


See the linked druntime pull, core.simd is only imported for dmd:

https://github.com/dlang/druntime/pull/1891/files#diff-c17bbc97c8719ab709a4a54e2f6924ceR67


Re: Release D 2.077.0

2017-11-03 Thread Joakim via Digitalmars-d-announce

On Friday, 3 November 2017 at 10:02:18 UTC, Mike Parker wrote:

On Friday, 3 November 2017 at 09:33:31 UTC, Walter Bright wrote:

On 11/3/2017 2:28 AM, Daniel Kozak wrote:

How should I compile my program to enable array vectorization?


dmd doesn't do what is known as "auto-vectorization".

https://en.wikipedia.org/wiki/Automatic_vectorization

What D does is have vector data types, and when those are used 
vector instructions are generated for them.


https://dlang.org/spec/simd.html


For clarity, where the changeling says that GDC & LDC use 
auto-vectorization, that's actually happening with the array 
operations and core.simd is not required, correct?


Yes, at least with ldc.


Re: Release D 2.077.0

2017-11-03 Thread Mike Parker via Digitalmars-d-announce

On Friday, 3 November 2017 at 10:02:18 UTC, Mike Parker wrote:

On Friday, 3 November 2017 at 09:33:31 UTC, Walter Bright wrote:

On 11/3/2017 2:28 AM, Daniel Kozak wrote:

How should I compile my program to enable array vectorization?


dmd doesn't do what is known as "auto-vectorization".

https://en.wikipedia.org/wiki/Automatic_vectorization

What D does is have vector data types, and when those are used 
vector instructions are generated for them.


https://dlang.org/spec/simd.html


For clarity, where the changeling says that GDC & LDC use 
auto-vectorization, that's actually happening with the array 
operations and core.simd is not required, correct?


OK, I'm a bit confused here. This gives the impression that the 
vectorization happens automatically with array operations:


"Array operations have been converted from dedicated assembly 
routines for some array operations to a generic template 
implementation for all array operations. This provides huge 
performance increases (2-4x higher throughput) for array 
operations that were not previously vectorized. Furthermore the 
implementation makes better use of vectorization even for short 
arrays to heavily reduce latency for some operations (up to 4x)."


Where does core.simd fit in?


Re: Release D 2.077.0

2017-11-03 Thread Mike Parker via Digitalmars-d-announce

On Friday, 3 November 2017 at 09:33:31 UTC, Walter Bright wrote:

On 11/3/2017 2:28 AM, Daniel Kozak wrote:

How should I compile my program to enable array vectorization?


dmd doesn't do what is known as "auto-vectorization".

https://en.wikipedia.org/wiki/Automatic_vectorization

What D does is have vector data types, and when those are used 
vector instructions are generated for them.


https://dlang.org/spec/simd.html


For clarity, where the changeling says that GDC & LDC use 
auto-vectorization, that's actually happening with the array 
operations and core.simd is not required, correct?


Re: Release D 2.077.0

2017-11-03 Thread Walter Bright via Digitalmars-d-announce

On 11/3/2017 2:28 AM, Daniel Kozak wrote:

How should I compile my program to enable array vectorization?


dmd doesn't do what is known as "auto-vectorization".

https://en.wikipedia.org/wiki/Automatic_vectorization

What D does is have vector data types, and when those are used vector 
instructions are generated for them.


https://dlang.org/spec/simd.html


Re: Release D 2.077.0

2017-11-03 Thread Daniel Kozak via Digitalmars-d-announce

On Thursday, 2 November 2017 at 22:35:03 UTC, Martin Nowak wrote:

Glad to announce D 2.077.0.

This release comes with a new, more compact mangling, templated 
vector operations, reproducible dmd builds, and various fixes.

Thanks to everyone involved in this 👏.

http://downloads.dlang.org/releases/2.x/2.077.0/
http://dlang.org/changelog/2.077.0.html
The dlang.org website will get updated soon.

-Martin


How should I compile my program to enable array vectorization?

I have tried dmd -march=native, -march=avx2 as changlog suggest 
but does not work


I have tried even just -march=native or -march=avx2 but still 
does not compile


Error: unrecognized switch '-march=avx2'

Error: unrecognized switch '-march=native'