Age | Commit message (Collapse) | Author |
|
This reverts commit 05462fa7908fc22988b3dc9d376798d0a46ccb5a.
|
|
Signed-off-by: Imran Mehmood <imran_mehmood@mentor.com>
Signed-off-by: Chris Larson <chris_larson@mentor.com>
|
|
Signed-off-by: Chris Larson <chris_larson@mentor.com>
|
|
The root cause is, I was testing the use of renameVar() from finalize, in
order to get flags copied over when an override is applied, but renameVar
removes the original, whereas the old code did not do so. Going back to the
old method, will revisit the override/flags later on.
Signed-off-by: Chris Larson <chris_larson@mentor.com>
|
|
Signed-off-by: Chris Larson <chris_larson@mentor.com>
|
|
types.IntType -> int
types.StringType -> basestring
...
Also moves our ImmutableTypes tuple into our own namespace.
Signed-off-by: Chris Larson <chris_larson@mentor.com>
|
|
Signed-off-by: Chris Larson <chris_larson@mentor.com>
|
|
|
|
Signed-off-by: Chris Larson <chris_larson@mentor.com>
|
|
Signed-off-by: Chris Larson <chris_larson@mentor.com>
|
|
Signed-off-by: Chris Larson <chris_larson@mentor.com>
|
|
The methodpool, ${@} expansions, anonymous python functions, event handlers
now all run with the same global context, ensuring a consistent environment
for them. Added a bb.utils.better_eval function which does an eval() with the
same globals as better_exec.
Signed-off-by: Chris Larson <chris_larson@mentor.com>
|
|
leak their '_' helper variable
Signed-off-by: Chris Larson <chris_larson@mentor.com>
|
|
- Use a single dictionary for the context, both global & local, since for some
reason it chokes wanting a global "d" rather than a local in the metadata.
- First compile the string into a code object before running eval, so we can
include the variable name in an evaluation error.
Signed-off-by: Chris Larson <chris_larson@mentor.com>
|
|
Signed-off-by: Chris Larson <chris_larson@mentor.com>
|
|
dict objects provide an __iter__ method for the iteration which gives you the
keys, so calling keys directly is unnecessary, and isn't really a best
practice. The only time you really need to call the keys is if there's a
danger of the dict changing out from underneith you, either due to external
forces or due to modification of the iterable in the loop. Iterations over
os.environ are apparently subject to such changes, so they must continue to
use keys().
As an aside, also switches a couple spots to using sorted() rather than
creating a temporary list with keys() and sorting that.
Signed-off-by: Chris Larson <clarson@mvista.com>
|
|
dependency tree (from Poky)
If there was a variable such as:
X_${Y}_append = "Z" The "Z" would be lost if X_${Y} was unset. This was due to a bug in the renameVar
function used by expandKeys().
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
|
|
Acked-by: Chris Larson <clarson@kergoth.com>
|
|
now only pass certain whitelisted variables into the data store. If BB_PRESERVE_ENV is set bitbake will use all variable from the environment. If BB_ENV_WHITELIST is set, that whitelist will be used instead of the internal bitbake one. Alternatively, BB_ENV_EXTRAWHITE can be used to extend the internal whitelist.
|
|
|
|
|
|
|
|
BitBake trunk is now GPLv2 only, no mix of
MIT,FreeBSD License is left.
Update GPL headers to point to the correct
address of the FSF
Update the list of authors. Uli Luckas,
Seb Frankengul and Tim Amsell contributed to
the sourcecode as well
|
|
|
|
write to the data) - gives a performance improvement
|
|
|
|
INITSCRIPT_PARAMS_${PN}_slugos. We will expandKeys
and end up with INITSCRIPT_PARAMS_busybox_slugos
then (we have slugos in OVERRIDES) and we get
INITSCRIPT_PARAMS_busybox. Now adding busybox to OVERRIDES
and nothing changed. The reason is simple. The update_data
code is using __getitem__ and __setitem__ to access
the data object. This method does not pay the cookie
monster. This is why we don't know that for the OVERRIDE
busybox INITSCRIPT_PARAMS is available. We now pay the
cookie monster and it looks better
|
|
- Doesn't need pickle anymore so don't import it
|
|
Remove my broken COW version, use mithros COW module
instead. Make it 'work' with the code
bitbake/lib/bb/data.py:
Update to use the iter protocol again and has_key
|
|
-Avoid issues with the assignment. Make sure
we assign special to special and seen to
seen.
|
|
Make the Cookie Monster Dict a METACLASS? To
exploit automatically the COW features...
Small performance analysis is showing that this
is saving some time (and memory as well)
|
|
|
|
My first failed attempt to create something compatible
with a Dictionary with COW/parenting features
Use this new class for the Override Helpers
bitbake/lib/bb/data.py:
Update to the new data structure, it can't be treated
as a dict, it is not a dict.
We will use keys() (O(n)) and get
|
|
-Remove the 'Proxies' for the pkgdata Cache
-Remove the pkgdata() method as we now have
a different caching strategy
-Alter init_db to only take a parent and call
createCopy directly
bitbake/lib/bb/data_smart.py:
-Remove the DataSmartPackage class as it is not
needed
bitbake/lib/bb/cache.py:
-Call init_db with the only reasonable argument
|
|
For now we are forced to deepcopy these two dictonaries. This is
a first aid band aid to have something working.
We will kill the DataSmartPackage class completely
|
|
bitbake/lib/bb/__init__.py:
bitbake/lib/bb/data_smart.py:
bitbake/lib/bb/cache.py:
bitbake/lib/bb/shell.py:
bitbake/bin/bitbake:
* Major cache refactoring. Change the cache to store only the data bitbake needs
for dependency calculations instead of all the metadata.
* Separate the cache code into its own file.
* Update the rest of the code to work with the cache changes.
* Temporarily break the shell's poke command.
|
|
Partially undo r420. We do not need to shadow the
variable, for our view we have set our version (an empty one)
already
|
|
-The pickling API is not too obvious. One can
not call p.dump multiple times. Instead
we store it as a tuple.
-Same applies for unpickling.
-Hmm current programming languages suck. It
can't be true to use multiple assignment
for something as easy as a 'symmetric'
command.
|
|
-createCopy is not called, instead
a constructor is invoked. Copy the
cookies here as well.
Currently I only copy them from 'clean' as
we should have them pickled already...
|
|
Remember what we paid to the Cookie Monster.
Make a copy of it. Currently we do no removal
of these keys so I hope to get around the
shallow copies as welbitbake/lib/bb/data_smart.py:
Remember what we paid to the Cookie Monster.
Make a copy of it. Currently we do no removal
of these keys so I hope to get around the
shallow copies as welll
|
|
-Only have one expand method in the dict
implementation.
-Apply some magic knowledge by feeding the
cookie master.
-Speed up update_data by asking the Cookie
Monster for help.
We do not iterate over each key, but the
keys we know that have the data we care
about. This gives a huge speed improvement
to parsing.
bitbake/lib/bb/data_smart.py:
-Make setVar more expensive by feeding the cookie
monster
|
|
-Fix the method invocation in methodpool
to use the right amount of arguments
-Update data_smart to the new cache layout
of the file functions
|
|
ReAdd the handlers when unpickling the file
parse/parse_py/BBHandler.py:
Save the once added handlers in the bitbake
file.
|
|
Give a filename to the better compile method.
(sorry)
|
|
Use bb.utils.better_compile instead of
the simple compile for better error
reporting
|
|
-Do not write the global configuration file into each cached file.
On unpickling reattach a current configuration file.
This is based on the work of proti
http://www.frankengul.org/~seb/cow/cow8a.patch and was adopted to
the current data_smart instance.
CVSDATE, BUILDSTART and similiar should be always current again
|
|
courtesy Holger Schurig
|
|
include 'time' into the scope. For bitbake 1.3.1 we need
to define which modules will be visible when executing
embedded python methods
|
|
-Do a deepcopy of the parent for the persistent
data storage constructor.
-Store the dict as _data member and not the instance
-Operate on the dict in the methods instead of the
DataSmart instances...
Happy deletion of the cache
|
|
Return only the mtime from the os.stat syscall
bitbake/lib/bb/data_dict.py:
Return only the mtime from the os.stat syscall
|