Jump to page: 1 2
Thread overview
LDC 1.2.0-beta1 has been released!
Mar 18, 2017
Kai Nacke
Mar 21, 2017
Joakim
Mar 21, 2017
David Nadlinger
Mar 21, 2017
Johan Engelen
Mar 23, 2017
Radu
Mar 23, 2017
kinke
Mar 24, 2017
Joakim
Mar 24, 2017
Radu
Mar 24, 2017
Radu
Mar 24, 2017
Joakim
Mar 24, 2017
Radu
Mar 25, 2017
Joakim
Apr 03, 2017
Radu
March 18, 2017
Hi everyone!

On behalf of the LDC team I announce the new 1.2.0-beta1 release!
It is based on the 2.072.2 front-end and supports LLVM 3.5-4.0.

Beside the new front-end there are some more fixes to increase robustness of the compiler. Be sure to read the change log at the GitHub release page for details. The packages are available for download at the same page.
https://github.com/ldc-developers/ldc/releases/tag/v1.2.0-beta1

MD5 checksums for the release packages:

f6fe3a09ca6593bdb0ceefd9ae4052ca ldc-1.2.0-beta1-src.tar.gz
3262f003d0aa06780bd172cf4bc56a75 ldc2-1.2.0-beta1-freebsd-x86_64.tar.xz
54c6bfafdd7ea8900479c588e7215e9b ldc2-1.2.0-beta1-linux-x86.tar.xz
b02aafa9ab888c5392da50dd5f4bb959 ldc2-1.2.0-beta1-linux-x86_64.tar.xz
3dbf34ffd3d38cf44181638a4dc4a65f ldc2-1.2.0-beta1-osx-x86_64.tar.xz
13ffbc95d827eb33a6a7b7e714c542eb ldc2-1.2.0-beta1-win32-msvc.zip
a075b10608c641b88f2aeb75cfbfe913 ldc2-1.2.0-beta1-win64-msvc.zip

Regarding the binaries:
The Linux x86/x86_64 binaries are built on Ubuntu 12.04 LTS with gcc 4.8.x, ldc2 1.2.0-beta1 and LLVM 4.0.0. They work on Ubuntu 12.04 LTS (or later) without installing additional software.

The OS X binaries and the FreeBSD binaries are built with LLVM 4.0.0.

The Win32 and Win64 MSVC versions are built with VS2015 and LLVM 3.9.1 (due to a regression in LLVM 4.0).

Please be sure to report any bugs at https://github.com/ldc-developers/ldc/issues, and feel free to drop by at the digitalmars.D.ldc forums (http://forum.dlang.org/group/digitalmars.D.ldc) for any questions or comments.

Thanks to everybody involved in making this happen!

Regards,
Kai

March 21, 2017
On Saturday, 18 March 2017 at 08:39:31 UTC, Kai Nacke wrote:
> Hi everyone!
>
> On behalf of the LDC team I announce the new 1.2.0-beta1 release!
> It is based on the 2.072.2 front-end and supports LLVM 3.5-4.0.
>
> [...]

Great to see this coming so fast!  Btw, OS X is now called macOS.
March 21, 2017
On 21 Mar 2017, at 7:45, Joakim via digitalmars-d-ldc wrote:
> Great to see this coming so fast!  Btw, OS X is now called macOS.

Well, we still support pre-Sierra, so _technically_… ;)

 — David
March 21, 2017
On Tuesday, 21 March 2017 at 06:45:28 UTC, Joakim wrote:
> On Saturday, 18 March 2017 at 08:39:31 UTC, Kai Nacke wrote:
>> Hi everyone!
>>
>> On behalf of the LDC team I announce the new 1.2.0-beta1 release!
>> It is based on the 2.072.2 front-end and supports LLVM 3.5-4.0.
>>
>> [...]
>
> Great to see this coming so fast!

kinke has been working hard on it, and.... LDC master is at 2.073 already!

:))
  Johan

March 23, 2017
On Saturday, 18 March 2017 at 08:39:31 UTC, Kai Nacke wrote:
> Hi everyone!
>
> On behalf of the LDC team I announce the new 1.2.0-beta1 release!
> It is based on the 2.072.2 front-end and supports LLVM 3.5-4.0.
>
> Beside the new front-end there are some more fixes to increase robustness of the compiler. Be sure to read the change log at the GitHub release page for details. The packages are available for download at the same page.
> https://github.com/ldc-developers/ldc/releases/tag/v1.2.0-beta1
>
> MD5 checksums for the release packages:
>
> f6fe3a09ca6593bdb0ceefd9ae4052ca ldc-1.2.0-beta1-src.tar.gz
> 3262f003d0aa06780bd172cf4bc56a75 ldc2-1.2.0-beta1-freebsd-x86_64.tar.xz
> 54c6bfafdd7ea8900479c588e7215e9b ldc2-1.2.0-beta1-linux-x86.tar.xz
> b02aafa9ab888c5392da50dd5f4bb959 ldc2-1.2.0-beta1-linux-x86_64.tar.xz
> 3dbf34ffd3d38cf44181638a4dc4a65f ldc2-1.2.0-beta1-osx-x86_64.tar.xz
> 13ffbc95d827eb33a6a7b7e714c542eb ldc2-1.2.0-beta1-win32-msvc.zip
> a075b10608c641b88f2aeb75cfbfe913 ldc2-1.2.0-beta1-win64-msvc.zip
>
> Regarding the binaries:
> The Linux x86/x86_64 binaries are built on Ubuntu 12.04 LTS with gcc 4.8.x, ldc2 1.2.0-beta1 and LLVM 4.0.0. They work on Ubuntu 12.04 LTS (or later) without installing additional software.
>
> The OS X binaries and the FreeBSD binaries are built with LLVM 4.0.0.
>
> The Win32 and Win64 MSVC versions are built with VS2015 and LLVM 3.9.1 (due to a regression in LLVM 4.0).
>
> Please be sure to report any bugs at https://github.com/ldc-developers/ldc/issues, and feel free to drop by at the digitalmars.D.ldc forums (http://forum.dlang.org/group/digitalmars.D.ldc) for any questions or comments.
>
> Thanks to everybody involved in making this happen!
>
> Regards,
> Kai

I tested a bit 1.2.0-beta1 as a cross compiler for ARM. Good news is that basic stuff like "hello world" works. Really good news, at least for me, is that all this was done on Windows Linux Subsystem [1].

Unfortunately all good news ends as soon I try something more involved, like:
=======================================
import std.stdio;

void main()
{
    try
    {
      throw new Exception("darn!");
    }
    catch(Exception e)
    {
      writeln(e.msg);
    }
    writeln("Hello world!");
}
=======================================
I get:

Fatal error in EH code: _Unwind_RaiseException failed with reason code: 9
Aborted

The machine I'm running this on is an ARM926EJ-S rev 5, and the ABI used is ARM, EABI5 version 1 soft float.

Any idea what might be wrong here?

[1] https://msdn.microsoft.com/en-us/commandline/wsl/about

March 23, 2017
On Thursday, 23 March 2017 at 16:05:55 UTC, Radu wrote:
> Fatal error in EH code: _Unwind_RaiseException failed with reason code: 9
> Aborted

Thanks for testing. Joakim also encountered this error during his ARM tests, see https://github.com/ldc-developers/ldc/issues/2024.
March 24, 2017
On Thursday, 23 March 2017 at 16:05:55 UTC, Radu wrote:
> On Saturday, 18 March 2017 at 08:39:31 UTC, Kai Nacke wrote:
>> [...]
>
> I tested a bit 1.2.0-beta1 as a cross compiler for ARM. Good news is that basic stuff like "hello world" works. Really good news, at least for me, is that all this was done on Windows Linux Subsystem [1].
>
> Unfortunately all good news ends as soon I try something more involved, like:
> =======================================
> import std.stdio;
>
> void main()
> {
>     try
>     {
>       throw new Exception("darn!");
>     }
>     catch(Exception e)
>     {
>       writeln(e.msg);
>     }
>     writeln("Hello world!");
> }
> =======================================
> I get:
>
> Fatal error in EH code: _Unwind_RaiseException failed with reason code: 9
> Aborted
>
> The machine I'm running this on is an ARM926EJ-S rev 5, and the ABI used is ARM, EABI5 version 1 soft float.
>
> Any idea what might be wrong here?
>
> [1] https://msdn.microsoft.com/en-us/commandline/wsl/about

I have no problem when either cross-compiling or natively compiling that code for Android/ARM, by using the llvm triple armv7-none-linux-android with ldc 1.2.  What llvm triple are you using?

It could be that the ARM exception-handling code isn't right for your ARM platform/ABI, as we had similar issues on other ARM platforms till Dan fixed them:

https://github.com/ldc-developers/ldc/issues/1283
March 24, 2017
On Friday, 24 March 2017 at 06:19:34 UTC, Joakim wrote:
> On Thursday, 23 March 2017 at 16:05:55 UTC, Radu wrote:
>> On Saturday, 18 March 2017 at 08:39:31 UTC, Kai Nacke wrote:
>>> [...]
>>
>> I tested a bit 1.2.0-beta1 as a cross compiler for ARM. Good news is that basic stuff like "hello world" works. Really good news, at least for me, is that all this was done on Windows Linux Subsystem [1].
>>
>> Unfortunately all good news ends as soon I try something more involved, like:
>> =======================================
>> import std.stdio;
>>
>> void main()
>> {
>>     try
>>     {
>>       throw new Exception("darn!");
>>     }
>>     catch(Exception e)
>>     {
>>       writeln(e.msg);
>>     }
>>     writeln("Hello world!");
>> }
>> =======================================
>> I get:
>>
>> Fatal error in EH code: _Unwind_RaiseException failed with reason code: 9
>> Aborted
>>
>> The machine I'm running this on is an ARM926EJ-S rev 5, and the ABI used is ARM, EABI5 version 1 soft float.
>>
>> Any idea what might be wrong here?
>>
>> [1] https://msdn.microsoft.com/en-us/commandline/wsl/about
>
> I have no problem when either cross-compiling or natively compiling that code for Android/ARM, by using the llvm triple armv7-none-linux-android with ldc 1.2.  What llvm triple are you using?
>
> It could be that the ARM exception-handling code isn't right for your ARM platform/ABI, as we had similar issues on other ARM platforms till Dan fixed them:
>
> https://github.com/ldc-developers/ldc/issues/1283

I tried a couple of things

ldc2 -mtriple=arm-none-linux-gnueabi -gcc=arm-linux-gnueabi-gcc


Then something closer to my config

ldc2 -mtriple=armv4t-none-linux-gnueabi -mcpu=arm9tdmi -gcc=arm-linux-gnueabi-gcc

The problem I think is that the system I'm targeting uses ARM, EABI4 version 1 (SYSV), as bellow:

readelf -A libc-2.9.so
Attribute Section: aeabi
File Attributes
  Tag_CPU_name: "ARM9TDMI"
  Tag_CPU_arch: v4T
  Tag_ARM_ISA_use: Yes
  Tag_ABI_PCS_wchar_t: 4
  Tag_ABI_FP_denormal: Needed
  Tag_ABI_FP_exceptions: Needed
  Tag_ABI_FP_number_model: IEEE 754
  Tag_ABI_align_needed: 8-byte
  Tag_ABI_align_preserved: 8-byte, except leaf SP
  Tag_ABI_enum_size: int

But the app I build uses ARM, EABI5 version 1 (SYSV)

Attribute Section: aeabi
File Attributes
  Tag_CPU_name: "5T"
  Tag_CPU_arch: v5T
  Tag_ARM_ISA_use: Yes
  Tag_THUMB_ISA_use: Thumb-1
  Tag_ABI_PCS_GOT_use: GOT-indirect
  Tag_ABI_PCS_wchar_t: 4
  Tag_ABI_FP_rounding: Needed
  Tag_ABI_FP_denormal: Needed
  Tag_ABI_FP_exceptions: Needed
  Tag_ABI_FP_number_model: IEEE 754
  Tag_ABI_align_needed: 8-byte
  Tag_ABI_enum_size: int
  Tag_CPU_unaligned_access: v6
  Tag_ABI_FP_16bit_format: IEEE 754
March 24, 2017
On Friday, 24 March 2017 at 07:30:58 UTC, Radu wrote:
> On Friday, 24 March 2017 at 06:19:34 UTC, Joakim wrote:
>> [...]
>
> I tried a couple of things
>
> ldc2 -mtriple=arm-none-linux-gnueabi -gcc=arm-linux-gnueabi-gcc
>
> [...]

Did a small test in C++ using the gcc cross compiler and exceptions are working with the same ABI and cpu name and arch as the ones I got with ldc. So eabi version is not an issue here.
March 24, 2017
On Friday, 24 March 2017 at 08:11:15 UTC, Radu wrote:
> On Friday, 24 March 2017 at 07:30:58 UTC, Radu wrote:
>> On Friday, 24 March 2017 at 06:19:34 UTC, Joakim wrote:
>>> [...]
>>
>> I tried a couple of things
>>
>> ldc2 -mtriple=arm-none-linux-gnueabi -gcc=arm-linux-gnueabi-gcc
>>
>> [...]
>
> Did a small test in C++ using the gcc cross compiler and exceptions are working with the same ABI and cpu name and arch as the ones I got with ldc. So eabi version is not an issue here.

OK, looking up that CPU now, it's an old ARMv5 core, whereas we've tested on ARMv6 at best.  If you want to use ldc for that, you may need to help port ldc/druntime to those older embedded cores.
« First   ‹ Prev
1 2