View mode: basic / threaded / horizontal-split · Log in · Help
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*
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*
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*
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*
"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*
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*
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*
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*
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