[Scons-dev] Cross-language support

Jason Kenny dragon512 at live.com
Wed Jul 29 22:05:15 EDT 2015


Ya I see this...

So I trying to take a little time tonight and figure out what happens.. Could use some help.

I currently looking at test/CPPSUFFIXES.py 

This fails at line 107. From what I can tell the test expects output of

C:\Python27\python.exe mycc.py test1.o test1.c

but instead we get 

C:\Python27\python.exe mycc.py test1.o test1.c
Install file: "test1.c" as "test1_c"
Install file: "test1.h" as "test1_h"

This happens because foo.h was changed causing these files to be copied again.

So problems I have with this test.

1) no one would copy headers that depend on a header not passed to the install area. I am not sure if we should treat <> different from “” includes. It a common practice to use “” for headers in your library and <> for stuff outside your library. I don’t this really helps either way
2) the copy/install builder does not generate new file if the source is different. What we have here is a good scanner that would do the right thing if the “binary” needs to be rebuilt, but redundant is the copy has to happen. The issue in a way is that SCons makes the installed test1_c out of date because foo.h is out of date, when in fact this is a case in which we would want to update logic to care more about the csig of the source being the same as what is stored and not doing anything as technically this is correct behavior for copy like builders and ignoring that the scanner header is out of date.

I see few solutions to this:

1) we say current behavior is correct and update the test.
2) we make a change to allow a install/copy builder to say the scanner items are Required() which remove the Depends() state
3) we change builder to apply a custom sig check for the install nodes to ignore that a file dependent from the scanner.
4) remove the scanner from the install builder as we only want to copy files that change

I lean toward 4) logic given I how I understand the CCopy builder in Parts works. and that the install builder for the most part is a copy builder that adds nodes to a list to be used by the Scons version of the packaging builders.

Jason


From: William Blevins 
Sent: Wednesday, July 29, 2015 7:19 PM
To: SCons developer list 
Subject: Re: [Scons-dev] Cross-language support

Jason.


FYI.  The failing tests you listed match the list from June. The action-test.py may be new.

https://bitbucket.org/scons/scons/pull-requests/237/issue-2264-cross-language-scanner-support/diff#comment-7323143


V/R,

William


