On Mon, Dec 19, 2016 at 10:56 AM, Robert P. J. Day <[email protected]> wrote:
> i suspected as much. still, would consistency dictate using > parentheses or not? just a style thing. > I think it’s largely personal preference. Personally, using a capture when we don’t need one is ugly to me, so I’d rather see it only used when needed, but that’s just my opinion. The upside to always using a capture is it makes it clearer, at a glance, to a new user that it’s not just a word or list of words, but a regular expression. > > next, if the possibilities in a list are REs, what is the > > point of explicitly listing, say, "qemuarm|qemuarm64"? would > > not the RE "qemuarm" subsume the more explicit "qemuarm64"? > > same for the other architectures. (one could suggest that that > > entire line could be shortened to "... = (^qemu)".) > > > > Just qemu would potentially match future qemu machines which aren’t > > actually supported, so I don’t think that would be appropriate. It’d > > match too much. > > i realized that, i was just being technical. :-) in any event, as it > is, it would *still* match too much, anything starting with > "qemuarm", for example. > Good point, yes. > the above seems pretty clear since the following lines would > appear > > to say that *only* the qemux86 is compatible: > > > > linux-yocto-tiny_4.1.bb:COMPATIBLE_MACHINE = "(qemux86$)" > > linux-yocto-tiny_4.4.bb:COMPATIBLE_MACHINE = "(qemux86$)" > > linux-yocto-tiny_4.8.bb:COMPATIBLE_MACHINE = "(qemux86$)" > > > > which suggests the following passage from the YP kernel dev manual > is > > a bit misleading: > > > > "You must change it to match a list of the machines that your new > > recipe supports. For example, to support the qemux86 and > qemux86-64 > > machines, use the following form: > > > > COMPATIBLE_MACHINE = "qemux86|qemux86-64" > > > > and if all this is true, then if you're introducing a new machine, > to > > be magnificently pedantic, one should not use: > > > > COMPATIBLE_MACHINE_machinename = "machinename" > > > > but > > > > COMPATIBLE_MACHINE_machinename = "^machinename$" > > > > just to play it safe. am i reading all this correctly? > > > > > > Yes, that’s correct, though we need the trailing $ but not the > > leading ^, as it’s using re.match, not re.search — meaning it only > > matches at the beginning of the string, it doesn’t search the string > > to find a match. > > ah, quite right, i had forgotten that. again, in any event, both the > code and documentation could probably be tweaked to make all of this > more obvious. > Absolutely agreed. For this regex specifically, an argument could be made that a lack of a trailing $ is almost certainly a bug. I could argue that it should either be implicit, though that would be limiting, or failing to include it could trigger a warning unless you explicitly state you know what you’re doing :) Hmm.. -- Christopher Larson clarson at kergoth dot com Founder - BitBake, OpenEmbedded, OpenZaurus Maintainer - Tslib Senior Software Engineer, Mentor Graphics
-- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
