Jump to page: 1 2
Thread overview
Merge of 2.065.0
Mar 14, 2014
Kai Nacke
Jun 14, 2014
Temtaime
Jun 14, 2014
Temtaime
Jun 14, 2014
Temtaime
Jun 14, 2014
Temtaime
Jun 14, 2014
Temtaime
Jun 14, 2014
Christian Kamm
Jun 14, 2014
Temtaime
Jun 14, 2014
Christian Kamm
Jun 18, 2014
Dan Olson
Jun 19, 2014
Kai Nacke
Jun 19, 2014
Temtaime
Jun 19, 2014
Temtaime
Jun 25, 2014
Kai Nacke
Jun 19, 2014
Temtaime
Jun 25, 2014
Kai Nacke
Jul 01, 2014
Kai Nacke
March 14, 2014
Hi all!

Again some news from the bleeding edge: Now the branch merge-2.065 contains my
merge of latest dmd release 2.065.0.

Regards,
Kai
June 14, 2014
Hi Kai !
Now i can build ldc and almost all druntime and phobos.

Only the problem is code.sys.windows.stacktrace in druntime.

LDC shows following error:

Both operands to ICmp instruction are not of the same type!
  %tmp50 = icmp ne [1 x i8] %tmp49, i0 0

June 14, 2014
OK just commented out import of stacktrace and removed stacktrace fron my druntime-ldc project.
Now it OK and i can build hello world.
Exceptions are fine.
June 14, 2014
I have big project in D about 14k lines.
Compiling with ldc now ldc crashes at toir.c:1982

Logger::print("EqualExp::toElem: %s @ %s\n", toChars(), type->toChars());

Debugger says that variable type is null.

If i comment that log message out it gives strange error without file and line

Error: Exp type Expression not implemented: p
June 14, 2014
OK reduced test case:

FILE A.d
import B;

FILE B.d
import C;
import D;

import std.range;

class Font {
public:
	mixin RCounted;

	auto makeTextData(string s) {
		// split text by spaces
		auto arr = s.splitter.array;
	}

}

class Engine {
	RC!Font font;
}

FILE C.d
import A;

FILE D.d
template RCounted() {
		void release() { this.destroy; }
}

struct RC(T) {
	~this() {  _rc_ptr.release; }
	T _rc_ptr;
}


I don't know why that errors occurs really.
Any ideas ?

Want to get LDC compile it.
June 14, 2014
http://a-rei.ru/YVHr
Callstack here if it'll help
June 14, 2014
On 14.06.2014 17:07, Temtaime wrote:
> OK reduced test case:

Thanks for the awesome bug report! Unfortunately I can't reproduce it with

ldc2 -c A.d B.d C.d D.d

Is there anything else I need to know?
June 14, 2014
Try to specify only A.d


>ldc -c A.d B.d C.d D.d
*compiles OK*

>ldc -c A.d
Error: Exp type Expression not implemented: p
June 14, 2014
On 14.06.2014 18:08, Temtaime wrote:
>> ldc -c A.d B.d C.d D.d
> *compiles OK*
> 
>> ldc -c A.d
> Error: Exp type Expression not implemented: p

That does it, thanks! -vv output:

* TemplateInstance::codegen: 'std.array.Appender!(string[])'
* * StructDeclaration::codegen: 'std.array.Appender!(string[]).Appender'
* * * Resolving struct type: Appender
(/home/kamm/eigenes/projekte/ldc/ldc/runtime/phobos/std/array.d(2152))
* * * StructDeclaration::codegen:
'std.array.Appender!(string[]).Appender.Data'
...
* * * *
DtoDefineFunction(std.array.Appender!(string[]).Appender.Data.__xopEquals):
* * * * * Doing function body for: __xopEquals
* * * * * Function available externally: __xopEquals
* * * * * DtoCreateNestedContext for __xopEquals
* * * * * * DtoCreateNestedContextType for __xopEquals
* * * * * ReturnStatement::toIR():
* * * * * * Expression::toElemDtor(): p == q

and then your stack trace.
June 18, 2014
"Temtaime" <temtaime@gmail.com> writes:

> Try to specify only A.d
>
>
>>ldc -c A.d B.d C.d D.d
> *compiles OK*
>
>>ldc -c A.d
> Error: Exp type Expression not implemented: p

It dumps stack on 2.064 too.  I noticed that "ldc -O2 -c A.d" and higher optimization levels work though.
« First   ‹ Prev
1 2