Visual D dmdserver

Rainer Schuetze r.sagitario at gmx.de
Sun Feb 13 17:26:49 UTC 2022



On 12/02/2022 09:09, frame wrote:
> On Saturday, 15 January 2022 at 09:08:32 UTC, Rainer Schuetze wrote:
> 
>> So let's give it another try: you can find the symbols of the new 
>> release here: https://github.com/dlang/visuald/releases/tag/v1.2.0
> 
> Mostly dmdserver crashes if I edit a file outside Visual Studio - maybe 
> it can just check against the syntax before actually loading the changes?
> 
> I loaded the dmdserver.pdb 1.2.0 and found an access violation in dmd's 
> typesemd.d but this somehow doesn't match with the source:
> 
> Frame index:
> 
> #0 dmdserver.exe!dmd.typesem.typeSemantic:2223
> points to a function call
> 
> but
> 
> #1 dmdserver.exe!dmd.typesem.typeSemantic.visitDelegate:1672
> points to a  '}'
> 
> 
> #2 dmdserver.exe!dmd.typesem.typeSemantic:2233
> points to a '}' too
> 
> 
> #3 dmdserver.exe!dmd.expressionsem.ExpressionSemanticVisitor.visit:4100
> points to a comment
> 
> So I think there is mismatch with the dmd sources and the debug 
> information? - I'm using 2098.1
> 

The dmdserver uses this fork of dmd: 
https://github.com/rainers/dmd/tree/dmdserver

The call stack looks like an incomplete delegate type with the function 
type missing.

Maybe this has to do with the server not stopping after failing to parse 
the source, so you can still have partial semantic analysis. In some 
cases, the origial parser inserts null pointers into the syntax tree, 
but I've tried to replace this with error objects. It is possible that 
new code in dmd introduced more instances of this.

It would be good if you could provide an example source that reproduces 
the problem.


More information about the Digitalmars-d-ide mailing list