digitalmars.D.ldc - LDC 0.10.0 has been released!
- David Nadlinger (125/125) Dec 17 2012 On behalf of the LDC team, I am happy to announce that LDC 0.10.0
- Kiith-Sa (21/21) Dec 17 2012 Thanks for including builds (I've given up my attempts to use GDC
- David Nadlinger (5/12) Dec 17 2012 Is there a reasonably easy way to reproduce the bug? If so,
- Kiith-Sa (3/15) Dec 17 2012 OK, done.
- ponce (4/7) Dec 20 2012 Congratulations David,
- Kai Nacke (3/4) Dec 21 2012 I will prepare a Windows build after the merge of 2.061. The Win64
On behalf of the LDC team, I am happy to announce that LDC 0.10.0 has officially been released! LDC is a compiler for the D programming language that uses the LLVM framework for code generation to take advantage of its extensive optimization capabilities and wide target architecture support. Except for cosmetics and documentation, this release is almost identical to the first beta version, which was released a few days ago. As preparations for the next DMD release have already been started, we have decided to push out the release in its current state even if a few new issues were found. We are planning to follow up this release with a new version (0.10.1) as soon as possible. It will address the most severe bugs and also incorporate the upcoming DMD 2.061 frontend. Changes/Project Status --- Due to the long time since the last official LDC release, it is infeasible to give an in-depth list of changes here. Thus, just a summary of the project status; the next release notes will feature a changelog again. LDC generally strives to deviate from DMD, the reference compiler, as little as possible in user-visible behavior. It includes a DMD-compatible driver (ldmd), and passes the D2 test suite on x86/x86_64, with a few known exceptions: - Built-in profile and coverage information generation is not supported. - Exception chaining is not implemented yet (throwing from a cleanup handler while an exception is already in flight; LDC will not propagate the correct exception). - Variadic argument support on x86_64 is unreliable; code using plain extern(C) and extern(D) variadics might work by chance, but there are known bugs. Additionally, LDC does not require the "__va_argsave" hack necessary for DMD, which unfortunately leads to source incompatibilities if it is enabled via version(X86_64). As for D1, there are no known DStress regressions on Linux x86_64 compared to the last LDC release, except for some test cases which no longer pass because of frontend changes. Due to both those frontend updates and some changes in LLVM's atomics/intrinsics interface, LDC unfortunately cannot be built against the last Tango release (0.9.99); it is necessary to use Tango from SVN trunk. In terms of operating systems, LDC is well-tested and officially supported on Linux x86/x86_64 and OS X 10.7+. It should be possible to use it on other Posix-ish systems (e.g. FreeBSD) as well, but keep in mind that it receives very little testing there. Work on Windows x64 support is progressing steadily – stay tuned for a preview release, which might be ready as early as next January! Please note that for D2, OS X Lion (or higher) is unfortunately a hard requirement, as LLVM relies on the operating system for thread-local storage support, which was first introduced in 10.7. Package downloads ---- The below binary packages are »DMD-style« self-contained packages that require no installation and have no external dependencies besides the system linker (gcc). They are based on LLVM 3.2 and have been built on Ubuntu 10.04 resp. OS X 10.7. The x86_64 packages contain 64 bit compiler binaries, which support generating both 32 and 64 bit executables. Alternatively, you can easily build LDC from source yourself, see http://wiki.dlang.org/LDC for instructions. This is also required if you want to use LDC as a D1 compiler. If anybody wants to contribute binary packages for D1, we will be happy to accept them, but we chose not to officially release such for the time being, as D1 support has received nowhere near the amount of testing recently that D2 did. https://github.com/downloads/ldc-developers/ldc/ldc-0.10.0-src.tar.gz https://github.com/downloads/ldc-developers/ldc/ldc2-0.10.0-linux-x86_64.tar.gz https://github.com/downloads/ldc-developers/ldc/ldc2-0.10.0-linux-x86_64.tar.xz https://github.com/downloads/ldc-developers/ldc/ldc2-0.10.0-linux-x86.tar.gz https://github.com/downloads/ldc-developers/ldc/ldc2-0.10.0-linux-x86.tar.xz https://github.com/downloads/ldc-developers/ldc/ldc2-0.10.0-osx-x86_64.tar.gz https://github.com/downloads/ldc-developers/ldc/ldc2-0.10.0-osx-x86_64.tar.xz MD5 checksums: f7a34136a2f057e7f3b966dcb1a82d69 ldc2-0.10.0-linux-x86_64.tar.gz cffc112a5c2a7ea1da23108382756fdd ldc2-0.10.0-linux-x86_64.tar.xz 6ccf81b6003937c9c053176340b389fb ldc2-0.10.0-linux-x86.tar.gz 907699bf1453cb11c4d7d552579e55d6 ldc2-0.10.0-linux-x86.tar.xz 480e7a0e2b535555b7d47593c3a45584 ldc2-0.10.0-osx-x86_64.tar.gz 65354322e6dd3b812084b5a8322bf38e ldc2-0.10.0-osx-x86_64.tar.xz SHA-1 checksums: 6cfd64f89d74655dc2896d428ac26331c963f00a ldc-0.10.0-src.tar.gz 79780c5300f417dd1356c3cfc237c1c05c85e347 ldc2-0.10.0-linux-x86_64.tar.gz 4ecc1d6afa8cc8587f5e2f261e35af54dcdc537a ldc2-0.10.0-linux-x86_64.tar.xz 215a484009c690c1f12c7bf5343c503965ea01cb ldc2-0.10.0-linux-x86.tar.gz 3b75765d60ec59ae03accd56b2f967ff352fd79d ldc2-0.10.0-linux-x86.tar.xz b8261accdafc181c2beedb67f7c3d9d5e047789e ldc2-0.10.0-osx-x86_64.tar.gz 4af0f1e97b1c63f938b9253c9206e200438af9ec ldc2-0.10.0-osx-x86_64.tar.xz Acknowledgments --- Many people have made essential contributions to this release, but special thanks to Alexey Prokhin, who is on a hiatus from D right now but has implemented most of the initial D2 support in LDC, and to Jernej Krempuš, who contributed extensive work on vector operation support. Also, a big thank you to Alex Rønne Petersen, who set up regular LDC CI builds on the the Lycus Foundation machines, and the Travis guys (http://travis-ci.org) for not kicking us off their CI service for putting too much pressure on their systems. Last but not least, thanks to our distribution packagers for their work: Jonathan Mercier, who maintains the packages in the official Fedora repositories, and Sven-Hendrik Haase, who does the same for Arch Linux. (We would be happy to have packages in more distributions, especially Debian and its derivatives – let us know if you can help!) Contact --- Generally, the shiny new digitalmars.D.ldc newsgroup (http://forum.dlang.org) is the place to go for any questions regarding LDC. For further information, please refer to the D wiki: http://wiki.dlang.org/LDC In particular, for further information about reporting bugs see http://wiki.dlang.org/Reporting_LDC_issues. Oh, and new contributors are always very welcome – LDC is an entirely community-driven effort. So, if you are interested in compiler hacking, just visit the wiki for more information on how to help, or ask away on the forums or the project IRC channel. David
Dec 17 2012
Thanks for including builds (I've given up my attempts to use GDC due to its compilation being a PITA). I have a bug (works with DMD 2.060, not with this LDMD2 build), but it's in a medium-sized codebase and I don't have time to find a minimal test case right now, so not posting to bugtracker (yet). The bug is in my D:YAML (https://github.com/kiith-sa/D-YAML) library: Compilation works fine, is successful, but at runtime following exceptions get thrown: object.Exception object.Exception /build/src/ldc/runtime/druntime/src/object_.d(108): need opCmp for class TypeInfo_e ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ object.Exception object.Exception /build/src/ldc/runtime/druntime/src/object_.d(108): need opCmp for class TypeInfo_Aya I've looked at LDC druntime source; TypeInfo_e and TypeInfo_Aya classes both are derived from TypeInfo, which overrides Object's opCmp, while Object's opCmp throws the exception. So I don't know what's going on. (Again, these exceptions don't get thrown with DMD 2.060)
Dec 17 2012
On Monday, 17 December 2012 at 19:54:23 UTC, Kiith-Sa wrote:object.Exception object.Exception /build/src/ldc/runtime/druntime/src/object_.d(108): need opCmp for class TypeInfo_e ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ object.Exception object.Exception /build/src/ldc/runtime/druntime/src/object_.d(108): need opCmp for class TypeInfo_AyaIs there a reasonably easy way to reproduce the bug? If so, please add the issue to the bug tracker. It doesn't need to be a minmal test case just yet. David
Dec 17 2012
On Monday, 17 December 2012 at 19:56:41 UTC, David Nadlinger wrote:On Monday, 17 December 2012 at 19:54:23 UTC, Kiith-Sa wrote:OK, done.object.Exception object.Exception /build/src/ldc/runtime/druntime/src/object_.d(108): need opCmp for class TypeInfo_e ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ object.Exception object.Exception /build/src/ldc/runtime/druntime/src/object_.d(108): need opCmp for class TypeInfo_AyaIs there a reasonably easy way to reproduce the bug? If so, please add the issue to the bug tracker. It doesn't need to be a minmal test case just yet. David
Dec 17 2012
On Monday, 17 December 2012 at 18:20:46 UTC, David Nadlinger wrote:On behalf of the LDC team, I am happy to announce that LDC 0.10.0 has officially been released!Congratulations David, Any chance for Windows build?
Dec 20 2012
On 21.12.2012 01:47, ponce wrote:Any chance for Windows build?I will prepare a Windows build after the merge of 2.061. The Win64 additions to Phobos of 2.061 are a precondition to do something useful.
Dec 21 2012