[Scons-users] Possible python 3 issue?

Bill Deegan bill at baddogconsulting.com
Wed Oct 16 14:59:26 EDT 2019


Peter,

The change is in lots of container like things in py3..
And I've been bitten many times myself. :)

When I saw the repr <map.... > in the output, I pretty much knew what to
look for at that point.
Though perhaps there's some value in handling this (views in py3)  in
scons..


On Wed, Oct 16, 2019 at 11:50 AM Peter Diener <diener at cct.lsu.edu> wrote:

> Thanks a lot, Bill. That fixes it for me as well. Both in the test case
> and in my larger software project.
>
> I found the code example for finding the module path online when I
> decided to switch to variantdir. I don't remember if the example used
> duplicate=0 or not, so I don't know if the map was necessary in that
> case.
>
> Obviously, I have not done enough python 3 programming to know that
> there was such a subtle difference in the behavior of map.
>
> Cheers,
>
>    Peter
>
> On Wednesday 2019-10-16 13:21, Bill Deegan wrote:
>
> >Date: Wed, 16 Oct 2019 13:21:28
> >From: Bill Deegan <bill at baddogconsulting.com>
> >Reply-To: SCons users mailing list <scons-users at scons.org>
> >To: SCons users mailing list <scons-users at scons.org>
> >Subject: Re: [Scons-users] Possible python 3 issue?
> >
> >Peter,
> >
> >If you change line 26 in src/SConscript to the following it will work:
> >    # Return the list of module paths
> >    return list(buildmodpath)
> >
> >The issue is you're assigning *PATH = map().. which is fine in py27, but
> in
> >py3, you get a view into the map. (It does lazyier evaluation).
> >So by wrapping with list() you get a normal list and everything works
> >fine...
> >
> >In fact.. I don't think you actually need the map.. (which you shouldn't
> as
> >with duplicate=0 it'd have to include the build and src versions of the
> >paths you specify)
> >If I change the return to return modpath, it seems to build fine as well.
> >
> >-Bill
> >
> >
> >On Wed, Oct 16, 2019 at 10:26 AM Bill Deegan <bill at baddogconsulting.com>
> >wrote:
> >      so sounds like a scanner issue then.. could it be using
> >      get_contents, instead of get_text_contents?
> >
> >On Wed, Oct 16, 2019 at 9:29 AM Mats Wichmann <mats at wichmann.us>
> >wrote:
> >      On 10/16/19 10:04 AM, Peter Diener wrote:
> >      > Hi,
> >      >
> >      > I have been successfully using scons 3.1.0 with python
> >      2.7.12 to build a
> >      > mostly Fortran based software project on Linux (multiple
> >      distributions).
> >      > I have the source tree separated from the build
> >      directory and are
> >      > therefore using variantdir and an SConscript file.
> >      Recently I tried to
> >      > run this with python 3.7.4 and found that it did not
> >      work as scons
> >      > failed to correctly find the dependencies on module
> >      files.
> >      >
> >      > I was able to reproduce this with a smaller test example
> >      that mimics the
> >      > setup in my larger software project. I have attached a
> >      zip file with
> >      > that source tree as well as build log files (in
> >      build_log.2.7.12 and
> >      > build_log.3.7.4) with all errors and output when
> >      building with
> >      > scons --tree=all. As can be seen from the build log
> >      files, when building
> >      > with python 3, scons does not seem to find the
> >      dependencies of the main
> >      > program on the module files.
> >      >
> >      > I have also tried with the latest release version of
> >      scons 3.1.1 with
> >      > the same results. It works with python 2 but not with
> >      python 3.
> >      >
> >      > So my question is: am I doing something wrong in my
> >      SConstruct and
> >      > SConscript files that just happens to work with python 2
> >      and not with
> >      > python 3? Or is this a problem with scons and python 3?
> >
> >      Possibly a bit of both.  There's an existing scons issue
> >      that points out
> >      some weakness in submodule support (#3366), and given that
> >      Fortran isn't
> >      the most heavily used language in the scons universe,
> >      there may still be
> >      untested code paths in the conversion to Python 3, that
> >      don't get
> >      exercised by what's in the test suite (there are some
> >      fairly new tests
> >      in that area, which you know since you contributed there
> >      :) )
> >      _______________________________________________
> >      Scons-users mailing list
> >      Scons-users at scons.org
> >      https://pairlist4.pair.net/mailman/listinfo/scons-users
> >
> >
> >
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> https://pairlist4.pair.net/mailman/listinfo/scons-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20191016/e27d995d/attachment.html>


More information about the Scons-users mailing list