Thread overview | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
December 27, 2011 Re: *sigh* | ||||
---|---|---|---|---|
| ||||
On Tue, Dec 27, 2011 at 1:56 AM, Caligo <iteronvexor@gmail.com> wrote: > At the moment I don't see how anything serious can be done with D. In the past few weeks, while working on a _toy_ project, I've encountered several bugs that have caused a lot of problems and wasted a lot of time. Sorry, but it's just frustrating. it's gotten to the point where I have to rum DMD every time I add/modify 10 lines of code just to make sure the compiler doesn't die. > > Two of the bugs were causing 'internal errors', but I never managed to isolate the issue so that I could bug report them. I can't reproduce them outside of my project, but at the moment I have managed to not have them get triggered. I also use GDC-4.6, which sometimes performs better. > > *sigh* > Now that I got that off my chest... > > I need to figure out what this is because I can't compile my code anymore, and I get this: > > dmd: glue.c:1065: virtual unsigned int Type::totym(): Assertion `0' > failed. > Aborted > > I don't want to spend hours shuffling code around to find out what's causing it :( Have you tried Dustmite? https://github.com/CyberShadow/DustMite It works excellently for reducing ICE bugs. More Linux friendly than Windows because you've got to write some shell scripts, but it's worth it. |
December 27, 2011 Re: *sigh* | ||||
---|---|---|---|---|
| ||||
Attachments:
| 2011/12/27 Caligo <iteronvexor@gmail.com> > At the moment I don't see how anything serious can be done with D. In the past few weeks, while working on a _toy_ project, I've encountered several bugs that have caused a lot of problems and wasted a lot of time. Sorry, but it's just frustrating. it's gotten to the point where I have to rum DMD every time I add/modify 10 lines of code just to make sure the compiler doesn't die. > > Two of the bugs were causing 'internal errors', but I never managed to isolate the issue so that I could bug report them. I can't reproduce them outside of my project, but at the moment I have managed to not have them get triggered. I also use GDC-4.6, which sometimes performs better. > > *sigh* > Now that I got that off my chest... > > I need to figure out what this is because I can't compile my code anymore, and I get this: > > dmd: glue.c:1065: virtual unsigned int Type::totym(): Assertion `0' > failed. > Aborted > > I don't want to spend hours shuffling code around to find out what's causing it :( > You can use Dustmite to make it easier to isolate bugs. Together we can work to make dmd all better. http://d.puremagic.com/issues/show_bug.cgi?id=6774 |
December 27, 2011 Re: *sigh* | ||||
---|---|---|---|---|
| ||||
Attachments:
| On Tue, Dec 27, 2011 at 1:59 AM, Andrew Wiley <wiley.andrew.j@gmail.com>wrote: > On Tue, Dec 27, 2011 at 1:56 AM, Caligo <iteronvexor@gmail.com> wrote: > > At the moment I don't see how anything serious can be done with D. In > the > > past few weeks, while working on a _toy_ project, I've encountered > several > > bugs that have caused a lot of problems and wasted a lot of time. Sorry, but it's just frustrating. it's gotten to the point where I have to rum > DMD > > every time I add/modify 10 lines of code just to make sure the compiler doesn't die. > > > > Two of the bugs were causing 'internal errors', but I never managed to isolate the issue so that I could bug report them. I can't reproduce > them > > outside of my project, but at the moment I have managed to not have them > get > > triggered. I also use GDC-4.6, which sometimes performs better. > > > > *sigh* > > Now that I got that off my chest... > > > > I need to figure out what this is because I can't compile my code > anymore, > > and I get this: > > > > dmd: glue.c:1065: virtual unsigned int Type::totym(): Assertion `0' > > failed. > > Aborted > > > > I don't want to spend hours shuffling code around to find out what's > causing > > it :( > > Have you tried Dustmite? https://github.com/CyberShadow/DustMite > > It works excellently for reducing ICE bugs. More Linux friendly than Windows because you've got to write some shell scripts, but it's worth it. > I'll take a look at DustMite in the morning, and once I get some rest. But, I found the bug! ---------------------------8<------------------------------8<-------------------------------------------------- struct A{ A opBinary(string op)(const ref A a){ A rt; return rt; } void fun(){ } } struct B{ A _a; alias _a this; } void main(){ B b1, b2, b3; b3 = (b1 - b2).fun(); } --------------------------->8------------------------------>8-------------------------------------------------- Which causes: dmd: glue.c:1065: virtual unsigned int Type::totym(): Assertion `0' failed. Aborted DMD 2.57, 64-bit. I'll check in the morning if it's already been bug reported. |
December 27, 2011 Re: *sigh* | ||||
---|---|---|---|---|
| ||||
Posted in reply to Caligo | On Tuesday, 27 December 2011 at 08:59:33 UTC, Caligo wrote:
> But, I found the bug!
I'm pretty sure that's the same bug I hit over the weekend,
but couldn't get isolated.
In my case, it was caused by one of the parameters being
of type __error__ which isn't handled in the totym() switch.
|
December 27, 2011 Re: *sigh* | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrew Wiley | "Andrew Wiley" <wiley.andrew.j@gmail.com> wrote in message news:mailman.1922.1324972797.24802.digitalmars-d@puremagic.com... > >Have you tried Dustmite? https://github.com/CyberShadow/DustMite > >It works excellently for reducing ICE bugs. More Linux friendly than Windows because you've got to write some shell scripts, but it's worth it. It doesn't have to be a shell script. You could just write the test in D or any other language and use things like system("...cmd..."), etc. I've done that. It is *faster* in Linux though. Apperently due to Linux's faster process creation. And segfaults are handled better on linux because linux merely prints a message to stderr instead of popping up a dialog box that you, or a program (one is available on the DustMite wiki) must click "Ok" on to continue. |
December 27, 2011 Re: *sigh* | ||||
---|---|---|---|---|
| ||||
Posted in reply to Nick Sabalausky | On 12/27/11, Nick Sabalausky <a@a.a> wrote:
> And segfaults are handled better on linux because linux merely
> prints a message to stderr instead of popping up a dialog box that you, or a
> program (one is available on the DustMite wiki) must click "Ok" on to
> continue.
I wonder if it would be faster if dustmite were to hook into w32 and intercept these dialog box invocations.
|
December 27, 2011 Re: *sigh* | ||||
---|---|---|---|---|
| ||||
I've posted a patch to fix the bug. https://github.com/D-Programming-Language/dmd/pull/587 Please wait until be merged it. (But I don't know when it will be done.) Kenji Hara 2011/12/28 Caligo <iteronvexor@gmail.com>: > > > On Tue, Dec 27, 2011 at 9:10 AM, Adam D. Ruppe <destructionator@gmail.com> wrote: >> >> On Tuesday, 27 December 2011 at 08:59:33 UTC, Caligo wrote: >>> >>> But, I found the bug! >> >> >> I'm pretty sure that's the same bug I hit over the weekend, but couldn't get isolated. >> >> In my case, it was caused by one of the parameters being >> of type __error__ which isn't handled in the totym() switch. > > > I think DMD should just give error and refuse to compile: "Error: expression > (b1 - b2).fun() is void and has no value" > > > http://d.puremagic.com/issues/show_bug.cgi?id=7173 |
December 27, 2011 Re: *sigh* | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrej Mitrovic | On Tuesday, 27 December 2011 at 17:05:59 UTC, Andrej Mitrovic wrote:
> On 12/27/11, Nick Sabalausky <a@a.a> wrote:
>> And segfaults are handled better on linux because linux merely
>> prints a message to stderr instead of popping up a dialog box that you, or a
>> program (one is available on the DustMite wiki) must click "Ok" on to
>> continue.
>
> I wonder if it would be faster if dustmite were to hook into w32 and
> intercept these dialog box invocations.
It wouldn't be much easier than writing a stand-alone program. It's doable, but I found that a polling program coupled with a virtual desktop tool and temporarily disabling "Windows Sounds" works well enough.
|
December 27, 2011 Re: *sigh* | ||||
---|---|---|---|---|
| ||||
Posted in reply to Vladimir Panteleev | On 12/27/11, Vladimir Panteleev <vladimir@thecybershadow.net> wrote:
> and temporarily disabling "Windows Sounds"
> works well enough.
Oh man, I forgot those could block. But I had them off anyway. They were fun back in Win98 days with those cool space themes. They had awesome intro's. :)
|
December 28, 2011 Re: *sigh* | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrej Mitrovic | On Tuesday, 27 December 2011 at 22:51:20 UTC, Andrej Mitrovic wrote:
> On 12/27/11, Vladimir Panteleev <vladimir@thecybershadow.net> wrote:
>> and temporarily disabling "Windows Sounds" works well enough.
>
> Oh man, I forgot those could block. But I had them off anyway. They were fun back in Win98 days with those cool space themes. They had awesome intro's. :)
Heh, it's not the blocking, it's the incessant distracting beeping :)
If a program starts calling MessageBeep in a loop, the system will keep beeping for a long time after, even if you kill the program. I think restarting the Windows Audio service gets rid of it.
|
Copyright © 1999-2021 by the D Language Foundation