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 "Times New Roman"">
</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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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 "Times New Roman""> </span></span></span><!--[endif]--><span
style="font-size:12.0pt;font-family:"Aptos",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==--