Re: SCons very slow on GitHub actions

Leonard de Ruijter <[email protected]> Thu, 1 May 2025 19:49:30 +0200
Newsgroups gmane.comp.programming.tools.scons.user
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--===============5130721914893770228==
Content-Type: multipart/alternative;
 boundary="------------KhSPOzBako0oCDQpBHOeRdrk"
Content-Language: nl, en-US

This is a multi-part message in MIME format.
--------------KhSPOzBako0oCDQpBHOeRdrk
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

I just discovered the environment variable SCONS_MSCOMMON_DEBUG.

You can download the log here: 
https://github.com/LeonarddeR/scons-examples/actions/runs/14780113619/artifacts/3045818756

There is not much interesting info in it, apart from that it seems yet 
to be the vcvars64.bat call that takes so long.

That raises the question, why is that invocation only needing around 5 
seconds when running in cmd, whereas it takes much longer within scons 
itself? Is it possibly writing stuff to the file system under the hood?


Regards,


Leonard

On 5/1/2025 6:53 PM, Leonard de Ruijter 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 
> without arguments, that's definitely smooth enough.
>
>
> Initializing an environment with tools=[] is fast, with tools=["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 for MSVC batch file invocations and SCons MSVC initialization.
>>
>> In general, modern MSVC batch file invocations are “expensive”.
>>
>> It wouldn’t hurt to add the following to your build environment:
>>
>>     set VSCMD_SKIP_SENDTELEMETRY=1
>>
>> 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 on 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:
>>       o Check for the existence of a set of required compiler files
>>   * For each Environment() unique combination of MSVC instance and
>>     arguments:
>>       o Call the MSVC batch file to configure environment
>>
>> Vswhere uses a “%ProgramData%” subdirectory  (OS drive) to 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%"=="")
>>
>> MSVC batch files may perform any of the following zero of more times:
>>
>>   * Check for the existence of directories and/or files
>>   * Use the “where” 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=”amd64” and TARGET_ARCH=”amd64”.
>>
>> C:\Program Files\Microsoft Visual 
>> Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat:
>>
>> ·"%~dp0vcvarsall.bat" x64 %*
>>
>> o"%~dp0..\..\..\Common7\Tools\vsdevcmd.bat"
>> §"%~dp0vsdevcmd\core\vsdevcmd_start.bat"
>> ·"%~dp0parse_cmd.bat" %*
>> §vswhere.exe
>> §"%VS170COMNTOOLS%VsDevCmd\core\dotnet.bat"
>> ·Reg queries
>> §"%VS170COMNTOOLS%VsDevCmd\core\msbuild.bat"
>> ·Path existence
>> ·Where
>> §"%VS170COMNTOOLS%VsDevCmd\core\winsdk.bat"
>> ·Reg queries
>> ·Paths existence
>> §"%VS170COMNTOOLS%vsdevcmd\ext\ConnectionManagerExe.bat"
>> ·Path existence
>> ·Where
>> §"%VS170COMNTOOLS%vsdevcmd\ext\diaghub.bat"
>> ·Where
>> §"%VS170COMNTOOLS%vsdevcmd\ext\html_help.bat"
>> ·Path existence
>> ·Where
>> §"%VS170COMNTOOLS%vsdevcmd\ext\netfxsdk.bat"
>> ·Reg queries
>> ·Path existence
>> ·Where
>> §"%VS170COMNTOOLS%vsdevcmd\ext\perf_tools.bat"
>> ·Reg queries
>> ·Path existence
>> ·Where
>> §"%VS170COMNTOOLS%vsdevcmd\ext\roslyn.bat"
>> ·Where
>> §"%VS170COMNTOOLS%vsdevcmd\ext\team_explorer.bat"
>> ·Path existence
>> ·Where
>> §"%VS170COMNTOOLS%vsdevcmd\ext\testwindow.bat"
>> ·Path existence
>> ·Where
>> §"%VS170COMNTOOLS%vsdevcmd\ext\vcvars.bat"
>> ·Path existence
>> ·Dir contents
>> ·Where
>> ·File read
>> §if "%VSCMD_SKIP_SENDTELEMETRY%"==""
>> ·Powershell Send Telemetry
>> §"%~dp0vsdevcmd\core\vsdevcmd_end.bat"
>> ·Possible directory changes
>>
>>
>> _______________________________________________
>> Scons-users mailing list
>> [email protected]
>> https://pairlist4.pair.net/mailman/listinfo/scons-users
--------------KhSPOzBako0oCDQpBHOeRdrk
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>I just discovered the environment variable SCONS_MSCOMMON_DEBUG.</p>
    <p>You can download the log here:
<a class="moz-txt-link-freetext" href="https://github.com/LeonarddeR/scons-examples/actions/runs/14780113619/artifacts/3045818756">https://github.com/LeonarddeR/scons-examples/actions/runs/14780113619/artifacts/3045818756</a></p>
    <p>There is not much interesting info in it, apart from that it
      seems yet to be the vcvars64.bat call that takes so long.</p>
    <p>That raises the question, why is that invocation only needing
      around 5 seconds when running in cmd, whereas it takes much longer
      within scons itself? Is it possibly writing stuff to the file
      system under the hood?</p>
    <p><br>
    </p>
    <p>Regards,</p>
    <p><br>
    </p>
    <p>Leonard</p>
    <div class="moz-cite-prefix">On 5/1/2025 6:53 PM, Leonard de Ruijter
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:[email protected]">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <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=[] is fast, with
        tools=["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 class="moz-cite-prefix">On 5/1/2025 4:20 PM, Joseph C. Brill
        wrote:<br>
      </div>
      <blockquote type="cite"
        cite="mid:[email protected]">
        <meta http-equiv="Content-Type"
          content="text/html; charset=UTF-8">
        <meta name="Generator"
          content="Microsoft Word 15 (filtered medium)">
        <style>@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}@font-face
	{font-family:Aptos;}p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	font-size:12.0pt;
	font-family:"Aptos",sans-serif;
	mso-ligatures:standardcontextual;}pre
	{mso-style-priority:99;
	mso-style-link:"HTML Preformatted Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:"Courier New";}p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	font-size:12.0pt;
	font-family:"Aptos",sans-serif;
	mso-ligatures:standardcontextual;}span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Aptos",sans-serif;
	color:windowtext;}span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-priority:99;
	mso-style-link:"HTML Preformatted";
	font-family:"Courier New";
	mso-ligatures:none;}.MsoChpDefault
	{mso-style-type:export-only;}div.WordSection1
	{page:WordSection1;}ol
	{margin-bottom:0in;}ul
	{margin-bottom:0in;}</style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
        <div class="WordSection1">
          <p class="MsoNormal">There are a significant number of IO
            reads of the OS drive file system for MSVC batch file
            invocations and SCons MSVC initialization.<o:p></o:p></p>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="MsoNormal">In general, modern MSVC batch file
            invocations are “expensive”.<o:p></o:p></p>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="MsoNormal">It wouldn’t hurt to add the following to
            your build environment:<o:p></o:p></p>
          <p class="MsoNormal">    set <span style="color:black">VSCMD_SKIP_SENDTELEMETRY=1</span><o:p></o:p></p>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="MsoNormal">If nothing else, this may skip a
            powershell invocation to setup sending telemetry.<o:p></o:p></p>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="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:<o:p></o:p></p>
          <ul style="margin-top:0in" type="disc">
            <li class="MsoListParagraph"
              style="margin-left:0in;mso-list:l0 level1 lfo4">1: SCons
              example (0 default environments and 1 user environment)<o:p></o:p></li>
            <li class="MsoListParagraph"
              style="margin-left:0in;mso-list:l0 level1 lfo4">2: OSARA
              (0 default environments and 2 user environments)<o:p></o:p></li>
            <li class="MsoListParagraph"
              style="margin-left:0in;mso-list:l0 level1 lfo4">4: NVDA (1
              default environment and 3 user environments) <o:p></o:p></li>
          </ul>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="MsoNormal">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.<o:p></o:p></p>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="MsoNormal">Simplified steps for MSVC initialization:<o:p></o:p></p>
          <ul style="margin-top:0in" type="disc">
            <li class="MsoListParagraph"
              style="margin-left:0in;mso-list:l1 level1 lfo3">Find the
              location of the vswhere executable<o:p></o:p></li>
            <li class="MsoListParagraph"
              style="margin-left:0in;mso-list:l1 level1 lfo3">Invoke
              vswhere<o:p></o:p></li>
            <li class="MsoListParagraph"
              style="margin-left:0in;mso-list:l1 level1 lfo3">For each
              version of MSVC detected:<o:p></o:p></li>
            <ul style="margin-top:0in" type="circle">
              <li class="MsoListParagraph"
                style="margin-left:0in;mso-list:l1 level2 lfo3">Check
                for the existence of a set of required compiler files<o:p></o:p></li>
            </ul>
            <li class="MsoListParagraph"
              style="margin-left:0in;mso-list:l1 level1 lfo3">For each
              Environment() unique combination of MSVC instance and
              arguments:<o:p></o:p></li>
            <ul style="margin-top:0in" type="circle">
              <li class="MsoListParagraph"
                style="margin-left:0in;mso-list:l1 level2 lfo3">Call the
                MSVC batch file to configure environment<o:p></o:p></li>
            </ul>
          </ul>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="MsoNormal">Vswhere uses a “%ProgramData%”
            subdirectory  (OS drive) to load the COM server and possibly
            read data.<o:p></o:p></p>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="MsoNormal">Calling the 2022 MSVC batch file to
            configure the environment entails (local configuration):<o:p></o:p></p>
          <ul style="margin-top:0in" type="disc">
            <li class="MsoListParagraph"
              style="margin-left:0in;mso-list:l2 level1 lfo2">17 or more
              batch file invocations<o:p></o:p></li>
            <li class="MsoListParagraph"
              style="margin-left:0in;mso-list:l2 level1 lfo2">1
              vswhere.exe invocation<o:p></o:p></li>
            <li class="MsoListParagraph"
              style="margin-left:0in;mso-list:l2 level1 lfo2">0 or 1
              powershell invocations to setup telemetry (<span
                style="color:black">"%VSCMD_SKIP_SENDTELEMETRY%"=="")</span><o:p></o:p></li>
          </ul>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="MsoNormal">MSVC batch files may perform any of the
            following zero of more times:<o:p></o:p></p>
          <ul style="margin-top:0in" type="disc">
            <li class="MsoListParagraph"
              style="margin-left:0in;mso-list:l2 level1 lfo2">Check for
              the existence of directories and/or files<o:p></o:p></li>
            <li class="MsoListParagraph"
              style="margin-left:0in;mso-list:l2 level1 lfo2">Use the
              “where” command to search the system path<o:p></o:p></li>
            <li class="MsoListParagraph"
              style="margin-left:0in;mso-list:l2 level1 lfo2">Query the
              registry<o:p></o:p></li>
            <li class="MsoListParagraph"
              style="margin-left:0in;mso-list:l2 level1 lfo2">Change
              directories (cd/push/pop)<o:p></o:p></li>
            <li class="MsoListParagraph"
              style="margin-left:0in;mso-list:l2 level1 lfo2">File read<o:p></o:p></li>
          </ul>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="MsoNormal">The MSVC batch file skeleton call
            sequence below is for an amd64 box with HOST_ARCH=”amd64”
            and TARGET_ARCH=”amd64”.<o:p></o:p></p>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="MsoNormal">C:\Program Files\Microsoft Visual
            Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat:<o:p></o:p></p>
          <p class="MsoListParagraph"
