Funny way to crash dmd and brick the whole computer

Basile B. b2.temp at gmx.com
Tue Oct 2 13:04:06 UTC 2018


On Tuesday, 2 October 2018 at 07:18:32 UTC, bauss wrote:
>>> don't try to compile this one linux:
>>>
>>> ```
>>> void main(){  asm{ db cast(ubyte[]) "é"; }  }
>>> ```
>>
>> Actually no, it's an IDE issue triggered by this code.
>
> In what world should an IDE ever have an issue with the code 
> you write?

It's a dparse bug : 
https://github.com/dlang-community/libdparse/issues/278.

In the IDE when I execute the action "Compile module and run" 
several things happen which require to lex and parse the 
"runnable" module with dparse.

1. AST is visited to determine if "-main" have to be passed or 
not to the compiler:
https://github.com/BBasile/Coedit/blob/master/dastworx/src/mainfun.d#L22

2. Imports are enumerated : 
https://github.com/BBasile/Coedit/blob/master/dastworx/src/imports.d#L23. The list is used to get their matching source path and static library file, which are passed to the compiler automatically (https://github.com/BBasile/Coedit/blob/master/src/ce_libman.pas#L125).

<mode |= Mode.arrogant>
Have you ever dreamed to have a system that solve dependencies 
without specifying them in a DUB embedded receipt or JSON/SDL ? I 
did it.
<mode &= ~Mode.arrogant>


More information about the Digitalmars-d mailing list