Re: Unexpected messge with configure
Bill Deegan <[email protected]>
| Newsgroups | gmane.comp.programming.tools.scons.user |
|---|---|
| Message-ID | <CAEyG4CH9dp=bBnxE7a0EVfAO4m7_+4weeZCeVpWOEKLWzwM2ig@mail.gmail.com> |
Should we change the messaging? -Bill On Fri, Sep 7, 2018 at 2:15 PM Bill Deegan <[email protected]> wrote: > Jason, > > That seems reasonable, but maybe not simple.. > > _Bill > > On Fri, Sep 7, 2018 at 2:10 PM Jason Kenny <[email protected]> wrote: > >> My first thoughts are that if we can tell if the result is cached to >> return that value. If there are no cached values do the current behavior. I >> am not sure how hard this would be however at the moment. >> ideally the best behavior I think might be >> >> - configure item has no cached value. Error as we currently do >> - configure item is cached, return the cached value >> - if we can detect that it has changed and would normally re-execute >> print a warning message that this is the case and note that the result of >> the build may change when it really runs >> - Not sure what to do with the cases of configuring items that >> don't cache ( such as custom functions that the user might have defined in >> a certain way ). >> >> Jason >> ------------------------------ >> *From:* Scons-users <[email protected]> on behalf of Bill >> Deegan <[email protected]> >> *Sent:* Friday, September 7, 2018 12:28 PM >> *To:* SCons users mailing list >> *Subject:* Re: [Scons-users] Unexpected messge with configure >> >> Jason, >> >> I'd say it's not a known issue, it's expected behavior. >> See the docstring for the exception in question. >> >> What do you think SCons should do in this case? >> The dry run would likely be affected by the results of any configure >> checks which might write a file or run a process (both things which scons >> is not supposed to do with --dry-run), so it's likely not possible to do a >> dry-run with configure checks which write to the filesystem? >> >> -Bill >> >> class ConfigureDryRunError(SConfError): >> """Raised when a file or directory needs to be updated during a Configure >> process, but the user requested a dry-run""" >> def __init__(self,target): >> if not isinstance(target, SCons.Node.FS.File): >> msg = 'Cannot create configure directory "%s" within a dry-run.' % str >> (target) >> else: >> msg = 'Cannot update configure test "%s" within a dry-run.' % str(target) >> SConfError.__init__(self,msg) >> >> >> On Fri, Sep 7, 2018 at 1:20 PM Bill Deegan <[email protected]> >> wrote: >> >> Mats, >> >> How long does: >> scons --help non-existant-target >> Take? >> >> -Bill >> >> On Fri, Sep 7, 2018 at 12:26 PM Mats Wichmann <[email protected]> wrote: >> >> On 09/07/2018 09:55 AM, Jason Kenny wrote: >> > I was adding some configure logic to a build I am working on. When >> doing a dry run i now get this error: >> > >> > scons: *** Cannot update configure test ".sconf_temp/conftest_0" within >> a dry-run. >> > File "./../scons-3.0.1/SCons/Script/SConscript.py", line 614, in >> __call__ >> > >> > Is this a known issue with using configure in scons? >> >> I've run into it (you'll find my name on such questions in the mailing >> list archive, afair). >> >> When you stop and think about it, running a configure test which means >> compiling code sort of doesn't fit the definition of "dry run", though. >> >> this is a gray area to my way of thinking. steps like cleaning, getting >> help, and doing a dry-run are places where you don't want external work >> to happen, just have scons go through the rules. but sometimes you >> don't know what all the dependencies actually are before you've run some >> of those steps. >> >> we'll wait for the actual experts to pipe up :) >> >> ====== >> Aside: >> on the project I'm trying to gradually bend into shape (it had lived for >> a couple of years before I came around), which uses a variant directory >> build, starting with the variant directory completely absent, "scons >> --help" takes seven seconds, and leaves a variant directory with 12 >> object files and four libraries built. I *KNOW* that's wrong, but I >> haven't yet figured out how to fix it without either breaking >> everything, or special-casing stuff all over the place like >> >> if not env.GetOption('help') and not env.GetOption('clean'): >> >> guess we could put GetOption('dry-run') in that list too (would we have >> to include all of the variants of that name? -n, --no-exec, >> --just-print, --dry-run, --recon) >> >> with 200+ sconscripts, adding those cases is not appealing. >> >> _______________________________________________ >> Scons-users mailing list >> [email protected] >> https://pairlist4.pair.net/mailman/listinfo/scons-users >> <https://nam03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpairlist4.pair.net%2Fmailman%2Flistinfo%2Fscons-users&data=02%7C01%7C%7C9710a3affd9d4dfcc70d08d614e76e4f%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636719381543572547&sdata=QVADywe8YsHd4BMjUt2rj1L%2F2NA3Sku%2F1LN9Sun12vo%3D&reserved=0> >> >> _______________________________________________ >> Scons-users mailing list >> [email protected] >> https://pairlist4.pair.net/mailman/listinfo/scons-users >> > _______________________________________________ Scons-users mailing list [email protected] https://pairlist4.pair.net/mailman/listinfo/scons-users