Re: [Scons-dev] [Scons-users] SCons 4.0.0 Released

2020-07-05 Thread Bill Deegan
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

2020-07-04 Thread Bill Deegan
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

2020-07-04 Thread Eric Fahlgren
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

2020-07-04 Thread Gary Oberbrunner
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