style="margin-left:.25in;text-indent:-.25in;mso-list:l3 level1 lfo1;background:white"><!--[if !supportLists]--><span
              style="font-family:Symbol;color:black;mso-ligatures:none"><span
                style="mso-list:Ignore">·<span
                  style="font:7.0pt &quot;Times New Roman&quot;">        
                </span></span></span><!--[endif]--><span
              style="color:black;mso-ligatures:none">"%~dp0vcvarsall.bat"
              x64 %*<o:p></o:p></span></p>
          <pre
style="margin-left:.75in;text-indent:-.25in;mso-list:l3 level2 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;color:black"><span
          style="mso-list:Ignore">o<span
          style="font:7.0pt &quot;Times New Roman&quot;"> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">"%~dp0..\..\..\Common7\Tools\vsdevcmd.bat"<o:p></o:p></span></pre>
          <pre
style="margin-left:1.25in;text-indent:-.25in;mso-list:l3 level3 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Wingdings;color:black"><span
          style="mso-list:Ignore">§<span
          style="font:7.0pt &quot;Times New Roman&quot;">  </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">"%~dp0vsdevcmd\core\vsdevcmd_start.bat"<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">"%~dp0parse_cmd.bat" %*<o:p></o:p></span></pre>
          <pre
style="margin-left:1.25in;text-indent:-.25in;mso-list:l3 level3 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Wingdings;color:black"><span
          style="mso-list:Ignore">§<span
          style="font:7.0pt &quot;Times New Roman&quot;">  </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">vswhere.exe<o:p></o:p></span></pre>
          <pre
