public override IEnumerable<BuildObject> getDependencies(out DependencyDisposition ddisp)
 {
     HashSet<BuildObject> result = DafnyExtensions.getForestDependencies(this.getRoots(), out ddisp);
     result.Add(this.getExecutable());
     result.UnionWith(this.getExtraDependencies());
     return result;
 }
        public override IEnumerable <BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            ddisp = DependencyDisposition.Complete;

            OrderPreservingSet <BuildObject> deps = new OrderPreservingSet <BuildObject>();

            // Things we need to stitch the interface:
            deps.Add(this.genericStitch);
            deps.Add(this.appSpecificStitch);
            deps.AddRange(this.mainBeatVerb.getOutputs());

            // Things we need to stitch the imports into the imp file:
            deps.Add(this.entryImpInput);
            deps.Add(this.context.getContextOutput());
            IIncludePathContext pathContext = this.context.fetchIfAvailable(ref ddisp);

            if (pathContext != null)
            {
                this.dafnyMainIfcInput = pathContext.search("dafny_Main_i", ModPart.Ifc);
                Util.Assert(this.dafnyMainIfcInput != null);
                deps.Add(this.dafnyMainIfcInput);
                this.dafnyMainImpInput = pathContext.search("dafny_Main_i", ModPart.Ifc);
                Util.Assert(this.dafnyMainImpInput != null);
                deps.Add(this.dafnyMainImpInput);
            }

            return(deps);
        }
Exemple #3
0
 public override IEnumerable<BuildObject> getDependencies(out DependencyDisposition ddisp)
 {
     ddisp = DependencyDisposition.Complete;
     List<BuildObject> basic = new List<BuildObject>() { this.getLinkerExe(), this.objFile };
     basic.AddRange(this.getExtraDependencies());
     return basic;
 }
 public override IEnumerable<BuildObject> getDependencies(out DependencyDisposition ddisp)
 {
     TransitiveDepsVerb depsVerb = this.getTransitiveDepsVerb();
     HashSet<BuildObject> result = depsVerb.getAvailableDeps(out ddisp);
     result.UnionWith(DafnyExecutableDependencies.getDafnyExecutableDependencies());
     return result;
 }
Exemple #5
0
        public override IEnumerable <BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            if (this.dependencies == null)
            {
                DependencyDisposition dd;
                var dependencies = new List <BuildObject>();

                // This method's implementation is dependent upon transitiveDepsVerb being the only element of verbs.
                Trace.Assert(this.verbs.Length == 1 && this.verbs[0] is DafnyTransitiveDepsVerb);
                dependencies.AddRange(this.transitiveDepsVerb.getAvailableDeps(out dd));
                dependencies.AddRange(DafnyExecutableDependencies.getDafnyExecutableDependencies());
                if (dd != DependencyDisposition.Complete)
                {
                    ddisp = dd;

                    // Dependency resolution isn't complete yet and we don't want to cache the incomplete list.
                    return(dependencies);
                }

                this.dependencies = dependencies;
            }

            Trace.Assert(this.dependencies != null);
            ddisp = DependencyDisposition.Complete;
            return(this.dependencies);
        }
        public override IEnumerable<BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            if (this.dependencies == null)
            {
                DependencyDisposition dd;
                var dependencies = new List<BuildObject>();

                // This method's implementation is dependent upon transitiveDepsVerb being the only element of verbs.
                Trace.Assert(this.verbs.Length == 1 && this.verbs[0] is DafnyTransitiveDepsVerb);
                dependencies.AddRange(this.transitiveDepsVerb.getAvailableDeps(out dd));
                dependencies.AddRange(DafnyExecutableDependencies.getDafnyExecutableDependencies());
                if (dd != DependencyDisposition.Complete)
                {
                    ddisp = dd;

                    // Dependency resolution isn't complete yet and we don't want to cache the incomplete list.
                    return dependencies;
                }

                this.dependencies = dependencies;
            }

            Trace.Assert(this.dependencies != null);
            ddisp = DependencyDisposition.Complete;
            return this.dependencies;
        }
        public override IEnumerable<BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            ddisp = DependencyDisposition.Complete;

            OrderPreservingSet<BuildObject> deps = new OrderPreservingSet<BuildObject>();

            // Things we need to stitch the interface:
            deps.Add(this.genericStitch);
            deps.Add(this.appSpecificStitch);
            deps.AddRange(this.mainBeatVerb.getOutputs());

            // Things we need to stitch the imports into the imp file:
            deps.Add(this.entryImpInput);
            deps.Add(this.context.getContextOutput());
            IIncludePathContext pathContext = this.context.fetchIfAvailable(ref ddisp);
            if (pathContext != null)
            {
                this.dafnyMainIfcInput = pathContext.search("dafny_Main_i", ModPart.Ifc);
                Util.Assert(this.dafnyMainIfcInput != null);
                deps.Add(this.dafnyMainIfcInput);
                this.dafnyMainImpInput = pathContext.search("dafny_Main_i", ModPart.Ifc);
                Util.Assert(this.dafnyMainImpInput != null);
                deps.Add(this.dafnyMainImpInput);
            }

            return deps;
        }
        public override IEnumerable <BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            //- NB we'll either return the singleton list {obj} if obj isn't yet available,
            //- or we'll return the entire list of deps on obj's parents.
            List <BuildObject> deps = new List <BuildObject>();

            extendDeps(deps);
            deps.Add(obj);

            try
            {
                IEnumerable <BuildObject> includes = getIncludeFactory().getIncludes(obj);
                if (includes.Contains(obj))
                {
                    throw new SourceConfigurationError("Include loop starting at " + obj);
                }
                deps.AddRange(includes.Select(parent => factory(parent).depsObj()));
                ddisp = DependencyDisposition.Complete;
            }
            catch (ObjNotReadyException)
            {
                ddisp = DependencyDisposition.Incomplete;
            }
            catch (ObjFailedException)
            {
                ddisp = DependencyDisposition.Failed;
            }
            return(deps);
        }
