1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-08 17:19:20 +00:00

bitbake: data/data_smart/build: Clean up datastore finalize/update_data references

We dropped the update_data calls a while ago. Clean up the code
to match the reality and drop the remaining no-op pieces. Update
the comments to reflect the slowest operations and let the cookie
monster's spirit live on!

(Bitbake rev: 584989ed2b5af4e8799571dece0cf94f995ef14e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2022-11-11 14:23:54 +00:00
parent de98b12ee1
commit d8e9ee8fd5
3 changed files with 6 additions and 16 deletions
-1
View File
@@ -572,7 +572,6 @@ def _task_data(fn, task, d):
localdata.setVar('BB_FILENAME', fn) localdata.setVar('BB_FILENAME', fn)
localdata.setVar('OVERRIDES', 'task-%s:%s' % localdata.setVar('OVERRIDES', 'task-%s:%s' %
(task[3:].replace('_', '-'), d.getVar('OVERRIDES', False))) (task[3:].replace('_', '-'), d.getVar('OVERRIDES', False)))
localdata.finalize()
bb.data.expandKeys(localdata) bb.data.expandKeys(localdata)
return localdata return localdata
+5 -7
View File
@@ -4,14 +4,16 @@ BitBake 'Data' implementations
Functions for interacting with the data structure used by the Functions for interacting with the data structure used by the
BitBake build tools. BitBake build tools.
The expandKeys and update_data are the most expensive expandKeys and datastore iteration are the most expensive
operations. At night the cookie monster came by and operations. Updating overrides is now "on the fly" but still based
on the idea of the cookie monster introduced by zecke:
"At night the cookie monster came by and
suggested 'give me cookies on setting the variables and suggested 'give me cookies on setting the variables and
things will work out'. Taking this suggestion into account things will work out'. Taking this suggestion into account
applying the skills from the not yet passed 'Entwurf und applying the skills from the not yet passed 'Entwurf und
Analyse von Algorithmen' lecture and the cookie Analyse von Algorithmen' lecture and the cookie
monster seems to be right. We will track setVar more carefully monster seems to be right. We will track setVar more carefully
to have faster update_data and expandKeys operations. to have faster datastore operations."
This is a trade-off between speed and memory again but This is a trade-off between speed and memory again but
the speed is more critical here. the speed is more critical here.
@@ -264,10 +266,6 @@ def emit_func_python(func, o=sys.__stdout__, d = init()):
newdeps |= set((d.getVarFlag(dep, "vardeps") or "").split()) newdeps |= set((d.getVarFlag(dep, "vardeps") or "").split())
newdeps -= seen newdeps -= seen
def update_data(d):
"""Performs final steps upon the datastore, including application of overrides"""
d.finalize(parent = True)
def build_dependencies(key, keys, shelldeps, varflagsexcl, ignored_vars, d): def build_dependencies(key, keys, shelldeps, varflagsexcl, ignored_vars, d):
deps = set() deps = set()
try: try:
+1 -8
View File
@@ -481,13 +481,6 @@ class DataSmart(MutableMapping):
def expand(self, s, varname = None): def expand(self, s, varname = None):
return self.expandWithRefs(s, varname).value return self.expandWithRefs(s, varname).value
def finalize(self, parent = False):
return
def internal_finalize(self, parent = False):
"""Performs final steps upon the datastore, including application of overrides"""
self.overrides = None
def need_overrides(self): def need_overrides(self):
if self.overrides is not None: if self.overrides is not None:
return return
@@ -638,7 +631,7 @@ class DataSmart(MutableMapping):
nextnew.update(vardata.references) nextnew.update(vardata.references)
nextnew.update(vardata.contains.keys()) nextnew.update(vardata.contains.keys())
new = nextnew new = nextnew
self.internal_finalize(True) self.overrides = None
def _setvar_update_overrides(self, var, **loginfo): def _setvar_update_overrides(self, var, **loginfo):
# aka pay the cookie monster # aka pay the cookie monster