On Wed, Jul 29, 2015 at 8:16 PM, William Blevins <wblevins001 at gmail.com> wrote:

  Jason,


  As previously stated in the pull request comments, I expect some tests to fail currently because of the recursive header install issue (topic #1): <lang>SUFFIXES, HeaderInstall.py.  The other tests may or may not be related.


  There is more value in looking at those tests first.  It may also be valuable to go back 3-4 commits to the closest ancestor of the default branch and run tests there, so that we can see if some of the tests failed previously.  Also, if we think its a problem of the current location of that divergent head, then we can see if a rebase fixes some of them. 


  V/R,

  William


  On Wed, Jul 29, 2015 at 7:09 PM, Jason Kenny <dragon512 at live.com> wrote:

    ok not any better...


    Failed the following 16 tests:
            test\Batch\action-changed.py
            test\CPPSUFFIXES.py
            test\DSUFFIXES.py
            test\Fortran\FORTRANSUFFIXES.py
            test\HeaderInstall.py
            test\MSVS\vs-9.0-exec.py
            test\Win32\mingw.py
            test\exitfns.py
            test\implicit\IMPLICIT_COMMAND_DEPENDENCIES.py
            test\import.py
            test\long-lines\signature.py
            test\scons-time\run\config\python.py
            test\scons-time\run\option\python.py
            test\sconsign\script\SConsignFile.py
            test\sconsign\script\Signatures.py
            test\sconsign\script\no-SConsignFile.py

    I would need to dig down to see what is failing and why
    Jason


    From: Jason Kenny 
    Sent: Wednesday, July 29, 2015 5:38 PM
    To: SCons developer list 
    Subject: Re: [Scons-dev] Cross-language support

    ok I have it fixed... I am rerunning the tests now
    Jason

    From: Jason Kenny 
    Sent: Wednesday, July 29, 2015 5:30 PM
    To: SCons developer list 
    Subject: Re: [Scons-dev] Cross-language support

    I must have messed up. I only see debugCount and JniHeaderDir bookmarks at the moment.

    Jason

    From: William Blevins 
    Sent: Wednesday, July 29, 2015 4:50 PM
    To: SCons developer list 
    Subject: Re: [Scons-dev] Cross-language support

    That's a SCons fork.  Not an HG branch (in case its a terminology problem).  Make sure you are using the CrossLanguage bookmark.

    V/R,
    William

    On Wed, Jul 29, 2015 at 5:45 PM, Jason Kenny <dragon512 at live.com> wrote:

      branch SCons_20150323 

      I can will setup from scratch again and try again.

      Jason

      From: William Blevins 
      Sent: Wednesday, July 29, 2015 4:38 PM
      To: SCons developer list 
      Subject: Re: [Scons-dev] Cross-language support

      Jason,

      Are you sure you are using the correct commit revision?

      None of those tests are failing on my Linux distro, and I haven't modified any of those tests either.  Plus, tests that I am expecting to fail are apparently passing.

      V/R,
      William

      On Wed, Jul 29, 2015 at 5:06 PM, Jason Kenny <dragon512 at live.com> wrote:

        So a quick pass of the tests has these failures

        Failed the following 15 tests:
                test\Batch\action-changed.py
                test\MSVS\vs-9.0-exec.py
                test\Win32\mingw.py
                test\exitfns.py
                test\implicit\IMPLICIT_COMMAND_DEPENDENCIES.py
                test\import.py
                test\long-lines\signature.py
                test\option\debug-count.py
                test\option\debug-multiple.py
                test\option\debug-objects.py
                test\scons-time\run\config\python.py
                test\scons-time\run\option\python.py
                test\sconsign\script\SConsignFile.py
                test\sconsign\script\Signatures.py
                test\sconsign\script\no-SConsignFile.py

        From: Jason Kenny 
        Sent: Wednesday, July 29, 2015 2:32 PM
        To: SCons developer list 
        Subject: Re: [Scons-dev] Cross-language support

        Ok let me update the branch and re-run everything.

        Jason

        From: William Blevins 
        Sent: Wednesday, July 29, 2015 10:30 AM
        To: SCons developer list 
        Subject: Re: [Scons-dev] Cross-language support

        Jason,

        I'm not sure.  I remember that you were helping me look into the recursive Install behavior.  Plus, possible parts incompatibility?

        I haven't ran the tests on a windows box at all.  I don't expect anything new, but it should be done before it ships :)

        V/R,
        William

        On Wed, Jul 29, 2015 at 8:44 AM, Jason Kenny <dragon512 at live.com> wrote:

          Which MS toolchain on windows do we need tested? I can do a test run this afternoon.

          Jason

          From: William Blevins 
          Sent: Wednesday, July 29, 2015 1:11 AM
          To: SCons developer list 
          Subject: Re: [Scons-dev] Cross-language support

          Happy with it*


          Until the review is complete, and I can perhaps get a few more guinea pigs to try it out, it's hard to make a concrete projection. I have 3 items listed out that need to be given a thumbs up/down at a minimum:


          * Item #1 is still mostly outstanding.  I'm not sure how to address, please see the discussion Jason and I started a few weeks ago under the pull request comments.


          * Item #2 requires no changes (to my knowledge), but someone with more QT knowledge may say otherwise.

          * I may already have most of the patch for Item #3 (IE. no scanner for key) based on today's feedback.


          I also still need to request test runs on Windows, and for toolchains that I may not have installed or instructions to install them (EG. D).


          V/R,

          William


          On Wed, Jul 29, 2015 at 1:58 AM, William Blevins <wblevins001 at gmail.com> wrote:

            As soon as we are happen with it :)


            On Wed, Jul 29, 2015 at 12:30 AM, Bill Deegan <bill at baddogconsulting.com> wrote:

              O.k. let me push 2.3.5 with the visual studio 2015 stuff.

              Then we'll changed to 2.4 merge slots. stabilize. release.

              Then this code? (2.5?)


              -Bill


              On Tue, Jul 28, 2015 at 6:33 PM, Jason Kenny <dragon512 at live.com> wrote:

                I have been using the slots drop for a while with Parts. I think it is ready. It does have a notable improvement in speed and memory size. I would before getting this out as officially earlier than later.

                Jason

                From: William Blevins 
                Sent: Tuesday, July 28, 2015 8:31 PM
                To: Dirk Bächle ; SCons developer list 
                Subject: Re: [Scons-dev] Cross-language support



                On Tue, Jul 28, 2015 at 7:16 PM, Dirk Bächle <tshortik at gmx.de> wrote:

                  Hi guys,

                  sorry for chiming in so late.

                  On 28.07.2015 23:44, Gary Oberbrunner wrote:

                    Yes, that's how we've done it in the past.  Sounds like doing it at the same time as slots would be perfect.



                  Doing this in parallel with the "slots" change sounds good to me too. +1


                I'm not opposed to releasing in the same update as slots, but since the cross language code reviews haven't been finished, I don't want to delay slots since it is ready now.


                The pessimist in me as sees doing two major enhancements in the same release as higher risk; I don't foresee any issues, but its worth the thought if the release overhead isn't too bad. 




                    -- Gary

                    On Tue, Jul 28, 2015 at 2:01 PM, Bill Deegan <bill at baddogconsulting.com <mailto:bill at baddogconsulting.com>> wrote:

                        Gary,

                        For such a change we should bump the second digit?
                        2.4?

                        I agree we should not turn down a change because it will cause rebuilds where the past didn't as long as it is now more correct
                        (which it should be with this change).


                  Yes, "forward" is the way to go. ;)


                        Also agree we should be verbose in our notification of the impacts of the new change to avoid (as much as we can) "surprises".



                  I think (better: hope) we did a good enough job for the "slots" stuff on this. For the scanner changes, I see them more like a fix...so a single announcement should be sufficient?

                  Finally, and just in case I haven't done so already, I'd like to thank William for all the work he's done on this issue. I couldn't help as much as I would've liked, but with Gary's support you tackled this down and brought it to a good end. Kudos to you...bravo!



                Truly appreciated.  I have spent a lot of time on this issue despite what one might expect from the number of lines of code.

                It was honestly my first time working in a "real" python environment outside of scripting, and the SCons code base is rather complex.  It instills me greater appreciation for the work that has already done.


                I also want to thank everyone here for their help past and future, but don't pat me on the back until its done. I might get lazy :)


                 

                  Best regards,

                  Dirk 


                  _______________________________________________
                  Scons-dev mailing list
                  Scons-dev at scons.org
                  https://pairlist2.pair.net/mailman/listinfo/scons-dev