Exemple #9
0
 public override IEnumerable<BuildObject> getDependencies(out DependencyDisposition ddisp)
 {
     OrderPreservingSet<BuildObject> deps = BeatExtensions.getBeatFlavoredShallowDependencies(
         this.contextVerb, this.beatobj, out ddisp, BeatIncludes.ImportFilter.ForBeatOrBasm);
     deps.Add(this.getBeatExecutable());
     return deps;
 }
        public override IEnumerable<BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            // NB we'll either return the singleton list {obj} if obj isn't yet available,
            // or we'll return the entire list of deps on obj's parents.
            List<BuildObject> deps = new List<BuildObject>();
            this.extendDeps(deps);
            deps.Add(this.obj);

            try
            {
                IEnumerable<BuildObject> includes = this.getIncludeFactory().getIncludes(this.obj);
                if (includes.Contains(this.obj))
                {
                    throw new SourceConfigurationError("Include loop starting at " + this.obj);
                }

                deps.AddRange(includes.Select(parent => this.factory(parent).depsObj()));
                ddisp = DependencyDisposition.Complete;
            }
            catch (ObjectNotReadyException)
            {
                ddisp = DependencyDisposition.Incomplete;
            }
            catch (ObjectFailedException)
            {
                ddisp = DependencyDisposition.Failed;
            }

            return deps;
        }
        public override IEnumerable <BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            BuildObject           obligations = producer.getObligationSet();
            HashSet <BuildObject> deps        = new HashSet <BuildObject>();

            deps.Add(obligations);

            try
            {
                VerificationObligationList vol = VerificationObligationList.fetch(obligations);
                this.verification_results = vol.getVerificationObligations();
                deps.UnionWith(this.verification_results);
                ddisp = DependencyDisposition.Complete;
            }
            catch (ObjNotReadyException)
            {
                ddisp = DependencyDisposition.Incomplete;
            }
            catch (ObjFailedException)
            {
                ddisp = DependencyDisposition.Failed;
            }

            return(deps);
        }
        public override IEnumerable <BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            TransitiveDepsVerb    depsVerb = this.getTransitiveDepsVerb();
            HashSet <BuildObject> result   = depsVerb.getAvailableDeps(out ddisp);

            result.UnionWith(DafnyExecutableDependencies.getDafnyExecutableDependencies());
            return(result);
        }
Exemple #13
0
        public override IEnumerable <BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            OrderPreservingSet <BuildObject> deps = BeatExtensions.getBeatFlavoredShallowDependencies(
                this.contextVerb, this.beatobj, out ddisp, BeatIncludes.ImportFilter.ForBeatOrBasm);

            deps.Add(this.getBeatExecutable());
            return(deps);
        }
Exemple #14
0
 public override IEnumerable<BuildObject> getDependencies(out DependencyDisposition ddisp)
 {
     ddisp = DependencyDisposition.Complete;
     List<BuildObject> result = new List<BuildObject>() { bplInput };
     result.Add(getBoogieExecutable());
     result.AddRange(getBoogieExecutableDependencies());
     return result;
 }
 public override IEnumerable <BuildObject> getDependencies(out DependencyDisposition ddisp)
 {
     ddisp = DependencyDisposition.Complete;
     return(new List <BuildObject>()
     {
         this.asmFileIn, this.pythonScript
     });
 }
Exemple #16
0
 public override IEnumerable<BuildObject> getDependencies(out DependencyDisposition ddisp)
 {
     ddisp = DependencyDisposition.Complete;
     List<BuildObject> result = new List<BuildObject>() { bplInput };
     result.Add(getBoogieExecutable());
     result.AddRange(getBoogieExecutableDependencies());
     return result;
 }
        public override IEnumerable <BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            HashSet <BuildObject> result = DafnyExtensions.getForestDependencies(getRoots(), out ddisp);

            result.Add(getExecutable());
            result.UnionWith(getExtraDependencies());
            return(result);
        }
Exemple #18
0
        private HashSet <BuildObject> getAvailableDeps(out DependencyDisposition ddisp)
        {
            TransitiveDepsVerb    depsVerb      = new DafnyTransitiveDepsVerb(this.displayRoot);
            HashSet <BuildObject> availableDeps = depsVerb.getAvailableDeps(out ddisp);

            availableDeps.Add(this.displayRoot);  //- TransitiveDeps *exclude* the root, so we need to add that in, too.
            return(availableDeps);
        }
Exemple #19
0
        ////public BuildObject getMap() { return this.asmFile.makeOutputObject(".map"); }

        public override IEnumerable <BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            ddisp = DependencyDisposition.Complete;
            return(new List <BuildObject>()
            {
                this.getMasmExe(), this.asmVerb.getAsmFile()
            });
        }
 public override IEnumerable <BuildObject> getDependencies(out DependencyDisposition ddisp)
 {
     ddisp = DependencyDisposition.Complete;
     return(this.customManifest.getDependencies().Union(new List <BuildObject>()
     {
         getNmakeExecutable()
     }));
 }
        public override IEnumerable <BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            BasmModuleAccumulator     acc    = new BasmModuleAccumulator(context, upstreamObj, includeAllImps());
            IEnumerable <BuildObject> result = acc.getDeps();
            DependencyDisposition     ddisp_extra;
            IEnumerable <BuildObject> result_extra = getExtraDeps(out ddisp_extra);

            ddisp = acc.ddisp.combine(ddisp_extra);
            return(result.Concat(result_extra).Concat(new[] { getBoogieasmExecutable() }));
        }
        public override IEnumerable<BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            ddisp = DependencyDisposition.Complete;

            // I really don't care how many outputs the parent has; any one will
            // link me to the parent.
            IEnumerable<BuildObject> result = this.parent.getOutputs();
            Util.Assert(result.Count() > 0);
            return result;
        }
        public override IEnumerable<BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            ddisp = DependencyDisposition.Complete;

            List<BuildObject> deps = new List<BuildObject>(this.getInputFiles());
            deps.Add(getSymDiffMergeExecutable());

            // REVIEW: Probably need to add SymDiffMergeExecutable's dependencies too.
            return deps;
        }
        public override IEnumerable <BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            ddisp = DependencyDisposition.Complete;
            //- I really don't care how many outputs the parent has; any one will
            //- link me to the paarent.
            IEnumerable <BuildObject> result = _parent.getOutputs();

            Util.Assert(result.Count() > 0);
            return(result);
        }
Exemple #25
0
        public override IEnumerable <BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            ddisp = DependencyDisposition.Complete;
            List <BuildObject> basic = new List <BuildObject>()
            {
                getLinkerExe(), objFile
            };

            basic.AddRange(getExtraDependencies());
            return(basic);
        }
        public override IEnumerable <BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            ddisp = DependencyDisposition.Complete;

            List <BuildObject> deps = new List <BuildObject>(this.getInputFiles());

            deps.Add(getSymDiffMergeExecutable());

            // REVIEW: Probably need to add SymDiffMergeExecutable's dependencies too.
            return(deps);
        }
        public override IEnumerable<BuildObject> getDependencies(out DependencyDisposition ddisp) {
            if (this.deps == null) {
                this.deps = new List<BuildObject>();
                foreach (IObligationsProducer producer in producers) {
                    this.deps.Add(producer.getObligationSet());
                }                
            }

            ddisp = DependencyDisposition.Complete;
            return this.deps;
        }
