Jump to page: 1 2
Thread overview
LDC 1.9.0 beta
Apr 22, 2018
kinke
Apr 22, 2018
solidstate1991
Apr 23, 2018
Suliman
Apr 24, 2018
Joakim
Apr 24, 2018
kinke
Apr 24, 2018
Radu
Apr 24, 2018
kinke
Apr 25, 2018
Joakim
Apr 26, 2018
meppl
Apr 26, 2018
Joakim
Apr 25, 2018
Radu
Apr 24, 2018
Radu
Apr 25, 2018
Rel
Apr 26, 2018
Jacob Carlborg
April 22, 2018
Hi everyone,

on behalf of the LDC team, I'm glad to announce the first beta for LDC 1.9. The highlights of this version in a nutshell:

* Based on D 2.079.1, including new `-i` switch and support for a minimal (d)runtime.
* Support for LLVM 6, used for all prebuilt packages (except for Win32).
* `-link-internally` able to (cross-)link Windows, Linux and macOS binaries.
* Prebuilt Linux and macOS packages now shipping with LTO-able druntime/Phobos.
* Improved support for MIPS targets and the uClibc runtime library.
* Various fixes, incl. druntime/Phobos/ldc-jit .dylib issues on macOS.

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

Thanks to all contributors!
April 22, 2018
On Sunday, 22 April 2018 at 15:56:49 UTC, kinke wrote:
> Hi everyone,
>
> on behalf of the LDC team, I'm glad to announce the first beta for LDC 1.9. The highlights of this version in a nutshell:
>
> * Based on D 2.079.1, including new `-i` switch and support for a minimal (d)runtime.
> * Support for LLVM 6, used for all prebuilt packages (except for Win32).
> * `-link-internally` able to (cross-)link Windows, Linux and macOS binaries.
> * Prebuilt Linux and macOS packages now shipping with LTO-able druntime/Phobos.
> * Improved support for MIPS targets and the uClibc runtime library.
> * Various fixes, incl. druntime/Phobos/ldc-jit .dylib issues on macOS.
>
> Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.9.0-beta1
>
> Thanks to all contributors!

I'm getting a bunch of errors with the inline assembler like this:

 <inline asm>:6:2: error: assembler label 'L7CPUblit9composing11blitter8bit_eightpixel' can not be   undefined
         jl L7CPUblit9composing11blitter8bit_eightpixe

However I still ended up getting a .lib file in the end. Is this normal or have I done something wrong?
April 23, 2018
What about Webassembly support? Latest LLVM suppport it, so LDC should support also.
April 24, 2018
On Sunday, 22 April 2018 at 15:56:49 UTC, kinke wrote:
> Hi everyone,
>
> on behalf of the LDC team, I'm glad to announce the first beta for LDC 1.9. The highlights of this version in a nutshell:
>
> * Based on D 2.079.1, including new `-i` switch and support for a minimal (d)runtime.
> * Support for LLVM 6, used for all prebuilt packages (except for Win32).
> * `-link-internally` able to (cross-)link Windows, Linux and macOS binaries.
> * Prebuilt Linux and macOS packages now shipping with LTO-able druntime/Phobos.
> * Improved support for MIPS targets and the uClibc runtime library.
> * Various fixes, incl. druntime/Phobos/ldc-jit .dylib issues on macOS.
>
> Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.9.0-beta1
>
> Thanks to all contributors!

Looks that not all my druntime and phobos PR got in. Is this because they were not included in 2.0.79 mainline release?

ATM uClibc is not usable as is, it doesn't even compile because of various missing pieces, bummer :(
April 24, 2018
On Monday, 23 April 2018 at 09:18:07 UTC, Suliman wrote:
> What about Webassembly support? Latest LLVM suppport it, so LDC should support also.

We don't support a lot of platforms that llvm supports. It will require someone to work on the port, which hasn't happened. I've said before that I don't think it's worth it, because the web has been declining as a platform:

https://forum.dlang.org/post/unqvdzopebfksnxwhoqn@forum.dlang.org

On Tuesday, 24 April 2018 at 08:47:49 UTC, Radu wrote:
> On Sunday, 22 April 2018 at 15:56:49 UTC, kinke wrote:
>> Hi everyone,
>>
>> on behalf of the LDC team, I'm glad to announce the first beta for LDC 1.9. The highlights of this version in a nutshell:
>>
>> * Based on D 2.079.1, including new `-i` switch and support for a minimal (d)runtime.
>> * Support for LLVM 6, used for all prebuilt packages (except for Win32).
>> * `-link-internally` able to (cross-)link Windows, Linux and macOS binaries.
>> * Prebuilt Linux and macOS packages now shipping with LTO-able druntime/Phobos.
>> * Improved support for MIPS targets and the uClibc runtime library.
>> * Various fixes, incl. druntime/Phobos/ldc-jit .dylib issues on macOS.
>>
>> Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.9.0-beta1
>>
>> Thanks to all contributors!
>
> Looks that not all my druntime and phobos PR got in. Is this because they were not included in 2.0.79 mainline release?

Yes, ldc releases are the same as dmd releases, with some ldc-specific changes. We generally don't backport features from upstream.

> ATM uClibc is not usable as is, it doesn't even compile because of various missing pieces, bummer :(

Yeah, this beta doesn't even have a MIPS backend. How much of the testsuite do you have working on MIPS/uClibc? If you have it pretty far along, we can probably cherry-pick what you need and ship it with 1.9 for people to try.
April 24, 2018
On Tuesday, 24 April 2018 at 15:53:23 UTC, Joakim wrote:
> Yeah, this beta doesn't even have a MIPS backend.

