Thread overview
Visual D 0.49.0-beta1
Mar 16, 2019
Rainer Schuetze
Mar 16, 2019
Michelle Long
Mar 16, 2019
Rainer Schuetze
Mar 17, 2019
Michelle Long
Mar 17, 2019
Rainer Schuetze
Mar 19, 2019
Michelle Long
Mar 24, 2019
Rainer Schuetze
March 16, 2019
Hi,

I have just created a first beta for Visual D 0.49.0: https://github.com/dlang/visuald/releases/tag/v0.49.0-beta1

Highlights:

- parallel compilation supported by VC projects (thanks to Igor Cesi)

- new "Language" configuration page for -betterC, -dipNN and -transition=/-preview=/-revert= options

- dparser: catch up with recent language changes

See the link above for more details.

Rainer
March 16, 2019
On Saturday, 16 March 2019 at 18:45:48 UTC, Rainer Schuetze wrote:
> Hi,
>
> I have just created a first beta for Visual D 0.49.0: https://github.com/dlang/visuald/releases/tag/v0.49.0-beta1
>
> Highlights:
>
> - parallel compilation supported by VC projects (thanks to Igor Cesi)
>
> - new "Language" configuration page for -betterC, -dipNN and -transition=/-preview=/-revert= options
>
> - dparser: catch up with recent language changes
>
> See the link above for more details.
>
> Rainer

Thanks.

Is there any way to get the debugger to add locals that show up in code? They are not listed in locals for some reason and I have to go through this and find them...

In fact, they are properties:

override @property double D() { return d; }

when using D, it will not show up.

I realize it is actually a function but it seems like something could be done to display it since properties are generally meant to be used like variables and a lot of times are more like aliases.

March 16, 2019

On 16/03/2019 20:49, Michelle Long wrote:
> On Saturday, 16 March 2019 at 18:45:48 UTC, Rainer Schuetze wrote:
>> Hi,
>>
>> I have just created a first beta for Visual D 0.49.0: https://github.com/dlang/visuald/releases/tag/v0.49.0-beta1
>>
>> Highlights:
>>
>> - parallel compilation supported by VC projects (thanks to Igor Cesi)
>>
>> - new "Language" configuration page for -betterC, -dipNN and -transition=/-preview=/-revert= options
>>
>> - dparser: catch up with recent language changes
>>
>> See the link above for more details.
>>
>> Rainer
> 
> Thanks.
> 
> Is there any way to get the debugger to add locals that show up in code? They are not listed in locals for some reason and I have to go through this and find them...
> 
> In fact, they are properties:
> 
> override @property double D() { return d; }
> 
> when using D, it will not show up.
> 
> I realize it is actually a function but it seems like something could be done to display it since properties are generally meant to be used like variables and a lot of times are more like aliases.
> 

You can evaluate these explicitly with the watch "obj.D()", but it is
not known to the debugger whether the function has side-effects. That
makes it a bit dangerous to execute it when hovering or in the locals list.

"@property" isn't found in the debug info or in the mangling, but maybe a "pure const" method could be executed as that info is theoretically available. See also https://issues.dlang.org/show_bug.cgi?id=16692
March 17, 2019
On Saturday, 16 March 2019 at 18:45:48 UTC, Rainer Schuetze wrote:
> Hi,
>
> I have just created a first beta for Visual D 0.49.0: https://github.com/dlang/visuald/releases/tag/v0.49.0-beta1
>
> Highlights:
>
> - parallel compilation supported by VC projects (thanks to Igor Cesi)
>
> - new "Language" configuration page for -betterC, -dipNN and -transition=/-preview=/-revert= options
>
> - dparser: catch up with recent language changes
>
> See the link above for more details.
>
> Rainer

Also, I'm not sure if this is new or what but now when I compile my projects I get

Building x64\Debug DMD\privatephobos.lib

msvc.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26430 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

msvc_math.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26430 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

errno.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26430 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

adler32.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26430 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

compress.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26430 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

crc32.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26430 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

deflate.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26430 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

gzclose.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26430 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

gzlib.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26430 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

gzread.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26430 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

gzwrite.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26430 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

infback.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26430 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

inffast.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26430 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

inflate.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26430 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

inftrees.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26430 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

trees.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26430 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

uncompr.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26430 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

zutil.c

These files are in dmd src phobos dir it seems and it happens every time I build
the project.

Best I can tell is visual D is building phobos every time... This happens even if I made a change to a single file and recompile. It used to not do this.

I see no reason why it would have to rebuild phobos every time since nothing changes. Disabling private build removes the errors. Maybe an option to use build only if it does not exist so it does not rebuild every time.




Also, does building multiple object files reduce compilation by not rebuilding everything? Seems like a lot of files are recompiled that don't change at all.



...and at the page http://rainers.github.io/visuald/visuald/StartPage.html, would it be possible to have a search that restricts to that info?



There also seems to be an error in that a command line option -gc is being used by Visual D for "generate debug info suitable for mixed debugger" in the debug options. Disabling that options removes the switch.


-gc seems to go with Visual studio while -g is for mago.

Not sure what they are suppose to do but dmd does not accept -gc.


You might want to add an option for -gf Emit debug info for all referenced types  to the debug properties.


Another thing: When I do a search for a variable and the Visual D search window pops up for multiple matches, double clicking any entry does not take me to the file and location of that entry making me manually find the entry.


March 17, 2019
Thanks for the feedback.

On 17/03/2019 01:07, Michelle Long wrote:
[...]
> 
> Best I can tell is visual D is building phobos every time... This happens even if I made a change to a single file and recompile. It used to not do this.

Hmm, it doesn't do it here. You can get some info why it happens if you enable global options "show why a target is rebuilt".