Exemple #28
0
        public override IEnumerable<BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            ddisp = DependencyDisposition.Complete;
            List<BuildObject> dependencies = new List<BuildObject>(this.solutionParser.getDependencies());
            if (this.dafnyCompileOneVerb != null)
            {
                dependencies.AddRange(this.dafnyCompileOneVerb.getOutputs());
            }

            return dependencies;
        }
        public override IEnumerable <BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            ddisp = DependencyDisposition.Complete;
            IEnumerable <BuildObject> deps = getInputFiles();

            deps.Union(new List <BuildObject>()
            {
                getSymDiffExecutable()
            });
            return(deps);
        }
        public override IEnumerable <BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            List <BuildObject> result = new List <BuildObject>();

            result.Add(this.srcObject);

            result.Add(this.verifyResultsVerb.getOutputFile());

            ddisp = DependencyDisposition.Complete;

            return(result);
        }
Exemple #31
0
        public override IEnumerable <BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            ddisp = DependencyDisposition.Complete;
            List <BuildObject> dependencies = new List <BuildObject>(this.solutionParser.getDependencies());

            if (this.dafnyCompileOneVerb != null)
            {
                dependencies.AddRange(this.dafnyCompileOneVerb.getOutputs());
            }

            return(dependencies);
        }
Exemple #32
0
        public override IEnumerable<BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            List<BuildObject> result = new List<BuildObject>();
            ////result.Add(this.bootloader);  // TODO: Replace with the bootloader verbs's output.
            result.Add(this.loaderVerb.getExe());
            result.Add(this.appVerb.getExe());

            result.AddRange(this.batchSummaryVerb.getOutputs());

            ddisp = DependencyDisposition.Complete;
            return result;
        }
 public static DependencyDisposition combine(this DependencyDisposition a, DependencyDisposition b)
 {
     if (a == DependencyDisposition.Failed || b == DependencyDisposition.Failed)
     {
         return(DependencyDisposition.Failed);
     }
     if (a == DependencyDisposition.Incomplete || b == DependencyDisposition.Incomplete)
     {
         return(DependencyDisposition.Incomplete);
     }
     return(DependencyDisposition.Complete);
 }
Exemple #34
0
        public override IEnumerable <BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            List <BuildObject> result = new List <BuildObject>();

            //-result.Add(bootloader);
            result.Add(loaderVerb.getExe());
            result.Add(appVerb.getExe());

            result.AddRange(batchSummaryVerb.getOutputs());

            ddisp = DependencyDisposition.Complete;
            return(result);
        }
        public override IEnumerable <BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            List <BuildObject> result = new List <BuildObject>();

            ////result.Add(this.bootloader);  // TODO: Replace with the bootloader verbs's output.
            result.Add(this.loaderVerb.getExe());
            result.Add(this.appVerb.getExe());

            result.AddRange(this.batchSummaryVerb.getOutputs());

            ddisp = DependencyDisposition.Complete;
            return(result);
        }
        public static DependencyDisposition combine(this DependencyDisposition a, DependencyDisposition b)
        {
            if (a == DependencyDisposition.Failed || b == DependencyDisposition.Failed)
            {
                return DependencyDisposition.Failed;
            }

            if (a == DependencyDisposition.Incomplete || b == DependencyDisposition.Incomplete)
            {
                return DependencyDisposition.Incomplete;
            }

            return DependencyDisposition.Complete;
        }