[The prebuilt binaries don't.] I thought about it for a second, but releasing a new LDC-LLVM version (and me having to build the 4 Windows variants again) seemed too troublesome for the gain. We can add the backend for v6.0.1 (and maybe revise that targets list in general).
FWIW, I included the AArch64 target for the prebuilt armhf LLVM/LDC this time.
April 24, 2018
On Tuesday, 24 April 2018 at 15:53:23 UTC, Joakim wrote:
> On Monday, 23 April 2018 at 09:18:07 UTC, Suliman wrote:
>> What about Webassembly support? Latest LLVM suppport it, so LDC should support also.
>
> We don't support a lot of platforms that llvm supports. It will require someone to work on the port, which hasn't happened. I've said before that I don't think it's worth it, because the web has been declining as a platform:
>
> https://forum.dlang.org/post/unqvdzopebfksnxwhoqn@forum.dlang.org
>
> On Tuesday, 24 April 2018 at 08:47:49 UTC, Radu wrote:
>> On Sunday, 22 April 2018 at 15:56:49 UTC, kinke wrote:
>>> Hi everyone,
>>>
>>> on behalf of the LDC team, I'm glad to announce the first beta for LDC 1.9. The highlights of this version in a nutshell:
>>>
>>> * Based on D 2.079.1, including new `-i` switch and support for a minimal (d)runtime.
>>> * Support for LLVM 6, used for all prebuilt packages (except for Win32).
>>> * `-link-internally` able to (cross-)link Windows, Linux and macOS binaries.
>>> * Prebuilt Linux and macOS packages now shipping with LTO-able druntime/Phobos.
>>> * Improved support for MIPS targets and the uClibc runtime library.
>>> * Various fixes, incl. druntime/Phobos/ldc-jit .dylib issues on macOS.
>>>
>>> Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.9.0-beta1
>>>
>>> Thanks to all contributors!
>>
>> Looks that not all my druntime and phobos PR got in. Is this because they were not included in 2.0.79 mainline release?
>
> Yes, ldc releases are the same as dmd releases, with some ldc-specific changes. We generally don't backport features from upstream.
>
>> ATM uClibc is not usable as is, it doesn't even compile because of various missing pieces, bummer :(
>
> Yeah, this beta doesn't even have a MIPS backend. How much of the testsuite do you have working on MIPS/uClibc? If you have it pretty far along, we can probably cherry-pick what you need and ship it with 1.9 for people to try.

I realized that those PRs are not going to get in :(. Unfortunately it is pretty hard to contribute something that has a big impact. It looks that I need to wait another 2 releases to get all those changes in LDC as I might miss the 2.8.0 window for 1 PR, not counting additional patches for fixes that might come later on...

uClibc fully passes druntime unit tests on ARM had float (armv7).
phobos test runner segfaults on std.mathspecial, commenting out mathspecial - I get some asserts on formatting code related to double and some math asserts on some constants. Overall looks good and the formatting issues for double and math special segfault are not a priority for me, yet.

on uClibc MIPS, druntime test hangs on everything after running core.runtime test at `void* z = pureMalloc(size_t.max - 2);`, malloc calls will fail after this (overcommit). Versioning it out I get the druntime unittest passing with an assert on core.atomic for double and some assert when allocating 390mb of memory in gc.impl.conservative.gc (way to much for my board). Overall druntime looks good. I don't have the details for phobos, but most of it passes.

MIPS is a bit special as the vendor toolchain for my HW is pretty old and misses some supporting libs like libbacktrace, a math function etc.. had to stub them out. I think MIPS will require more tinkering from people trying it out.

April 24, 2018
On Tuesday, 24 April 2018 at 19:39:30 UTC, Radu wrote:
> On Tuesday, 24 April 2018 at 15:53:23 UTC, Joakim wrote:
>> Yeah, this beta doesn't even have a MIPS backend. How much of the testsuite do you have working on MIPS/uClibc? If you have it pretty far along, we can probably cherry-pick what you need and ship it with 1.9 for people to try.
>
> I realized that those PRs are not going to get in :(. Unfortunately it is pretty hard to contribute something that has a big impact. It looks that I need to wait another 2 releases to get all those changes in LDC as I might miss the 2.8.0 window for 1 PR, not counting additional patches for fixes that might come later on...

It may not be that bad. The next post-1.9 LDC is based on 2.080.x with x most likely >= 1, so just make sure to have most stuff in by then (maybe targeting the stable druntime/Phobos branches for new PRs). Final touchups can always be cherry-picked.

We may have a 2.080-based LDC pretty soon. I started merging beta1 this evening and it looks way less troublesome than upgrading to 2.079.
April 25, 2018
On Tuesday, 24 April 2018 at 19:39:30 UTC, Radu wrote:
> On Tuesday, 24 April 2018 at 15:53:23 UTC, Joakim wrote:
>> [...]
>
> I realized that those PRs are not going to get in :(. Unfortunately it is pretty hard to contribute something that has a big impact. It looks that I need to wait another 2 releases to get all those changes in LDC as I might miss the 2.8.0 window for 1 PR, not counting additional patches for fixes that might come later on...
>
> [...]

Sounds like you're close, I suggest you open an ldc issue to track uClibc support, like this one tracking ARM64 support, and ping us there when you need something cherry-picked from upstream:

https://github.com/ldc-developers/ldc/issues/2153
April 25, 2018
On Monday, 23 April 2018 at 09:18:07 UTC, Suliman wrote:
> What about Webassembly support? Latest LLVM suppport it, so LDC should support also.

Might be interesting for game devs to have webassembly support, but no one pitched in to making it happen.

One could start by getting `betterC` mode working and be fully supported on LDC/Webassembly, this will make D/LDC and interesting platform to develop on, and you can use a bunch of C/C++ libs also.

Stage 2 is getting a webrutime (with minimal D runtime support) that targets webassembly and its peculiarities, like DOM and related bindings.

Implementing `extern(ecmascript)` would also be a nice thing to have.

All this needs a champion to make it happen :D
« First   ‹ Prev
1 2