Jump to page: 1 2
Thread overview
Re: *sigh*
Dec 27, 2011
Andrew Wiley
Dec 27, 2011
Nick Sabalausky
Dec 27, 2011
Andrej Mitrovic
Dec 27, 2011
Vladimir Panteleev
Dec 27, 2011
Andrej Mitrovic
Dec 28, 2011
Vladimir Panteleev
Dec 28, 2011
Mehrdad
Dec 27, 2011
Jimmy Cao
Dec 27, 2011
Caligo
Dec 27, 2011
Adam D. Ruppe
Dec 27, 2011
kenji hara
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