Jump to page: 1 2
Thread overview
LDC 1.25.0
Feb 21
kinke
Feb 21
Dennis
Feb 22
kinke
5 days ago
Dennis
4 days ago
Mathias LANG
4 days ago
Dennis
Feb 22
kinke
Feb 23
kinke
February 21
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
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
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
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
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
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
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
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
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
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
« First   ‹ Prev
1 2