On Linux I did not use the escaping function It seemed to make it worse. Popen has some code that does escaping.
>> Do we lose redirects with swapping in the Popen() ? I was using Popen as I could redirect. The current code might redirect, but there is no control over how it works that I understand… If you look at: https://bitbucket.org/sconsparts/parts/src/master/parts/part_logger.py you will see what is do. There is more code to support this and honestly there is some clean up to do. But it works correctly. There is basically a pipe redirector class that exists and is passed on to the stdout stderr pipes of Popen() each of these are running in a thread and do nothing but grab output that is then given to a reporter class ( this is the area of have some clean up to do) that allows all output to be written to the console and to go through the logger classes I have to output the text to a given log file ( in my case I have per component loggers ( ie for the commands that happen in a given component) and a global logger that has everything as it comes. The only effect this really has on the output is that -j builds will print whole lines of text, vs mixed up lines of text from different lines. Oh I also see I have an updated killtree functions to shut down better and a timeout value ( so a command does not lock up the build, which is great for running tests). I have an updated version of the kill logic I have to add to this in a different project of mine I need to sync with this one. Jason From: Scons-dev <[email protected]> On Behalf Of Bill Deegan Sent: Sunday, October 7, 2018 2:47 PM To: SCons developer list <[email protected]> Subject: Re: [Scons-dev] Subprocess.popen() on win32? On Sun, Oct 7, 2018 at 2:25 PM Jason Kenny <[email protected]<mailto:[email protected]>> wrote: I can see what I can do here. I have to make a new Drop of Parts first ( having a regression in my code I have to fix ) I don’t believe there should be any limitation. The only issue I believe I had was with moving to python 27 as there was a change from 26 in quote handling. However we are on 2.7 or better so this should not be an issue. Oh there was one other thing. I have to ignore the “escape” function that is passed in the SPAWN callback. It breaks with 2.7 on Window and Linux. I also removed the Scons override for the open call as it was messing up writing to the console device ( Plus I needed to override it to allow symbolic and hard links to work on win32) If we're using subprocess.popen() then is escaping needed on linux? Which lead to a question for me on do we have an official way in SCons to get the stdout and stderr text from an Action that was called. I don’t recall having this before and as such I used the SPAWN to help me add logging and colorized text in Parts. As far as I know there's currently no supported way to capture stderr or stdout from an action. (you can redirect in your command to a file). Do we lose redirects with swapping in the Popen() ? -Bill Jason From: Scons-dev <[email protected]<mailto:[email protected]>> On Behalf Of Bill Deegan Sent: Friday, October 5, 2018 12:44 PM To: SCons developer list <[email protected]<mailto:[email protected]>> Subject: Re: [Scons-dev] Subprocess.popen() on win32? Jason, Any limitations with doing this over the current code? Could you craft a pull request for this? -Bill On Fri, Oct 5, 2018 at 10:37 AM Jason Kenny <[email protected]<mailto:[email protected]>> wrote: Been using popen with parts via overriding SPAWN var since the start. +1 on having this be the default Jason Get Outlook for Android<https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2Fghei36&data=02%7C01%7C%7C2d46a6c59d684692660f08d62c8e6426%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636745387402640578&sdata=xQzJRpZrmVzLQdwF4iHn%2BJ%2B7PcEZ1QE1d6q5Gu41mlY%3D&reserved=0> ________________________________ From: Scons-dev <[email protected]<mailto:[email protected]>> on behalf of Bill Deegan <[email protected]<mailto:[email protected]>> Sent: Friday, October 5, 2018 10:32:50 AM To: SCons developer list Subject: Re: [Scons-dev] Subprocess.popen() on win32? Come now. Win32.py's spawn implementation was updated in 2012.. ;) If we universally switch to subprocess.Popen(), then we can safely chdir for non python function actions. But passing in the cwd argument. That seems likely to be useful.. -Bill On Fri, Oct 5, 2018 at 10:28 AM Russel Winder <[email protected]<mailto:[email protected]>> wrote: I shall be flippant in the hope of being humorous, yet with an element of possible truth: Perhaps no-one has bothered to update that bit of code in the last decade and a half? Did you mean subprocess.Popen? Worth noting that the API for subprocess changes from call* in earlier versions to run in later. Somewhat annoying for compatibility across many Python versions. On Fri, 2018-10-05 at 10:17 -0700, Bill Deegan wrote: > Greetings, > > Any reason we're not using subprocess.popen() on win32? > We're still using os.spawnve() which is known to have some threading issues. > https://bugs.python.org/issue6476<https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs.python.org%2Fissue6476&data=02%7C01%7C%7C2d46a6c59d684692660f08d62c8e6426%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636745387402640578&sdata=BdkwYzCHfKkLtCA9MKlerT3SCCvMnEIuzyNh3z%2BGkz8%3D&reserved=0> > > -Bill > _______________________________________________ > Scons-dev mailing list > [email protected]<mailto:[email protected]> > https://pairlist2.pair.net/mailman/listinfo/scons-dev<https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpairlist2.pair.net%2Fmailman%2Flistinfo%2Fscons-dev&data=02%7C01%7C%7C2d46a6c59d684692660f08d62c8e6426%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636745387402640578&sdata=2a9RsHGYmJEVs%2BmJmXdibUUM35S91bAniHyeD%2BNk%2BnU%3D&reserved=0> -- Russel. =========================================== Dr Russel Winder t: +44 20 7585 2200 41 Buckmaster Road m: +44 7770 465 077 London SW11 1EN, UK w: www.russel.org.uk<https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.russel.org.uk&data=02%7C01%7C%7C2d46a6c59d684692660f08d62c8e6426%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636745387402640578&sdata=aCR8VpuVx%2FrbPIYb59dC3IsW8AtfGumujeMNIX8IvsM%3D&reserved=0> _______________________________________________ Scons-dev mailing list [email protected]<mailto:[email protected]> https://pairlist2.pair.net/mailman/listinfo/scons-dev<https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpairlist2.pair.net%2Fmailman%2Flistinfo%2Fscons-dev&data=02%7C01%7C%7C2d46a6c59d684692660f08d62c8e6426%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636745387402796835&sdata=HIP65PCLvMytQ94%2FQxZ9BEvp9LWnL8YxgKVXlIZuPJU%3D&reserved=0> _______________________________________________ Scons-dev mailing list [email protected]<mailto:[email protected]> https://pairlist2.pair.net/mailman/listinfo/scons-dev<https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpairlist2.pair.net%2Fmailman%2Flistinfo%2Fscons-dev&data=02%7C01%7C%7C2d46a6c59d684692660f08d62c8e6426%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636745387402796835&sdata=HIP65PCLvMytQ94%2FQxZ9BEvp9LWnL8YxgKVXlIZuPJU%3D&reserved=0> _______________________________________________ Scons-dev mailing list [email protected]<mailto:[email protected]> https://pairlist2.pair.net/mailman/listinfo/scons-dev<https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpairlist2.pair.net%2Fmailman%2Flistinfo%2Fscons-dev&data=02%7C01%7C%7C2d46a6c59d684692660f08d62c8e6426%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636745387402796835&sdata=HIP65PCLvMytQ94%2FQxZ9BEvp9LWnL8YxgKVXlIZuPJU%3D&reserved=0>
_______________________________________________ Scons-dev mailing list [email protected] https://pairlist2.pair.net/mailman/listinfo/scons-dev