Exemple #37
0
        public static HashSet<BuildObject> getForestDependencies(IEnumerable<BuildObject> roots, out DependencyDisposition ddisp)
        {
            HashSet<BuildObject> result = new HashSet<BuildObject>();
            ddisp = DependencyDisposition.Complete;
            foreach (BuildObject dfysource in roots)
            {
                TransitiveDepsVerb depsVerb = new DafnyTransitiveDepsVerb(dfysource);
                DependencyDisposition localDDisp;
                result.UnionWith(depsVerb.getAvailableDeps(out localDDisp));
                ddisp = ddisp.combine(localDDisp);
                result.Add(dfysource);  // TransitiveDeps *exclude* the root, so we need to add that in, too.
            }

            return result;
        }
        public override IEnumerable <BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            if (this.dependencies == null)
            {
                var dependencies = new List <BuildObject>();

                // Select and append results returned from verb.getDependencies() to dependencies.
                // If the dependency disposition is ever reported as not complete, we reflect this through to the caller.
                dependencies.AddRange(this.verbs.SelectMany(verb => verb.getOutputs()));
                this.dependencies = dependencies;
            }

            Trace.Assert(this.dependencies != null);
            ddisp = DependencyDisposition.Complete;
            return(this.dependencies);
        }
        public override IEnumerable<BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            if (this.dependencies == null)
            {
                var dependencies = new List<BuildObject>();

                // Select and append results returned from verb.getDependencies() to dependencies.
                // If the dependency disposition is ever reported as not complete, we reflect this through to the caller.
                dependencies.AddRange(this.verbs.SelectMany(verb => verb.getOutputs()));
                this.dependencies = dependencies;
            }

            Trace.Assert(this.dependencies != null);
            ddisp = DependencyDisposition.Complete;
            return this.dependencies;
        }
            void getBasmModule(string modName, ModPart modPart)
            {
                //-Logger.WriteLine(String.Format("context {0} modName {1} modPart {2}", context, modName, modPart));
                //-BuildObject ifcObj = context.search(modName, modPart);
                BuildObject ifcObj = BuildEngine.theEngine.getHasher().search(context, modName, modPart);

                if (ifcObj == null)
                {
                    Util.Assert(false); //- I'm not sure this case even occur anymore, since we guard the foreach on incomplete deps
                    _ddisp = _ddisp.combine(DependencyDisposition.Incomplete);
                }
                else
                {
                    ifcObj = maybeBeat(ifcObj, _mutableVerbSet);
                    _basmModules.Add(ifcObj);
                }
            }
Exemple #41
0
        public override IEnumerable <BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            HashSet <BuildObject> availableDeps = getAvailableDeps(out ddisp);

            List <BuildObject> true_deps = new List <BuildObject>();

            foreach (BuildObject dep in availableDeps)
            {
                if (dep.getExtension().EndsWith(DafnyVerifyOneVerb.DAFNY_EXTN))
                {
                    true_deps.Add(mkVerificationObject(dep));
                }
                else
                {
                    true_deps.Add(dep);
                }
            }
            return(true_deps);
        }
        public override IEnumerable<BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            HashSet<BuildObject> availableDeps = this.getAvailableDeps(out ddisp);

            List<BuildObject> true_deps = new List<BuildObject>();
            foreach (BuildObject dep in availableDeps)
            {
                if (dep.getExtension().EndsWith(DafnyVerifyOneVerb.DAFNY_EXTN))
                {
                    true_deps.Add(this.mkVerificationObject(dep));
                }
                else
                {
                    true_deps.Add(dep);
                }
            }

            return true_deps;
        }
        internal static IIncludePathContext fetchIfAvailable(this IContextGeneratingVerb verb, ref DependencyDisposition ddisp)
        {
            try
            {
                return ((ContextContents)
                    BuildEngine.theEngine.Repository.FetchVirtual(verb.getContextOutput())).Context;
            }
            catch (ObjectNotReadyException)
            {
                // Oh, we don't even have the context object yet.
                ddisp = ddisp.combine(DependencyDisposition.Incomplete);
            }
            catch (ObjectFailedException)
            {
                ddisp = ddisp.combine(DependencyDisposition.Failed);
            }

            return null;
        }
 protected override IEnumerable <BuildObject> getExtraDeps(out DependencyDisposition ddisp)
 {
     try
     {
         ddisp = DependencyDisposition.Complete;
         return(getTrustedBoogieAxioms());
     }
     catch (ObjectNotReadyException)
     {
         // All the basms aren't here yet, so we can't scan them. Don't sweat it;
         // those deps are already being called for.
         ddisp = DependencyDisposition.Incomplete;
         return(new BuildObject[] { });
     }
     catch (ObjectFailedException)
     {
         ddisp = DependencyDisposition.Failed;
         return(new BuildObject[] { });
     }
 }
        protected virtual IEnumerable <SourcePath> getAllDafnyModules(out DependencyDisposition ddisp)
        {
            HashSet <BuildObject> result = DafnyExtensions.getForestDependencies(getRoots(), out ddisp);
            //- now we assert that all Dafny inputs are actually SourcePaths.
            HashSet <SourcePath> rc = new HashSet <SourcePath>();

            foreach (BuildObject obj in result)
            {
                if (obj.getExtension().EndsWith(DafnyVerifyOneVerb.DAFNY_EXTN))
                {
                    rc.Add((SourcePath)obj);
                }
                else
                {
                    Util.Assert(obj.getExtension().EndsWith(TransitiveDepsVerb.TDEP_EXTN));
                    //- discard it.
                }
            }
            return(rc);
        }
