aboutsummaryrefslogtreecommitdiff
path: root/paludis/resolver
AgeCommit message (Collapse)AuthorLines
2017-08-08resolver: use range based for loops (NFC)Avatar Saleem Abdulrasool -14/+10
Convert a few loops to range based for loops instead of standard for loops.
2017-06-11resolver: add fallthrough attribute to silence -Wimplicit-fallthroughAvatar Saleem Abdulrasool -2/+2
2017-01-18build: add missing dependencies on generated headersAvatar Bo ├śrsted Andresen -0/+1
These depend upon libpaludisutils' generated headers. Found by the Jenkins build bot.
2017-01-16paludis: c++11-ify repository iterationAvatar Saleem Abdulrasool -54/+35
Add a `repositories` in `Environment` which provides an iterator range for the repositories, allowing C++11 style range based iteration.
2016-12-13build: Use the imported target for linking to pthreadAvatar Heiko Becker -1/+1
Our required cmake version is new enough (>=3.1) and usage of the imported target is recommended by cmake's documentation [1]. Furthermore, according to the docs THREADS_PREFER_PTHREAD_FLAG can only be used with the imported target. [1] https://cmake.org/cmake/help/v3.7/module/FindThreads.html
2016-12-10build: resolvertest uses google-test, SE source dependencyAvatar Saleem Abdulrasool -31/+33
The test was previously built as part of the check target, which hid the fact that it was not conditionalised on gtest tests being enabled. Add the guard for that. Add a dependency on libpaludisutil_SE on the support library. It uses path-se.hh.
2016-12-08resolver: whitespace, style cleanupsAvatar Saleem Abdulrasool -115/+67
Avoid else return, use range based loop. Rename resolvent from `q` to `r`.
2016-12-06Fix build with -Wl,--as-neededAvatar Heiko Becker -1/+2
2016-12-06Only build resolver_TEST_promote_binaries if tests are enabledAvatar Heiko Becker -3/+2
Otherwise cmake complains when -DENABLE_GTEST=FALSE is passed, because it doesn't know the target.
2016-12-04resolver: more range loop conversions (NFC)Avatar Saleem Abdulrasool -11/+7
2016-12-04use range based for loops more pervasively (NFC)Avatar Saleem Abdulrasool -19/+12
2016-11-30build: remove autotools based buildAvatar Saleem Abdulrasool -488/+0
There can be only one!
2016-11-30build: introduce cmake based build systemAvatar Saleem Abdulrasool -0/+126
2016-08-06modernize: use default method synthesisAvatar Saleem Abdulrasool -83/+27
Convert a number of destructors to default synthesized functions. Try to inline a few instances into the header. It should be possible to inline all of them, however, gcc seems to emit a number of warnings. Furthermore, some of the destructors are pure-virtualed, but provide an implementation. Placing the definition into the header causes ODR violations.
2016-08-04modernize: use override annotationsAvatar Saleem Abdulrasool -42/+42
Automated addition of override to overridden functions. NFC.
2016-08-04modernize: use nullptr rather than 0 or NULLAvatar Saleem Abdulrasool -5/+5
Automated conversion to nullptr. NFC.
2016-08-04modernize: convert to range based for-loopsAvatar Saleem Abdulrasool -43/+30
Automated conversion to range based for loops. NFC
2016-01-29resolver: use range loops in the deciderAvatar Saleem Abdulrasool -183/+131
Switch the decider to range based for loops. NFC.
2016-01-17build: unconditionally use visibility flagsAvatar Saleem Abdulrasool -1/+1
Remove the last remnants of icc support as the current released versions do not support C++11 and we intend to use clang as the alternate compiler. This cleans up the compile flags to remove the now obsoleted definition (-DPALUDIS_USE_VISIBILITY), the unnecessary compile time checks, and the handling for ICC in the macros.
2015-11-08Unify =* behaviourAvatar David Leverton -3/+2
Gentoo changed =* to mean almost the same thing as it does in Exherbo in bug 560466; the difference being that float-like components aren't treated specially, for example 1.0123 doesn't match a dep saying =1.012*. Since nothing in Exherbo relies on this anyway, just make it the same everywhere.
2015-08-21noexcept is default for destructorsAvatar Wouter van Kesteren -2/+2
Change-Id: I9be4610510c6f38925cb2f9a02906a67a462672f Reviewed-on: https://galileo.mailstation.de/gerrit/1893 Reviewed-by: Saleem Abdulrasool <compnerd@compnerd.org> Reviewed-by: Kylie McClain <somasis@exherbo.org>
2015-08-21throw() -> noexceptAvatar Wouter van Kesteren -4/+4
Change-Id: I461abfda8b7297c1bd04f1090f8d58fa96364616 Reviewed-on: https://galileo.mailstation.de/gerrit/1892 Reviewed-by: Saleem Abdulrasool <compnerd@compnerd.org> Reviewed-by: Kylie McClain <somasis@exherbo.org>
2015-05-02GCC 5.1 compatibilityAvatar Wouter van Kesteren -3/+3
Change-Id: I2cb6e653147e64f8e85583e03d1c0a2fb846335e Reported-by: Marc Duponcheel <marc@offline.be>
2015-04-19resolver: use a few temporary variablesAvatar Saleem Abdulrasool -3/+9
Use a few temporary variables to make it easier to read.
2015-04-19resolver: pull out some logic into a helper filterAvatar Saleem Abdulrasool -5/+23
Create a helper function to construct the installed id filter. This makes the code a bit easier to read since due to better wrapping.
2015-04-19resolver: whitespaceAvatar Saleem Abdulrasool -1/+2
Wrap a line to make it slightly easier to read.
2014-09-14Add --chroot-pathAvatar Ciaran McCreesh -4/+23
2014-08-28Fix assorted build failures with clangAvatar David Leverton -2/+1
../../../paludis/paludis/util/sequence-impl.hh:162:21: error: expected expression _imp->list.sort<const C_ &>(c); - just a missing "template" ../../paludis/paludis/util/visitor.hh:322:24: error: no viable overloaded '=' result = _unwrapped_visitor.visit(t); [snip] ../../paludis/paludis/mask.cc:43:17: note: in instantiation of function template specialization 'paludis::DeclareAbstractAcceptMethods<paludis::Mask, paludis::TypeListEntry<paludis::UserMask, paludis::TypeListEntry<paludis::UnacceptedMask, paludis::TypeListEntry<paludis::RepositoryMask, paludis::TypeListEntry<paludis::UnsupportedMask, paludis::TypeListTail> > > > >::make_accept_returning<<lambda at ../../paludis/paludis/mask.cc:44:9>, <lambda at ../../paludis/paludis/mask.cc:45:9>, <lambda at ../../paludis/paludis/mask.cc:46:9>, <lambda at ../../paludis/paludis/mask.cc:47:9> >' requested here return mask.make_accept_returning( /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4/bits/basic_string.h:543:7: note: candidate function not viable: 'this' argument has type 'const std::basic_string<char>', but method is not marked const operator=(const basic_string& __str) [snip] - template argument inferred as const and then used for temporary variable that gets assigned, so needs to be forced non-const In file included from ../../../../paludis/paludis/repositories/e/e_choice_value.cc:24: ../../../../paludis/paludis/util/pool-impl.hh:171:23: error: call to function 'operator==' that is neither visible in the template definition nor found by argument-dependent lookup return _value == static_cast<const ConcretePoolKey<T_> &>(other)._value; [snip] ../../../../paludis/paludis/repositories/e/e_choice_value.cc:147:10: note: 'operator==' should be declared prior to the call site or in namespace 'paludis::erepository' bool operator== (const EChoiceValueParams & a, const EChoiceValueParams & b) - see http://clang.llvm.org/compatibility.html#dep_lookup /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4/functional:1925:2: error: no matching function for call to object of type 'std::_Bind<std::_Mem_fn<void (paludis::resolver::Decider::*)(const std::shared_ptr<const paludis::resolver::Resolution> &, const std::shared_ptr<const paludis::resolver::Constraint> &, const std::shared_ptr<const paludis::resolver::Decision> &) __attribute__((noreturn)) const> (paludis::resolver::Decider *, std::shared_ptr<paludis::resolver::Resolution>, std::shared_ptr<const paludis::resolver::Constraint>, std::shared_ptr<paludis::resolver::Decision>)>' (*_Base::_M_get_pointer(__functor))( [snip] ../../../paludis/paludis/resolver/decider.cc:936:65: note: in instantiation of function template specialization 'std::function<void ()>::function<std::_Bind<std::_Mem_fn<void (paludis::resolver::Decider::*)(const std::shared_ptr<const paludis::resolver::Resolution> &, const std::shared_ptr<const paludis::resolver::Constraint> &, const std::shared_ptr<const paludis::resolver::Decision> &) __attribute__((noreturn)) const> (paludis::resolver::Decider *, std::shared_ptr<paludis::resolver::Resolution>, std::shared_ptr<const paludis::resolver::Constraint>, std::shared_ptr<paludis::resolver::Decision>)> >' requested here resolution->decision()->accept(WrongDecisionVisitor(std::bind( /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/include/g++-v4/functional:1211:2: note: candidate template ignored: substitution failure [with _Args = <>]: no matching function for call to object of type 'std::_Mem_fn<void (paludis::resolver::Decider::*)(const std::shared_ptr<const paludis::resolver::Resolution> &, const std::shared_ptr<const paludis::resolver::Constraint> &, const std::shared_ptr<const paludis::resolver::Decision> &) __attribute__((noreturn)) const>' operator()(_Args&&... __args) [snip] - not sure why it doesn't like this, but its nicer with the anonymous function anyway ../../paludis/python/dep_spec.cc:1409:16: error: explicit instantiation of 'paludis::WrappedForwardIterator' must occur in namespace 'paludis' template class WrappedForwardIterator<PythonCompositeDepSpec::ConstIteratorTag, ../../paludis/python/exception.cc:32:16: error: explicit instantiation of 'paludis::Singleton' must occur in namespace 'paludis' template class Singleton<ExceptionRegister>; ../../paludis/ruby/paludis_ruby.cc:38:16: error: explicit instantiation of 'paludis::Singleton' must occur in namespace 'paludis' template class Singleton<RegisterRubyClass>; - self-explanatory
2014-05-18If a subslot changes, build := dependents afterAvatar David Leverton -4/+281
2014-03-24Smile a bitAvatar Elias Pipping -15/+15
2014-03-22Don't run promote_binaries test without pbinsAvatar Ciaran McCreesh -1/+8
2014-03-21Tests for PromoteBinariesHelperAvatar Dimitry Ishenko -2/+212
2014-03-21ResolverWithBinaryTestData: control binrepo importanceAvatar Dimitry Ishenko -3/+4
2014-03-21Add PromoteBinariesHelperAvatar Dimitry Ishenko -1/+267
2014-03-21Add selection::AllVersionsSortedWithPromotionAvatar Dimitry Ishenko -0/+376
2014-03-06Fix segfaultAvatar Ciaran McCreesh -9/+10
2014-01-05Don't try to make binaries out of binariesAvatar Ciaran McCreesh -7/+46
2014-01-05Identify targets correctlyAvatar Ciaran McCreesh -2/+3
2013-12-05Fix BreakDecision.Avatar Bo ├śrsted Andresen -0/+1
2013-09-08Suggest uninstallsAvatar Ciaran McCreesh -9/+87
2013-09-08Add UninstallConfirmationAvatar Ciaran McCreesh -4/+38
2013-06-23C++11: auto convert to nullptr via cpp11-migrateAvatar Saleem Abdulrasool -1/+1
This is a blanket migration via the clang C++11 migration tool to convert NULL pointer to nullptr usage. Signed-off-by: Saleem Abdulrasool <compnerd@compnerd.org>
2013-05-23Convert to fancy new visitorsAvatar Ciaran McCreesh -38/+11
2013-05-23Convert to fancy new visitorsAvatar Ciaran McCreesh -174/+57
2013-05-23Convert to fancy new visitorsAvatar Ciaran McCreesh -354/+187
2013-05-23Unused includeAvatar Ciaran McCreesh -20/+10
2013-05-23Move code aroundAvatar Ciaran McCreesh -18/+0
2013-05-22Use nullptrAvatar Ciaran McCreesh -109/+86
2013-05-22Switch to std mutex and condition_variableAvatar Ciaran McCreesh -5/+5
2013-03-02silence ignored value warningsAvatar Saleem Abdulrasool -22/+33
The methods are explicitly tagged to warn if the return value is ignored. Silence the warning by simply storing the value (which the compiler will hopefully discard).