<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/poky.git/bitbake/lib/bb/parse/ast.py, branch 1.4_M3.rc1</title>
<subtitle>Mirror of git.yoctoproject.org/poky</subtitle>
<id>https://git.enea.com/cgit/linux/poky.git/atom?h=1.4_M3.rc1</id>
<link rel='self' href='https://git.enea.com/cgit/linux/poky.git/atom?h=1.4_M3.rc1'/>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/'/>
<updated>2013-01-18T12:35:19+00:00</updated>
<entry>
<title>bitbake: bitbake: data_smart.py and friends: Track variable history</title>
<updated>2013-01-18T12:35:19+00:00</updated>
<author>
<name>Peter Seebach</name>
<email>peter.seebach@windriver.com</email>
</author>
<published>2013-01-18T11:47:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=fe30cbc2cb0719092f19cba3b06a37e93260994c'/>
<id>urn:sha1:fe30cbc2cb0719092f19cba3b06a37e93260994c</id>
<content type='text'>
This patch adds tracking of the history of variable assignments.
The changes are predominantly localized to data_smart.py and
parse/ast.py. cooker.py and data.py are altered to display the
recorded data, and turn tracking on for the bitbake -e case.
The data.py update_data() function warns DataSmart.finalize()
to report the caller one further back up the tree.

In general, d.setVar() does what it used to do. Optionally,
arguments describing an operation may be appended; if none
are present, the operation is implicitly ignored. If it's
not ignored, it will attempt to infer missing information
(name of variable, value assigned, file and line) by examining
the traceback. This slightly elaborate process eliminates a
category of problems in which the 'var' member of the keyword
arguments dict is set, and a positional argument corresponding
to 'var' is also set. It also makes calling much simpler for
the common cases.

The resulting output gives you a pretty good picture of what
values got set, and how they got set.

RP Modifications:

a) Split from IncludeHistory to separate VariableHistory
b) Add dedicated copy function instead of deepcopy
c) Use COW for variables dict
d) Remove 'value' loginfo value and just use 'details'
e) Desensitise code for calling order (set 'op' before/after
   infer_caller_details was error prone)
f) Fix bug where ?= "" wasn't shown correctly
g) Log more set operations as some variables mysteriously acquired
   values previously
h) Standardise infer_caller_details to be triggered from .record()
   where at all possible to reduce overhead in non-enabled cases
i) Rename variable parameter names to match inference code
j) Add VariableHistory emit() function to match IncludeHistory
k) Fix handling of appendVar, prependVar and matching flag ops
l) Use ignored=True to stop logging further events where appropriate

(Bitbake rev: f00524a3729000cbcb3317fee933ac448fae5e2d)

Signed-off-by: Peter Seebach &lt;peter.seebach@windriver.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: BBHandler/ast: Simplify/fix EXPORT_FUNCTIONS usage</title>
<updated>2012-12-11T15:59:42+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2012-12-11T00:01:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=8ead7dc3cc1b0c878f246ea233e34d58a74a66db'/>
<id>urn:sha1:8ead7dc3cc1b0c878f246ea233e34d58a74a66db</id>
<content type='text'>
The current usage of EXPORT_FUNCTIONS is rather problematic since a class
list (classes) is passed into the ast statement and cached as it was
when first parsed. This class list may be different in other cases but
is locked once in the cache.

Worse, the construction of classes can be broken by exceptions during parsing
at the wrong moments since the state of the parser is not always reset
correctly. This can lead to leakage of other classes into the classes list.

The current EXPORT_FUNCTIONS implementation looks at the last two currently
inherited classes and sets up an indirect function call view the second last
class inherited, e.g.:

 do_configure calls gnomebase_do_configure
 gnomebase_do_configure calls autotools_do_configure

This intermediary doesn't seem to serve a useful purpose.

This patch therefore makes builds deterministic and fixes various cache problems
and indirection by removing the intermediaries and simply performing
directly mapping for the cases where its needed.

(Bitbake rev: 9fc98f96f0e0320beda0ce9546275a99336732c1)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: ast: Store anonymous python function contents in the datstore</title>
<updated>2012-08-23T08:22:44+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2012-08-22T19:01:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=1e59ae05c1c5215c43b2e8a5e89ad6a5d63540c1'/>
<id>urn:sha1:1e59ae05c1c5215c43b2e8a5e89ad6a5d63540c1</id>
<content type='text'>
This is useful if we need to disable part of one during a backtrace
for debugging purposes.