style="margin-left:1.25in;text-indent:-.25in;mso-list:l3 level3 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Wingdings;color:black"><span
          style="mso-list:Ignore">§<span
          style="font:7.0pt &quot;Times New Roman&quot;">  </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">"%VS170COMNTOOLS%VsDevCmd\core\dotnet.bat"<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">Reg queries<o:p></o:p></span></pre>
          <pre
style="margin-left:1.25in;text-indent:-.25in;mso-list:l3 level3 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Wingdings;color:black"><span
          style="mso-list:Ignore">§<span
          style="font:7.0pt &quot;Times New Roman&quot;">  </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">"%VS170COMNTOOLS%VsDevCmd\core\msbuild.bat"<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">Path existence<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">Where<o:p></o:p></span></pre>
          <pre
style="margin-left:1.25in;text-indent:-.25in;mso-list:l3 level3 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Wingdings;color:black"><span
          style="mso-list:Ignore">§<span
          style="font:7.0pt &quot;Times New Roman&quot;">  </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">"%VS170COMNTOOLS%VsDevCmd\core\winsdk.bat"<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">Reg queries<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">Paths existence<o:p></o:p></span></pre>
          <pre
style="margin-left:1.25in;text-indent:-.25in;mso-list:l3 level3 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Wingdings;color:black"><span
          style="mso-list:Ignore">§<span
          style="font:7.0pt &quot;Times New Roman&quot;">  </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">"%VS170COMNTOOLS%vsdevcmd\ext\ConnectionManagerExe.bat"<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">Path existence<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">Where<o:p></o:p></span></pre>
          <pre
