www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - DMD-0.160 regressions

reply Thomas Kuehne <thomas-dloop kuehne.cn> writes:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

784 regressions between DMD-0.158 and DMD-0.160 were found,
however all of them are inline assembler tests that previously
failed to compile and now fail to run if compiled with "-fPIC".

Summary: (529K)
http://dstress.kuehne.cn/www/dstress.html

Details: (905K)
http://dstress.kuehne.cn/www/dmd-0.160.html

Log: (1.8M)
http://dstress.kuehne.cn/raw_results/linux-amd64_dmd-0.160.log.gz

Known internal compiler errors with messages:
dmd: expression.c:5635: virtual Expression* MinAssignExp::semantic(Scope*):
Assertion `e2->type->isfloating()' failed.
dmd: expression.c:725: virtual void Expression::toMangleBuffer(OutBuffer*):
Assertion `0' failed.
dmd: func.c:453: virtual void FuncDeclaration::semantic3(Scope*): Assertion `0'
failed.
dmd: template.c:2128: TemplateDeclaration*
TemplateInstance::findTemplateDeclaration(Scope*): Assertion `s->parent' failed.
dmd: tocsym.c:143: virtual Symbol* VarDeclaration::toSymbol(): Assertion
`!needThis()' failed.
dmd: toobj.c:191: virtual void ClassDeclaration::toObjFile(): Assertion
`!scope' failed.
Internal error: e2ir.c 736
Internal error: ../ztc/cgcod.c 175
Internal error: ../ztc/cgcod.c 562

Thomas
Jun 07 2006
next sibling parent reply Walter Bright <newshound digitalmars.com> writes:
Thomas Kuehne wrote:
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
 784 regressions between DMD-0.158 and DMD-0.160 were found,
 however all of them are inline assembler tests that previously
 failed to compile and now fail to run if compiled with "-fPIC".

The tests rely on accessing static data from inline assembler. Accessing static data with -fPIC requires special code to be generated, but with inline assembler you have to add that code in manually. The compiler won't do it automatically - after all, inline assembler means you control the flame! So I don't believe it's a compiler bug. You can alter the inline assembler to pick the data off the stack instead of static data, then it should work.
Jun 07 2006
parent reply Thomas Kuehne <thomas-dloop kuehne.cn> writes:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Walter Bright schrieb am 2006-06-07:
 Thomas Kuehne wrote:
 
 784 regressions between DMD-0.158 and DMD-0.160 were found,
 however all of them are inline assembler tests that previously
 failed to compile and now fail to run if compiled with "-fPIC".

The tests rely on accessing static data from inline assembler. Accessing static data with -fPIC requires special code to be generated, but with inline assembler you have to add that code in manually. The compiler won't do it automatically - after all, inline assembler means you control the flame! So I don't believe it's a compiler bug. You can alter the inline assembler to pick the data off the stack instead of static data, then it should work.

I never checked how DMD stores constant data ... will take some time to fix. How about defining version=D_PIC if compiling with -fPIC, just like D_Coverage? Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFEiERX3w+/yD4P9tIRAqZPAJ9M9eHNcoKPrXQOQZok1+ddTg5UagCgiY9X bQQ4mnUHf59qaSx1nS4XTZU= =7FFE -----END PGP SIGNATURE-----
Jun 08 2006
parent Thomas Kuehne <thomas-dloop kuehne.cn> writes:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Walter Bright schrieb am 2006-06-07:
You can alter the inline assembler to pick the data off the stack 
instead of static data, then it should work.

Should was the right word ^_^ # void main(){ # float[] a = new float[4]; # float[] b = new float[4]; # # version(noSegfault){ # float[] c = new float[4]; # } # # asm{ # movups XMM0, a; # movups b, XMM0; # } # } segfaults: dmd a.d && ./a doesn't segfault: dmd -version=noSegfault a.d && ./a Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFEiFm03w+/yD4P9tIRAvxYAJ4tNlTWGgCprKYESdWAf5HkecmSTwCdGYv1 cs4NqTDbMTmT8kaIDhknPro= =nieN -----END PGP SIGNATURE-----
Jun 08 2006
prev sibling parent reply Don Clugston <dac nospam.com.au> writes:
Thomas -

Are all of the active DStress bugs included in bugzilla yet?
If not, is there any easy way to tell which are missing?

You work on DStress is much appreciated, it really makes D feel like a 
solid product.

Thomas Kuehne wrote:
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
 784 regressions between DMD-0.158 and DMD-0.160 were found,
 however all of them are inline assembler tests that previously
 failed to compile and now fail to run if compiled with "-fPIC".
 
 Summary: (529K)
 http://dstress.kuehne.cn/www/dstress.html
 
 Details: (905K)
 http://dstress.kuehne.cn/www/dmd-0.160.html
 
 Log: (1.8M)
 http://dstress.kuehne.cn/raw_results/linux-amd64_dmd-0.160.log.gz
 
 Known internal compiler errors with messages:
 dmd: expression.c:5635: virtual Expression* MinAssignExp::semantic(Scope*):
Assertion `e2->type->isfloating()' failed.
 dmd: expression.c:725: virtual void Expression::toMangleBuffer(OutBuffer*):
Assertion `0' failed.
 dmd: func.c:453: virtual void FuncDeclaration::semantic3(Scope*): Assertion
`0' failed.
 dmd: template.c:2128: TemplateDeclaration*
TemplateInstance::findTemplateDeclaration(Scope*): Assertion `s->parent' failed.
 dmd: tocsym.c:143: virtual Symbol* VarDeclaration::toSymbol(): Assertion
`!needThis()' failed.
 dmd: toobj.c:191: virtual void ClassDeclaration::toObjFile(): Assertion
`!scope' failed.
 Internal error: e2ir.c 736
 Internal error: ../ztc/cgcod.c 175
 Internal error: ../ztc/cgcod.c 562
 
 Thomas
 
 
 
 -----BEGIN PGP SIGNATURE-----
 
 iD8DBQFEhqhS3w+/yD4P9tIRAuqGAJ41Kd8cbBQvcJfQ6P++yP+HjM2augCg0AmQ
 EHNzcynuMnkGb0YGKj2vgbo=
 =5Z1U
 -----END PGP SIGNATURE-----

Jun 08 2006
parent Thomas Kuehne <thomas-dloop kuehne.cn> writes:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Don Clugston schrieb am 2006-06-08:
 Are all of the active DStress bugs included in bugzilla yet?

 If not, is there any easy way to tell which are missing?

1) Find all test cases with unexpected results. 2) Ignore all asm_* test for now. 3) Ensure that the test case isn't buggy. 4) Ignore all test that contain the string "puremagic.com/bugzilla". 5) Ignore all test cases whose names could be found in the bugzilla. 6) After preparing snacks and drinks: File the bug in bugzilla and include links to the original bug report as well as to the test case(s). Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFEiD503w+/yD4P9tIRAqYFAJ9q43Dz5wKIGwW+dKd8BZdR7vepfACfVYSF GV/ehJ+Ho7/1yhvE+c2hvXs= =gqQf -----END PGP SIGNATURE-----
Jun 08 2006