* subtle weirdness when you combine "_append" with "+="?
@ 2016-08-16 14:02 Robert P. J. Day
2016-08-16 14:46 ` Ulf Magnusson
0 siblings, 1 reply; 8+ messages in thread
From: Robert P. J. Day @ 2016-08-16 14:02 UTC (permalink / raw)
To: OE Core mailing list
was about to submit a small number of patches to clean up redundancy
when people combine "_append" with "+=" (because it offends my
delicate sensibilities), and ran across this in oe-core,
unfs3_0.9.22.r497.bb:
DEPENDS_append_class-nativesdk += "flex-nativesdk"
uh, what?
most of the time, i assume the above doesn't hurt, it's just ...
silly. but normally, with "_append", you *need* to add the leading
space explicitly, and that's not being done above. so does that mean
that combining "_append" with "+=" *does* generate a leading space?
that just makes my head hurt -- the possibility that "_append" is
being used in a way that normally makes it fail, only to have "+="
step in and save the day. at which point "_append" saves processing
that until the end of parsing? yeesh.
thoughts?
rday
--
========================================================================
Robert P. J. Day Ottawa, Ontario, CANADA
http://crashcourse.ca
Twitter: http://twitter.com/rpjday
LinkedIn: http://ca.linkedin.com/in/rpjday
========================================================================
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: subtle weirdness when you combine "_append" with "+="? 2016-08-16 14:02 subtle weirdness when you combine "_append" with "+="? Robert P. J. Day @ 2016-08-16 14:46 ` Ulf Magnusson 2016-08-16 15:49 ` Robert P. J. Day 0 siblings, 1 reply; 8+ messages in thread From: Ulf Magnusson @ 2016-08-16 14:46 UTC (permalink / raw) To: Robert P. J. Day; +Cc: OE Core mailing list On Tue, Aug 16, 2016 at 4:02 PM, Robert P. J. Day <rpjday@crashcourse.ca> wrote: > > was about to submit a small number of patches to clean up redundancy > when people combine "_append" with "+=" (because it offends my > delicate sensibilities), and ran across this in oe-core, > unfs3_0.9.22.r497.bb: > > DEPENDS_append_class-nativesdk += "flex-nativesdk" > > uh, what? > > most of the time, i assume the above doesn't hurt, it's just ... > silly. but normally, with "_append", you *need* to add the leading > space explicitly, and that's not being done above. so does that mean > that combining "_append" with "+=" *does* generate a leading space? > that just makes my head hurt -- the possibility that "_append" is > being used in a way that normally makes it fail, only to have "+=" > step in and save the day. at which point "_append" saves processing > that until the end of parsing? yeesh. > > thoughts? By the point the += is handled, the override won't have been interpreted yet. My guess is that += fetches the value of the variable "DEPENDS_append_class-nativesdk", gets back the empty string, and adds a space followed by "flex-nativesdk" to that. The resulting " flex-nativesdk" is then interpreted as usual when the overrides are handled. You might like the note I added to https://www.yoctoproject.org/docs/2.2/bitbake-user-manual/bitbake-user-manual.html#override-style-operation-advantages by the way. :) Cheers, Ulf ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: subtle weirdness when you combine "_append" with "+="? 2016-08-16 14:46 ` Ulf Magnusson @ 2016-08-16 15:49 ` Robert P. J. Day 2016-08-16 15:56 ` Ulf Magnusson 0 siblings, 1 reply; 8+ messages in thread From: Robert P. J. Day @ 2016-08-16 15:49 UTC (permalink / raw) To: Ulf Magnusson; +Cc: OE Core mailing list On Tue, 16 Aug 2016, Ulf Magnusson wrote: > On Tue, Aug 16, 2016 at 4:02 PM, Robert P. J. Day <rpjday@crashcourse.ca> wrote: > > > > was about to submit a small number of patches to clean up redundancy > > when people combine "_append" with "+=" (because it offends my > > delicate sensibilities), and ran across this in oe-core, > > unfs3_0.9.22.r497.bb: > > > > DEPENDS_append_class-nativesdk += "flex-nativesdk" > > > > uh, what? > > > > most of the time, i assume the above doesn't hurt, it's just ... > > silly. but normally, with "_append", you *need* to add the leading > > space explicitly, and that's not being done above. so does that mean > > that combining "_append" with "+=" *does* generate a leading space? > > that just makes my head hurt -- the possibility that "_append" is > > being used in a way that normally makes it fail, only to have "+=" > > step in and save the day. at which point "_append" saves processing > > that until the end of parsing? yeesh. > > > > thoughts? > > By the point the += is handled, the override won't have been interpreted > yet. My guess is that += fetches the value of the variable > "DEPENDS_append_class-nativesdk", gets back the empty string, and > adds a space followed by "flex-nativesdk" to that. > > The resulting " flex-nativesdk" is then interpreted as usual when the > overrides are handled. > > You might like the note I added to > https://www.yoctoproject.org/docs/2.2/bitbake-user-manual/bitbake-user-manual.html#override-style-operation-advantages > by the way. :) that note is pretty much what i've been whining about for a long time. :-) in any event, when one sees something like the above: DEPENDS_append_class-nativesdk += "flex-nativesdk" what is the *proper* cleanup? rday -- ======================================================================== Robert P. J. Day Ottawa, Ontario, CANADA http://crashcourse.ca Twitter: http://twitter.com/rpjday LinkedIn: http://ca.linkedin.com/in/rpjday ======================================================================== ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: subtle weirdness when you combine "_append" with "+="? 2016-08-16 15:49 ` Robert P. J. Day @ 2016-08-16 15:56 ` Ulf Magnusson 2016-08-16 16:39 ` Khem Raj 0 siblings, 1 reply; 8+ messages in thread From: Ulf Magnusson @ 2016-08-16 15:56 UTC (permalink / raw) To: Robert P. J. Day; +Cc: OE Core mailing list On Tue, Aug 16, 2016 at 5:49 PM, Robert P. J. Day <rpjday@crashcourse.ca> wrote: > On Tue, 16 Aug 2016, Ulf Magnusson wrote: > >> On Tue, Aug 16, 2016 at 4:02 PM, Robert P. J. Day <rpjday@crashcourse.ca> wrote: >> > >> > was about to submit a small number of patches to clean up redundancy >> > when people combine "_append" with "+=" (because it offends my >> > delicate sensibilities), and ran across this in oe-core, >> > unfs3_0.9.22.r497.bb: >> > >> > DEPENDS_append_class-nativesdk += "flex-nativesdk" >> > >> > uh, what? >> > >> > most of the time, i assume the above doesn't hurt, it's just ... >> > silly. but normally, with "_append", you *need* to add the leading >> > space explicitly, and that's not being done above. so does that mean >> > that combining "_append" with "+=" *does* generate a leading space? >> > that just makes my head hurt -- the possibility that "_append" is >> > being used in a way that normally makes it fail, only to have "+=" >> > step in and save the day. at which point "_append" saves processing >> > that until the end of parsing? yeesh. >> > >> > thoughts? >> >> By the point the += is handled, the override won't have been interpreted >> yet. My guess is that += fetches the value of the variable >> "DEPENDS_append_class-nativesdk", gets back the empty string, and >> adds a space followed by "flex-nativesdk" to that. >> >> The resulting " flex-nativesdk" is then interpreted as usual when the >> overrides are handled. >> >> You might like the note I added to >> https://www.yoctoproject.org/docs/2.2/bitbake-user-manual/bitbake-user-manual.html#override-style-operation-advantages >> by the way. :) > > that note is pretty much what i've been whining about for a long > time. :-) in any event, when one sees something like the above: The intent of the note was to discourage use of '+=' together with _append, because it's redundant and potentially confusing. Do you think it fails (even in context)? :/ > > DEPENDS_append_class-nativesdk += "flex-nativesdk" > > what is the *proper* cleanup? I'd say the following: DEPENDS_append_class-nativesdk = " flex-nativesdk" Cheers, Ulf ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: subtle weirdness when you combine "_append" with "+="? 2016-08-16 15:56 ` Ulf Magnusson @ 2016-08-16 16:39 ` Khem Raj 2016-08-17 13:21 ` Robert P. J. Day 0 siblings, 1 reply; 8+ messages in thread From: Khem Raj @ 2016-08-16 16:39 UTC (permalink / raw) To: Ulf Magnusson; +Cc: OE Core mailing list [-- Attachment #1: Type: text/plain, Size: 2774 bytes --] > On Aug 16, 2016, at 8:56 AM, Ulf Magnusson <ulfalizer@gmail.com> wrote: > > On Tue, Aug 16, 2016 at 5:49 PM, Robert P. J. Day <rpjday@crashcourse.ca> wrote: >> On Tue, 16 Aug 2016, Ulf Magnusson wrote: >> >>> On Tue, Aug 16, 2016 at 4:02 PM, Robert P. J. Day <rpjday@crashcourse.ca> wrote: >>>> >>>> was about to submit a small number of patches to clean up redundancy >>>> when people combine "_append" with "+=" (because it offends my >>>> delicate sensibilities), and ran across this in oe-core, >>>> unfs3_0.9.22.r497.bb: >>>> >>>> DEPENDS_append_class-nativesdk += "flex-nativesdk" >>>> >>>> uh, what? >>>> >>>> most of the time, i assume the above doesn't hurt, it's just ... >>>> silly. but normally, with "_append", you *need* to add the leading >>>> space explicitly, and that's not being done above. so does that mean >>>> that combining "_append" with "+=" *does* generate a leading space? >>>> that just makes my head hurt -- the possibility that "_append" is >>>> being used in a way that normally makes it fail, only to have "+=" >>>> step in and save the day. at which point "_append" saves processing >>>> that until the end of parsing? yeesh. >>>> >>>> thoughts? >>> >>> By the point the += is handled, the override won't have been interpreted >>> yet. My guess is that += fetches the value of the variable >>> "DEPENDS_append_class-nativesdk", gets back the empty string, and >>> adds a space followed by "flex-nativesdk" to that. >>> >>> The resulting " flex-nativesdk" is then interpreted as usual when the >>> overrides are handled. >>> >>> You might like the note I added to >>> https://www.yoctoproject.org/docs/2.2/bitbake-user-manual/bitbake-user-manual.html#override-style-operation-advantages >>> by the way. :) >> >> that note is pretty much what i've been whining about for a long >> time. :-) in any event, when one sees something like the above: > > The intent of the note was to discourage use of '+=' together with _append, > because it's redundant and potentially confusing. Do you think it fails > (even in context)? :/ the _append/_prepend in conjunction with += is a undocumented behavior however, I do not see it as much a side effect. But in future bitbake may silently change its behavior, so I agree its always good to stay in safe waters. > >> >> DEPENDS_append_class-nativesdk += "flex-nativesdk" >> >> what is the *proper* cleanup? > > I'd say the following: > > DEPENDS_append_class-nativesdk = " flex-nativesdk" > > Cheers, > Ulf > -- > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core [-- Attachment #2: Message signed with OpenPGP using GPGMail --] [-- Type: application/pgp-signature, Size: 211 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: subtle weirdness when you combine "_append" with "+="? 2016-08-16 16:39 ` Khem Raj @ 2016-08-17 13:21 ` Robert P. J. Day 2016-08-17 14:14 ` Ulf Magnusson 0 siblings, 1 reply; 8+ messages in thread From: Robert P. J. Day @ 2016-08-17 13:21 UTC (permalink / raw) To: Khem Raj; +Cc: OE Core mailing list On Tue, 16 Aug 2016, Khem Raj wrote: ... big snip ... > the _append/_prepend in conjunction with += is a undocumented > behavior however, I do not see it as much a side effect. But in > future bitbake may silently change its behavior, so I agree its > always good to stay in safe waters. so just to finalize this discussion, my thoughts on a reasonable and meaningful standard for append/prepend/etc/etc would be to *always* use the "mathematical" operators +=/.=/=+/=. except in two situations: 1) when parsing *must* be delayed until the end, or 2) when combining the operation with an override (for which i'm quite sure there is no equivalent when using +=, etc, right?) i'm a big fan of simplicity, in the sense that, if an append operation does not *require* "_append", it shouldn't use it. because if i see an expression: VAR_append = "..." then i immediately wonder if there is a *reason* for using "_append" rather than "+=" or ".=", or if that is just the developer's personal preference. and i really, really, really hate having to guess. oh, and of course, never, ever combine "_append" with "+=" or ".=". does that sound like a reasonable coding style? rday -- ======================================================================== Robert P. J. Day Ottawa, Ontario, CANADA http://crashcourse.ca Twitter: http://twitter.com/rpjday LinkedIn: http://ca.linkedin.com/in/rpjday ======================================================================== ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: subtle weirdness when you combine "_append" with "+="? 2016-08-17 13:21 ` Robert P. J. Day @ 2016-08-17 14:14 ` Ulf Magnusson 2016-08-17 14:23 ` Robert P. J. Day 0 siblings, 1 reply; 8+ messages in thread From: Ulf Magnusson @ 2016-08-17 14:14 UTC (permalink / raw) To: Robert P. J. Day; +Cc: OE Core mailing list On Wed, Aug 17, 2016 at 3:21 PM, Robert P. J. Day <rpjday@crashcourse.ca> wrote: > On Tue, 16 Aug 2016, Khem Raj wrote: > > ... big snip ... > >> the _append/_prepend in conjunction with += is a undocumented >> behavior however, I do not see it as much a side effect. But in >> future bitbake may silently change its behavior, so I agree its >> always good to stay in safe waters. > > so just to finalize this discussion, my thoughts on a reasonable and > meaningful standard for append/prepend/etc/etc would be to *always* > use the "mathematical" operators +=/.=/=+/=. except in two situations: > > 1) when parsing *must* be delayed until the end, or I agree as long as that *must* also includes the kind of situation described for foo.bbclass in https://www.yoctoproject.org/docs/2.2/bitbake-user-manual/bitbake-user-manual.html#override-style-operation-advantages. I think you ought to follow the principle of least surprise. > 2) when combining the operation with an override (for which i'm > quite sure there is no equivalent when using +=, etc, right?) > > i'm a big fan of simplicity, in the sense that, if an append operation > does not *require* "_append", it shouldn't use it. because if i see an > expression: > > VAR_append = "..." > > then i immediately wonder if there is a *reason* for using "_append" > rather than "+=" or ".=", or if that is just the developer's personal > preference. and i really, really, really hate having to guess. > > oh, and of course, never, ever combine "_append" with "+=" or ".=". > does that sound like a reasonable coding style? Sounds reasonable to me. Using _append rather than += can also be a bug in certain situations. For example, the following does not guarantee that " value1 value2" appears right after "--flag": FLAGS = "--flag" FLAGS_append = " value1" FLAGS_append = " value2" Any earlier FLAGS_append value would appear before those two. Cheers, Ulf ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: subtle weirdness when you combine "_append" with "+="? 2016-08-17 14:14 ` Ulf Magnusson @ 2016-08-17 14:23 ` Robert P. J. Day 0 siblings, 0 replies; 8+ messages in thread From: Robert P. J. Day @ 2016-08-17 14:23 UTC (permalink / raw) To: Ulf Magnusson; +Cc: OE Core mailing list On Wed, 17 Aug 2016, Ulf Magnusson wrote: > On Wed, Aug 17, 2016 at 3:21 PM, Robert P. J. Day <rpjday@crashcourse.ca> wrote: > > On Tue, 16 Aug 2016, Khem Raj wrote: > > > > ... big snip ... > > > >> the _append/_prepend in conjunction with += is a undocumented > >> behavior however, I do not see it as much a side effect. But in > >> future bitbake may silently change its behavior, so I agree its > >> always good to stay in safe waters. > > > > so just to finalize this discussion, my thoughts on a reasonable and > > meaningful standard for append/prepend/etc/etc would be to *always* > > use the "mathematical" operators +=/.=/=+/=. except in two situations: > > > > 1) when parsing *must* be delayed until the end, or > > I agree as long as that *must* also includes the kind of situation > described for foo.bbclass in > https://www.yoctoproject.org/docs/2.2/bitbake-user-manual/bitbake-user-manual.html#override-style-operation-advantages. > I think you ought to follow the principle of least surprise. agreed. i guess a simpler way to state it is that one should never use "_append" unless it's necessary. that pretty much covers all situations. > > 2) when combining the operation with an override (for which i'm > > quite sure there is no equivalent when using +=, etc, right?) > > > > i'm a big fan of simplicity, in the sense that, if an append operation > > does not *require* "_append", it shouldn't use it. because if i see an > > expression: > > > > VAR_append = "..." > > > > then i immediately wonder if there is a *reason* for using "_append" > > rather than "+=" or ".=", or if that is just the developer's personal > > preference. and i really, really, really hate having to guess. > > > > oh, and of course, never, ever combine "_append" with "+=" or ".=". > > does that sound like a reasonable coding style? > > Sounds reasonable to me. Using _append rather than += can also be > a bug in certain situations. For example, the following does not > guarantee that " value1 value2" appears right after "--flag": > > FLAGS = "--flag" > FLAGS_append = " value1" > FLAGS_append = " value2" > > Any earlier FLAGS_append value would appear before those two. i don't see that as a "bug"; it's exactly the way it *should* operate. the above is more an example of someone not *understanding* how those operators work. rday -- ======================================================================== Robert P. J. Day Ottawa, Ontario, CANADA http://crashcourse.ca Twitter: http://twitter.com/rpjday LinkedIn: http://ca.linkedin.com/in/rpjday ======================================================================== ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2016-08-17 14:24 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-08-16 14:02 subtle weirdness when you combine "_append" with "+="? Robert P. J. Day 2016-08-16 14:46 ` Ulf Magnusson 2016-08-16 15:49 ` Robert P. J. Day 2016-08-16 15:56 ` Ulf Magnusson 2016-08-16 16:39 ` Khem Raj 2016-08-17 13:21 ` Robert P. J. Day 2016-08-17 14:14 ` Ulf Magnusson 2016-08-17 14:23 ` Robert P. J. Day
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox