December 27, 2011
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
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
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
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
"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
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
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
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
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
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.
« First   ‹ Prev
1 2
Top | Discussion index | About this forum | D home