Re: SCons very slow on GitHub actions

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

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

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
--------------eIEOqYU1l5Va6dyuoqjq8VaC
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>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" href="mailto:[email protected]">[email protected]</a>
<a class="moz-txt-link-freetext" href="https://pairlist4.pair.net/mailman/listinfo/scons-users">https://pairlist4.pair.net/mailman/listinfo/scons-users</a>
</pre>
    </blockquote>
  </body>
</html>

--------------eIEOqYU1l5Va6dyuoqjq8VaC--

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

--===============4859149490230843693==--