<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 03/28/2014 06:43 AM, Alex Damian
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAL7ttbdPWNTANmGEEK9T7OwQ7HY0j1xtMdhJeOdouvEZ__cvwQ@mail.gmail.com"
      type="cite">
      <meta http-equiv="Context-Type" content="text/html;
        charset=ISO-8859-1">
      <div dir="ltr">
        <div>
          <div>
            <div>
              <div>Please hold merging this change.<br>
                <br>
              </div>
              I think we need to discuss a bit on this. My expectation
              is that the Bitbake server will reinit its state between
              builds, re-parsing the configuration files and reload the
              cache.<br>
            </div>
            <div>I am not sure why we would consider maintaining the hot
              cache copy in memory between builds.<br>
            </div>
            <div><br>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    <br>
    It is about increasing the interactivity of the system.&nbsp; There are
    certainly times you need to soft reset, but perhaps that is what we
    need to expose.&nbsp; If I want to run a dev shell and have done a build,
    this is something I'd like to be instantaneous, or if I am working
    on the package and want to re-run the compile and package steps,
    there really is no need to parse.&nbsp; <br>
    <br>
    There is a trade off for the individual package work vs the work of
    rebuilding the entire image.&nbsp; In the case of the entire image you
    most certainly want the soft reset behavior. <br>
    <br>
    Just some food for thought.<br>
    <br>
    Cheers,<br>
    Jason.<br>
    <br>
    <br>
    <blockquote
cite="mid:CAL7ttbdPWNTANmGEEK9T7OwQ7HY0j1xtMdhJeOdouvEZ__cvwQ@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>
          <div>The patch for bug <a moz-do-not-send="true"
              href="https://bugzilla.yoctoproject.org/show_bug.cgi?id=5535">https://bugzilla.yoctoproject.org/show_bug.cgi?id=5535</a>
            will re-create the exact same scenario that we try to change
            through this patch, so <br>
          </div>
          I think we need to clarify the issue before moving forward.<br>
          <br>
        </div>
        Thanks,<br>
        Alex<br>
      </div>
      <div class="gmail_extra"><br>
        <br>
        <div class="gmail_quote">On Wed, Mar 26, 2014 at 8:05 AM,
          Cristiana Voicu <span dir="ltr">&lt;<a moz-do-not-send="true"
              href="mailto:cristiana.voicu@intel.com" target="_blank">cristiana.voicu@intel.com</a>&gt;</span>
          wrote:<br>
          <blockquote class="gmail_quote">Due to commit
            dd15648fc2654b8d7c3e00ea7ab3dbf04f24f24b, after an async<br>
            command is executed, the state of the server is set back to
            state.initial,<br>
            so the cache is always reloaded.<br>
            This patch adds a sanity check on the validity of the cache
            and then only<br>
            reload if something has changed.<br>
            depends_cache variable is needed in this case, so the del
            statement needs<br>
            to be removed.<br>
            <br>
            [YOCTO #5603]<br>
            Signed-off-by: Cristiana Voicu &lt;<a moz-do-not-send="true"
              href="mailto:cristiana.voicu@intel.com">cristiana.voicu@intel.com</a>&gt;<br>
            ---<br>
            &nbsp;bitbake/lib/bb/cache.py &nbsp;| &nbsp; &nbsp;2 --<br>
            &nbsp;bitbake/lib/bb/cooker.py | &nbsp; 32
            ++++++++++++++++++++++----------<br>
            &nbsp;2 files changed, 22 insertions(+), 12 deletions(-)<br>
            <br>
            diff --git a/bitbake/lib/bb/cache.py
            b/bitbake/lib/bb/cache.py<br>
            index 318781b..da9ad5d 100644<br>
            --- a/bitbake/lib/bb/cache.py<br>
            +++ b/bitbake/lib/bb/cache.py<br>
            @@ -612,8 +612,6 @@ class Cache(object):<br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;cache_class_name = cache_class.__name__<br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;file_dict[cache_class_name].close()<br>
            <br>
            - &nbsp; &nbsp; &nbsp; &nbsp;del self.depends_cache<br>
            -<br>
            &nbsp; &nbsp; &nbsp;@staticmethod<br>
            &nbsp; &nbsp; &nbsp;def mtime(cachefile):<br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return bb.parse.cached_mtime_noerror(cachefile)<br>
            diff --git a/bitbake/lib/bb/cooker.py
            b/bitbake/lib/bb/cooker.py<br>
            index 07202e3..c90bb44 100644<br>
            --- a/bitbake/lib/bb/cooker.py<br>
            +++ b/bitbake/lib/bb/cooker.py<br>
            @@ -1265,21 +1265,33 @@ class BBCooker:<br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;raise bb.BBHandledException()<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if self.state != state.parsing:<br>
            - &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;self.parseConfiguration ()<br>
            + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;check_cache = False<br>
            + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if self.parser:<br>
            + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;self.parser.bb_cache.checked = set()<br>
            + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for filename in self.parser.filelist:<br>
            + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;appends =
            self.collection.get_file_appends(filename)<br>
            + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if not
            self.parser.bb_cache.cacheValid(filename, appends):<br>
            + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;check_cache = True<br>
            + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break<br>
            + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else:<br>
            + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;check_cache = True<br>
            <br>
            - &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ignore = self.data.getVar("ASSUME_PROVIDED",
            True) or ""<br>
            - &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;self.recipecache.ignored_dependencies =
            set(ignore.split())<br>
            + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if check_cache:<br>
            + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;self.parseConfiguration ()<br>
            +<br>
            + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ignore =
            self.data.getVar("ASSUME_PROVIDED", True) or ""<br>
            + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;self.recipecache.ignored_dependencies =
            set(ignore.split())<br>
            <br>
            - &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for dep in
            self.configuration.extra_assume_provided:<br>
            - &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
            &nbsp;self.recipecache.ignored_dependencies.add(dep)<br>
            + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for dep in
            self.configuration.extra_assume_provided:<br>
            + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
            &nbsp;self.recipecache.ignored_dependencies.add(dep)<br>
            <br>
            - &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;self.collection =
            CookerCollectFiles(self.recipecache.bbfile_config_priorities)<br>
            - &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(filelist, masked) =
            self.collection.collect_bbfiles(self.data, self.event_data)<br>
            + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;self.collection =
            CookerCollectFiles(self.recipecache.bbfile_config_priorities)<br>
            + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(filelist, masked) =
            self.collection.collect_bbfiles(self.data, self.event_data)<br>
            <br>
            - &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;self.data.renameVar("__depends",
            "__base_depends")<br>
            + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;self.data.renameVar("__depends",
            "__base_depends")<br>
            <br>
            - &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;self.parser = CookerParser(self, filelist,
            masked)<br>
            - &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;self.state = state.parsing<br>
            + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;self.parser = CookerParser(self, filelist,
            masked)<br>
            + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;self.state = state.parsing<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if not self.parser.parse_next():<br>
            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;collectlog.debug(1, "parsing complete")<br>
            <span class="HOEnZb">--<br>
              1.7.9.5<br>
              <br>
              --<br>
              _______________________________________________<br>
              bitbake-devel mailing list<br>
              <a moz-do-not-send="true"
                href="mailto:bitbake-devel@lists.openembedded.org">bitbake-devel@lists.openembedded.org</a><br>
              <a moz-do-not-send="true"
                href="http://lists.openembedded.org/mailman/listinfo/bitbake-devel"
                target="_blank">http://lists.openembedded.org/mailman/listinfo/bitbake-devel</a><br>
            </span></blockquote>
        </div>
        <br>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
    </blockquote>
    <br>
  </body>
</html>