style="margin-left:1.25in;text-indent:-.25in;mso-list:l3 level3 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Wingdings;color:black"><span
          style="mso-list:Ignore">§<span
          style="font:7.0pt &quot;Times New Roman&quot;">  </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">"%VS170COMNTOOLS%vsdevcmd\ext\diaghub.bat"<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">Where<o:p></o:p></span></pre>
          <pre
style="margin-left:1.25in;text-indent:-.25in;mso-list:l3 level3 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Wingdings;color:black"><span
          style="mso-list:Ignore">§<span
          style="font:7.0pt &quot;Times New Roman&quot;">  </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">"%VS170COMNTOOLS%vsdevcmd\ext\html_help.bat"<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">Path existence<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">Where<o:p></o:p></span></pre>
          <pre
style="margin-left:1.25in;text-indent:-.25in;mso-list:l3 level3 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Wingdings;color:black"><span
          style="mso-list:Ignore">§<span
          style="font:7.0pt &quot;Times New Roman&quot;">  </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">"%VS170COMNTOOLS%vsdevcmd\ext\netfxsdk.bat"<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">Reg queries<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">Path existence<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">Where<o:p></o:p></span></pre>
          <pre
style="margin-left:1.25in;text-indent:-.25in;mso-list:l3 level3 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Wingdings;color:black"><span
          style="mso-list:Ignore">§<span
          style="font:7.0pt &quot;Times New Roman&quot;">  </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">"%VS170COMNTOOLS%vsdevcmd\ext\perf_tools.bat"<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">Reg queries<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">Path existence<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">Where<o:p></o:p></span></pre>
          <pre