(Bitbake rev: 80a0c1b06a30a6ba9977c29fac0437a208d8cbbc)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: ast: Extract text variable in PythonMethodNode</title>
<updated>2012-08-23T08:22:44+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2012-08-22T12:54:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=ce682323a918e4c59d854745865b0950610ce29b'/>
<id>urn:sha1:ce682323a918e4c59d854745865b0950610ce29b</id>
<content type='text'>
(Bitbake rev: 2e98f740b4a57a3467b1a00b1ebc1aaee33a8ff0)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: ast: Rename PythonMethodNode define variable to modulename</title>
<updated>2012-08-23T08:22:44+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2012-08-22T12:54:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=9e8ba3036d8dde69f3a67925e6c1028469220f1e'/>
<id>urn:sha1:9e8ba3036d8dde69f3a67925e6c1028469220f1e</id>
<content type='text'>
It was hard for me to understand what the define variable was, modulename
is hopefully a bit better.

(Bitbake rev: 79f9f46319de85f85613ebe248c327f5852225ba)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: methodpool: Clean up the parsed module list handling to be slightly less insane</title>
<updated>2012-08-23T08:22:44+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2012-08-22T12:53:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=c8cce4e0d6c25e4ee85cf23790363905a188eef4'/>
<id>urn:sha1:c8cce4e0d6c25e4ee85cf23790363905a188eef4</id>
<content type='text'>
This removes some dubious functions and replaces them with a simpler, cleaner
API which better describes what the code is doing. Unused code/variables are
removed and comments tweaked.

(Bitbake rev: f1e943aebfb84e98253f3f21646d6765c4fa1d66)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: event/ast: Use better_exec instead of simple_exec</title>
<updated>2012-08-22T12:59:57+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2012-08-21T16:25:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=21773a997a2a8ece3b9549c5940468c5a889ac40'/>
<id>urn:sha1:21773a997a2a8ece3b9549c5940468c5a889ac40</id>
<content type='text'>
This improves the stacktraces dumped by bitbake when for example anonymous
python functions fail.

Also default to passing code strings to better_exec to match the behaviour of
simple_exec to aid the transition.

(Bitbake rev: 7e8205929ae953731a6854ea80b197847cff5771)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: bitbake: Warn upon finding tab indentation in python functions</title>
<updated>2012-07-19T09:24:50+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2012-07-18T11:35:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=798415bd21a73ab7ec3c6ea107b3f3ea81a824aa'/>
<id>urn:sha1:798415bd21a73ab7ec3c6ea107b3f3ea81a824aa</id>
<content type='text'>
Mixed spacing in python functions can cause subtle issues and
generally confuses users. We've standardised on 4 space indentation,
adding this warning helps ensure consistency and avoid bugs. It
also makes _prepend and _append operations on python functions slightly
less risky.

(Bitbake rev: c51cfaf48d3b12a19b01e824b6ba4230376bcad4)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>parse/ast: Expand inherit statements before splitting them</title>
<updated>2012-03-15T22:56:16+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2012-03-03T09:45:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=d3d9a37aa7addac066762f624ec857d34c57343b'/>
<id>urn:sha1:d3d9a37aa7addac066762f624ec857d34c57343b</id>
<content type='text'>
This means that statements that expand to more then one entry
such as:

CLASSES = "a b"
inherit ${CLASSES}

work correctly instead of trying to inherit a class called "a b".

(Bitbake rev: 2568e9ace6e6f483e1bf2a9ef2f4d8318d6c85b7)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: Added BBINCLUDED variable.</title>
<updated>2012-02-28T12:27:21+00:00</updated>
<author>
<name>Lianhao Lu</name>
<email>lianhao.lu@intel.com</email>
</author>
<published>2012-02-28T03:22:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=959981da53913090575e16d6d942148c24988615'/>
<id>urn:sha1:959981da53913090575e16d6d942148c24988615</id>
<content type='text'>
Added new variable BBINCLUDED indicating the file dependency
information. It exposes the internal variable '__base_depends' and
'__depends'.

(Bitbake rev: af524a656fce32d01687481b86c31bef00eb9fc3)

Signed-off-by: Lianhao Lu &lt;lianhao.lu@intel.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
</feed>
