Re: LDC 1.5.0
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.] Good news. And thank you all for arm release! :)
Re: LDC 1.5.0
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 work by the LDC team! Thanks to all the LTO work in 1.4 and 1.5, the Travis-CI builds of the eBay TSV utilities are LTO enabled for Phobos & Druntime as well as the application code. This is for both Linux and OS X builds. Couldn't do that before the LDC 1.5 release. The OS X executables are materially faster with the end-to-end LTO support. I haven't benchmarked the Linux versions yet. It would be very interesting to have get benchmark numbers from other apps, especially those making material use of phobos.
Re: LDC 1.5.0
On Saturday, 4 November 2017 at 08:44:12 UTC, codephantom wrote: On Saturday, 4 November 2017 at 08:40:19 UTC, Joakim wrote: It is fairly easy to compile ldc yourself: https://wiki.dlang.org/Building_LDC_from_source Have you tried those instructions on 'FreeBSD'? Not those instructions maybe, but I wrote the first ports script for FreeBSD back in 2010, so I have built ldc there: https://www.freshports.org/lang/ldc-devel Have you ever had to deal with pkg conflicts in FreeBSD? I have ;-( Can't say that ever really hit me, not sure how it's relevant to building ldc either.
Re: LDC 1.5.0
On Saturday, 4 November 2017 at 02:43:35 UTC, codephantom wrote: 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?? :-( There were some in the recent past, last done for the 1.2 release and 1.3 beta1: https://github.com/ldc-developers/ldc/releases Unfortunately, almost nobody was downloading them: http://www.somsubhra.com/github-release-stats/?username=ldc-developers&repository=ldc Maybe FreeBSD users prefer using the package from ports, though it hasn't kept up: https://www.freshports.org/lang/ldc/ It is fairly easy to compile ldc yourself: https://wiki.dlang.org/Building_LDC_from_source
Re: LDC 1.5.0
On Saturday, 4 November 2017 at 08:40:19 UTC, Joakim wrote: It is fairly easy to compile ldc yourself: https://wiki.dlang.org/Building_LDC_from_source Have you tried those instructions on 'FreeBSD'? Have you ever had to deal with pkg conflicts in FreeBSD? I have ;-(
Re: LDC 1.5.0
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
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: LDC 1.5.0
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
Re: LDC 1.5.0
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.
LDC 1.5.0
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: LDC 1.5.0-beta1
On Monday, 23 October 2017 at 22:43:15 UTC, Guillaume Piolat wrote: So far my benchmark scripts are Windows-only so no LTO is available AFAIK. I can work on providing such measures (or any flags you want) on OSX in the future. I performed an extremely rudimentary -flto=full test on Win64 for a hello-world program yesterday, linking manually via LLD 5.0 (lld-link.exe), which worked (and saved 1 KB for the executable ;)).
Re: LDC 1.5.0-beta1
On Monday, 23 October 2017 at 22:57:00 UTC, Nicholas Wilson wrote: would it help to have them grouped/filterable by category? e.g. $ldc2 -help-hidden=category Perhaps, but the sheer amount of customizability makes you wish for a superoptimizer for compiler flags (hard to do this generically though).
Re: LDC 1.5.0-beta1
On Monday, 23 October 2017 at 21:26:46 UTC, Guillaume Piolat wrote: Some measurements for some audio processing. Output are identical across compilers (30 measures). ### LDC 1.2.0 Results: * minimum time: 440 ms => 48.024 x real-time * median time: 443 ms => 47.6987 x real-time * average time: 444.233 ms => 47.5663 x real-time ### LDC 1.3.0 Results: * minimum time: 439 ms => 48.1334 x real-time * median time: 442 ms => 47.8067 x real-time * average time: 442.6 ms => 47.7419 x real-time ### LDC 1.4.0 Results: * minimum time: 436 ms => 48.4646 x real-time * median time: 439 ms => 48.1334 x real-time * average time: 439.767 ms => 48.0494 x real-time ### LDC 1.5.0-b1 Results: * minimum time: 429 ms => 49.2553 x real-time * median time: 432 ms => 48.9133 x real-time * average time: 433.3 ms => 48.7665 x real-time Results are only precise up to the ~0.5% range. So approx. +2.5% relative improvement in LDC 1.5.0-b1 vs LDC 1.2, free lunch is always good. The number of flags in -help-hidden seems very large, I haven't tried any yet (apart from -enable-unsafe-fp-math which seems to lose speed like -ffast-math, for this benchmark). would it help to have them grouped/filterable by category? e.g. $ldc2 -help-hidden=category common sanitiser asan tsan cache disable enable debug optimisation compiler-diaganostics ... $ldc2 -help-hidden=asan -asan-always-slow-path ...
Re: LDC 1.5.0-beta1
On Monday, 23 October 2017 at 22:06:43 UTC, Johan Engelen wrote: Guillaume, can you try with building your own LTO version of the standard library and do new measurements? Something like this should work: ``` ldc-build-runtime --reset --dFlags="-flto=full" BUILD_SHARED_LIBS=OFF ldc2 -your-normal-compile-flags -flto=full -L-L./ldc-build-runtime.tmp/lib ``` Use `--dFlags="-flto=full;-ar="` for now if you are using macOS (will not be needed with the next beta). (you can try with `-flto=thin` too for much faster link times) Cheers, Johan So far my benchmark scripts are Windows-only so no LTO is available AFAIK. I can work on providing such measures (or any flags you want) on OSX in the future.
Re: LDC 1.5.0-beta1
On Monday, 23 October 2017 at 21:26:46 UTC, Guillaume Piolat wrote: Some measurements for some audio processing. Output are identical across compilers (30 measures). Guillaume, can you try with building your own LTO version of the standard library and do new measurements? Something like this should work: ``` ldc-build-runtime --reset --dFlags="-flto=full" BUILD_SHARED_LIBS=OFF ldc2 -your-normal-compile-flags -flto=full -L-L./ldc-build-runtime.tmp/lib ``` Use `--dFlags="-flto=full;-ar="` for now if you are using macOS (will not be needed with the next beta). (you can try with `-flto=thin` too for much faster link times) Cheers, Johan
Re: LDC 1.5.0-beta1
Some measurements for some audio processing. Output are identical across compilers (30 measures). ### LDC 1.2.0 Results: * minimum time: 440 ms => 48.024 x real-time * median time: 443 ms => 47.6987 x real-time * average time: 444.233 ms => 47.5663 x real-time ### LDC 1.3.0 Results: * minimum time: 439 ms => 48.1334 x real-time * median time: 442 ms => 47.8067 x real-time * average time: 442.6 ms => 47.7419 x real-time ### LDC 1.4.0 Results: * minimum time: 436 ms => 48.4646 x real-time * median time: 439 ms => 48.1334 x real-time * average time: 439.767 ms => 48.0494 x real-time ### LDC 1.5.0-b1 Results: * minimum time: 429 ms => 49.2553 x real-time * median time: 432 ms => 48.9133 x real-time * average time: 433.3 ms => 48.7665 x real-time Results are only precise up to the ~0.5% range. So approx. +2.5% relative improvement in LDC 1.5.0-b1 vs LDC 1.2, free lunch is always good. The number of flags in -help-hidden seems very large, I haven't tried any yet (apart from -enable-unsafe-fp-math which seems to lose speed like -ffast-math, for this benchmark).
Re: LDC 1.5.0-beta1
On Sunday, 22 October 2017 at 09:34:56 UTC, kinke wrote: Hi everyone, on behalf of the LDC team, I'm glad to announce the first beta for LDC 1.5.0. Jon Degenhardt did some nice LTO testing, see: https://github.com/ldc-developers/ldc/issues/2380 -Johan
Re: LDC 1.5.0-beta1
On Sunday, 22 October 2017 at 09:34:56 UTC, kinke wrote: Hi everyone, on behalf of the LDC team, I'm glad to announce the first beta for LDC 1.5.0. The highlights of version 1.5 in a nutshell: * Based on D 2.075.1. * Polished LLVM 5.0 support (now also used for the prebuilt release packages). * ~25 new advanced command-line options for codegen fine-tuning. * Bugfixes, as always. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.5.0-beta1 Thanks to everybody contributing! Wow, sounds interesting!
Re: LDC 1.5.0-beta1
On Sunday, 22 October 2017 at 09:34:56 UTC, kinke wrote: Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.5.0-beta1 Thanks to everybody contributing! Thanks!
Re: LDC 1.5.0-beta1
On Sunday, 22 October 2017 at 09:34:56 UTC, kinke wrote: Hi everyone, on behalf of the LDC team, I'm glad to announce the first beta for LDC 1.5.0. The highlights of version 1.5 in a nutshell: * Based on D 2.075.1. * Polished LLVM 5.0 support (now also used for the prebuilt release packages). * ~25 new advanced command-line options for codegen fine-tuning. * Bugfixes, as always. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.5.0-beta1 Thanks to everybody contributing! Thanks!
LDC 1.5.0-beta1
Hi everyone, on behalf of the LDC team, I'm glad to announce the first beta for LDC 1.5.0. The highlights of version 1.5 in a nutshell: * Based on D 2.075.1. * Polished LLVM 5.0 support (now also used for the prebuilt release packages). * ~25 new advanced command-line options for codegen fine-tuning. * Bugfixes, as always. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.5.0-beta1 Thanks to everybody contributing!