Re: SCons very slow on GitHub actions
Bill Deegan <[email protected]> Thu, 1 May 2025 10:48:42 -0700
| Newsgroups | gmane.comp.programming.tools.scons.user |
|---|---|
| Message-ID | <CAEyG4CGMc7X-4BFbkU=Ocj_RNMnYhMJfZ4+6eyEHoHcQpvBBqQ@mail.gmail.com> |
--===============6194468912158147105== Content-Type: multipart/alternative; boundary="000000000000aa929a063416a5b8" --000000000000aa929a063416a5b8 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Does GH Actions allow caching files between runs? If so a MSVC cache file would be a good candidate. Though you'd need to invalidate it when newer MSVC's are installed in the GHA's VM.. On Thu, May 1, 2025 at 9:53=E2=80=AFAM Leonard de Ruijter <alderuijter@gmai= l.com> wrote: > Dear Joseph, > > > Thanks for your extensive breakdown of the process. > > I have tried running cvarsall64.bat outside scons. Invocation of that > takes approximately 5 seconds. I tried running vswhere earlier but withou= t > arguments, that's definitely smooth enough. > > > Initializing an environment with tools=3D[] is fast, with tools=3D["msvc"= ] is > slow. So we at least know for sure what tool is causing the delay. > > > Regards, > > > Leonard > On 5/1/2025 4:20 PM, Joseph C. Brill wrote: > > There are a significant number of IO reads of the OS drive file system fo= r > MSVC batch file invocations and SCons MSVC initialization. > > > > In general, modern MSVC batch file invocations are =E2=80=9Cexpensive=E2= =80=9D. > > > > It wouldn=E2=80=99t hurt to add the following to your build environment: > > set VSCMD_SKIP_SENDTELEMETRY=3D1 > > > > If nothing else, this may skip a powershell invocation to setup sending > telemetry. > > > > After a brief look at the SConstructs in the SCons example, OSARA, and > NVDA projects, I believe that the number of MSVC batch file invocations o= n > an amd64 box for each is likely: > > - 1: SCons example (0 default environments and 1 user environment) > - 2: OSARA (0 default environments and 2 user environments) > - 4: NVDA (1 default environment and 3 user environments) > > > > What follows is a high-level description of how MSVC is initialized. > Errors are possible. It may be easier to discuss in an SCons discussion. > > > > Simplified steps for MSVC initialization: > > - Find the location of the vswhere executable > - Invoke vswhere > - For each version of MSVC detected: > - Check for the existence of a set of required compiler files > - For each Environment() unique combination of MSVC instance and > arguments: > - Call the MSVC batch file to configure environment > > > > Vswhere uses a =E2=80=9C%ProgramData%=E2=80=9D subdirectory (OS drive) t= o load the COM > server and possibly read data. > > > > Calling the 2022 MSVC batch file to configure the environment entails > (local configuration): > > - 17 or more batch file invocations > - 1 vswhere.exe invocation > - 0 or 1 powershell invocations to setup telemetry ( > "%VSCMD_SKIP_SENDTELEMETRY%"=3D=3D"") > > > > MSVC batch files may perform any of the following zero of more times: > > - Check for the existence of directories and/or files > - Use the =E2=80=9Cwhere=E2=80=9D command to search the system path > - Query the registry > - Change directories (cd/push/pop) > - File read > > > > The MSVC batch file skeleton call sequence below is for an amd64 box with > HOST_ARCH=3D=E2=80=9Damd64=E2=80=9D and TARGET_ARCH=3D=E2=80=9Damd64=E2= =80=9D. > > > > C:\Program Files\Microsoft Visual > Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat: > > =C2=B7 "%~dp0vcvarsall.bat" x64 %* > > o "%~dp0..\..\..\Common7\Tools\vsdevcmd.bat" > > =C2=A7 "%~dp0vsdevcmd\core\vsdevcmd_start.bat" > > =C2=B7 "%~dp0parse_cmd.bat" %* > > =C2=A7 vswhere.exe > > =C2=A7 "%VS170COMNTOOLS%VsDevCmd\core\dotnet.bat" > > =C2=B7 Reg queries > > =C2=A7 "%VS170COMNTOOLS%VsDevCmd\core\msbuild.bat" > > =C2=B7 Path existence > > =C2=B7 Where > > =C2=A7 "%VS170COMNTOOLS%VsDevCmd\core\winsdk.bat" > > =C2=B7 Reg queries > > =C2=B7 Paths existence > > =C2=A7 "%VS170COMNTOOLS%vsdevcmd\ext\ConnectionManagerExe.bat" > > =C2=B7 Path existence > > =C2=B7 Where > > =C2=A7 "%VS170COMNTOOLS%vsdevcmd\ext\diaghub.bat" > > =C2=B7 Where > > =C2=A7 "%VS170COMNTOOLS%vsdevcmd\ext\html_help.bat" > > =C2=B7 Path existence > > =C2=B7 Where > > =C2=A7 "%VS170COMNTOOLS%vsdevcmd\ext\netfxsdk.bat" > > =C2=B7 Reg queries > > =C2=B7 Path existence > > =C2=B7 Where > > =C2=A7 "%VS170COMNTOOLS%vsdevcmd\ext\perf_tools.bat" > > =C2=B7 Reg queries > > =C2=B7 Path existence > > =C2=B7 Where > > =C2=A7 "%VS170COMNTOOLS%vsdevcmd\ext\roslyn.bat" > > =C2=B7 Where > > =C2=A7 "%VS170COMNTOOLS%vsdevcmd\ext\team_explorer.bat" > > =C2=B7 Path existence > > =C2=B7 Where > > =C2=A7 "%VS170COMNTOOLS%vsdevcmd\ext\testwindow.bat" > > =C2=B7 Path existence > > =C2=B7 Where > > =C2=A7 "%VS170COMNTOOLS%vsdevcmd\ext\vcvars.bat" > > =C2=B7 Path existence > > =C2=B7 Dir contents > > =C2=B7 Where > > =C2=B7 File read > > =C2=A7 if "%VSCMD_SKIP_SENDTELEMETRY%"=3D=3D"" > > =C2=B7 Powershell Send Telemetry > > =C2=A7 "%~dp0vsdevcmd\core\vsdevcmd_end.bat" > > =C2=B7 Possible directory changes > > > > _______________________________________________ > Scons-users mailing [email protected]://pairlist4.pair.net/m= ailman/listinfo/scons-users > > _______________________________________________ > Scons-users mailing list > [email protected] > https://pairlist4.pair.net/mailman/listinfo/scons-users > --000000000000aa929a063416a5b8 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div>Does GH Actions allow caching files between runs? If = so a MSVC cache file would be a good candidate.</div><div>Though you'd = need to invalidate it when newer MSVC's are installed in the GHA's = VM..</div><div><br></div></div><br><div class=3D"gmail_quote gmail_quote_co= ntainer"><div dir=3D"ltr" class=3D"gmail_attr">On Thu, May 1, 2025 at 9:53= =E2=80=AFAM Leonard de Ruijter <<a href=3D"mailto:[email protected]"= >[email protected]</a>> wrote:<br></div><blockquote class=3D"gmail_q= uote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,2= 04);padding-left:1ex"><u></u> =20 =20 =20 <div> <p>Dear Joseph,</p> <p><br> </p> <p>Thanks for your extensive breakdown of the process.</p> <p>I have tried running cvarsall64.bat outside scons. Invocation of that takes approximately 5 seconds. I tried running vswhere earlier but without arguments, that's definitely smooth enough.</= p> <p><br> </p> <p>Initializing an environment with tools=3D[] is fast, with tools=3D["msvc"] is slow. So we at least know for sure what= tool is causing the delay. <br> </p> <p><br> </p> <p>Regards,</p> <p><br> </p> <p>Leonard</p> <div>On 5/1/2025 4:20 PM, Joseph C. Brill wrote:<br> </div> <blockquote type=3D"cite"> =20 =20 =20 <div> <p class=3D"MsoNormal">There are a significant number of IO reads of the OS drive file system for MSVC batch file invocations and SCons MSVC initialization.<u></u><u></u></p> <p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p> <p class=3D"MsoNormal">In general, modern MSVC batch file invocations are =E2=80=9Cexpensive=E2=80=9D.<u></u><u></u></p> <p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p> <p class=3D"MsoNormal">It wouldn=E2=80=99t hurt to add the followin= g to your build environment:<u></u><u></u></p> <p class=3D"MsoNormal">=C2=A0=C2=A0=C2=A0 set <span style=3D"color:= black">VSCMD_SKIP_SENDTELEMETRY=3D1</span><u></u><u></u></p> <p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p> <p class=3D"MsoNormal">If nothing else, this may skip a powershell invocation to setup sending telemetry.<u></u><u></u></p> <p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p> <p class=3D"MsoNormal">After a brief look at the SConstructs in the SCons example, OSARA, and NVDA projects, I believe that the number of MSVC batch file invocations on an amd64 box for each is likely:<u></u><u></u></p> <ul style=3D"margin-top:0in" type=3D"disc"> <li style=3D"margin-left:0in">1: SCons example (0 default environments and 1 user environment)<u></u><= u></u></li> <li style=3D"margin-left:0in">2: OSARA (0 default environments and 2 user environments)<u></u><u></u></li= > <li style=3D"margin-left:0in">4: NVDA (1 default environment and 3 user environments) <u></u><u></u></li= > </ul> <p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p> <p class=3D"MsoNormal">What follows is a high-level description of how MSVC is initialized.=C2=A0 Errors are possible.=C2=A0 It may = be easier to discuss in an SCons discussion.<u></u><u></u></p> <p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p> <p class=3D"MsoNormal">Simplified steps for MSVC initialization:<u>= </u><u></u></p> <ul style=3D"margin-top:0in" type=3D"disc"> <li style=3D"margin-left:0in">Find the location of the vswhere executable<u></u><u></u></li> <li style=3D"margin-left:0in">Invoke vswhere<u></u><u></u></li> <li style=3D"margin-left:0in">For each version of MSVC detected:<u></u><u></u></li> <ul style=3D"margin-top:0in" type=3D"circle"> <li style=3D"margin-left:0in">Check for the existence of a set of required compiler files<u></u><u></= u></li> </ul> <li style=3D"margin-left:0in">For each Environment() unique combination of MSVC instance and arguments:<u></u><u></u></li> <ul style=3D"margin-top:0in" type=3D"circle"> <li style=3D"margin-left:0in">Call the MSVC batch file to configure environment<u></u><u></u></li> </ul> </ul> <p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p> <p class=3D"MsoNormal">Vswhere uses a =E2=80=9C%ProgramData%=E2=80= =9D subdirectory =C2=A0(OS drive) to load the COM server and possibly read data.<u= ></u><u></u></p> <p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p> <p class=3D"MsoNormal">Calling the 2022 MSVC batch file to configure the environment entails (local configuration):<u></u><u= ></u></p> <ul style=3D"margin-top:0in" type=3D"disc"> <li style=3D"margin-left:0in">17 or more batch file invocations<u></u><u></u></li> <li style=3D"margin-left:0in">1 vswhere.exe invocation<u></u><u></u></li> <li style=3D"margin-left:0in">0 or 1 powershell invocations to setup telemetry (<span style=3D"color= :black">"%VSCMD_SKIP_SENDTELEMETRY%"=3D=3D"")</span><u>= </u><u></u></li> </ul> <p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p> <p class=3D"MsoNormal">MSVC batch files may perform any of the following zero of more times:<u></u><u></u></p> <ul style=3D"margin-top:0in" type=3D"disc"> <li style=3D"margin-left:0in">Check for the existence of directories and/or files<u></u><u></u></li> <li style=3D"margin-left:0in">Use the =E2=80=9Cwhere=E2=80=9D command to search the system path<u></u= ><u></u></li> <li style=3D"margin-left:0in">Query the registry<u></u><u></u></li> <li style=3D"margin-left:0in">Change directories (cd/push/pop)<u></u><u></u></li> <li style=3D"margin-left:0in">File read<u></u><u></u></li> </ul> <p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p> <p class=3D"MsoNormal">The MSVC batch file skeleton call sequence below is for an amd64 box with HOST_ARCH=3D=E2=80=9Damd64=E2=80= =9D and TARGET_ARCH=3D=E2=80=9Damd64=E2=80=9D.<u></u><u></u></p> <p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p> <p class=3D"MsoNormal">C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat:<u></u><u><= /u></p> <p style=3D"margin-left:0.25in;background:white"><span style=3D"fon= t-family:Symbol;color:black"><span>=C2=B7<span style=3D"font:7pt "Time= s New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 </span></span></span><span style=3D"color:black">"%~dp0v= cvarsall.bat" x64 %*<u></u><u></u></span></p> <pre style=3D"margin-left:0.75in;background:white"><span style=3D"f= ont-size:12pt;color:black"><span>o<span style=3D"font:7pt "Times New R= oman""> </span></span></span><span style=3D"font-size:12pt;font-family= :"Aptos",sans-serif;color:black">"%~dp0..\..\..\Common7\Tool= s\vsdevcmd.bat"<u></u><u></u></span></pre> <pre style=3D"margin-left:1.25in;background:white"><span style=3D"f= ont-size:12pt;font-family:Wingdings;color:black"><span>=C2=A7<span style=3D= "font:7pt "Times New Roman"">=C2=A0 </span></span></span><span st= yle=3D"font-size:12pt;font-family:"Aptos",sans-serif;color:black"= >"%~dp0vsdevcmd\core\vsdevcmd_start.bat"<u></u><u></u></span></pr= e> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">"%~dp0parse_cmd.bat" %*<u= ></u><u></u></span></pre> <pre style=3D"margin-left:1.25in;background:white"><span style=3D"f= ont-size:12pt;font-family:Wingdings;color:black"><span>=C2=A7<span style=3D= "font:7pt "Times New Roman"">=C2=A0 </span></span></span><span st= yle=3D"font-size:12pt;font-family:"Aptos",sans-serif;color:black"= >vswhere.exe<u></u><u></u></span></pre> <pre style=3D"margin-left:1.25in;background:white"><span style=3D"f= ont-size:12pt;font-family:Wingdings;color:black"><span>=C2=A7<span style=3D= "font:7pt "Times New Roman"">=C2=A0 </span></span></span><span st= yle=3D"font-size:12pt;font-family:"Aptos",sans-serif;color:black"= >"%VS170COMNTOOLS%VsDevCmd\core\dotnet.bat"<u></u><u></u></span><= /pre> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">Reg queries<u></u><u></u></span></p= re> <pre style=3D"margin-left:1.25in;background:white"><span style=3D"f= ont-size:12pt;font-family:Wingdings;color:black"><span>=C2=A7<span style=3D= "font:7pt "Times New Roman"">=C2=A0 </span></span></span><span st= yle=3D"font-size:12pt;font-family:"Aptos",sans-serif;color:black"= >"%VS170COMNTOOLS%VsDevCmd\core\msbuild.bat"<u></u><u></u></span>= </pre> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">Path existence<u></u><u></u></span>= </pre> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">Where<u></u><u></u></span></pre> <pre style=3D"margin-left:1.25in;background:white"><span style=3D"f= ont-size:12pt;font-family:Wingdings;color:black"><span>=C2=A7<span style=3D= "font:7pt "Times New Roman"">=C2=A0 </span></span></span><span st= yle=3D"font-size:12pt;font-family:"Aptos",sans-serif;color:black"= >"%VS170COMNTOOLS%VsDevCmd\core\winsdk.bat"<u></u><u></u></span><= /pre> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">Reg queries<u></u><u></u></span></p= re> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">Paths existence<u></u><u></u></span= ></pre> <pre style=3D"margin-left:1.25in;background:white"><span style=3D"f= ont-size:12pt;font-family:Wingdings;color:black"><span>=C2=A7<span style=3D= "font:7pt "Times New Roman"">=C2=A0 </span></span></span><span st= yle=3D"font-size:12pt;font-family:"Aptos",sans-serif;color:black"= >"%VS170COMNTOOLS%vsdevcmd\ext\ConnectionManagerExe.bat"<u></u><u= ></u></span></pre> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">Path existence<u></u><u></u></span>= </pre> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">Where<u></u><u></u></span></pre> <pre style=3D"margin-left:1.25in;background:white"><span style=3D"f= ont-size:12pt;font-family:Wingdings;color:black"><span>=C2=A7<span style=3D= "font:7pt "Times New Roman"">=C2=A0 </span></span></span><span st= yle=3D"font-size:12pt;font-family:"Aptos",sans-serif;color:black"= >"%VS170COMNTOOLS%vsdevcmd\ext\diaghub.bat"<u></u><u></u></span><= /pre> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">Where<u></u><u></u></span></pre> <pre style=3D"margin-left:1.25in;background:white"><span style=3D"f= ont-size:12pt;font-family:Wingdings;color:black"><span>=C2=A7<span style=3D= "font:7pt "Times New Roman"">=C2=A0 </span></span></span><span st= yle=3D"font-size:12pt;font-family:"Aptos",sans-serif;color:black"= >"%VS170COMNTOOLS%vsdevcmd\ext\html_help.bat"<u></u><u></u></span= ></pre> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">Path existence<u></u><u></u></span>= </pre> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">Where<u></u><u></u></span></pre> <pre style=3D"margin-left:1.25in;background:white"><span style=3D"f= ont-size:12pt;font-family:Wingdings;color:black"><span>=C2=A7<span style=3D= "font:7pt "Times New Roman"">=C2=A0 </span></span></span><span st= yle=3D"font-size:12pt;font-family:"Aptos",sans-serif;color:black"= >"%VS170COMNTOOLS%vsdevcmd\ext\netfxsdk.bat"<u></u><u></u></span>= </pre> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">Reg queries<u></u><u></u></span></p= re> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">Path existence<u></u><u></u></span>= </pre> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">Where<u></u><u></u></span></pre> <pre style=3D"margin-left:1.25in;background:white"><span style=3D"f= ont-size:12pt;font-family:Wingdings;color:black"><span>=C2=A7<span style=3D= "font:7pt "Times New Roman"">=C2=A0 </span></span></span><span st= yle=3D"font-size:12pt;font-family:"Aptos",sans-serif;color:black"= >"%VS170COMNTOOLS%vsdevcmd\ext\perf_tools.bat"<u></u><u></u></spa= n></pre> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">Reg queries<u></u><u></u></span></p= re> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">Path existence<u></u><u></u></span>= </pre> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">Where<u></u><u></u></span></pre> <pre style=3D"margin-left:1.25in;background:white"><span style=3D"f= ont-size:12pt;font-family:Wingdings;color:black"><span>=C2=A7<span style=3D= "font:7pt "Times New Roman"">=C2=A0 </span></span></span><span st= yle=3D"font-size:12pt;font-family:"Aptos",sans-serif;color:black"= >"%VS170COMNTOOLS%vsdevcmd\ext\roslyn.bat"<u></u><u></u></span></= pre> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">Where<u></u><u></u></span></pre> <pre style=3D"margin-left:1.25in;background:white"><span style=3D"f= ont-size:12pt;font-family:Wingdings;color:black"><span>=C2=A7<span style=3D= "font:7pt "Times New Roman"">=C2=A0 </span></span></span><span st= yle=3D"font-size:12pt;font-family:"Aptos",sans-serif;color:black"= >"%VS170COMNTOOLS%vsdevcmd\ext\team_explorer.bat"<u></u><u></u></= span></pre> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">Path existence<u></u><u></u></span>= </pre> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">Where<u></u><u></u></span></pre> <pre style=3D"margin-left:1.25in;background:white"><span style=3D"f= ont-size:12pt;font-family:Wingdings;color:black"><span>=C2=A7<span style=3D= "font:7pt "Times New Roman"">=C2=A0 </span></span></span><span st= yle=3D"font-size:12pt;font-family:"Aptos",sans-serif;color:black"= >"%VS170COMNTOOLS%vsdevcmd\ext\testwindow.bat"<u></u><u></u></spa= n></pre> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">Path existence<u></u><u></u></span>= </pre> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">Where<u></u><u></u></span></pre> <pre style=3D"margin-left:1.25in;background:white"><span style=3D"f= ont-size:12pt;font-family:Wingdings;color:black"><span>=C2=A7<span style=3D= "font:7pt "Times New Roman"">=C2=A0 </span></span></span><span st= yle=3D"font-size:12pt;font-family:"Aptos",sans-serif;color:black"= >"%VS170COMNTOOLS%vsdevcmd\ext\vcvars.bat"<u></u><u></u></span></= pre> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">Path existence<u></u><u></u></span>= </pre> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">Dir contents<u></u><u></u></span></= pre> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">Where<u></u><u></u></span></pre> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">File read<u></u><u></u></span></pre= > <pre style=3D"margin-left:1.25in;background:white"><span style=3D"f= ont-size:12pt;font-family:Wingdings;color:black"><span>=C2=A7<span style=3D= "font:7pt "Times New Roman"">=C2=A0 </span></span></span><span st= yle=3D"font-size:12pt;font-family:"Aptos",sans-serif;color:black"= >if "%VSCMD_SKIP_SENDTELEMETRY%"=3D=3D""<u></u><u></u><= /span></pre> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">Powershell Send Telemetry<u></u><u>= </u></span></pre> <pre style=3D"margin-left:1.25in;background:white"><span style=3D"f= ont-size:12pt;font-family:Wingdings;color:black"><span>=C2=A7<span style=3D= "font:7pt "Times New Roman"">=C2=A0 </span></span></span><span st= yle=3D"font-size:12pt;font-family:"Aptos",sans-serif;color:black"= >"%~dp0vsdevcmd\core\vsdevcmd_end.bat"<u></u><u></u></span></pre> <pre style=3D"margin-left:1.75in;background:white"><span style=3D"f= ont-size:12pt;font-family:Symbol;color:black"><span>=C2=B7<span style=3D"fo= nt:7pt "Times New Roman"">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 </span></span></span><span style=3D"font-size:12pt;font-family:&q= uot;Aptos",sans-serif;color:black">Possible directory changes<u></u><u= ></u></span></pre> <p class=3D"MsoNormal"><span style=3D"font-size:11pt"><u></u>=C2=A0= <u></u></span></p> </div> <br> <fieldset></fieldset> <pre>_______________________________________________ Scons-users mailing list <a href=3D"mailto:[email protected]" target=3D"_blank">Scons-users@scon= s.org</a> <a href=3D"https://pairlist4.pair.net/mailman/listinfo/scons-users" target= =3D"_blank">https://pairlist4.pair.net/mailman/listinfo/scons-users</a> </pre> </blockquote> </div> _______________________________________________<br> Scons-users mailing list<br> <a href=3D"mailto:[email protected]" target=3D"_blank">Scons-users@scon= s.org</a><br> <a href=3D"https://pairlist4.pair.net/mailman/listinfo/scons-users" rel=3D"= noreferrer" target=3D"_blank">https://pairlist4.pair.net/mailman/listinfo/s= cons-users</a><br> </blockquote></div> --000000000000aa929a063416a5b8-- --===============6194468912158147105== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Scons-users mailing list [email protected] https://pairlist4.pair.net/mailman/listinfo/scons-users --===============6194468912158147105==--