Age | Commit message (Collapse) | Author |
|
-Not much is done yet but at least fake that we've done
something
|
|
prepare for the BitBake shell which will need to have instance based
variables as opposed to module global ones.
Sorry, this diff is larger than it should be, but I had to reorder
methods and change indenting all over the place. What I basically did
is:
1.) Add a class managing the statistics values: BBStatistics
2.) Add a class managing the build process: BBCooker
3.) Refactor all unbound methods into the BBCooker class
4.) Refactor all module global values into the BBCooker class
5.) Adjust function calls and accesses of the module global values
accordingly
The shell module itself is under construction and will be uploaded asap.
|
|
-Drastically increase the amount of needed RAM to the
unbelievable amount of 12MB when parsing ~2320 bb files.
-Start creating the provider hash and other lists/dictionaries
from the progressCallback. A BBStatusProgress struct was added
to accumulate the data to be used in the buildPackage, showVersions
and similiar methods.
This makes it possible to kill the long delay and also building the
provider hash completely.
Only for building and checking if a package was built (has stamps) it
is necessary to get the data instace from make.pkgdata.
|
|
-Mention changes in bitbake since the 1.2.1 release
|
|
Pass more data to the parsing progressCallBack.
We will soon use this data to eliminate the long
delay before building.
bitbake/bin/bitbake:
Just change the signature of the callback method for now.
We will soon keep the 'parsing status' in a instance
we will fill while parsing and only evaluate in build_depgraph
|
|
-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
|
|
-be less anoying and only print debug messages when
d is none
|
|
-Warn when init is called without a data instance, we're not able to reorder
them as it would break bitbake <= 1.2.1 and OpenEmbedded
bitbake/lib/bb/parse/BBHandler.py:
-Do not call fetch.init without a data instance. This changes the AtiCore
problem the OE folks are seeing a bit...
|
|
-Don't be too keen finding a bug in expand when there is None...
Fix the testcase to delete {TARGET_MOO} first.
|
|
-Write an expand test case that actually shows a bug I need to fix
|
|
-Add two test cases to the expand method. The behaviour
was not tested before.
|
|
-We've killed the default arguments in the methods
now the tests were updatet to initialize a data
instance to work again.
|
|
-Fix one bug in the unused data_dict.py. There is still one
left... again cookies for the one finding it
|
|
Add basics tasks I want to see finished
|
|
Return only the mtime from the os.stat syscall
bitbake/lib/bb/data_dict.py:
Return only the mtime from the os.stat syscall
|
|
Stop sf.net from bull?#*... us. We will fail when we wanted to
download a file and got something with a different name.
This should solve sf.net related problems as we go immediately to
the next mirror and it should work for all other packages as well.
|
|
Try to partially apply
http://wiki.python.org/moin/PythonSpeed/PerformanceTips?highlight=%28performance%29#dots avoid
finding data in bb
|
|
the bb module to obtain the version it uses.
|
|
Update the version to 1.2.1 (now a string)
|
|
|
|
Use the new data_smart dictionary
lib/bb/data_smart.py:
The old COW Implementation, made persistent and pass
the test suite.
I commit it because the persistent mode in data_dict.py seems
broken and I don't want to leave you with a broken bitbake.
Todo:
-do a deepcopy on the parent. When we pickle we use sharing
anyway and it is pretty obvious we will pickle as we're the
persistent implementation.
|
|
-Remove default arguments from the data methods. They
cast errors.
(we need to update the test case though)
lib/bb/parse/ConfHandler.py:
-Use the right dictionary
|
|
-Access pkgdata[] less. This means unpickling the data less often.
This results in a faster initial parsing. We still access each
file three times though
|
|
-Provide a special 'collection/dict' for the collected
bb-files. If we use a persistent storage (CACHE) we will
not hold any data instance in memory but load it from disk
on demand.
This reduces bitbakes memory usage to roughly 40MB. The initial
parsing currently takes roughly thirty seconds more.
lib/bb/make.py:
-Use the new data implementation for pkgdata.
-Do not access pkgdata[f] if we've the data already
in our hands
|
|
|
|
· -Add a method to get the modify time of named bb.data instance
· -Add a method to create a named bb.data instance. These instances
· inherit the global configuration.
lib/bb/data_dict.py:
· -Add persistents to the data_dict implementation, on the commit
method we will now pickle the internal dict
lib/bb/make.py:
-Use the new persistent/named bb.data methods.
|
|
Do not assume we hold a reference to the variable
we got with a bb.data.getVar*. Always set changes
back to the variable.
|
|
|
|
* Remove default params from the fetcher methods to avoid problems
with scoping. The meaning of 'd' is quite overloaded and we try
to undo it one by one. This change is a bit more invasive than
I had hoped for but it is needed.
-- Holger Hans Peter Freyther <freyther@handhelds.org>
|
|
|
|
-Move a createCopy method into data.py
-Make code creating deepcopies of the data instance
use this new createCopy
|
|
-bb.data is now a delegate to hookable Data implementation.
-bb.data.init() is the 'factory' method to create a instance
of a concrete implementation.
-Kill assumptions that bb.data.init() returns a {} (python dict)
-Add the old Dictionary Based Implementation as data_dict.py
|
|
|
|
the current package.
|
|
* check if a package's task is already complete _before_
calling the functions to try to build it.
* don't bother trying to build a package's deps if the package has
already been built.
* cache the information about the 'perhaps you should define
PREFERRED_PROVIDER_blah' messages so that the user only sees one
for each provider.
|
|
|
|
to be more consistent with the other events.
|
|
mangling OVERRIDES in bb.data.exec_task().
|
|
|
|
|
|
|
|
patch courtesy Paul Eggleton
|
|
|
|
|
|
|
|
that builds of packages that attempt to read the kernel-version file (like kernel modules) fail as they should.
|
|
example usage of bbfile collections.
|
|
|
|
|
|
script.
|