1. 20 Jul, 2017 5 commits
    • Francois-Rene Rideau's avatar
      Add test case for spurious rebuild in ddo · 4ed76c32
      Francois-Rene Rideau authored
      I noticed that some systems, e.g. fast-io, will cause UIOP, CFFI, and
      everything that depends on it, to be constantly recompiled.
      Interestingly, this doesn't happen with any of the systems that fast-io
      directly depends on: alexandria, trivial-gray-streams, and static-vectors.
      And interestingly, the test case, once reduced, is exactly isomorphic to
      the test case already in test-defsystem-depends-on-phase-overlap.script:
      fast-io => main-system, alexandria => overlapping-dependency,
      static-vectors => intermediate-dependency, bazel => defsystem-dependency
      And indeed, adding a test for it detects the failure.
      4ed76c32
    • Francois-Rene Rideau's avatar
      plan: implement phase level escalation · b7651034
      Francois-Rene Rideau authored
      Track at which level of nested calls to OPERATE a not-done action is needed;
      if it is needed at a higher level than previously traversed, then traverse again
      to schedule it (and its transitive dependencies) to be done in the higher level.
      This fixes cases, such as in (test-system "cl-protobufs-tests"), where a library
      was already marked as needed at a low level of OPERATE, but if actually needed
      at higher level due to a defsystem-depends-on, and was previously not loaded
      early enough (after this plan refactoring).
      b7651034
    • Francois-Rene Rideau's avatar
      Reproduce staging failure from cl-protobufs-tests · eed95a70
      Francois-Rene Rideau authored
      Add test case in test-defsystem-depends-on-phase-overlap.script for a failure
      observed when running (test-system "cl-protobufs"):
      the action (test-op "cl-protobufs") depends on (load-op "cl-protobufs"),
      which gets staged at level 0; it then depends on (test-op "cl-protobufs-tests")
      which defsystem-depends-on (load-op "cl-protobufs"), but it has already been
      staged, so traverse-action fails to re-stage it at higher priority for level 1,
      and fails to perform it before we're back to defsystem "cl-protobufs-tests".
      eed95a70
    • Francois-Rene Rideau's avatar
    • Francois-Rene Rideau's avatar
      Add test for systems used in multiple phases · 79638a7d
      Francois-Rene Rideau authored
      Add test-defsystem-depends-on-phase-overlap.script (currently failing) to check
      that an action present in multiple phases will only be performed once.
      79638a7d