> 
> I see no reason why it would have to rebuild phobos every time since nothing changes. Disabling private build removes the errors. Maybe an option to use build only if it does not exist so it does not rebuild every time.

There is no real dependency check for the private phobos build, only whether the file exists and whether the command line options or the environment have changed.

> Also, does building multiple object files reduce compilation by not rebuilding everything? Seems like a lot of files are recompiled that don't change at all.

The single file compilation only happens for the C files in phobos, everything else is built with a single invocation. see privatephobos.lib.build.cmd in the output folder.

> 
> 
> 
> ...and at the page http://rainers.github.io/visuald/visuald/StartPage.html, would it be possible to have a search that restricts to that info?

The navigation bar is borrowed from the main D site, I'll have a look
whether the search can be modified to be restricted to the Visual D
pages ("Entire Site" is also misleading as it points to dlang.org instead).

> 
> 
> 
> There also seems to be an error in that a command line option -gc is being used by Visual D for "generate debug info suitable for mixed debugger" in the debug options. Disabling that options removes the switch.
> 
> 
> -gc seems to go with Visual studio while -g is for mago.
> 
> Not sure what they are suppose to do but dmd does not accept -gc.

-gc has been recently removed from the dmd command line. I think that recent versions of the VS debugger (without mago) no longer need the patches implied by -gc, but I'll have to verify.

> 
> You might want to add an option for -gf Emit debug info for all referenced types  to the debug properties.

This is option "Generate full debug information".

> 
> Another thing: When I do a search for a variable and the Visual D search window pops up for multiple matches, double clicking any entry does not take me to the file and location of that entry making me manually find the entry.
> 

The symbol search works by analyzing JSON-files generated by the compiler. These can be outdated (for phobos you have to run "Build phobos browse info" once after changing the compiler - it's been proposed to do this automatically, see https://issues.dlang.org/show_bug.cgi?id=18841, but that needs some update check).

For your own code, the JSON generation must be enabled in the project options. It reflects the state of the last successful build, though, not any later edits.
March 19, 2019
On Sunday, 17 March 2019 at 09:08:05 UTC, Rainer Schuetze wrote:
>
> Thanks for the feedback.
>
> On 17/03/2019 01:07, Michelle Long wrote:
> [...]
>> 
>> Best I can tell is visual D is building phobos every time... This happens even if I made a change to a single file and recompile. It used to not do this.
>
> Hmm, it doesn't do it here. You can get some info why it happens if you enable global options "show why a target is rebuilt".
>
>> 
>> I see no reason why it would have to rebuild phobos every time since nothing changes. Disabling private build removes the errors. Maybe an option to use build only if it does not exist so it does not rebuild every time.
>
> There is no real dependency check for the private phobos build, only whether the file exists and whether the command line options or the environment have changed.
>
>> Also, does building multiple object files reduce compilation by not rebuilding everything? Seems like a lot of files are recompiled that don't change at all.
>
> The single file compilation only happens for the C files in phobos, everything else is built with a single invocation. see privatephobos.lib.build.cmd in the output folder.
>


Ok, well, I set the setting and now it seems it is working. I reverted and it didn't rebuild. Maybe something got screwed up causing it to constantly rebuild.

If I do a rebuild it gives me

x64\Debug DMD\privatephobos.lib not up to date: command line has changed

and now it is doing it again(if I make any change to my project files).

Maybe only essential command line changes should be checked(architecture, etc... anything that would effect the library itself).

I don't think the command line actually changed though. I simply added a space to a project file and built.

If you are not sure about this error maybe add code to display the change in the command line so one could see what actually is changing. It might be a buggy piece of code that thinks it's changing when it's not but no way to tell.

>
>> 
>> Another thing: When I do a search for a variable and the Visual D search window pops up for multiple matches, double clicking any entry does not take me to the file and location of that entry making me manually find the entry.
>> 
>
> The symbol search works by analyzing JSON-files generated by the compiler. These can be outdated (for phobos you have to run "Build phobos browse info" once after changing the compiler - it's been proposed to do this automatically, see https://issues.dlang.org/show_bug.cgi?id=18841, but that needs some update check).
>
> For your own code, the JSON generation must be enabled in the project options. It reflects the state of the last successful build, though, not any later edits.


I'm not sure, I got it to popup up on something else and was able to double click and it worked. So either it was a glitch or maybe it has some file finding errors and double clicking works but it can't open the file.

Thanks!

March 24, 2019

On 19/03/2019 21:03, Michelle Long wrote:
> If I do a rebuild it gives me
> 
> x64\Debug DMD\privatephobos.lib not up to date: command line has changed
> 
> and now it is doing it again(if I make any change to my project files).
> 
> Maybe only essential command line changes should be checked(architecture, etc... anything that would effect the library itself).
> 
> I don't think the command line actually changed though. I simply added a space to a project file and built.
> 
> If you are not sure about this error maybe add code to display the change in the command line so one could see what actually is changing. It might be a buggy piece of code that thinks it's changing when it's not but no way to tell.

I couldn't reproduce it so far. The library is rebuilt if the commands to build it changes, and the last version is saved to privatephobos.lib.build in the output folder.

If it happens again, please make a copy of the file and compare it to the version after it has been built again.


> 
>>
>>>
>>> Another thing: When I do a search for a variable and the Visual D search window pops up for multiple matches, double clicking any entry does not take me to the file and location of that entry making me manually find the entry.
>>>
[...]
> 
> I'm not sure, I got it to popup up on something else and was able to double click and it worked. So either it was a glitch or maybe it has some file finding errors and double clicking works but it can't open the file.

I noticed an issue recently where selecting an entry would jump to the correct file, but not to the appropriate location. Repeating the same selection then jumps to the correct location. Probably has to do with the file just being loaded, but still needs to be investigated...