style="margin-left:1.25in;text-indent:-.25in;mso-list:l3 level3 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Wingdings;color:black"><span
          style="mso-list:Ignore">§<span
          style="font:7.0pt &quot;Times New Roman&quot;">  </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">"%VS170COMNTOOLS%vsdevcmd\ext\roslyn.bat"<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">Where<o:p></o:p></span></pre>
          <pre
style="margin-left:1.25in;text-indent:-.25in;mso-list:l3 level3 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Wingdings;color:black"><span
          style="mso-list:Ignore">§<span
          style="font:7.0pt &quot;Times New Roman&quot;">  </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">"%VS170COMNTOOLS%vsdevcmd\ext\team_explorer.bat"<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">Path existence<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">Where<o:p></o:p></span></pre>
          <pre
style="margin-left:1.25in;text-indent:-.25in;mso-list:l3 level3 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Wingdings;color:black"><span
          style="mso-list:Ignore">§<span
          style="font:7.0pt &quot;Times New Roman&quot;">  </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">"%VS170COMNTOOLS%vsdevcmd\ext\testwindow.bat"<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">Path existence<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">Where<o:p></o:p></span></pre>
          <pre
style="margin-left:1.25in;text-indent:-.25in;mso-list:l3 level3 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Wingdings;color:black"><span
          style="mso-list:Ignore">§<span
          style="font:7.0pt &quot;Times New Roman&quot;">  </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">"%VS170COMNTOOLS%vsdevcmd\ext\vcvars.bat"<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">Path existence<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">Dir contents<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">Where<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">File read<o:p></o:p></span></pre>
          <pre
style="margin-left:1.25in;text-indent:-.25in;mso-list:l3 level3 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Wingdings;color:black"><span
          style="mso-list:Ignore">§<span
          style="font:7.0pt &quot;Times New Roman&quot;">  </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">if "%VSCMD_SKIP_SENDTELEMETRY%"==""<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">Powershell Send Telemetry<o:p></o:p></span></pre>
          <pre
style="margin-left:1.25in;text-indent:-.25in;mso-list:l3 level3 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Wingdings;color:black"><span
          style="mso-list:Ignore">§<span
          style="font:7.0pt &quot;Times New Roman&quot;">  </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">"%~dp0vsdevcmd\core\vsdevcmd_end.bat"<o:p></o:p></span></pre>
          <pre
style="margin-left:1.75in;text-indent:-.25in;mso-list:l3 level4 lfo1;background:white"><!--[if !supportLists]--><span
          style="font-size:12.0pt;font-family:Symbol;color:black"><span
          style="mso-list:Ignore">·<span
          style="font:7.0pt &quot;Times New Roman&quot;">         </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:&quot;Aptos&quot;,sans-serif;color:black">Possible directory changes<o:p></o:p></span></pre>
          <p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
        </div>
        <br>
        <fieldset class="moz-mime-attachment-header"></fieldset>
        <pre wrap="" class="moz-quote-pre">_______________________________________________
Scons-users mailing list
<a class="moz-txt-link-abbreviated moz-txt-link-freetext"
        href="mailto:[email protected]" moz-do-not-send="true">[email protected]</a>
<a class="moz-txt-link-freetext"
        href="https://pairlist4.pair.net/mailman/listinfo/scons-users"
        moz-do-not-send="true">https://pairlist4.pair.net/mailman/listinfo/scons-users</a>
</pre>
      </blockquote>
    </blockquote>
  </body>
</html>

--------------KhSPOzBako0oCDQpBHOeRdrk--

--===============5130721914893770228==
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

--===============5130721914893770228==--