----------------------------------------------------------------
                _______________________________________________
                Scons-dev mailing list
                Scons-dev at scons.org
                https://pairlist2.pair.net/mailman/listinfo/scons-dev


                _______________________________________________
                Scons-dev mailing list
                Scons-dev at scons.org
                https://pairlist2.pair.net/mailman/listinfo/scons-dev




              _______________________________________________
              Scons-dev mailing list
              Scons-dev at scons.org
              https://pairlist2.pair.net/mailman/listinfo/scons-dev





----------------------------------------------------------------------
          _______________________________________________
          Scons-dev mailing list
          Scons-dev at scons.org
          https://pairlist2.pair.net/mailman/listinfo/scons-dev


          _______________________________________________
          Scons-dev mailing list
          Scons-dev at scons.org
          https://pairlist2.pair.net/mailman/listinfo/scons-dev




------------------------------------------------------------------------
        _______________________________________________
        Scons-dev mailing list
        Scons-dev at scons.org
        https://pairlist2.pair.net/mailman/listinfo/scons-dev


------------------------------------------------------------------------
        _______________________________________________
        Scons-dev mailing list
        Scons-dev at scons.org
        https://pairlist2.pair.net/mailman/listinfo/scons-dev


        _______________________________________________
        Scons-dev mailing list
        Scons-dev at scons.org
        https://pairlist2.pair.net/mailman/listinfo/scons-dev




--------------------------------------------------------------------------
      _______________________________________________
      Scons-dev mailing list
      Scons-dev at scons.org
      https://pairlist2.pair.net/mailman/listinfo/scons-dev


      _______________________________________________
      Scons-dev mailing list
      Scons-dev at scons.org
      https://pairlist2.pair.net/mailman/listinfo/scons-dev




----------------------------------------------------------------------------
    _______________________________________________
    Scons-dev mailing list
    Scons-dev at scons.org
    https://pairlist2.pair.net/mailman/listinfo/scons-dev


----------------------------------------------------------------------------
    _______________________________________________
    Scons-dev mailing list
    Scons-dev at scons.org
    https://pairlist2.pair.net/mailman/listinfo/scons-dev


----------------------------------------------------------------------------
    _______________________________________________
    Scons-dev mailing list
    Scons-dev at scons.org
    https://pairlist2.pair.net/mailman/listinfo/scons-dev


    _______________________________________________
    Scons-dev mailing list
    Scons-dev at scons.org
    https://pairlist2.pair.net/mailman/listinfo/scons-dev






--------------------------------------------------------------------------------
_______________________________________________
Scons-dev mailing list
Scons-dev at scons.org
https://pairlist2.pair.net/mailman/listinfo/scons-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist2.pair.net/pipermail/scons-dev/attachments/20150729/be9cde3d/attachment-0001.html>


More information about the Scons-dev mailing list