A language comparison (seeking productivity-enhancing, well-designed, and concise languages)
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
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
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
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
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
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
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
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
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
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
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
On Saturday, 21 May 2016 at 13:51:11 UTC, Manu wrote: On 21 May 2016 at 23:20, Andrei Alexandrescu via Digitalmars-d-announcewrote: 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
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
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).