Cleanup: Remove singleton()
This commit is contained in:
		
							parent
							
								
									0d4a10e910
								
							
						
					
					
						commit
						6c75cf69c3
					
				
					 9 changed files with 23 additions and 35 deletions
				
			
		|  | @ -87,7 +87,7 @@ static void prim_scopedImport(EvalState & state, const Pos & pos, Value * * args | ||||||
|         Value & w = *state.allocValue(); |         Value & w = *state.allocValue(); | ||||||
|         state.mkAttrs(w, 3 + drv.outputs.size()); |         state.mkAttrs(w, 3 + drv.outputs.size()); | ||||||
|         Value * v2 = state.allocAttr(w, state.sDrvPath); |         Value * v2 = state.allocAttr(w, state.sDrvPath); | ||||||
|         mkString(*v2, path, singleton<PathSet>("=" + path)); |         mkString(*v2, path, {"=" + path}); | ||||||
|         v2 = state.allocAttr(w, state.sName); |         v2 = state.allocAttr(w, state.sName); | ||||||
|         mkString(*v2, drv.env["name"]); |         mkString(*v2, drv.env["name"]); | ||||||
|         Value * outputsVal = |         Value * outputsVal = | ||||||
|  | @ -97,8 +97,7 @@ static void prim_scopedImport(EvalState & state, const Pos & pos, Value * * args | ||||||
| 
 | 
 | ||||||
|         for (const auto & o : drv.outputs) { |         for (const auto & o : drv.outputs) { | ||||||
|             v2 = state.allocAttr(w, state.symbols.create(o.first)); |             v2 = state.allocAttr(w, state.symbols.create(o.first)); | ||||||
|             mkString(*v2, o.second.path, |             mkString(*v2, o.second.path, {"!" + o.first + "!" + path}); | ||||||
|                 singleton<PathSet>("!" + o.first + "!" + path)); |  | ||||||
|             outputsVal->listElems()[outputs_index] = state.allocValue(); |             outputsVal->listElems()[outputs_index] = state.allocValue(); | ||||||
|             mkString(*(outputsVal->listElems()[outputs_index++]), o.first); |             mkString(*(outputsVal->listElems()[outputs_index++]), o.first); | ||||||
|         } |         } | ||||||
|  | @ -665,10 +664,10 @@ static void prim_derivationStrict(EvalState & state, const Pos & pos, Value * * | ||||||
|     drvHashes[drvPath] = hashDerivationModulo(*state.store, drv); |     drvHashes[drvPath] = hashDerivationModulo(*state.store, drv); | ||||||
| 
 | 
 | ||||||
|     state.mkAttrs(v, 1 + drv.outputs.size()); |     state.mkAttrs(v, 1 + drv.outputs.size()); | ||||||
|     mkString(*state.allocAttr(v, state.sDrvPath), drvPath, singleton<PathSet>("=" + drvPath)); |     mkString(*state.allocAttr(v, state.sDrvPath), drvPath, {"=" + drvPath}); | ||||||
|     for (auto & i : drv.outputs) { |     for (auto & i : drv.outputs) { | ||||||
|         mkString(*state.allocAttr(v, state.symbols.create(i.first)), |         mkString(*state.allocAttr(v, state.symbols.create(i.first)), | ||||||
|             i.second.path, singleton<PathSet>("!" + i.first + "!" + drvPath)); |             i.second.path, {"!" + i.first + "!" + drvPath}); | ||||||
|     } |     } | ||||||
|     v.attrs->sort(); |     v.attrs->sort(); | ||||||
| } | } | ||||||
|  | @ -905,7 +904,7 @@ static void prim_toFile(EvalState & state, const Pos & pos, Value * * args, Valu | ||||||
|        result, since `storePath' itself has references to the paths |        result, since `storePath' itself has references to the paths | ||||||
|        used in args[1]. */ |        used in args[1]. */ | ||||||
| 
 | 
 | ||||||
|     mkString(v, storePath, singleton<PathSet>(storePath)); |     mkString(v, storePath, {storePath}); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -967,7 +966,7 @@ static void prim_filterSource(EvalState & state, const Pos & pos, Value * * args | ||||||
|         ? computeStorePathForPath(path, true, htSHA256, filter).first |         ? computeStorePathForPath(path, true, htSHA256, filter).first | ||||||
|         : state.store->addToStore(baseNameOf(path), path, true, htSHA256, filter, state.repair); |         : state.store->addToStore(baseNameOf(path), path, true, htSHA256, filter, state.repair); | ||||||
| 
 | 
 | ||||||
|     mkString(v, dstPath, singleton<PathSet>(dstPath)); |     mkString(v, dstPath, {dstPath}); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2145,8 +2145,7 @@ void DerivationGoal::startBuilder() | ||||||
|     /* parent */ |     /* parent */ | ||||||
|     pid.setSeparatePG(true); |     pid.setSeparatePG(true); | ||||||
|     builderOut.writeSide.close(); |     builderOut.writeSide.close(); | ||||||
|     worker.childStarted(shared_from_this(), |     worker.childStarted(shared_from_this(), {builderOut.readSide}, true, true); | ||||||
|         singleton<set<int> >(builderOut.readSide), true, true); |  | ||||||
| 
 | 
 | ||||||
|     /* Check if setting up the build environment failed. */ |     /* Check if setting up the build environment failed. */ | ||||||
|     while (true) { |     while (true) { | ||||||
|  | @ -3698,7 +3697,7 @@ void LocalStore::ensurePath(const Path & path) | ||||||
| 
 | 
 | ||||||
|     Worker worker(*this); |     Worker worker(*this); | ||||||
|     GoalPtr goal = worker.makeSubstitutionGoal(path); |     GoalPtr goal = worker.makeSubstitutionGoal(path); | ||||||
|     Goals goals = singleton<Goals>(goal); |     Goals goals = {goal}; | ||||||
| 
 | 
 | ||||||
|     worker.run(goals); |     worker.run(goals); | ||||||
| 
 | 
 | ||||||
|  | @ -3711,7 +3710,7 @@ void LocalStore::repairPath(const Path & path) | ||||||
| { | { | ||||||
|     Worker worker(*this); |     Worker worker(*this); | ||||||
|     GoalPtr goal = worker.makeSubstitutionGoal(path, true); |     GoalPtr goal = worker.makeSubstitutionGoal(path, true); | ||||||
|     Goals goals = singleton<Goals>(goal); |     Goals goals = {goal}; | ||||||
| 
 | 
 | ||||||
|     worker.run(goals); |     worker.run(goals); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -949,7 +949,7 @@ Path LocalStore::addToStoreFromDump(const string & dump, const string & name, | ||||||
|         /* The first check above is an optimisation to prevent
 |         /* The first check above is an optimisation to prevent
 | ||||||
|            unnecessary lock acquisition. */ |            unnecessary lock acquisition. */ | ||||||
| 
 | 
 | ||||||
|         PathLocks outputLock(singleton<PathSet, Path>(dstPath)); |         PathLocks outputLock({dstPath}); | ||||||
| 
 | 
 | ||||||
|         if (repair || !isValidPath(dstPath)) { |         if (repair || !isValidPath(dstPath)) { | ||||||
| 
 | 
 | ||||||
|  | @ -1018,7 +1018,7 @@ Path LocalStore::addTextToStore(const string & name, const string & s, | ||||||
| 
 | 
 | ||||||
|     if (repair || !isValidPath(dstPath)) { |     if (repair || !isValidPath(dstPath)) { | ||||||
| 
 | 
 | ||||||
|         PathLocks outputLock(singleton<PathSet, Path>(dstPath)); |         PathLocks outputLock({dstPath}); | ||||||
| 
 | 
 | ||||||
|         if (repair || !isValidPath(dstPath)) { |         if (repair || !isValidPath(dstPath)) { | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -222,8 +222,7 @@ void switchLink(Path link, Path target) | ||||||
| 
 | 
 | ||||||
| void lockProfile(PathLocks & lock, const Path & profile) | void lockProfile(PathLocks & lock, const Path & profile) | ||||||
| { | { | ||||||
|     lock.lockPaths(singleton<PathSet>(profile), |     lock.lockPaths({profile}, (format("waiting for lock on profile ‘%1%’") % profile).str()); | ||||||
|         (format("waiting for lock on profile ‘%1%’") % profile).str()); |  | ||||||
|     lock.setDeletion(true); |     lock.setDeletion(true); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -117,15 +117,6 @@ void createSymlink(const Path & target, const Path & link); | ||||||
| void replaceSymlink(const Path & target, const Path & link); | void replaceSymlink(const Path & target, const Path & link); | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| template<class T, class A> |  | ||||||
| T singleton(const A & a) |  | ||||||
| { |  | ||||||
|     T t; |  | ||||||
|     t.insert(a); |  | ||||||
|     return t; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| /* Wrappers arount read()/write() that read/write exactly the
 | /* Wrappers arount read()/write() that read/write exactly the
 | ||||||
|    requested number of bytes. */ |    requested number of bytes. */ | ||||||
| void readFull(int fd, unsigned char * buf, size_t count); | void readFull(int fd, unsigned char * buf, size_t count); | ||||||
|  |  | ||||||
|  | @ -195,7 +195,7 @@ static void performOp(ref<LocalStore> store, bool trusted, unsigned int clientVe | ||||||
|     case wopHasSubstitutes: { |     case wopHasSubstitutes: { | ||||||
|         Path path = readStorePath(from); |         Path path = readStorePath(from); | ||||||
|         startWork(); |         startWork(); | ||||||
|         PathSet res = store->querySubstitutablePaths(singleton<PathSet>(path)); |         PathSet res = store->querySubstitutablePaths({path}); | ||||||
|         stopWork(); |         stopWork(); | ||||||
|         to << (res.find(path) != res.end()); |         to << (res.find(path) != res.end()); | ||||||
|         break; |         break; | ||||||
|  | @ -472,7 +472,7 @@ static void performOp(ref<LocalStore> store, bool trusted, unsigned int clientVe | ||||||
|         Path path = absPath(readString(from)); |         Path path = absPath(readString(from)); | ||||||
|         startWork(); |         startWork(); | ||||||
|         SubstitutablePathInfos infos; |         SubstitutablePathInfos infos; | ||||||
|         store->querySubstitutablePathInfos(singleton<PathSet>(path), infos); |         store->querySubstitutablePathInfos({path}, infos); | ||||||
|         stopWork(); |         stopWork(); | ||||||
|         SubstitutablePathInfos::iterator i = infos.find(path); |         SubstitutablePathInfos::iterator i = infos.find(path); | ||||||
|         if (i == infos.end()) |         if (i == infos.end()) | ||||||
|  |  | ||||||
|  | @ -224,7 +224,7 @@ static bool isPrebuilt(EvalState & state, DrvInfo & elem) | ||||||
| { | { | ||||||
|     Path path = elem.queryOutPath(); |     Path path = elem.queryOutPath(); | ||||||
|     if (state.store->isValidPath(path)) return true; |     if (state.store->isValidPath(path)) return true; | ||||||
|     PathSet ps = state.store->querySubstitutablePaths(singleton<PathSet>(path)); |     PathSet ps = state.store->querySubstitutablePaths({path}); | ||||||
|     return ps.find(path) != ps.end(); |     return ps.find(path) != ps.end(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -710,13 +710,13 @@ static void opSet(Globals & globals, Strings opFlags, Strings opArgs) | ||||||
|         drv.name = globals.forceName; |         drv.name = globals.forceName; | ||||||
| 
 | 
 | ||||||
|     if (drv.queryDrvPath() != "") { |     if (drv.queryDrvPath() != "") { | ||||||
|         PathSet paths = singleton<PathSet>(drv.queryDrvPath()); |         PathSet paths = {drv.queryDrvPath()}; | ||||||
|         printMissing(globals.state->store, paths); |         printMissing(globals.state->store, paths); | ||||||
|         if (globals.dryRun) return; |         if (globals.dryRun) return; | ||||||
|         globals.state->store->buildPaths(paths, globals.state->repair ? bmRepair : bmNormal); |         globals.state->store->buildPaths(paths, globals.state->repair ? bmRepair : bmNormal); | ||||||
|     } |     } | ||||||
|     else { |     else { | ||||||
|         printMissing(globals.state->store, singleton<PathSet>(drv.queryOutPath())); |         printMissing(globals.state->store, {drv.queryOutPath()}); | ||||||
|         if (globals.dryRun) return; |         if (globals.dryRun) return; | ||||||
|         globals.state->store->ensurePath(drv.queryOutPath()); |         globals.state->store->ensurePath(drv.queryOutPath()); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -112,7 +112,7 @@ bool createUserEnv(EvalState & state, DrvInfos & elems, | ||||||
|     Value args, topLevel; |     Value args, topLevel; | ||||||
|     state.mkAttrs(args, 3); |     state.mkAttrs(args, 3); | ||||||
|     mkString(*state.allocAttr(args, state.symbols.create("manifest")), |     mkString(*state.allocAttr(args, state.symbols.create("manifest")), | ||||||
|         manifestFile, singleton<PathSet>(manifestFile)); |         manifestFile, {manifestFile}); | ||||||
|     args.attrs->push_back(Attr(state.symbols.create("derivations"), &manifest)); |     args.attrs->push_back(Attr(state.symbols.create("derivations"), &manifest)); | ||||||
|     args.attrs->sort(); |     args.attrs->sort(); | ||||||
|     mkApp(topLevel, envBuilder, args); |     mkApp(topLevel, envBuilder, args); | ||||||
|  | @ -128,7 +128,7 @@ bool createUserEnv(EvalState & state, DrvInfos & elems, | ||||||
| 
 | 
 | ||||||
|     /* Realise the resulting store expression. */ |     /* Realise the resulting store expression. */ | ||||||
|     debug("building user environment"); |     debug("building user environment"); | ||||||
|     state.store->buildPaths(singleton<PathSet>(topLevelDrv), state.repair ? bmRepair : bmNormal); |     state.store->buildPaths({topLevelDrv}, state.repair ? bmRepair : bmNormal); | ||||||
| 
 | 
 | ||||||
|     /* Switch the current user environment to the output path. */ |     /* Switch the current user environment to the output path. */ | ||||||
|     PathLocks lock; |     PathLocks lock; | ||||||
|  |  | ||||||
|  | @ -64,7 +64,7 @@ static PathSet realisePath(Path path, bool build = true) | ||||||
|     DrvPathWithOutputs p = parseDrvPathWithOutputs(path); |     DrvPathWithOutputs p = parseDrvPathWithOutputs(path); | ||||||
| 
 | 
 | ||||||
|     if (isDerivation(p.first)) { |     if (isDerivation(p.first)) { | ||||||
|         if (build) store->buildPaths(singleton<PathSet>(path)); |         if (build) store->buildPaths({path}); | ||||||
|         Derivation drv = store->derivationFromPath(p.first); |         Derivation drv = store->derivationFromPath(p.first); | ||||||
|         rootNr++; |         rootNr++; | ||||||
| 
 | 
 | ||||||
|  | @ -101,7 +101,7 @@ static PathSet realisePath(Path path, bool build = true) | ||||||
|             if (rootNr > 1) rootName += "-" + std::to_string(rootNr); |             if (rootNr > 1) rootName += "-" + std::to_string(rootNr); | ||||||
|             path = store->addPermRoot(path, rootName, indirectRoot); |             path = store->addPermRoot(path, rootName, indirectRoot); | ||||||
|         } |         } | ||||||
|         return singleton<PathSet>(path); |         return {path}; | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -222,7 +222,7 @@ static PathSet maybeUseOutputs(const Path & storePath, bool useOutput, bool forc | ||||||
|             outputs.insert(i.second.path); |             outputs.insert(i.second.path); | ||||||
|         return outputs; |         return outputs; | ||||||
|     } |     } | ||||||
|     else return singleton<PathSet>(storePath); |     else return {storePath}; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -537,7 +537,7 @@ static void opDumpDB(Strings opFlags, Strings opArgs) | ||||||
|         throw UsageError("no arguments expected"); |         throw UsageError("no arguments expected"); | ||||||
|     PathSet validPaths = store->queryAllValidPaths(); |     PathSet validPaths = store->queryAllValidPaths(); | ||||||
|     for (auto & i : validPaths) |     for (auto & i : validPaths) | ||||||
|         cout << store->makeValidityRegistration(singleton<PathSet>(i), true, true); |         cout << store->makeValidityRegistration({i}, true, true); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue