Jump to page: 1 2 3
Thread overview
February 01
Hi everyone,

On behalf of the LDC team I am happy to finally announce the release of LDC 1.1.0, based on the 2.071. It has been in the making for an uncharacteristically long time, but we hope you will enjoy the multitude of new features: profile-guided optimization, better-integrated link-time optimization, experimental cross module inlining and first Windows DLL export support; along with UDAs for fine-grained optimizer control (e.g. @fastmath), a partial object file cache, and of course many other bug fixes and improvements.

Binary packages (now also including Dub) and the source tarball can be found on the GitHub release page, along with the detailed changelog:

https://github.com/ldc-developers/ldc/releases/tag/v1.1.0

All the binary packages are built against LLVM 3.9.1. The Linux x86/x86_64 binaries are built on Ubuntu 12.04 LTS and should work on any newer distribution. The Win32 and Win64 MSVC versions are built with Visual Studio 2015, and shouldn't be expected to work with any older version.

Note that there were some changes to the command line semantics, which – although mostly minute – could break some application: http://forum.dlang.org/post/ubobkfmsspbsmjunosna@forum.dlang.org

Please be sure to report any bugs at https://github.com/ldc-developers/ldc/issues, and feel free to post here in the digitalmars.D.ldc forums for any questions or comments.

Oh, and stay tuned for a new release soon, now that the LDC release process has been straightened out and the team has more manpower again. There even is a pull request open for 2.072.2 already.

 — David
January 31
David Nadlinger <code@klickverbot.at> writes:

> Binary packages (now also including Dub) and the source tarball can be found on the GitHub release page, along with the detailed changelog:
>
> https://github.com/ldc-developers/ldc/releases/tag/v1.1.0
>
> All the binary packages are built against LLVM 3.9.1. The Linux x86/x86_64 binaries are built on Ubuntu 12.04 LTS and should work on any newer distribution. The Win32 and Win64 MSVC versions are built with Visual Studio 2015, and shouldn't be expected to work with any older version.

Just added armhf binary (arm-none-linux-gnueabihf) built on Raspbian GNU/Linux 8.0 (jessie).  It can run on both armv7 and armv6 systems (Raspberry Pi 2,3 are armv7, original Pi 1 and Pi Zero are armv6).  I've only tested it on Raspbian, hopefully it will work on other ARM boards running a compatible Linux version.
-- 
Dan
February 03
On Wednesday, 1 February 2017 at 03:40:42 UTC, David Nadlinger wrote:
> On behalf of the LDC team I am happy to finally announce the release of LDC 1.1.0, based on the 2.071. It has been in the making for an uncharacteristically long time, but we hope you will enjoy the multitude of new features: profile-guided optimization, better-integrated link-time optimization, experimental cross module inlining and first Windows DLL export support; along with UDAs for fine-grained optimizer control (e.g. @fastmath), a partial object file cache, and of course many other bug fixes and improvements.

Congratulations everyone! :-)

I've uploaded an updated version of the snap package to the Ubuntu store, based on the following package definition:
https://github.com/ldc-developers/ldc2.snap/releases/tag/rev2

As before this is now awaiting manual review, which based on previous experience should take a few working days.  I'll make a post in the Announce forum once it is published.

The snap package uses LLVM 3.8, since there's not a 3.9 package available in Ubuntu 16.04.  I'm looking into how to most effectively get 3.9 in there; it will probably involve building LLVM from source, but since that's a reasonably hefty process, I thought I'd get an initial v1.1.0 snap out there before moving on that.
February 03
On Friday, 3 February 2017 at 00:52:49 UTC, Joseph Rushton Wakeling wrote:
> I've uploaded an updated version of the snap package to the Ubuntu store, based on the following package definition:
> https://github.com/ldc-developers/ldc2.snap/releases/tag/rev2
>
> As before this is now awaiting manual review, which based on previous experience should take a few working days.  I'll make a post in the Announce forum once it is published.

It's now published in the `edge` channel.  For people with it already installed, `sudo snap refresh` (or `sudo snap refresh --edge ldc2` if that doesn't work) should upgrade it for you.  Otherwise,

    sudo snap install --classic --edge ldc2

... should install it on an Ubuntu 16.04 system or later.

A colleague gave it a go on his Arch machine, and it seems that the `snapd` version available there still doesn't support classic snaps.  If anyone is running Debian, Gentoo, Fedora or OpenSUSE, it would be great to know about your experience -- you can install `snapd` following the instructions here: https://snapcraft.io/docs/core/install
February 09
On Friday, 3 February 2017 at 21:45:09 UTC, Joseph Rushton Wakeling wrote:
> It's now published in the `edge` channel.  For people with it already installed, `sudo snap refresh` (or `sudo snap refresh --edge ldc2` if that doesn't work) should upgrade it for you.  Otherwise,
>
>     sudo snap install --classic --edge ldc2
>
> ... should install it on an Ubuntu 16.04 system or later.

This has now been updated:
https://github.com/ldc-developers/ldc2.snap/releases/tag/rev3

The new package uses a fresh build of LLVM 3.9.1 as the backend, as well as bootstrapping with a fresh build of LDC 0.17.3.

Thanks to Johan's advice I've also enabled LTO support.  This is definitely an experimental feature -- I'm not 100% sure the package's LLVMgold-ldc.so plugin will work on systems that do not have ABI compatibility with Ubuntu 16.04 -- but since the package is still in the (bleeding) 'edge' channel, I thought it was worth trying out ;-)

Let me know if you try it out and it works (or fails!) for you!

Thanks & best wishes,

    -- Joe
