mirror of
https://git.yoctoproject.org/poky
synced 2026-05-09 05:29:32 +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:
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user