Thread overview
LDC 1.11.0 beta
Jul 04, 2018
kinke
Jul 05, 2018
Mike Franklin
Jul 05, 2018
kinke
Jul 05, 2018
Mike Franklin
Jul 05, 2018
Mike Franklin
Jul 05, 2018
kinke
Jul 07, 2018
Seb
Jul 07, 2018
Johan Engelen
Jul 07, 2018
Joakim
July 04, 2018
Glad to announce the first beta for LDC 1.11.

* Based on D 2.081.0.
* Prebuilt packages now using LLVM 6.0.1 and including additional cross-compilation targets (MIPS, MSP430, RISC-V and WebAssembly).

Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.11.0-beta1

Thanks to all contributors!
July 05, 2018
On Wednesday, 4 July 2018 at 20:38:54 UTC, kinke wrote:
> Glad to announce the first beta for LDC 1.11.

Thanks for all the work on this.

I notice the minimal2.d test from the DMD test suite is disabled:  https://github.com/ldc-developers/dmd-testsuite/blob/977ef0696f7941357385925c07617544c3527f4c/runnable/minimal2.d#L5

How permanent/temporary is that?  Is there something blocking the implementation?

Mike


July 05, 2018
On Thursday, 5 July 2018 at 08:55:00 UTC, Mike Franklin wrote:
> I notice the minimal2.d test from the DMD test suite is disabled:
>  https://github.com/ldc-developers/dmd-testsuite/blob/977ef0696f7941357385925c07617544c3527f4c/runnable/minimal2.d#L5
>
> How permanent/temporary is that?  Is there something blocking the implementation?

I failed to see a benefit from being able to use classes with static members only (abuse as namespace?) with a minimal druntime, hence no interest from my side to implement it for now.
July 05, 2018
On Thursday, 5 July 2018 at 09:40:46 UTC, kinke wrote:

> I failed to see a benefit from being able to use classes with static members only (abuse as namespace?)

Yeah, pretty much, but also static inheritance.  You can see the pattern where I use it at https://github.com/JinShil/stm32f42_discovery_demo/blob/c324bbf861cf258a819478481521528fca88dcb3/source/stm32f42/pwr.d#L24

It's for an ARM Cortex-M microcontroller.  The structure, layout, and memory locations of all memory-mapped IO registers (there are 100s of them) are all known at compile-time, so there's no need for instances of anything.  The static inheritance allows me to reuse implementation code and also model the hierarchy according to my mental model.  After all that's one of the pillars of D, modeling power.

Also, modeling them as static classes allows me to avoid the memory layout mess in the linker script (Yuck!), as all the memory addresses accompany the code itself.  This also makes it much, much easier to cross-reference the code to the microcontroller's datasheet.

D's the only language I know of that can do this;  it's not a strength, not a weakness.

Mike
July 05, 2018
On Thursday, 5 July 2018 at 10:57:17 UTC, Mike Franklin wrote:

>> I failed to see a benefit from being able to use classes with static members only (abuse as namespace?)
>
> Yeah, pretty much, but also static inheritance.  You can see the pattern where I use it at https://github.com/JinShil/stm32f42_discovery_demo/blob/c324bbf861cf258a819478481521528fca88dcb3/source/stm32f42/pwr.d#L24

Also, it allows me to dot-walk the hierarchy in my editor with code-completion and documentation comments.  I describe this and illustrate with images in the readme.

https://github.com/JinShil/stm32f42_discovery_demo

Mike



July 05, 2018
Thx for the rationale; I may have a look at it over the weekend.
July 07, 2018
On Wednesday, 4 July 2018 at 20:38:54 UTC, kinke wrote:
> Glad to announce the first beta for LDC 1.11.
>
> * Based on D 2.081.0.
> * Prebuilt packages now using LLVM 6.0.1 and including additional cross-compilation targets (MIPS, MSP430, RISC-V and WebAssembly).
>
> Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.11.0-beta1
>
> Thanks to all contributors!

Would be great to include https://github.com/dlang/dmd/pull/8456 as it's a serious regression and the reason for the early 2.081.1 release.
July 07, 2018
On Saturday, 7 July 2018 at 18:17:49 UTC, Seb wrote:
>
> Would be great to include https://github.com/dlang/dmd/pull/8456 as it's a serious regression and the reason for the early 2.081.1 release.

Because the quality of new DMD releases is often subpar, the LDC release plan is to only release after a good point release of DMD (usually *.*.1, but if this is a hasty .1 release, we probably better wait until 2.081.2)

-Johan


July 07, 2018
On Saturday, 7 July 2018 at 18:26:45 UTC, Johan Engelen wrote:
> On Saturday, 7 July 2018 at 18:17:49 UTC, Seb wrote:
>>
>> Would be great to include https://github.com/dlang/dmd/pull/8456 as it's a serious regression and the reason for the early 2.081.1 release.
>
> Because the quality of new DMD releases is often subpar, the LDC release plan is to only release after a good point release of DMD (usually *.*.1, but if this is a hasty .1 release, we probably better wait until 2.081.2)
>
> -Johan

In other words, this is only a beta: the final 1.11 release will be done next month, only with the final release of the DMD 2.081 frontend, likely 2.081.2.