Re: [Scons-dev] [Scons-users] SCons 4.0.0 Released
Thanks! Well at least there's an easy work around for now. On Sun, Jul 5, 2020 at 7:30 AM Eric Fahlgren 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 > 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 >> 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 >>> 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 >>> 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
Re: [Scons-dev] [Scons-users] SCons 4.0.0 Released
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 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 > 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 > 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, >>
Re: [Scons-dev] [Scons-users] SCons 4.0.0 Released
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 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 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
Re: [Scons-dev] [Scons-users] SCons 4.0.0 Released
Congratulations! SCons 4.0!!! On Sat, Jul 4, 2020 at 6:57 PM Bill Deegan 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