|
Archives
D Programming
DD.gnu digitalmars.D digitalmars.D.bugs digitalmars.D.dtl digitalmars.D.ide digitalmars.D.dwt digitalmars.D.announce digitalmars.D.learn digitalmars.D.debugger C/C++ Programming
c++c++.announce c++.atl c++.beta c++.chat c++.command-line c++.dos c++.dos.16-bits c++.dos.32-bits c++.idde c++.mfc c++.rtl c++.stl c++.stl.hp c++.stl.port c++.stl.sgi c++.stlsoft c++.windows c++.windows.16-bits c++.windows.32-bits c++.wxwindows digitalmars.empire digitalmars.DMDScript electronics |
D.gnu - Patch to get GDC up to 1.028
This is a hastily cobbled together patch to bring GDC up to speed with DMD 1.028. It was created by making a diff between .022 and .028 and applying it to the GDC .022 source. In places where it failed, the respective files were more or less randomly prodded and pushed around until some semblance of working code emerged. Luckily, I only had to completely blindly guess at *one* bit in the frontend glue code, so the amount of actual _compiler_ breakage should be small. Phobos unittests _almost_ pass, except for some GC things which I can't figure out entirely. The GC seems to work okay though. scrapple.tools and yawr managed to build without errors and run correctly, so I'm actually quite hopeful :) Patch is attached^W^Wwould be attached, were it not for the server's size limit. Instead, get it on http://demented.no-ip.org/~root/dgcc_1_022_to_1_028.patch --downs Mar 07 2008
downs, el 8 de marzo a las 00:21 me escribiste:This is a hastily cobbled together patch to bring GDC up to speed with DMD 1.028. It was created by making a diff between .022 and .028 and applying it to the GDC .022 source. In places where it failed, the respective files were more or less randomly prodded and pushed around until some semblance of working code emerged. Luckily, I only had to completely blindly guess at *one* bit in the frontend glue code, so the amount of actual _compiler_ breakage should be small. Phobos unittests _almost_ pass, except for some GC things which I can't figure out entirely. The GC seems to work okay though. scrapple.tools and yawr managed to build without errors and run correctly, so I'm actually quite hopeful :) Patch is attached^W^Wwould be attached, were it not for the server's size limit. Instead, get it on http://demented.no-ip.org/~root/dgcc_1_022_to_1_028.patch Mar 07 2008
Nice work! I've also tried to make GDC use newer 2.*, but I've not done yet. By the way I found a bug in your patch. You are so careful that you are warning this can be a bug though. http://d.puremagic.com/issues/show_bug.cgi?id=1575 breaks compiler like: % gdc1 bug1575.d TupleExp::toElem() tuple(_s_field_0 = _param_0,_s_field_1 = _param_1) bug1575.d: In function 'foo': bug1575.d:11: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. EXPER: Uneducated guesswork ensues. Beware. I think removing TupleExp::toElem from expression.c and adding elem * TupleExp::toElem(IRState * irs) { tree result = NULL_TREE; for (unsigned i = 0; i < exps->dim; i++) { Expression * e = (Expression *) exps->data[i]; tree elem_e = e->toElem( irs ); result = irs->maybeCompound(result, elem_e); } return result; } into d-glue.c will work. Thanks, At Sat, 08 Mar 2008 00:21:48 +0100, downs wrote:This is a hastily cobbled together patch to bring GDC up to speed with DMD 1.028. It was created by making a diff between .022 and .028 and applying it to the GDC .022 source. In places where it failed, the respective files were more or less randomly prodded and pushed around until some semblance of working code emerged. Luckily, I only had to completely blindly guess at *one* bit in the frontend glue code, so the amount of actual _compiler_ breakage should be small. Phobos unittests _almost_ pass, except for some GC things which I can't figure out entirely. The GC seems to work okay though. scrapple.tools and yawr managed to build without errors and run correctly, so I'm actually quite hopeful :) Patch is attached^W^Wwould be attached, were it not for the server's size limit. Instead, get it on http://demented.no-ip.org/~root/dgcc_1_022_to_1_028.patch --downs Mar 07 2008
shinichiro.h wrote:Nice work! I've also tried to make GDC use newer 2.*, but I've not done yet. By the way I found a bug in your patch. You are so careful that you are warning this can be a bug though. http://d.puremagic.com/issues/show_bug.cgi?id=1575 breaks compiler like: % gdc1 bug1575.d TupleExp::toElem() tuple(_s_field_0 = _param_0,_s_field_1 = _param_1) bug1575.d: In function 'foo': bug1575.d:11: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. EXPER: Uneducated guesswork ensues. Beware. I think removing TupleExp::toElem from expression.c and adding elem * TupleExp::toElem(IRState * irs) { tree result = NULL_TREE; for (unsigned i = 0; i < exps->dim; i++) { Expression * e = (Expression *) exps->data[i]; tree elem_e = e->toElem( irs ); result = irs->maybeCompound(result, elem_e); } return result; } into d-glue.c will work. Mar 07 2008
|