www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.ldc - LDC 0.11.0 Beta 1

reply "David Nadlinger" <code klickverbot.at> writes:
Without any bells and whistles, here is the first round of beta packages =

for the 0.11.0 release, scheduled for next weekend:

http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-beta1-linux-x86.tar.gz
http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-beta1-linux-x86.tar.xz
http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-beta1-linux-x86_64.tar.g=
z
http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-beta1-linux-x86_64.tar.x=
z
http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-beta1-mingw-x86.7z
http://d32gngvpvl2pi1.cloudfront.net/ldc-0.11.0-beta1-src.tar.gz

MD5 checksums:

75ce19ff7d57155d679a214a5f970213  ldc2-0.11.0-beta1-linux-x86.tar.gz
982903082dd7fe0b696d0268122ab724  ldc2-0.11.0-beta1-linux-x86.tar.xz
b9de309f8910fbc151981dee7598e45d  ldc2-0.11.0-beta1-linux-x86_64.tar.gz
c7a9ede3297fe83b73d3aeec1cd00e46  ldc2-0.11.0-beta1-linux-x86_64.tar.xz
c6e7815b0dc034f72c276a54e1aa28ce  ldc2-0.11.0-beta1-mingw-x86.7z
01c291c6db3698144e833ee2b2bb7140  ldc-0.11.0-beta1-src.tar.gz

The MinGW version is to be considered a preview/alpha/=E2=80=A6 version a=
s =

there are known issues. It also requires a very recent mingw32-w64 =

snapshot, such as this one: =

http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%2=
0Win32/Personal%20Builds/rubenvb/gcc-4.8-dw2-release/i686-w64-mingw32-gcc=
-dw2-4.8.0-win32_rubenvb.7z/download

As previously discussed, there are no OS X packages at this point, as =

LLVM 3.2 doesn't pass the test suite (GitHub issue #362), and we hit a =

regression for the current 3.3 RC 1.

But there is also an open issue on Linux: For some reason, the versions =

from the above packages fail on a test case from the DMD test suite:

---
$ /build/work/ldc/bin/ldc2 -g runnable/ldc_github_176.d
UNREACHABLE executed!
0  ldc2            0x0000000000fad8bf
1  ldc2            0x0000000000faf32a
2  libpthread.so.0 0x00007f1d201258f0
3  libc.so.6       0x00007f1d1f411b25 gsignal + 53
4  libc.so.6       0x00007f1d1f415670 abort + 384
5  ldc2            0x0000000000f9a664 =

llvm::llvm_unreachable_internal(char const*, char const*, unsigned int) =

+ 356
6  ldc2            0x0000000000641c9e
7  ldc2            0x000000000064229c =

DtoDwarfLocalVariable(llvm::Value*, VarDeclaration*, =

llvm::ArrayRef<llvm::Value*>) + 220
8  ldc2            0x000000000063311d DtoVarDeclaration(VarDeclaration*) =

+ 509
9  ldc2            0x0000000000633498 DtoDeclarationExp(Dsymbol*) + 312
10 ldc2            0x00000000006481b1 DeclarationExp::toElem(IRState*) + =

65
11 ldc2            0x00000000006469fd Expression::toElemDtor(IRState*) + =

77
12 ldc2            0x00000000006172ea ExpStatement::toIR(IRState*) + 74
13 ldc2            0x00000000006171ff CompoundStatement::toIR(IRState*) =

+ 95
---

I tried to reproduce this with a local build, but didn't have any =

success so far. I am not convinced that this is a GCC miscompilation =

bug, though, as there is a mysterious occasional crash on the same file =

using the MinGW port.

I'm pretty swamped in work right now, so if somebody wants to help with =

writing the release notes/announcement, I'd appreciate that very much.

David
May 29 2013
next sibling parent reply Dmitry Olshansky <dmitry.olsh gmail.com> writes:
30-May-2013 00:50, David Nadlinger пишет:
 Without any bells and whistles, here is the first round of beta packages
 for the 0.11.0 release, scheduled for next weekend:
Cool. One thing that bothered my with LDC 0.10 (and I loved it anyway) is that oldish frontend didn't accept this new syntax: alias T = FancyTypeName!U; What is the 0.11 frontend state? -- Dmitry Olshansky
May 29 2013
parent reply "David Nadlinger" <see klickverbot.at> writes:
On Wednesday, 29 May 2013 at 21:22:28 UTC, Dmitry Olshansky wrote:
 What is the 0.11 frontend state?
2.062. Should have written at least some release notes even for the beta, I guess. ;) David
May 29 2013
parent reply "Temtaime" <temtaime gmail.com> writes:
Too bugged, it's impossible to compile anything except hello 
world.

Error: class perfontana.node.Node had semantic errors when 
compiling
e = 0E689168, ty = 35
_error_ 0033E378
e = 0E689168, ty = 35
_error_ 0033E378
Jun 02 2013
parent reply "David Nadlinger" <see klickverbot.at> writes:
On Sunday, 2 June 2013 at 08:33:28 UTC, Temtaime wrote:
 Too bugged, it's impossible to compile anything except hello 
 world.

 Error: class perfontana.node.Node had semantic errors when 
 compiling
 e = 0E689168, ty = 35
 _error_ 0033E378
 e = 0E689168, ty = 35
 _error_ 0033E378
Au contraire, it compiles all of my non-trivial projects… No, seriously, we are obviously keen to hear about any problems, but this bug report is useless without any further details. Could you please provide the steps needed to reproduce this problem? — David
Jun 02 2013
parent reply "Temtaime" <temtaime gmail.com> writes:
I can not figure out the test case, project too large.

Can you give me more information what that error can mean ?
Jun 02 2013
parent reply David Nadlinger <code klickverbot.at> writes:
On Sun, Jun 2, 2013 at 2:02 PM, Temtaime <temtaime gmail.com> wrote:
 Can you give me more information what that error can mean ?
This error literally means that the DMD front-end handed off an invalid AST to our glue code (there is a value for which type->ty == Terror). In such cases, there should always be an actual error message before that, which stops the code from even reaching this stage. The absence of that is likely a bug in the frontend (or our copy of the frontend), but it's impossible to say what exactly is going on. For reducing the test case, I'd recommend to give DustMite [1] a try. You simply set up a test script grepping for that error message in the compiler output, and let it do its magic. At the end, your test case should have gone down to a manageable size. David [1] https://github.com/CyberShadow/DustMite
Jun 02 2013
parent reply "Temtaime" <temtaime gmail.com> writes:
I'm figured out testcase.

It's too strange.

http://dpaste.1azy.net/c3f8b2d9
Jun 02 2013
next sibling parent reply "Temtaime" <temtaime gmail.com> writes:
So, there is no error on ldc 2.060 on dpaste.
Jun 02 2013
parent reply David Nadlinger <code klickverbot.at> writes:
On Sun, Jun 2, 2013 at 4:31 PM, Temtaime <temtaime gmail.com> wrote:
 So, there is no error on ldc 2.060 on dpaste.
Yes, it's a problem (regression) in the DMD 2.062 frontend, not in LDC. David
Jun 02 2013
parent reply "Temtaime" <temtaime gmail.com> writes:
I'm modified a little testcase: http://dpaste.1azy.net/69cb277c

So it's compiles on ldc 2.060. There also error with GDC.

I don't know if there is an error with dmd 2.062, because i'm 
using 2.063 beta for a long time.

Can u build ldc based on 2.063 frontend ?
Jun 02 2013
parent reply David Nadlinger <code klickverbot.at> writes:
On Sun, Jun 2, 2013 at 4:40 PM, Temtaime <temtaime gmail.com> wrote:
 I'm modified a little testcase: http://dpaste.1azy.net/69cb277c
Still fails with DMD 2.062. I'm afraid we won't be able to fix this for this release, as the error is not in actual LDC territory, and back-porting this kind DMD patches can be a rather complicated affair due to unintended side effects. Might be worth a look, though, if we can locate the exact commit that fixed the regression.
 Can u build ldc based on 2.063 frontend ?
Not easily, it's a manual process that usually entails quite a bit of head-scratching, because there are often "behind-the-scenes" regressions that don't affect the DMD backend, but break our glue code. In any case, updating the frontend is planned for the next release, which will hopefully come out in three weeks or so (my plan is to tackle the merge into the development tree rather quickly, though, so you might be able to use Git master much quicker). David
Jun 02 2013
parent "Temtaime" <temtaime gmail.com> writes:
I hope that release will come to us soon, because our team 
writing 3D engine, so DMD produces code of low quality. I prefer 
LLVM, because it's being developed by Google and Apple and has 
great optimizer.

Thanks for your answers.
Jun 02 2013
prev sibling parent "David Nadlinger" <see klickverbot.at> writes:
On Sunday, 2 June 2013 at 14:30:41 UTC, Temtaime wrote:
 I'm figured out testcase.

 It's too strange.

 http://dpaste.1azy.net/c3f8b2d9
Ah, great, thanks. Actually, the code hits an assertion in a debug build much earlier: ——— /home/aule/Build/Source/ldc/dmd2/template.c:5900: Identifier* TemplateInstance::genIdent(Objects*): Assertion `global.errors' failed. ——— On your reduced test case, DMD 2.062 fails with exactly the same assertion message. Does your original codebase compiles with DMD 2.062? David
Jun 02 2013
prev sibling next sibling parent "Kai Nacke" <kai redstar.de> writes:
On Wednesday, 29 May 2013 at 21:16:15 UTC, David Nadlinger wrote:
 Without any bells and whistles, here is the first round of beta 
 packages for the 0.11.0 release, scheduled for next weekend:
Great! I also updated the Gentoo overlay. :-) Kai
May 30 2013
prev sibling parent reply "David Nadlinger" <see klickverbot.at> writes:
Two serious issues have been fixed since beta 1:
  - https://github.com/ldc-developers/ldc/pull/375
  - https://github.com/ldc-developers/ldc/pull/379

Right now, I'm having a look at the feasibility of fixing 
https://github.com/ldc-developers/ldc/issues/372 for the release, 
which is critical for getting a working LLVM 3.3-based OS X build.

I'll spin a new beta in a few hours.

David
Jun 02 2013
parent "David Nadlinger" <see klickverbot.at> writes:
On Sunday, 2 June 2013 at 19:51:54 UTC, David Nadlinger wrote:
 Right now, I'm having a look at the feasibility of fixing 
 https://github.com/ldc-developers/ldc/issues/372 for the 
 release, which is critical for getting a working LLVM 3.3-based 
 OS X build.
Scratch that, either too risky or would delay the release for too long. My old new plan is to release Beta 2 for OS X as well, based on LLVM 3.2, and if no further blockers appear, declare that the final release. A new LLVM 3.3-based release would be pushed out as soon as the switch to storing bools as i8 has been completed. Sounds good? I'm building/uploading the packages right now, should be ready in a few hours. David
Jun 02 2013