Re: [Scons-users] SCons 4.0.0 Released

Eric Fahlgren <[email protected]> Sun, 5 Jul 2020 07:30:36 -0700
Newsgroups gmane.comp.programming.tools.scons.devel
Message-ID <CAP2Qz+UZ-h-3pKpQo5ibQsCz5q6rxA_w-V6ZBXRJHoJjbwEPTQ@mail.gmail.com>
--===============7059182486807103921==
Content-Type: multipart/alternative; boundary="000000000000a5d2cd05a9b29a2a"

--000000000000a5d2cd05a9b29a2a
Content-Type: text/plain; charset="UTF-8"

Bill,

Issue filed along with some further experiments.
https://github.com/SCons/scons/issues/3736

I vaguely remember playing with the case-sensitivity options in Windows on
this machine years ago, so I tested everything on another machine where
Windows is pristine, but no joy, same issue presented in the same manner
there, too.

Eric

On Sat, Jul 4, 2020 at 9:48 PM Bill Deegan <bill-cJFiu+DHMVC5azolltMz9laTQe2KTcn/@public.gmane.org>
wrote:

> Eric,
>
> Try pip install SCons==4.0
> Does that make a difference?
>
> Packaging has been completely rewritten for 4.0.0 so I'm not surprised
> there's an issue or two in the field.
> (the previous code was written before there was a pip... ;) and then
> duct-taped and bailing wired.. so it needed a rewrite)
>
> Ahh. Interesting because windows is case insensitive..
>
> Please file an Issue.
>
> Hoping to take a break tomorrow and I'll look at it on monday.. unless
> someone else feels like taking a wack at fixing that.. ;)
>
> -Bill
>
> On Sat, Jul 4, 2020 at 7:41 PM Eric Fahlgren <[email protected]>
> wrote:
>
>> First, Bill and Mats and everyone else, thanks for your continued
>> development of SCons!
>>
>> I ran into a strange, probably Windows-specific issue upon installing
>> 4.0.0.  I simply did "pip install scons==4.0.0" without issue, but when I
>> ran "scons some_target", I got this:
>>
>> Traceback (most recent call last):
>>   File "c:\program files\python38\lib\runpy.py", line 194, in
>> _run_module_as_main
>>     return _run_code(code, main_globals, None,
>>   File "c:\program files\python38\lib\runpy.py", line 87, in _run_code
>>     exec(code, run_globals)
>>   File "C:\Program Files\Python38\Scripts\scons.exe\__main__.py", line 4,
>> in <module>
>>     SCons.Script.main()
>> ModuleNotFoundError: No module named 'SCons'
>>
>> It turns out that pip didn't name the installation directory
>> "site-packages/*SCons*", but rather all-lower-case "site-packages/*scons*"
>> (as it was with 3.1.2), so none of the run commands, scripts or tools will
>> load.  I did "pip uninstall -y scons", made sure Lib/site-packages was
>> clean, reinstalled 4.0.0 and everything was fine.  It appears that pip is
>> not removing the old installation completely and leaving the top-level
>> directory there with improper character case, but only when it does an
>> "install over old".  I reproduced this a couple times, reinstalling 3.1 and
>> then 4.0 over it to confirm.
>>
>> On Sat, Jul 4, 2020 at 3:57 PM Bill Deegan <bill-cJFiu+DHMVC5azolltMz9laTQe2KTcn/@public.gmane.org>
>> wrote:
>>
>>>   A new SCons release, 4.0.0, is now available
>>>   on the SCons download page:
>>>
>>>           https://scons.org/pages/download.html
>>>
>>>   Here is a summary of the changes since 3.1.2:
>>>
>>>   NEW FUNCTIONALITY
>>>
>>>     - Added support for scanning multiple entries in an action string if
>>>       IMPLICIT_COMMAND_DEPENDENCIES is set to 2 or 'all'. This enables
>>> more thorough
>>>       action scanning where every item in each command line is scanned
>>> to determine
>>>       if it is a non-source and non-target path and added to the list of
>>> implicit dependencies
>>>       for the target.
>>>     - Added new module SCons.Scanner.Python to allow scanning .py files.
>>>     - Added support for explicitly passing a name when creating Value()
>>> nodes. This may be useful
>>>       when the value can't be converted to a string or if having a name
>>> is otherwise desirable.
>>>     - Added a new flag called "linedraw" for the command line argument
>>>  "--tree"
>>>       that instructs scons to use single line drawing characters to draw
>>> the dependency tree.
>>>     - Add CompilationDatabase() builder in compilation_db tool.
>>> Contributed by MongoDB.
>>>       Setting COMPILATIONDB_USE_ABSPATH to True|False controls whether
>>> the files are absolute or relative
>>>       paths.  Address Issue #3693 and #3694 found during development.
>>>     - Extended `Environment.Dump()` to select a format to serialize
>>> construction variables (pretty, json).
>>>     - New conditional C Scanner (`SCons.Scanner.C.CConditionalScanner()`)
>>>       which interprets C/C Preprocessor conditional syntax (#ifdef, #if,
>>> #else,
>>>       #elif, #define, etc.)
>>>     - Experimental New Feature: Enable caching MSVC configuration
>>>       If SCONS_CACHE_MSVC_CONFIG shell environment variable is set,
>>>       SCons will cache the results of past calls to vcvarsall.bat to
>>>       a file; integrates with existing memoizing of such vars.
>>>     - Preliminary Python 3.9 support.
>>>
>>>   DEPRECATED FUNCTIONALITY
>>>
>>>     - Drop support for Python 2.7. SCons will be Python 3.5+ going
>>> forward.
>>>     - Remove deprecated SourceCode()
>>>
>>>   CHANGED/ENHANCED EXISTING FUNCTIONALITY
>>>
>>>     - Added check for SONAME in environment to setup symlinks correctly
>>> (Github Issue #3246)
>>>     - Resolve Issue #3248 - Removing '-Wl,-Bsymbolic' from
>>> SHLIBVERSIONFLAGS
>>>       NOTE: If your build depends on the above you must now add to your
>>> SHLIBVERSIONFLAGS
>>>     - Microsoft Visual Studio - switch to using uuid module to generate
>>> GUIDs rather than hand rolled
>>>       method using md5 directly.
>>>       NOTE: This change affects the following builders' output. If your
>>> build depends on the output of these builders
>>>       you will likely see a rebuild.
>>>       * Package() (with PACKAGETYPE='msi')
>>>       * MSVSSolution()
>>>       * MSVSProject()
>>>     - Improve Visual Studio solution/project generation code to add
>>> support
>>>       for a per-variant cppflags. Intellisense can be affected by
>>> cppflags,
>>>       this is especially important when it comes to /std:c++* which
>>> specifies
>>>       what C++ standard version to target. SCons will append
>>> /Zc:__cplusplus
>>>       to the project's cppflags when a /std:c++* flag is found as this is
>>>       required for intellisense to use the C++ standard version from
>>> cppflags.
>>>     - Allow user specified location for vswhere.exe specified by VSWHERE.
>>>       NOTE: This must be set at the time the 'msvc' 'msvs' and/or
>>> 'mslink' tool(s) are initialized to have any effect.
>>>     - Fixed Github Issue 3628 - Hardcoding pickle protocol to 4
>>> (supports python 3.4+)
>>>       and skipping Python 3.8's new pickle protocol 5 whose main
>>> advantage is for out-of-band data buffers.
>>>       NOTE: If you used Python 3.8 with SCons 3.0.0 or above, you may
>>> get a a pickle protocol error. Remove your
>>>       .sconsign.dblite. You will end up with a full rebuild.
>>>     - MSVC updates: When there are multiple product installations (e.g,
>>> Community and
>>>       Build Tools) of MSVC 2017 or MSVC 2019, an Enterprise,
>>> Professional,
>>>       or Community installation will be selected before a Build Tools
>>> installation when
>>>       "14.1" or "14.2" is requested, respectively. (GH Issue #3699).
>>>     - MSVC updates: When there are multiple product installations of
>>> MSVC 2017 (e.g.,
>>>       Community and Express), 2017 Express is no longer returned when
>>> "14.1" is
>>>       requested.  Only 2017 Express will be returned when "14.1Exp" is
>>> requested.
>>>       (GH Issue #3699).
>>>     - MSVC updates: pass on VSCMD_DEBUG and VSCMD_SKIP_SENDTELEMETRY to
>>> msvc
>>>       tool setup if set in environment. Add Powershell to default env
>>>       (used to call telemetry script).
>>>     - Renamed as.py to asm.py and left redirecting tool.  'as' is a
>>> reserved word and so
>>>       changing the name was required as we wanted to import symbols for
>>> use in compilation_db
>>>       tool.
>>>     - Add no_progress (-Q) option as a set-able option. However, setting
>>> it in the
>>>       SConstruct/SConscript will still cause "scons: Reading SConscript
>>> files ..." to be
>>>       printed, since the option is not set when the build scripts first
>>> get read.
>>>     - Docbook builder provides a fallback if lxml fails to generate
>>>       a document with tostring().
>>>     - SubstitutionEnvironment and OverrideEnvironment now have keys()
>>>       and values() methods to better emulate a dict (already had
>>> items()).
>>>
>>>   FIXES
>>>
>>>     - Cleanup dangling symlinks before running builders (Issue #3516)
>>>     - Fixed usage of abspath and path for RootDir objects on Windows.
>>> Previously
>>>       env.fs.Dir("T:").abspath would return "T:\T:" and now it correctly
>>> returns "T:".
>>>     - Fix Issue #3469 - Fixed improper reuse of temporary and compiled
>>> files by Configure when changing
>>>       the order and/or number of tests.  This is done by using the hash
>>> of the generated temporary files
>>>       content and (For the target files) the hash of the action.
>>>       So where previously files would be named:
>>>       - config_1.c, config_1.o, config_1
>>>       The will now be named (For example)
>>>       - conftest_68b375d16e812c43e6d72d6e93401e7c_0.c,
>>>
>>> conftest_68b375d16e812c43e6d72d6e93401e7c_0_5713f09fc605f46b2ab2f7950455f187.o
>>>         or
>>>         conftest_68b375d16e812c43e6d72d6e93401e7c_0.o
>>>
>>> conftest_68b375d16e812c43e6d72d6e93401e7c_0_5713f09fc605f46b2ab2f7950455f187
>>> (for executable)
>>>     - Updated documentation toolchain to work properly under Python3,
>>> also
>>>       removed libxslt support from the Docbook Tool. (issue #3580)
>>>     - Fix broken clang + MSVC 2019 combination by using MSVC
>>> configuration logic to
>>>       propagate 'VCINSTALLDIR' and 'VCToolsInstallDir' which clang tools
>>> use to locate
>>>       header files and libraries from MSVC install. (Fixes GH Issue
>>> #3480)
>>>     - Fix Github Issue #2904 - Provide useful error message when more
>>> than one Configure Contexts are opened.
>>>       Only one open is allowed. You must call conf.Finish() to complete
>>> the currently open one before creating another
>>>
>>>   IMPROVEMENTS
>>>
>>>     - Improve performance of Subst by preventing unnecessary frame
>>>       allocations by no longer defining the *Subber classes inside of
>>> their
>>>       respective function calls.
>>>     - Improve performance of Subst in some cases by preventing
>>>       unnecessary calls to eval when a token is surrounded in braces
>>>       but is not a function call.
>>>     - Improve performance of subst by removing unnecessary recursion.
>>>
>>>   PACKAGING
>>>
>>>     - Resolve Issue #3451 and Issue #3450 - Rewrite SCons setup.py and
>>> packaging. Move script logic to entry points so
>>>       package can create scripts which use the correct version of Python.
>>>
>>>   DOCUMENTATION
>>>
>>>     - Significant rework of documentation: API docs are now generated
>>>       using Sphinx; manpage and user guide now use more "standard"
>>>       markup elements (which could facilitate later conversion to a
>>>       different doc format, should that choice be made); significant
>>>       rewordings in manpage.  Manpage Examples moved to an external
>>>       repository / website (scons-cookbook.readthedocs.io).
>>>
>>>   Thanks to the following contributors listed below for their
>>> contributions to this release.
>>>
>>> git shortlog --no-merges -ns 3.1.2..HEAD
>>>    290  William Deegan
>>>    184  Mats Wichmann
>>>     46  Adam Gross
>>>     22  Daniel Moody
>>>     16  Joseph Brill
>>>     15  Dirk Baechle
>>>     12  Ivan Kravets
>>>      9  Mathew Robinson
>>>      6  Paul Tipei
>>>      1  Rob Boehne
>>>      1  Robert Boehne
>>>      1  Daniel
>>>      1  Andrew Morrow
>>>      1  Iosif Daniel Kurazs
>>>      1  James Benton
>>>      1  Jeremy Elson
>>>      1  Konstantin Gonchar
>>>      1  Andrii Doroshenko (Xrayez)
>>> _______________________________________________
>>> Scons-users mailing list
>>> [email protected]
>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>
>> _______________________________________________
>> Scons-dev mailing list
>> [email protected]
>> https://pairlist2.pair.net/mailman/listinfo/scons-dev
>>
> _______________________________________________
> Scons-users mailing list
> [email protected]
> https://pairlist4.pair.net/mailman/listinfo/scons-users
>

--000000000000a5d2cd05a9b29a2a
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr" class=3D"gmail_attr"><div class=3D"gmail_=
default" style=3D"font-family:arial,sans-serif;color:#000000">Bill,</div><d=
iv class=3D"gmail_default" style=3D"font-family:arial,sans-serif;color:#000=
000"><br></div><div class=3D"gmail_default" style=3D"font-family:arial,sans=
-serif;color:#000000">Issue filed along with some further experiments.=C2=
=A0 <a href=3D"https://github.com/SCons/scons/issues/3736">https://github.c=
om/SCons/scons/issues/3736</a></div><div class=3D"gmail_default" style=3D"f=
ont-family:arial,sans-serif;color:#000000"><br></div><div class=3D"gmail_de=
fault" style=3D"font-family:arial,sans-serif;color:#000000">I vaguely remem=
ber playing with the case-sensitivity options in Windows on this machine ye=
ars ago, so I tested everything on another machine where Windows is pristin=
e, but no joy, same issue presented in the same manner there, too.</div><di=
v class=3D"gmail_default" style=3D"font-family:arial,sans-serif;color:#0000=
00"><br></div><div class=3D"gmail_default" style=3D"font-family:arial,sans-=
serif;color:#000000">Eric</div><div class=3D"gmail_default" style=3D"font-f=
amily:arial,sans-serif;color:#000000"><br></div>On Sat, Jul 4, 2020 at 9:48=
 PM Bill Deegan &lt;<a href=3D"mailto:bill-cJFiu+DHMVC5azolltMz9laTQe2KTcn/@public.gmane.org">bill@baddo=
gconsulting.com</a>&gt; wrote:<br></div><div class=3D"gmail_quote"><blockqu=
ote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px=
 solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div>Eric,</div>=
<div><br></div><div>Try pip install SCons=3D=3D4.0</div><div>Does that make=
 a difference?</div><div><br></div><div>Packaging has been completely rewri=
tten for 4.0.0 so I&#39;m not surprised there&#39;s an issue or two in the =
field.</div><div>(the previous code was written before there was a pip... ;=
) and then duct-taped and bailing wired.. so it needed a rewrite)<br></div>=
<div><br></div><div>Ahh. Interesting because windows is case insensitive..<=
/div><div><br></div><div>Please file an Issue.</div><div><br></div><div>Hop=
ing to take a break tomorrow and I&#39;ll look at it on monday.. unless som=
eone else feels like taking a wack at fixing that.. ;)</div><div><br></div>=
<div>-Bill<br></div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" c=
lass=3D"gmail_attr">On Sat, Jul 4, 2020 at 7:41 PM Eric Fahlgren &lt;<a hre=
f=3D"mailto:[email protected]" target=3D"_blank">[email protected]=
m</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin=
:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"=
><div dir=3D"ltr"><div style=3D"font-family:arial,sans-serif;color:rgb(0,0,=
0)">First, Bill and Mats and everyone else, thanks for your continued devel=
opment of SCons!</div><div style=3D"font-family:arial,sans-serif;color:rgb(=
0,0,0)"><br></div><div style=3D"font-family:arial,sans-serif;color:rgb(0,0,=
0)">I ran into a strange, probably Windows-specific issue upon installing 4=
.0.0.=C2=A0 I simply did &quot;pip install scons=3D=3D4.0.0&quot; without i=
ssue, but when I ran &quot;scons some_target&quot;, I got this:</div><div s=
tyle=3D"font-family:arial,sans-serif;color:rgb(0,0,0)"><br></div><div style=
=3D"font-family:arial,sans-serif;color:rgb(0,0,0)">Traceback (most recent c=
all last):<br>=C2=A0 File &quot;c:\program files\python38\lib\runpy.py&quot=
;, line 194, in _run_module_as_main<br>=C2=A0 =C2=A0 return _run_code(code,=
 main_globals, None,<br>=C2=A0 File &quot;c:\program files\python38\lib\run=
py.py&quot;, line 87, in _run_code<br>=C2=A0 =C2=A0 exec(code, run_globals)=
<br>=C2=A0 File &quot;C:\Program Files\Python38\Scripts\scons.exe\__main__.=
py&quot;, line 4, in &lt;module&gt;<br>=C2=A0 =C2=A0 SCons.Script.main()<br=
>ModuleNotFoundError: No module named &#39;SCons&#39;</div><div style=3D"fo=
nt-family:arial,sans-serif;color:rgb(0,0,0)"><br></div><div style=3D"font-f=
amily:arial,sans-serif;color:rgb(0,0,0)">It turns out that pip didn&#39;t n=
ame the installation directory &quot;site-packages/<b>SCons</b>&quot;, but =
rather all-lower-case &quot;site-packages/<b>scons</b>&quot; (as it was wit=
h 3.1.2), so none of the run commands, scripts or tools will load.=C2=A0 I =
did &quot;pip uninstall -y scons&quot;, made sure Lib/site-packages was cle=
an, reinstalled 4.0.0 and everything was fine.=C2=A0 It appears that pip is=
 not removing the old installation completely and leaving the top-level dir=
ectory there with improper character case, but only when it does an &quot;i=
nstall over old&quot;.=C2=A0 I reproduced this a couple times, reinstalling=
 3.1 and then 4.0 over it to confirm.<br></div></div><br><div class=3D"gmai=
l_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Sat, Jul 4, 2020 at 3:57 =
PM Bill Deegan &lt;<a href=3D"mailto:bill-cJFiu+DHMVC5azolltMz9laTQe2KTcn/@public.gmane.org" target=3D"_=
blank">bill-cJFiu+DHMVC5azolltMz9laTQe2KTcn/@public.gmane.org</a>&gt; wrote:<br></div><blockquote class=
=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rg=
b(204,204,204);padding-left:1ex"><div dir=3D"ltr">=C2=A0 A new SCons releas=
e, 4.0.0, is now available<br>=C2=A0 on the SCons download page:<br><br>=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 <a href=3D"https://scons.org/pages/download=
.html" target=3D"_blank">https://scons.org/pages/download.html</a><br><br>=
=C2=A0 Here is a summary of the changes since 3.1.2:<br><br>=C2=A0 NEW FUNC=
TIONALITY<br><br>=C2=A0 =C2=A0 - Added support for scanning multiple entrie=
s in an action string if<br>=C2=A0 =C2=A0 =C2=A0 IMPLICIT_COMMAND_DEPENDENC=
IES is set to 2 or &#39;all&#39;. This enables more thorough<br>=C2=A0 =C2=
=A0 =C2=A0 action scanning where every item in each command line is scanned=
 to determine<br>=C2=A0 =C2=A0 =C2=A0 if it is a non-source and non-target =
path and added to the list of implicit dependencies<br>=C2=A0 =C2=A0 =C2=A0=
 for the target.<br>=C2=A0 =C2=A0 - Added new module SCons.Scanner.Python t=
o allow scanning .py files.<br>=C2=A0 =C2=A0 - Added support for explicitly=
 passing a name when creating Value() nodes. This may be useful<br>=C2=A0 =
=C2=A0 =C2=A0 when the value can&#39;t be converted to a string or if havin=
g a name is otherwise desirable.<br>=C2=A0 =C2=A0 - Added a new flag called=
 &quot;linedraw&quot; for the command line argument =C2=A0&quot;--tree&quot=
;<br>=C2=A0 =C2=A0 =C2=A0 that instructs scons to use single line drawing c=
haracters to draw the dependency tree.<br>=C2=A0 =C2=A0 - Add CompilationDa=
tabase() builder in compilation_db tool. Contributed by MongoDB.<br>=C2=A0 =
=C2=A0 =C2=A0 Setting COMPILATIONDB_USE_ABSPATH to True|False controls whet=
her the files are absolute or relative<br>=C2=A0 =C2=A0 =C2=A0 paths.=C2=A0=
 Address Issue #3693 and #3694 found during development.<br>=C2=A0 =C2=A0 -=
 Extended `Environment.Dump()` to select a format to serialize construction=
 variables (pretty, json).<br>=C2=A0 =C2=A0 - New conditional C Scanner (`S=
Cons.Scanner.C.CConditionalScanner()`)<br>=C2=A0 =C2=A0 =C2=A0 which interp=
rets C/C Preprocessor conditional syntax (#ifdef, #if, #else,<br>=C2=A0 =C2=
=A0 =C2=A0 #elif, #define, etc.)<br>=C2=A0 =C2=A0 - Experimental New Featur=
e: Enable caching MSVC configuration<br>=C2=A0 =C2=A0 =C2=A0 If SCONS_CACHE=
_MSVC_CONFIG shell environment variable is set,<br>=C2=A0 =C2=A0 =C2=A0 SCo=
ns will cache the results of past calls to vcvarsall.bat to<br>=C2=A0 =C2=
=A0 =C2=A0 a file; integrates with existing memoizing of such vars.<br>=C2=
=A0 =C2=A0 - Preliminary Python 3.9 support.<br><br>=C2=A0 DEPRECATED FUNCT=
IONALITY<br><br>=C2=A0 =C2=A0 - Drop support for Python 2.7. SCons will be =
Python 3.5+ going forward.<br>=C2=A0 =C2=A0 - Remove deprecated SourceCode(=
)<br><br>=C2=A0 CHANGED/ENHANCED EXISTING FUNCTIONALITY<br><br>=C2=A0 =C2=
=A0 - Added check for SONAME in environment to setup symlinks correctly (Gi=
thub Issue #3246)<br>=C2=A0 =C2=A0 - Resolve Issue #3248 - Removing &#39;-W=
l,-Bsymbolic&#39; from SHLIBVERSIONFLAGS<br>=C2=A0 =C2=A0 =C2=A0 NOTE: If y=
our build depends on the above you must now add to your SHLIBVERSIONFLAGS<b=
r>=C2=A0 =C2=A0 - Microsoft Visual Studio - switch to using uuid module to =
generate GUIDs rather than hand rolled<br>=C2=A0 =C2=A0 =C2=A0 method using=
 md5 directly.<br>=C2=A0 =C2=A0 =C2=A0 NOTE: This change affects the follow=
ing builders&#39; output. If your build depends on the output of these buil=
ders<br>=C2=A0 =C2=A0 =C2=A0 you will likely see a rebuild.<br>=C2=A0 =C2=
=A0 =C2=A0 * Package() (with PACKAGETYPE=3D&#39;msi&#39;)<br>=C2=A0 =C2=A0 =
=C2=A0 * MSVSSolution()<br>=C2=A0 =C2=A0 =C2=A0 * MSVSProject()<br>=C2=A0 =
=C2=A0 - Improve Visual Studio solution/project generation code to add supp=
ort<br>=C2=A0 =C2=A0 =C2=A0 for a per-variant cppflags. Intellisense can be=
 affected by cppflags,<br>=C2=A0 =C2=A0 =C2=A0 this is especially important=
 when it comes to /std:c++* which specifies<br>=C2=A0 =C2=A0 =C2=A0 what C+=
+ standard version to target. SCons will append /Zc:__cplusplus<br>=C2=A0 =
=C2=A0 =C2=A0 to the project&#39;s cppflags when a /std:c++* flag is found =
as this is<br>=C2=A0 =C2=A0 =C2=A0 required for intellisense to use the C++=
 standard version from cppflags.<br>=C2=A0 =C2=A0 - Allow user specified lo=
cation for vswhere.exe specified by VSWHERE.<br>=C2=A0 =C2=A0 =C2=A0 NOTE: =
This must be set at the time the &#39;msvc&#39; &#39;msvs&#39; and/or &#39;=
mslink&#39; tool(s) are initialized to have any effect.<br>=C2=A0 =C2=A0 - =
Fixed Github Issue 3628 - Hardcoding pickle protocol to 4 (supports python =
3.4+)<br>=C2=A0 =C2=A0 =C2=A0 and skipping Python 3.8&#39;s new pickle prot=
ocol 5 whose main advantage is for out-of-band data buffers.<br>=C2=A0 =C2=
=A0 =C2=A0 NOTE: If you used Python 3.8 with SCons 3.0.0 or above, you may =
get a a pickle protocol error. Remove your<br>=C2=A0 =C2=A0 =C2=A0 .sconsig=
n.dblite. You will end up with a full rebuild.<br>=C2=A0 =C2=A0 - MSVC upda=
tes: When there are multiple product installations (e.g, Community and<br>=
=C2=A0 =C2=A0 =C2=A0 Build Tools) of MSVC 2017 or MSVC 2019, an Enterprise,=
 Professional,<br>=C2=A0 =C2=A0 =C2=A0 or Community installation will be se=
lected before a Build Tools installation when<br>=C2=A0 =C2=A0 =C2=A0 &quot=
;14.1&quot; or &quot;14.2&quot; is requested, respectively. (GH Issue #3699=
).<br>=C2=A0 =C2=A0 - MSVC updates: When there are multiple product install=
ations of MSVC 2017 (e.g.,<br>=C2=A0 =C2=A0 =C2=A0 Community and Express), =
2017 Express is no longer returned when &quot;14.1&quot; is<br>=C2=A0 =C2=
=A0 =C2=A0 requested.=C2=A0 Only 2017 Express will be returned when &quot;1=
4.1Exp&quot; is requested.<br>=C2=A0 =C2=A0 =C2=A0 (GH Issue #3699).<br>=C2=
=A0 =C2=A0 - MSVC updates: pass on VSCMD_DEBUG and VSCMD_SKIP_SENDTELEMETRY=
 to msvc<br>=C2=A0 =C2=A0 =C2=A0 tool setup if set in environment. Add Powe=
rshell to default env<br>=C2=A0 =C2=A0 =C2=A0 (used to call telemetry scrip=
t).<br>=C2=A0 =C2=A0 - Renamed as.py to asm.py and left redirecting tool. =
=C2=A0&#39;as&#39; is a reserved word and so<br>=C2=A0 =C2=A0 =C2=A0 changi=
ng the name was required as we wanted to import symbols for use in compilat=
ion_db<br>=C2=A0 =C2=A0 =C2=A0 tool.<br>=C2=A0 =C2=A0 - Add no_progress (-Q=
) option as a set-able option. However, setting it in the<br>=C2=A0 =C2=A0 =
=C2=A0 SConstruct/SConscript will still cause &quot;scons: Reading SConscri=
pt files ...&quot; to be<br>=C2=A0 =C2=A0 =C2=A0 printed, since the option =
is not set when the build scripts first get read.<br>=C2=A0 =C2=A0 - Docboo=
k builder provides a fallback if lxml fails to generate<br>=C2=A0 =C2=A0 =
=C2=A0 a document with tostring().<br>=C2=A0 =C2=A0 - SubstitutionEnvironme=
nt and OverrideEnvironment now have keys()<br>=C2=A0 =C2=A0 =C2=A0 and valu=
es() methods to better emulate a dict (already had items()).<br><br>=C2=A0 =
FIXES<br><br>=C2=A0 =C2=A0 - Cleanup dangling symlinks before running build=
ers (Issue #3516)<br>=C2=A0 =C2=A0 - Fixed usage of abspath and path for Ro=
otDir objects on Windows. Previously<br>=C2=A0 =C2=A0 =C2=A0 env.fs.Dir(&qu=
ot;T:&quot;).abspath would return &quot;T:\T:&quot; and now it correctly re=
turns &quot;T:&quot;.<br>=C2=A0 =C2=A0 - Fix Issue #3469 - Fixed improper r=
euse of temporary and compiled files by Configure when changing<br>=C2=A0 =
=C2=A0 =C2=A0 the order and/or number of tests.=C2=A0 This is done by using=
 the hash of the generated temporary files<br>=C2=A0 =C2=A0 =C2=A0 content =
and (For the target files) the hash of the action.<br>=C2=A0 =C2=A0 =C2=A0 =
So where previously files would be named:<br>=C2=A0 =C2=A0 =C2=A0 - config_=
1.c, config_1.o, config_1<br>=C2=A0 =C2=A0 =C2=A0 The will now be named (Fo=
r example)<br>=C2=A0 =C2=A0 =C2=A0 - conftest_68b375d16e812c43e6d72d6e93401=
e7c_0.c,<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 conftest_68b375d16e812c43e6d72d6e93=
401e7c_0_5713f09fc605f46b2ab2f7950455f187.o<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
or<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 conftest_68b375d16e812c43e6d72d6e93401e7c=
_0.o<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 conftest_68b375d16e812c43e6d72d6e93401e=
7c_0_5713f09fc605f46b2ab2f7950455f187 (for executable)<br>=C2=A0 =C2=A0 - U=
pdated documentation toolchain to work properly under Python3, also<br>=C2=
=A0 =C2=A0 =C2=A0 removed libxslt support from the Docbook Tool. (issue #35=
80)<br>=C2=A0 =C2=A0 - Fix broken clang + MSVC 2019 combination by using MS=
VC configuration logic to<br>=C2=A0 =C2=A0 =C2=A0 propagate &#39;VCINSTALLD=
IR&#39; and &#39;VCToolsInstallDir&#39; which clang tools use to locate<br>=
=C2=A0 =C2=A0 =C2=A0 header files and libraries from MSVC install. (Fixes G=
H Issue #3480)<br>=C2=A0 =C2=A0 - Fix Github Issue #2904 - Provide useful e=
rror message when more than one Configure Contexts are opened.<br>=C2=A0 =
=C2=A0 =C2=A0 Only one open is allowed. You must call conf.Finish() to comp=
lete the currently open one before creating another<br><br>=C2=A0 IMPROVEME=
NTS<br><br>=C2=A0 =C2=A0 - Improve performance of Subst by preventing unnec=
essary frame<br>=C2=A0 =C2=A0 =C2=A0 allocations by no longer defining the =
*Subber classes inside of their<br>=C2=A0 =C2=A0 =C2=A0 respective function=
 calls.<br>=C2=A0 =C2=A0 - Improve performance of Subst in some cases by pr=
eventing<br>=C2=A0 =C2=A0 =C2=A0 unnecessary calls to eval when a token is =
surrounded in braces<br>=C2=A0 =C2=A0 =C2=A0 but is not a function call.<br=
>=C2=A0 =C2=A0 - Improve performance of subst by removing unnecessary recur=
sion.<br><br>=C2=A0 PACKAGING<br><br>=C2=A0 =C2=A0 - Resolve Issue #3451 an=
d Issue #3450 - Rewrite SCons setup.py and packaging. Move script logic to =
entry points so<br>=C2=A0 =C2=A0 =C2=A0 package can create scripts which us=
e the correct version of Python.<br><br>=C2=A0 DOCUMENTATION<br><br>=C2=A0 =
=C2=A0 - Significant rework of documentation: API docs are now generated<br=
>=C2=A0 =C2=A0 =C2=A0 using Sphinx; manpage and user guide now use more &qu=
ot;standard&quot;<br>=C2=A0 =C2=A0 =C2=A0 markup elements (which could faci=
litate later conversion to a<br>=C2=A0 =C2=A0 =C2=A0 different doc format, =
should that choice be made); significant<br>=C2=A0 =C2=A0 =C2=A0 rewordings=
 in manpage.=C2=A0 Manpage Examples moved to an external<br>=C2=A0 =C2=A0 =
=C2=A0 repository / website (<a href=3D"http://scons-cookbook.readthedocs.i=
o" target=3D"_blank">scons-cookbook.readthedocs.io</a>).<br><br>=C2=A0 Than=
ks to the following contributors listed below for their contributions to th=
is release.<br><br>git shortlog --no-merges -ns 3.1.2..HEAD<br>=C2=A0 =C2=
=A0290 =C2=A0William Deegan<br>=C2=A0 =C2=A0184 =C2=A0Mats Wichmann<br>=C2=
=A0 =C2=A0 46 =C2=A0Adam Gross<br>=C2=A0 =C2=A0 22 =C2=A0Daniel Moody<br>=
=C2=A0 =C2=A0 16 =C2=A0Joseph Brill<br>=C2=A0 =C2=A0 15 =C2=A0Dirk Baechle<=
br>=C2=A0 =C2=A0 12 =C2=A0Ivan Kravets<br>=C2=A0 =C2=A0 =C2=A09 =C2=A0Mathe=
w Robinson<br>=C2=A0 =C2=A0 =C2=A06 =C2=A0Paul Tipei<br>=C2=A0 =C2=A0 =C2=
=A01 =C2=A0Rob Boehne<br>=C2=A0 =C2=A0 =C2=A01 =C2=A0Robert Boehne<br>=C2=
=A0 =C2=A0 =C2=A01 =C2=A0Daniel<br>=C2=A0 =C2=A0 =C2=A01 =C2=A0Andrew Morro=
w<br>=C2=A0 =C2=A0 =C2=A01 =C2=A0Iosif Daniel Kurazs<br>=C2=A0 =C2=A0 =C2=
=A01 =C2=A0James Benton<br>=C2=A0 =C2=A0 =C2=A01 =C2=A0Jeremy Elson<br>=C2=
=A0 =C2=A0 =C2=A01 =C2=A0Konstantin Gonchar<br>=C2=A0 =C2=A0 =C2=A01 =C2=A0=
Andrii Doroshenko (Xrayez)</div>
_______________________________________________<br>
Scons-users mailing list<br>
<a href=3D"mailto:[email protected]" target=3D"_blank">Scons-users@scon=
s.org</a><br>
<a href=3D"https://pairlist4.pair.net/mailman/listinfo/scons-users" rel=3D"=
noreferrer" target=3D"_blank">https://pairlist4.pair.net/mailman/listinfo/s=
cons-users</a><br>
</blockquote></div>
_______________________________________________<br>
Scons-dev mailing list<br>
<a href=3D"mailto:[email protected]" target=3D"_blank">[email protected]=
g</a><br>
<a href=3D"https://pairlist2.pair.net/mailman/listinfo/scons-dev" rel=3D"no=
referrer" target=3D"_blank">https://pairlist2.pair.net/mailman/listinfo/sco=
ns-dev</a><br>
</blockquote></div>
_______________________________________________<br>
Scons-users mailing list<br>
<a href=3D"mailto:[email protected]" target=3D"_blank">Scons-users@scon=
s.org</a><br>
<a href=3D"https://pairlist4.pair.net/mailman/listinfo/scons-users" rel=3D"=
noreferrer" target=3D"_blank">https://pairlist4.pair.net/mailman/listinfo/s=
cons-users</a><br>
</blockquote></div></div>

--000000000000a5d2cd05a9b29a2a--

--===============7059182486807103921==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Scons-dev mailing list
[email protected]
https://pairlist2.pair.net/mailman/listinfo/scons-dev

--===============7059182486807103921==--