Dustmite + Visual D

Michelle Long HappyDance321 at gmail.com
Tue Nov 6 03:09:18 UTC 2018


On Monday, 5 November 2018 at 07:24:36 UTC, Rainer Schuetze wrote:
>
>
> On 05/11/2018 00:08, Michelle Long wrote:
>> It would take Rainer just a few minutes max to determine this 
>> by simply created a project or opening a pre-existing one and 
>> adding a junction the dragging it to the project and adding a 
>> d file in it then trying the dustmite command.
>
> I just tried that and it worked fine for my tiny example. 
> Copying the project is just a series of
>
> 	std.file.mkdirRecurse(dirName(destname));
> 	std.file.copy(srcname, destname);
>
> on the files in the project.
>
> Do you get the message in the Visual D output pane or the 
> console window?

It is a visual D output problem.

I tried several things and had strange results.

I created a new project in D and ran dustmite:

created clean copy of the project in 
c:\users\main\documents\visual studio 
2017\Projects\WindowsApp4\WindowsApp4.dustmite
Failed to make stdin stream inheritable by child process (Access 
is denied.)


I tried removing the junction and it still seems to fail on 
grammar.d.

I ran a chkdsk and no errors.


I used lockhunter and no locks on the file.

I tried copying the project over manually and no files where 
copied from the junction.

I tried copying the junction directory and everything was copied 
but pegged.

the dustmite directory shows that it is copying(some files)

So this might not be a Visual D issue but something in the OS 
itself.


The error I get is

D:\.......\Libraries\pegged\dynamic\grammar.d: The process cannot 
access the file because it is being used by another process.

In visual D's error pane.

Actually, the error is:

D:\Projects\Game\Game\Game.dustmite\..\..\..\..\D\Libraries\pegged\dynamic\grammar.d: The process cannot access the file because it is being used by another process.

When I click on the error it opened the file in the editor and it 
was correct.


I really have no idea what is going on.. maybe the junction is 
"bad"(it works in xyplorer but maybe something got corrupted?).

The fact that copying the project dir manually using xyplorer or 
windows file explorer both fail to copy the junction suggest it 
is not a Visual D problem.

When I copy the files over from the library directly(bypassing 
the junction issue) the same problem occurs.

So, it would suggest a problem with the grammar.d file, yet I can 
read it just fine.

Maybe it is just a problem with that file in relation to Visual D?

Maybe if you could allow the process to continue if we ignore 
"Remove dustmite dir" then I could just copy the files 
manually(which works).

It probably won't fix the stdin issue but it would get around the 
copying issue.

Other than that, I'm at a loss.

I moved some stuff around trying to see if it was anything with 
the project and all it it was change the copy error:

D:\Projects\Game\Game\Game.dustmite\..\..\..\Libraries\arsd\png.d: The process cannot access the file because it is being used by another process.

It did change the path but probably because I pointed the folder 
in visual studio to the junction(I think I was actually using the 
library path before).

In any case it seems maybe something is causing the file to be 
temporarily locked inside visual study when dustmite command is 
issued.

Could this be with the Visual D copying method?

If you are copying each file using recursion maybe it is 
accessing the file to copy before it is released in "looking" up?

You could try an alternative copy such as fastcopy(which can 
handle junctions well)?

If I click on the file it says can't open(such as png.d) then it 
opens it in the editor, so the path is correct and the file is 
not locked then.

Maybe retry the copy with a sleep a few times if it fails at 
first?












More information about the Digitalmars-d-ide mailing list