Re: [Scons-users] SCons 4.0.0 Released

Bill Deegan <bill-cJFiu+DHMVC5azolltMz9laTQe2KTcn/@public.gmane.org> Sun, 5 Jul 2020 08:54:52 -0700
Newsgroups gmane.comp.programming.tools.scons.devel
Message-ID <CAEyG4CE5jcLh-J0tgF9E20vePMRik2tyVxXdFAbdeUy=U-q4qQ@mail.gmail.com>
--===============7430716228720174744==
Content-Type: multipart/alternative; boundary="0000000000000f3e3405a9b3c850"

--0000000000000f3e3405a9b3c850
Content-Type: text/plain; charset="UTF-8"

Thanks!
Well at least there's an easy work around for now.

On Sun, Jul 5, 2020 at 7:30 AM Eric Fahlgren <[email protected]> wrote:

> 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
>>
> _______________________________________________
> Scons-dev mailing list
> [email protected]
> https://pairlist2.pair.net/mailman/listinfo/scons-dev
>

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

<div dir=3D"ltr"><div>Thanks!</div><div>Well at least there&#39;s an easy w=
ork around for now.<br></div></div><br><div class=3D"gmail_quote"><div dir=
=3D"ltr" class=3D"gmail_attr">On Sun, Jul 5, 2020 at 7:30 AM Eric Fahlgren =
&lt;<a href=3D"mailto:[email protected]">[email protected]</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 di=
r=3D"ltr"><div dir=3D"ltr" class=3D"gmail_attr"><div class=3D"gmail_default=
" style=3D"font-family:arial,sans-serif;color:rgb(0,0,0)">Bill,</div><div c=
lass=3D"gmail_default" style=3D"font-family:arial,sans-serif;color:rgb(0,0,=
0)"><br></div><div class=3D"gmail_default" style=3D"font-family:arial,sans-=
serif;color:rgb(0,0,0)">Issue filed along with some further experiments.=C2=
=A0 <a href=3D"https://github.com/SCons/scons/issues/3736" target=3D"_blank=
">https://github.com/SCons/scons/issues/3736</a></div><div class=3D"gmail_d=
efault" style=3D"font-family:arial,sans-serif;color:rgb(0,0,0)"><br></div><=
div class=3D"gmail_default" style=3D"font-family:arial,sans-serif;color:rgb=
(0,0,0)">I vaguely remember playing with the case-sensitivity options in Wi=
ndows 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 man=
ner there, too.</div><div class=3D"gmail_default" style=3D"font-family:aria=
l,sans-serif;color:rgb(0,0,0)"><br></div><div class=3D"gmail_default" style=
=3D"font-family:arial,sans-serif;color:rgb(0,0,0)">Eric</div><div class=3D"=
gmail_default" style=3D"font-family:arial,sans-serif;color:rgb(0,0,0)"><br>=
</div>On Sat, Jul 4, 2020 at 9:48 PM Bill Deegan &lt;<a href=3D"mailto:bill=
@baddogconsulting.com" target=3D"_blank">bill-cJFiu+DHMVC5azolltMz9laTQe2KTcn/@public.gmane.org</a>&gt; =
wrote:<br></div><div class=3D"gmail_quote"><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>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 rewritten for 4.0.0 so I&#39;=
m not surprised there&#39;s an issue or two in the field.</div><div>(the pr=
evious code was written before there was a pip... ;) and then duct-taped an=
d 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>Hoping to take a break tomo=
rrow and I&#39;ll look at it on monday.. unless someone else feels like tak=
ing a wack at fixing that.. ;)</div><div><br></div><div>-Bill<br></div></di=
v><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On S=
at, Jul 4, 2020 at 7:41 PM Eric Fahlgren &lt;<a href=3D"mailto:ericfahlgren=
@gmail.com" target=3D"_blank">[email protected]</a>&gt; wrote:<br></di=
v><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;borde=
r-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div s=
tyle=3D"font-family:arial,sans-serif;color:rgb(0,0,0)">First, Bill and Mats=
 and everyone else, thanks for your continued development of SCons!</div><d=
iv style=3D"font-family:arial,sans-serif;color:rgb(0,0,0)"><br></div><div s=
tyle=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 issue, but when I ran &qu=
ot;scons some_target&quot;, I got this:</div><div style=3D"font-family:aria=
l,sans-serif;color:rgb(0,0,0)"><br></div><div style=3D"font-family:arial,sa=
ns-serif;color:rgb(0,0,0)">Traceback (most recent call last):<br>=C2=A0 Fil=
e &quot;c:\program files\python38\lib\runpy.py&quot;, line 194, in _run_mod=
ule_as_main<br>=C2=A0 =C2=A0 return _run_code(code, main_globals, None,<br>=
=C2=A0 File &quot;c:\program files\python38\lib\runpy.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"font-family:arial,sans-ser=
if;color:rgb(0,0,0)"><br></div><div style=3D"font-family:arial,sans-serif;c=
olor:rgb(0,0,0)">It turns out that pip didn&#39;t name the installation dir=
ectory &quot;site-packages/<b>SCons</b>&quot;, but rather all-lower-case &q=
uot;site-packages/<b>scons</b>&quot; (as it was with 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 clean, reinstalled 4.0.0 an=
d everything was fine.=C2=A0 It appears that pip is not removing the old in=
stallation completely and leaving the top-level directory there with improp=
er character case, but only when it does an &quot;install 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"gmail_quote"><div dir=3D"l=
tr" 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@baddogcons=
ulting.com</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">=C2=A0 A new SCons release, 4.0.0, is now avail=
able<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"_bla=
nk">https://scons.org/pages/download.html</a><br><br>=C2=A0 Here is a summa=
ry of the changes since 3.1.2:<br><br>=C2=A0 NEW FUNCTIONALITY<br><br>=C2=
=A0 =C2=A0 - Added support for scanning multiple entries in an action strin=
g if<br>=C2=A0 =C2=A0 =C2=A0 IMPLICIT_COMMAND_DEPENDENCIES is set to 2 or &=
#39;all&#39;. This enables more thorough<br>=C2=A0 =C2=A0 =C2=A0 action sca=
nning 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 th=
e 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 to 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 th=
e value can&#39;t be converted to a string or if having 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 characters to draw t=
he dependency tree.<br>=C2=A0 =C2=A0 - Add CompilationDatabase() builder in=
 compilation_db tool. Contributed by MongoDB.<br>=C2=A0 =C2=A0 =C2=A0 Setti=
ng COMPILATIONDB_USE_ABSPATH to True|False controls whether the files are a=
bsolute or relative<br>=C2=A0 =C2=A0 =C2=A0 paths.=C2=A0 Address Issue #369=
3 and #3694 found during development.<br>=C2=A0 =C2=A0 - Extended `Environm=
ent.Dump()` to select a format to serialize construction variables (pretty,=
 json).<br>=C2=A0 =C2=A0 - New conditional C Scanner (`SCons.Scanner.C.CCon=
ditionalScanner()`)<br>=C2=A0 =C2=A0 =C2=A0 which interprets C/C Preprocess=
or conditional syntax (#ifdef, #if, #else,<br>=C2=A0 =C2=A0 =C2=A0 #elif, #=
define, etc.)<br>=C2=A0 =C2=A0 - Experimental New Feature: Enable caching M=
SVC 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 SCons will cache the r=
esults of past calls to vcvarsall.bat to<br>=C2=A0 =C2=A0 =C2=A0 a file; in=
tegrates with existing memoizing of such vars.<br>=C2=A0 =C2=A0 - Prelimina=
ry Python 3.9 support.<br><br>=C2=A0 DEPRECATED FUNCTIONALITY<br><br>=C2=A0=
 =C2=A0 - Drop support for Python 2.7. SCons will be Python 3.5+ going forw=
ard.<br>=C2=A0 =C2=A0 - Remove deprecated SourceCode()<br><br>=C2=A0 CHANGE=
D/ENHANCED EXISTING FUNCTIONALITY<br><br>=C2=A0 =C2=A0 - Added check for SO=
NAME in environment to setup symlinks correctly (Github Issue #3246)<br>=C2=
=A0 =C2=A0 - Resolve Issue #3248 - Removing &#39;-Wl,-Bsymbolic&#39; from S=
HLIBVERSIONFLAGS<br>=C2=A0 =C2=A0 =C2=A0 NOTE: If your build depends on the=
 above you must now add to your SHLIBVERSIONFLAGS<br>=C2=A0 =C2=A0 - Micros=
oft Visual Studio - switch to using uuid module to generate GUIDs rather th=
an 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 following builders&#39; output=
. If your build depends on the output of these builders<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 S=
tudio solution/project generation code to add support<br>=C2=A0 =C2=A0 =C2=
=A0 for a per-variant cppflags. Intellisense can be affected by cppflags,<b=
r>=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 ta=
rget. SCons will append /Zc:__cplusplus<br>=C2=A0 =C2=A0 =C2=A0 to the proj=
ect&#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 c=
ppflags.<br>=C2=A0 =C2=A0 - Allow user specified location for vswhere.exe s=
pecified 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 protocol 5 whose main advan=
tage 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 .sconsign.dblite. You will end u=
p with a full rebuild.<br>=C2=A0 =C2=A0 - MSVC updates: When there are mult=
iple product installations (e.g, Community and<br>=C2=A0 =C2=A0 =C2=A0 Buil=
d Tools) of MSVC 2017 or MSVC 2019, an Enterprise, Professional,<br>=C2=A0 =
=C2=A0 =C2=A0 or Community installation will be selected before a Build Too=
ls 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 - MSV=
C updates: When there are multiple product installations 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;14.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 Powershell to default env<br>=
=C2=A0 =C2=A0 =C2=A0 (used to call telemetry script).<br>=C2=A0 =C2=A0 - Re=
named as.py to asm.py and left redirecting tool. =C2=A0&#39;as&#39; is a re=
served word and so<br>=C2=A0 =C2=A0 =C2=A0 changing the name was required a=
s we wanted to import symbols for use in compilation_db<br>=C2=A0 =C2=A0 =
=C2=A0 tool.<br>=C2=A0 =C2=A0 - Add no_progress (-Q) option as a set-able o=
ption. However, setting it in the<br>=C2=A0 =C2=A0 =C2=A0 SConstruct/SConsc=
ript will still cause &quot;scons: Reading SConscript files ...&quot; to be=
<br>=C2=A0 =C2=A0 =C2=A0 printed, since the option is not set when the buil=
d scripts first get read.<br>=C2=A0 =C2=A0 - Docbook builder provides a fal=
lback if lxml fails to generate<br>=C2=A0 =C2=A0 =C2=A0 a document with tos=
tring().<br>=C2=A0 =C2=A0 - SubstitutionEnvironment and OverrideEnvironment=
 now have keys()<br>=C2=A0 =C2=A0 =C2=A0 and values() methods to better emu=
late a dict (already had items()).<br><br>=C2=A0 FIXES<br><br>=C2=A0 =C2=A0=
 - Cleanup dangling symlinks before running builders (Issue #3516)<br>=C2=
=A0 =C2=A0 - Fixed usage of abspath and path for RootDir objects on Windows=
. Previously<br>=C2=A0 =C2=A0 =C2=A0 env.fs.Dir(&quot;T:&quot;).abspath wou=
ld return &quot;T:\T:&quot; and now it correctly returns &quot;T:&quot;.<br=
>=C2=A0 =C2=A0 - Fix Issue #3469 - Fixed improper reuse of temporary and co=
mpiled files by Configure when changing<br>=C2=A0 =C2=A0 =C2=A0 the order a=
nd/or number of tests.=C2=A0 This is done by using the hash of the generate=
d 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 (For example)<br>=C2=A0 =C2=
=A0 =C2=A0 - conftest_68b375d16e812c43e6d72d6e93401e7c_0.c,<br>=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 conftest_68b375d16e812c43e6d72d6e93401e7c_0_5713f09fc605f=
46b2ab2f7950455f187.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_68b375d16e812c43e6d72d6e93401e7c_0_5713f09fc605f=
46b2ab2f7950455f187 (for executable)<br>=C2=A0 =C2=A0 - Updated documentati=
on toolchain to work properly under Python3, also<br>=C2=A0 =C2=A0 =C2=A0 r=
emoved libxslt support from the Docbook Tool. (issue #3580)<br>=C2=A0 =C2=
=A0 - Fix broken clang + MSVC 2019 combination by using MSVC configuration =
logic to<br>=C2=A0 =C2=A0 =C2=A0 propagate &#39;VCINSTALLDIR&#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 GH Issue #3480)<br=
>=C2=A0 =C2=A0 - Fix Github Issue #2904 - Provide useful error 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 complete the currently =
open one before creating another<br><br>=C2=A0 IMPROVEMENTS<br><br>=C2=A0 =
=C2=A0 - Improve performance of Subst by preventing unnecessary 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 preventing<br>=
=C2=A0 =C2=A0 =C2=A0 unnecessary calls to eval when a token is surrounded i=
n 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 recursion.<br><b=
r>=C2=A0 PACKAGING<br><br>=C2=A0 =C2=A0 - Resolve Issue #3451 and Issue #34=
50 - Rewrite SCons setup.py and packaging. Move script logic to entry point=
s so<br>=C2=A0 =C2=A0 =C2=A0 package can create scripts which use the corre=
ct version of Python.<br><br>=C2=A0 DOCUMENTATION<br><br>=C2=A0 =C2=A0 - Si=
gnificant rework of documentation: API docs are now generated<br>=C2=A0 =C2=
=A0 =C2=A0 using Sphinx; manpage and user guide now use more &quot;standard=
&quot;<br>=C2=A0 =C2=A0 =C2=A0 markup elements (which could facilitate late=
r 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 repos=
itory / website (<a href=3D"http://scons-cookbook.readthedocs.io" target=3D=
"_blank">scons-cookbook.readthedocs.io</a>).<br><br>=C2=A0 Thanks to the fo=
llowing contributors listed below for their contributions to this release.<=
br><br>git shortlog --no-merges -ns 3.1.2..HEAD<br>=C2=A0 =C2=A0290 =C2=A0W=
illiam 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=A0Mathew Robinson<br>=
=C2=A0 =C2=A0 =C2=A06 =C2=A0Paul Tipei<br>=C2=A0 =C2=A0 =C2=A01 =C2=A0Rob B=
oehne<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 Morrow<br>=C2=A0 =C2=A0=
 =C2=A01 =C2=A0Iosif Daniel Kurazs<br>=C2=A0 =C2=A0 =C2=A01 =C2=A0James Ben=
ton<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=A0Andrii 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>
_______________________________________________<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>

--0000000000000f3e3405a9b3c850--

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

--===============7430716228720174744==--