Exemple #46
0
        public IEnumerable<BuildObject> getDependencies(IVerb verb, out DependencyDisposition ddisp)
        {
            this.dbgQueries += 1;
            DependencyResult result;
            bool present = this.theCache.TryGetValue(verb, out result);
            if (!present)
            {
                this.dbgMisses += 1;
                result = new DependencyResult();
                result.deps = verb.getDependencies(out result.ddisp);
                if (result.ddisp != DependencyDisposition.Incomplete)
                {
                    // Can't cache incomplete results, since they may change upon
                    // later inspection.
                    this.theCache[verb] = result;
                }
            }

            ddisp = result.ddisp;
            return result.deps;
        }
        public IEnumerable <BuildObject> getDependencies(IVerb verb, out DependencyDisposition ddisp)
        {
            dbgQueries += 1;
            DependencyResult result;
            bool             present = theCache.TryGetValue(verb, out result);

            if (!present)
            {
                dbgMisses  += 1;
                result      = new DependencyResult();
                result.deps = verb.getDependencies(out result.ddisp);
                if (result.ddisp != DependencyDisposition.Incomplete)
                {
                    //- Can't cache incomplete results, since they may change upon
                    //- later inspection.
                    theCache[verb] = result;
                }
            }
            ddisp = result.ddisp;
            return(result.deps);
        }
        //- This is a helper method for the downstream verb's getDependencies().
        //- It emits this verb's output token so that if this verb is
        //- not yeat Fresh, the scheduler will strive to get this verb Executed,
        //- plus if this verb is Fresh, tacks on all of the deps computed by
        //- this verb.
        //- The returned HashSet belongs to the caller, who is free
        //- to stuff more into it.
        public HashSet <BuildObject> getAvailableDeps(out DependencyDisposition ddisp)
        {
            HashSet <BuildObject> result = new HashSet <BuildObject>();

            result.Add(depsObj());

            try
            {
                result.UnionWith(getTransitiveIncludes());
                result.Add(obj);    //- Add this last, since BoogieAsmLinkVerb appears to depend on this ordering
                ddisp = DependencyDisposition.Complete;
            }
            catch (ObjNotReadyException)
            {
                ddisp = DependencyDisposition.Incomplete;
            }
            catch (ObjFailedException)
            {
                ddisp = DependencyDisposition.Failed;
            }
            return(result);
        }
        // This is a helper method for the downstream verb's getDependencies().
        // It emits this verb's output token so that if this verb is
        // not yeat Fresh, the scheduler will strive to get this verb Executed,
        // plus if this verb is Fresh, tacks on all of the deps computed by
        // this verb.
        // The returned HashSet belongs to the caller, who is free
        // to stuff more into it.
        public HashSet<BuildObject> getAvailableDeps(out DependencyDisposition ddisp)
        {
            HashSet<BuildObject> result = new HashSet<BuildObject>();
            result.Add(this.depsObj());

            try
            {
                result.UnionWith(this.getTransitiveIncludes());
                result.Add(this.obj);    // Add this last, since BoogieAsmLinkVerb appears to depend on this ordering
                ddisp = DependencyDisposition.Complete;
            }
            catch (ObjectNotReadyException)
            {
                ddisp = DependencyDisposition.Incomplete;
            }
            catch (ObjectFailedException)
            {
                ddisp = DependencyDisposition.Failed;
            }

            return result;
        }
        public override IEnumerable<BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            BuildObject obligations = this.producer.getObligationSet();
            HashSet<BuildObject> deps = new HashSet<BuildObject>();
            deps.Add(obligations);

            try
            {
                VerificationObligationList vol = VerificationObligationList.fetch(obligations);
                this.verificationResults = vol.getVerificationObligations();
                deps.UnionWith(this.verificationResults);
                ddisp = DependencyDisposition.Complete;
            }
            catch (ObjectNotReadyException)
            {
                ddisp = DependencyDisposition.Incomplete;
            }
            catch (ObjectFailedException)
            {
                ddisp = DependencyDisposition.Failed;
            }

            return deps;
        }
