A language comparison (seeking productivity-enhancing, well-designed, and concise languages)

2016-05-22 Thread Ali Çehreli via Digitalmars-d-announce

Found on Reddit:


https://www.reddit.com/r/programming/comments/4kmfp6/the_best_quality_programming_languages/

The list:


http://www.slant.co/topics/5984/~productivity-enhancing-well-designed-and-concise-rather-than-popular-or-time-tested-programming-languag

Ali


Re: amoeba, a chess engine written in D

2016-05-22 Thread David Nadlinger via Digitalmars-d-announce

On Sunday, 22 May 2016 at 21:22:30 UTC, Richard Delorme wrote:

A question: why singleobj is not activated by a -Ox options?


It changes compiler behaviour – only a single object file is 
produced. Historically, the default behaviour was used by some 
people/build systems for incremental compilation.


However, since incremental compilation only works when exactly 
the same (sub)sets of commands are invoked every time these days, 
-singleobj should arguably be on by default, at least when 
producing an executable.


This is actually what ldmd2 does already, but we should probably 
take the plunge and break backwards compatibility to enable it 
for the main driver too. I can't think of a scenario where you 
wouldn't want to be using it.


 — David


Re: My ACCU 2016 keynote video available online

2016-05-22 Thread Johan Engelen via Digitalmars-d-announce

On Thursday, 19 May 2016 at 12:54:48 UTC, Jens Müller wrote:


For example what's equivalent to gdc's -ffast-math in ldc.


This is:
https://github.com/ldc-developers/ldc/pull/1472

Working on performance improvements is a lot of fun. Please feed 
us with code that doesn't run as fast as it should!


:)
  Johan


Re: amoeba, a chess engine written in D

2016-05-22 Thread Richard Delorme via Digitalmars-d-announce

On Sunday, 22 May 2016 at 11:20:44 UTC, John Colvin wrote:
LDC might benefit from copying the _popcnt source from ldc's 
druntime in to your code as it has a problem inlining it from 
druntime. You might also see a benefit from the -single-obj 
flag (enabled by default in ldmd).


Thank you for those advices.
I succeeded to have popcnt in the LCD build, (using llvm_ctpop). 
-singleobj looks like a good idea too.


for the above test:
original: 18.7 s
with popcnt & singleobj: 11.1s.
LDC is now close to GDC in performance.
A question: why singleobj is not activated by a -Ox options?

--
Richard


Re: Release DUB 0.9.25, new logo and updated website design

2016-05-22 Thread Joakim via Digitalmars-d-announce

On Sunday, 22 May 2016 at 19:36:39 UTC, Sönke Ludwig wrote:
This version marks the final milestone before the 1.0.0 
release, which is scheduled for mid-June. The API has been 
cleaned up and will be kept backwards compatible throughout 
1.x.x (0.9.25->1.0.0 may still have some breaking changes). 
Beginning with version 1.0.0, DUB will also become part of the 
DMD compiler distribution, so that no additional setup will be 
required to build DUB projects.


Nice work, looking forward to seeing dub be part of the dmd 
package, hope the same can be done for ldc.


I'll see if I can get it running on Android/ARM, don't want to 
leave out those who want to build D libraries on their Android 
tablet. ;)


Re: My ACCU 2016 keynote video available online

2016-05-22 Thread David Nadlinger via Digitalmars-d-announce

On Thursday, 19 May 2016 at 12:54:48 UTC, Jens Müller wrote:

But ldc looks so bad.
Any comments from ldc users or developers? Because I see this 
in many other measurements as well.


This definitely does not match up with my experience. 
Particularly if you see this in many measurements, there might be 
something iffy with the way you test. Could you please post a 
runnable snippet that demonstrates the issue?


In general, could you please directly post any performance issues 
to the LDC issue tracker on GitHub? We are quite interested in 
them, but I only happened to come across this post by chance.


 — David


Re: Release DUB 0.9.25, new logo and updated website design

2016-05-22 Thread Dmitry via Digitalmars-d-announce

On Sunday, 22 May 2016 at 19:36:39 UTC, Sönke Ludwig wrote:
registry, and the site style has been adjusted to fit the 
general dlang.org design (thanks to Sebastian Wilzbach!).


Hi. Is possible change font to something more readable?
For example, like font on http://dlang.org



Re: Release DUB 0.9.25, new logo and updated website design

2016-05-22 Thread Bauss via Digitalmars-d-announce

On Sunday, 22 May 2016 at 19:36:39 UTC, Sönke Ludwig wrote:
This version marks the final milestone before the 1.0.0 
release, which is scheduled for mid-June. The API has been 
cleaned up and will be kept backwards compatible throughout 
1.x.x (0.9.25->1.0.0 may still have some breaking changes). 
Beginning with version 1.0.0, DUB will also become part of the 
DMD compiler distribution, so that no additional setup will be 
required to build DUB projects.


[...]


I love the new look!

Congratulations on the latest version!


Release DUB 0.9.25, new logo and updated website design

2016-05-22 Thread Sönke Ludwig via Digitalmars-d-announce
This version marks the final milestone before the 1.0.0 release, which 
is scheduled for mid-June. The API has been cleaned up and will be kept 
backwards compatible throughout 1.x.x (0.9.25->1.0.0 may still have some 
breaking changes). Beginning with version 1.0.0, DUB will also become 
part of the DMD compiler distribution, so that no additional setup will 
be required to build DUB projects.


In preparation to that, it also received a thorough optical overhaul. 
The newly designed logo (which has appeared in some other spots already) 
has been integrated on the package registry, and the site style has been 
adjusted to fit the general dlang.org design (thanks to Sebastian 
Wilzbach!).


Some major changes to DUB itself are:

 - Builds on frontend versions up to 2.071.0
 - Implements proper optional dependency semantics, where using an
   optional dependency can now be controlled using dub.selections.json
 - "dub init" is now interactive by default (use -n to disable)
 - Contains some critical changes regarding path based dependencies
 - New "convert" and "search" commands
 - It now supports "git submodule" style packages that put their D
   sources at the root of the repository and expect to be checked out
   into a folder with the name of the package/repository. This builds
   on a new folder structure for downloaded packages and may require a
   re-download of affected packages to take effect. If you run into any
   issues, try removing all cached packages with "dub remove *".

Full change log:
https://github.com/D-Programming-Language/dub/blob/master/CHANGELOG.md

Download:
http://code.dlang.org/download


Re: amoeba, a chess engine written in D

2016-05-22 Thread David Nadlinger via Digitalmars-d-announce

On Friday, 20 May 2016 at 23:16:01 UTC, Richard Delorme wrote:
The source can be compiled with dmd, ldc or gdc, but the best 
performance are obtained with the latter (almost twice faster).


Allowing LDC to do cross-module optimisations (by adding the 
-singleobj flag) and make use of popcnt increased the performance 
by 47% for one specific benchmark, which should bring it into the 
same ballpark as GDC. See https://github.com/abulmo/amoeba/pull/2 
for more details.


PGO might still give the latter a bit of an edge, though, as 
LDC's implementation is still experimental and there is a lot of 
unused potential for making use of the profile data in LLVM's 
optimiser.


 — David


Re: amoeba, a chess engine written in D

2016-05-22 Thread Abdulhaq via Digitalmars-d-announce

On Saturday, 21 May 2016 at 10:10:21 UTC, Richard Delorme wrote:

On Saturday, 21 May 2016 at 00:29:13 UTC, extrawurst wrote:

[...]


Yes, It is a strong program, but far from the top programs yet.
In the ccrl scale: http://www.computerchess.org.uk/ccrl/4040/
I guess its rating is close to 2700.
The move generator is pretty fast, though:
$ amoeba-linux-x64-sse4.2 perft -d 7
perft  7 :  3195901860 leaves in 17.920 s178344094 
leaves/s


[...]


Congratulations  2700 is great, vastly better than I managed many 
years ago.

Do you plan to take it further?


Re: My ACCU 2016 keynote video available online

2016-05-22 Thread Atila Neves via Digitalmars-d-announce

On Saturday, 21 May 2016 at 13:51:11 UTC, Manu wrote:
On 21 May 2016 at 23:20, Andrei Alexandrescu via 
Digitalmars-d-announce  
wrote:

On 05/21/2016 04:45 AM, Manu via Digitalmars-d-announce wrote:

[...]



I guess a lot more detail would be necessary here. A bunch of 
good folks (at least better than me) have worked for over a 
decade on C++ concepts and three (three!) proposals later it's 
still unclear whether they're a good idea. -- Andrei


I agree it's not clear to me either. I haven't seen any 
proposals for

D. Have there been any?


Not quite the same but:

https://github.com/dlang/phobos/pull/3677
https://wiki.dlang.org/DIP84#Implementation

Atila


Re: amoeba, a chess engine written in D

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

On Friday, 20 May 2016 at 23:16:01 UTC, Richard Delorme wrote:
I am pleased to announce the release of a chess engine written 
in D:

https://github.com/abulmo/amoeba

I am not aware of any other chess engine written with the D 
language.


The source can be compiled with dmd, ldc or gdc, but the best 
performance are obtained with the latter (almost twice faster).


This is my first program using the D language (I am a former C 
programmer), and I enjoyed it a lot.


LDC might benefit from copying the _popcnt source from ldc's 
druntime in to your code as it has a problem inlining it from 
druntime. You might also see a benefit from the -single-obj flag 
(enabled by default in ldmd).


Re: amoeba, a chess engine written in D

2016-05-22 Thread Johan Engelen via Digitalmars-d-announce

On Saturday, 21 May 2016 at 16:25:27 UTC, Richard Delorme wrote:


With the above versions & my poor knowledge of the compilers, 
pgo & BUILD=popcount only worked with gdc. I will try to 
upgrade to more recent versions to see if things changed.


With LDC, you can pass "-mattr=+popcnt" to use the popcount 
instruction. Or "-mattr=+sse42" to enable SSE4.2 (like you seem 
to do in the Makefile).