Thread overview | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
February 21, 2021 LDC 1.25.0 | ||||
---|---|---|---|---|
| ||||
Glad to announce LDC 1.25 - some highlights: - Based on D 2.095.1. - LLVM for prebuilt packages bumped to v11.0.1; support added for LLVM 11.1 and upcoming 12.0. - Profile/trace LDC invocations via --ftime-trace. - New Windows installer and native 'Apple silicon' package. - New experimental template emission scheme for -linkonce-templates. This option can significantly accelerate compilation times for optimized builds (e.g., 56% faster on my box when compiling the optimized Phobos unittests). Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.25.0 Thanks to all contributors & sponsors! |
February 21, 2021 Re: LDC 1.25.0 | ||||
---|---|---|---|---|
| ||||
Posted in reply to kinke | Great stuff, thanks!
On Sunday, 21 February 2021 at 18:26:38 UTC, kinke wrote:
> - Profile/trace LDC invocations via --ftime-trace.
Is there more info on this? I tried it on a simple file, it generates a large json file.
Can this be inspected to reduce compile times? The changelog and pull request do not reveal much info on how to use it for the uninformed.
|
February 21, 2021 Re: LDC 1.25.0 | ||||
---|---|---|---|---|
| ||||
Posted in reply to kinke | On 2/21/21 1:26 PM, kinke wrote: > Glad to announce LDC 1.25 - some highlights: > > - Based on D 2.095.1. > - LLVM for prebuilt packages bumped to v11.0.1; support added for LLVM 11.1 and upcoming 12.0. > - Profile/trace LDC invocations via --ftime-trace. > - New Windows installer and native 'Apple silicon' package. > - New experimental template emission scheme for -linkonce-templates. This option can significantly accelerate compilation times for optimized builds (e.g., 56% faster on my box when compiling the optimized Phobos unittests). This is cool! Can you describe what it means? The option name isn't telling me anything obvious. > > Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.25.0 > > Thanks to all contributors & sponsors! That's a first -- I haven't seen a 2.095.1 announcement yet (just the beta) -Steve |
February 22, 2021 Re: LDC 1.25.0 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dennis | On Sunday, 21 February 2021 at 21:58:48 UTC, Dennis wrote: > On Sunday, 21 February 2021 at 18:26:38 UTC, kinke wrote: >> - Profile/trace LDC invocations via --ftime-trace. > > Is there more info on this? I tried it on a simple file, it generates a large json file. > Can this be inspected to reduce compile times? The changelog and pull request do not reveal much info on how to use it for the uninformed. See Johan's comment here: https://forum.dlang.org/post/usyrbgwzzwxnzzhqergx@forum.dlang.org |
February 22, 2021 Re: LDC 1.25.0 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Steven Schveighoffer | On Monday, 22 February 2021 at 02:32:22 UTC, Steven Schveighoffer wrote: > This is cool! Can you describe what it means? The option name isn't telling me anything obvious. Please see the changelog for more details. > That's a first -- I haven't seen a 2.095.1 announcement yet (just the beta) Hmm, maybe Martin forgot the announcement or hasn't gotten to it yet; it's available on dlang.org. |
February 22, 2021 Re: LDC 1.25.0 | ||||
---|---|---|---|---|
| ||||
Posted in reply to kinke | On Sunday, 21 February 2021 at 18:26:38 UTC, kinke wrote:
> Glad to announce LDC 1.25 - some highlights:
>
> - Based on D 2.095.1.
> - LLVM for prebuilt packages bumped to v11.0.1; support added for LLVM 11.1 and upcoming 12.0.
> - Profile/trace LDC invocations via --ftime-trace.
> - New Windows installer and native 'Apple silicon' package.
> - New experimental template emission scheme for -linkonce-templates. This option can significantly accelerate compilation times for optimized builds (e.g., 56% faster on my box when compiling the optimized Phobos unittests).
>
> Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.25.0
>
> Thanks to all contributors & sponsors!
Amazing! We were really looking forward to this release, as it makes both Alpine Linux and `-preview=in` finally usable for us, and will allow us to build some useful tools on top of the GC. Many thanks for your continuous efforts in maintaining the project!
|
February 22, 2021 Re: LDC 1.25.0 | ||||
---|---|---|---|---|
| ||||
Posted in reply to kinke | On Monday, 22 February 2021 at 07:20:16 UTC, kinke wrote: > On Sunday, 21 February 2021 at 21:58:48 UTC, Dennis wrote: >> On Sunday, 21 February 2021 at 18:26:38 UTC, kinke wrote: >>> - Profile/trace LDC invocations via --ftime-trace. >> >> Is there more info on this? I tried it on a simple file, it generates a large json file. >> Can this be inspected to reduce compile times? The changelog and pull request do not reveal much info on how to use it for the uninformed. > > See Johan's comment here: https://forum.dlang.org/post/usyrbgwzzwxnzzhqergx@forum.dlang.org Thanks kinke. This article explains the basics: https://www.snsystems.com/technology/tech-blog/clang-time-trace-feature I'm aware there is very little documentation about this... I lack the time to write up more details and promote it better. Now that it's released, I hope promotion can be picked up by LDC's users. Here is an example of how it can help: https://github.com/dlang/phobos/pull/7676#issuecomment-715373535 There is definitely room for improvement, but it requires user feedback and consideration of their different use cases. -Johan |
February 23, 2021 Re: LDC 1.25.0 | ||||
---|---|---|---|---|
| ||||
Posted in reply to kinke | On Sun, Feb 21, 2021 at 06:26:38PM +0000, kinke via Digitalmars-d-announce wrote: > Glad to announce LDC 1.25 - some highlights: > > - Based on D 2.095.1. Awesome!! Thanks to everyone in the LDC team who made this release possible. [...] > - New experimental template emission scheme for -linkonce-templates. This option can significantly accelerate compilation times for optimized builds (e.g., 56% faster on my box when compiling the optimized Phobos unittests). [...] Tested this on one of my projects yesterday. For -O3, it reduced compile time by about ~26%. For -O, it reduced compile time by about 24%. Not as much as I'd hoped, but still pretty big reductions. For non-optimized builds, it reduced compile times by only 1-2% (pretty insignificant). T -- The easy way is the wrong way, and the hard way is the stupid way. Pick one. |
February 23, 2021 Re: LDC 1.25.0 | ||||
---|---|---|---|---|
| ||||
Posted in reply to H. S. Teoh | On Tuesday, 23 February 2021 at 18:19:09 UTC, H. S. Teoh wrote: > Tested this on one of my projects yesterday. For -O3, it reduced compile time by about ~26%. For -O, it reduced compile time by about 24%. Not as much as I'd hoped, but still pretty big reductions. Thx for some numbers. [Note that -O == -O3 == -O4 == -O5, they are all the same (at least for now), contrary to what you might read somewhere.] A reduction by 25%, i.e., a 1.33x speed-up, for code that is guaranteed to be at least as fast as before (higher cross-module inlining potential) isn't too bad, aye? :) > For non-optimized builds, it reduced compile times by only 1-2% (pretty insignificant). I find it rather interesting that it isn't any slower. Compiling debug Phobos all-at-once took 67% longer on my box (and increased the static lib size by 76%). Without -O, I've only seen some improvements with `-unittest`. Some more numbers on my box: https://github.com/ldc-developers/ldc/pull/3600#issuecomment-729116599 https://github.com/ldc-developers/ldc/pull/3422#issuecomment-661386233 |
February 23, 2021 Re: LDC 1.25.0 | ||||
---|---|---|---|---|
| ||||
Posted in reply to kinke | On Tue, Feb 23, 2021 at 07:32:13PM +0000, kinke via Digitalmars-d-announce wrote: > On Tuesday, 23 February 2021 at 18:19:09 UTC, H. S. Teoh wrote: > > Tested this on one of my projects yesterday. For -O3, it reduced compile time by about ~26%. For -O, it reduced compile time by about 24%. Not as much as I'd hoped, but still pretty big reductions. > > Thx for some numbers. [Note that -O == -O3 == -O4 == -O5, they are all the same (at least for now), contrary to what you might read somewhere.] A reduction by 25%, i.e., a 1.33x speed-up, for code that is guaranteed to be at least as fast as before (higher cross-module inlining potential) isn't too bad, aye? :) Yeah actually it's pretty good. It's only that my expectations were a bit high when you reported 50+% reductions in compile times. :-) > > For non-optimized builds, it reduced compile times by only 1-2% > > (pretty insignificant). > > I find it rather interesting that it isn't any slower. Compiling debug Phobos all-at-once took 67% longer on my box (and increased the static lib size by 76%). Without -O, I've only seen some improvements with `-unittest`. [...] Interesting indeed. I just did a quick test with -unittest, and got these numbers: -unittest: 15.9 sec -unittest -linkonce-templates: 22.3 sec -unittest -O: 54.4 sec -unittest -O -linkonce-templates: 40.7 sec Apparently with -unittest it *does* run slower without -O. But with -O, it does run faster. T -- It won't be covered in the book. The source code has to be useful for something, after all. -- Larry Wall |
Copyright © 1999-2021 by the D Language Foundation