February 18
On Wednesday, 1 February 2017 at 03:40:42 UTC, David Nadlinger wrote:
> Hi everyone,
>
> On behalf of the LDC team I am happy to finally announce the release of LDC 1.1.0, based on the 2.071. It has been in the making for an uncharacteristically long time, but we hope you will enjoy the multitude of new features: profile-guided optimization, better-integrated link-time optimization, experimental cross module inlining and first Windows DLL export support; along with UDAs for fine-grained optimizer control (e.g. @fastmath), a partial object file cache, and of course many other bug fixes and improvements.
>
> Binary packages (now also including Dub) and the source tarball can be found on the GitHub release page, along with the detailed changelog:
>
> https://github.com/ldc-developers/ldc/releases/tag/v1.1.0
>
> All the binary packages are built against LLVM 3.9.1. The Linux x86/x86_64 binaries are built on Ubuntu 12.04 LTS and should work on any newer distribution. The Win32 and Win64 MSVC versions are built with Visual Studio 2015, and shouldn't be expected to work with any older version.
>
> Note that there were some changes to the command line semantics, which – although mostly minute – could break some application: http://forum.dlang.org/post/ubobkfmsspbsmjunosna@forum.dlang.org
>
> Please be sure to report any bugs at https://github.com/ldc-developers/ldc/issues, and feel free to post here in the digitalmars.D.ldc forums for any questions or comments.
>
> Oh, and stay tuned for a new release soon, now that the LDC release process has been straightened out and the team has more manpower again. There even is a pull request open for 2.072.2 already.
>
>  — David


I am using Lubuntu 16.10, testing a simple hello world:

sai@saivb:~$ uname -a
Linux saivb 4.8.0-37-generic #39-Ubuntu SMP Thu Jan 26 02:27:07 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux


sai@saivb:~/tmp$ cat t.d
import std.stdio;

int main(string[] args) {
	writefln("Hello world!");
	return 0;
}


I am getting the following error:

sai@saivb:~/tmp$ ldc2 t.d
/usr/bin/ld: /home/sai/Programs/ldc2-1.1.0-linux-x86_64/bin/../lib/libdruntime-ldc.a(errno.c.o): relocation R_X86_64_PC32 against symbol `__errno_location@@GLIBC_2.2.5' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
Error: /usr/bin/gcc failed with status: 1


sai@saivb:~/tmp$ ldc2 -relocation-model=dynamic-no-pic  t.d
/usr/bin/ld: /home/sai/Programs/ldc2-1.1.0-linux-x86_64/bin/../lib/libdruntime-ldc.a(errno.c.o): relocation R_X86_64_PC32 against symbol `__errno_location@@GLIBC_2.2.5' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
Error: /usr/bin/gcc failed with status: 1

sai@saivb:~/tmp$ ldc2 -relocation-model=pic t.d
/usr/bin/ld: /home/sai/Programs/ldc2-1.1.0-linux-x86_64/bin/../lib/libdruntime-ldc.a(errno.c.o): relocation R_X86_64_PC32 against symbol `__errno_location@@GLIBC_2.2.5' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
Error: /usr/bin/gcc failed with status: 1


I posted this in other thread, anything else that I can do besides recompiling druntime/phobos?

Thanks in advance.



February 18
On Saturday, 18 February 2017 at 21:50:27 UTC, Sai wrote:
> I posted this in other thread, anything else that I can do besides recompiling druntime/phobos?

This is actually a bug in the binary package, which I just added an issue for: https://github.com/ldc-developers/ldc/issues/2008

Ubuntu 16.10 unfortunately broke forwards-compatibility for libraries and compilers, in the sense that they patched the linker to create position-independent executables by default. We decided to follow suit and make LDC default to position-independent code on Linux as well (which makes sense as it enables ASLR and friends). Thus, setting `-relocation-model=pic` doesn't change anything – as indicated in the error message, the problem is in the C parts of the standard library, not your D code.

This is because the packages are built on an older Ubuntu version, with the default C compiler settings – which of course implicitly default to non-PIC. We'll have to amend our build scripts and push out a new point release to fix this. I'm rather amazed that during six (!) beta versions, nobody tested the binaries on 16.10…

(DMD 2.071.2 and older was completely broken on 16.10 for this reason.)

 — David
February 19
On Saturday, 18 February 2017 at 23:09:29 UTC, David Nadlinger wrote:
> On Saturday, 18 February 2017 at 21:50:27 UTC, Sai wrote:
>> [...]
>
> This is actually a bug in the binary package, which I just added an issue for: https://github.com/ldc-developers/ldc/issues/2008
>
> [...]


Ah, thanks for the detailed reply. Funny that I downloaded the beta version for testing exactly this, but couldn't thanks to my new born daughter :)
Looking forward to the next point release with the fix.


February 19
On Sunday, 19 February 2017 at 15:05:18 UTC, Sai wrote:
> Ah, thanks for the detailed reply. Funny that I downloaded the beta version for testing exactly this, but couldn't thanks to my new born daughter :)
> Looking forward to the next point release with the fix.

Since you're on Ubuntu 16.10 you could also try the snap package for LDC 1.1.0:

    sudo snap install --classic --edge ldc2
February 19
On Sunday, 19 February 2017 at 16:51:39 UTC, Joseph Rushton Wakeling wrote:
> Since you're on Ubuntu 16.10 you could also try the snap package for LDC 1.1.0:
>
>     sudo snap install --classic --edge ldc2


Done, installed OK.

Executed it and it failed with exact same error, which I guess is expected:


sai@saivb:~/tmp$ /snap/bin/ldc2 t.d
/usr/bin/ld: /snap/ldc2/4/bin/../lib/libdruntime-ldc.a(errno.c.o): relocation R_X86_64_PC32 against symbol `__errno_location@@GLIBC_2.2.5' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
Error: /usr/bin/gcc failed with status: 1
« First   ‹ Prev
1 2 3