Exemple #51
0
        public override IEnumerable<BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            if (this.deps == null)
            {
                this.deps = new List<BuildObject>();
                foreach (IObligationsProducer producer in this.producers)
                {
                    this.deps.Add(producer.getObligationSet());
                }
            }

            ddisp = DependencyDisposition.Complete;
            return this.deps;
        }
Exemple #52
0
        public override IEnumerable<BuildObject> getDependencies(out DependencyDisposition ddisp)
        {
            List<BuildObject> result = new List<BuildObject>();
            result.Add(this.srcObject);

            result.Add(this.verifyResultsVerb.getOutputFile());

            ddisp = DependencyDisposition.Complete;

            return result;
        }
 public override IEnumerable<BuildObject> getDependencies(out DependencyDisposition ddisp)
 {
     ddisp = DependencyDisposition.Complete;
     return this.parents.Select(parent => parent.getContextOutput());
 }
Exemple #54
0
 public override IEnumerable<BuildObject> getDependencies(out DependencyDisposition ddisp)
 {
     ddisp = DependencyDisposition.Complete;
     return new List<BuildObject>() { this.asmFileIn, this.pythonScript };
 }
Exemple #55
0
 public override IEnumerable<BuildObject> getDependencies(out DependencyDisposition ddisp)
 {
     ddisp = DependencyDisposition.Complete;
     return this.customManifest.getDependencies().Union(new List<BuildObject>() { getNmakeExecutable() });
 }
 private void getBasmModule(string modName, ModPart modPart)
 {
     ////Logger.WriteLine(string.Format("context {0} modName {1} modPart {2}", context, modName, modPart));
     ////BuildObject ifcObj = context.search(modName, modPart);
     BuildObject ifcObj = BuildEngine.theEngine.getHasher().search(context, modName, modPart);
     if (ifcObj == null)
     {
         Util.Assert(false); // I'm not sure this case even occur anymore, since we guard the foreach on incomplete deps.
         _ddisp = _ddisp.combine(DependencyDisposition.Incomplete);
     }
     else
     {
         ifcObj = maybeBeat(ifcObj, _mutableVerbSet);
         _basmModules.Add(ifcObj);
     }
 }
 public override IEnumerable<BuildObject> getDependencies(out DependencyDisposition ddisp)
 {
     BasmModuleAccumulator acc = new BasmModuleAccumulator(context, upstreamObj, includeAllImps());
     IEnumerable<BuildObject> result = acc.getDeps();
     DependencyDisposition ddisp_extra;
     IEnumerable<BuildObject> result_extra = getExtraDeps(out ddisp_extra);
     ddisp = acc.ddisp.combine(ddisp_extra);
     return result.Concat(result_extra).Concat(new[] { getBoogieasmExecutable() });
 }
 protected virtual IEnumerable<BuildObject> getExtraDeps(out DependencyDisposition ddisp)
 {
     ddisp = DependencyDisposition.Complete;
     return new BuildObject[] { };
 }
 public override IEnumerable<BuildObject> getDependencies(out DependencyDisposition ddisp)
 {
     ddisp = DependencyDisposition.Complete;
     return new BuildObject[] { };
 }
 protected override IEnumerable<BuildObject> getExtraDeps(out DependencyDisposition ddisp)
 {
     try
     {
         ddisp = DependencyDisposition.Complete;
         return getTrustedBoogieAxioms();
     }
     catch (ObjectNotReadyException)
     {
         // All the basms aren't here yet, so we can't scan them. Don't sweat it;
         // those deps are already being called for.
         ddisp = DependencyDisposition.Incomplete;
         return new BuildObject[] { };
     }
     catch (ObjectFailedException)
     {
         ddisp = DependencyDisposition.Failed;
         return new BuildObject[] { };
     }
 }