[Bioc-devel] package RBGL requires CRAN dependency on devel branch

Aaron Lun |n||n|te@monkey@@w|th@keybo@rd@ @end|ng |rom gm@||@com
Wed Mar 27 06:06:31 CET 2019


> well, we can't fix this in old branches of Bioc.

Sure, but one could say that about breaking changes to any CRAN package. 
Nothing particularly special about BH on that point.

> My POV is that we need to consider - in some sense - lock down CRAN with 
> a Bioc release.

That's probably worth considering. For example, it would be pretty cool 
to just supply a date and BiocManager could figure out the last 
successful release versions of all CRAN/BioC packages at that time.

-A

> On Tue, Mar 26, 2019 at 12:45 AM Aaron Lun 
> <infinite.monkeys.with.keyboards using gmail.com 
> <mailto:infinite.monkeys.with.keyboards using gmail.com>> wrote:
> 
>     My 2 cents - API-breaking changes to BH are no more of an issue than
>     breaking changes to any other CRAN package. We just hope that it
>     doesn't
>     happen too often and we deal with it when the time comes; that's the
>     whole point of getting frequent release builds to check for these cases.
> 
>     If we were discussing a package that distributed a shared library, then
>     greater concern would be warranted if updates to the library
>     resulted in
>     ABI incompatibilities. This could result in very cryptic errors at link
>     time, load time, or possibly segmentation faults, who knows.
> 
>     But BH is a header-only library, so breaking changes will most likely
>     cause compilation errors that are obvious and easy to fix. Well, easy
>     enough if you were able to write C++ code in the first place.
> 
>     -A
> 
> 
>     On 25/03/2019 08:39, Vincent Carey wrote:
>      > On Mon, Mar 25, 2019 at 10:57 AM Kasper Daniel Hansen <
>      > kasperdanielhansen using gmail.com
>     <mailto:kasperdanielhansen using gmail.com>> wrote:
>      >
>      >> There are no issues with depending on CRAN packages.
>      >>
>      >> But I would advise caution. On one hand it is great that boost gets
>      >> updated regularly. On the other hand, it could lead to
>     incompatibilities
>      >> with RBGL and then you have to update that package rapidly. Also
>     - and this
>      >> is something we could consider addressing - the CRAN imports of
>     Bioc are
>      >> not locked down. By which I mean, you release RBGL in
>     Bioconductor X. After
>      >> release (or perhaps even after next Bioc release) BH is updated in a
>      >> non-backwards compatible way and now the old code is hosed.
>     Having said
>      >> that, so far we have been ignoring it (I think) and the same
>     issue arises
>      >> with Rcpp.
>      >>
>      >> Do you have any idea how often Boost breaks compatibility?  I would
>      >> strongly advise to download the last couple of BH releases and
>     test with
>      >> RBGL. While kind of irrelevant in some sense, it will give you
>     an idea of
>      >> how fast Boost / BH evolves.
>      >>
>      >
>      > These are good points.  In this particular case I believe that
>     Boost Graph
>      > Library evolves very slowly and
>      > backwards compatibility is not endangered.  It is an early
>     component of
>      > Boost.  On the other hand, BH has
>      > no obligation to provide the graph (BGL) headers, and I believe
>     that in
>      > early incarnations of BH, some headers
>      > needed for RBGL were not there.  So there are maintenance
>     vulnerabilities
>      > to this approach, but I think it is better
>      > if we stick with the maintained BH as long as this works.  Should
>     this
>      > approach fail (and your scenario of
>      > CRAN package changes breaking bioc must be kept in mind) we can
>     go back to
>      > tarball distribution if necessary.
>      >
>      >
>      >>
>      >> On Mon, Mar 25, 2019 at 8:03 AM Martin Morgan
>     <mtmorgan.bioc using gmail.com <mailto:mtmorgan.bioc using gmail.com>>
>      >> wrote:
>      >>
>      >>> ...also Bioconductor knows all about CRAN -- see the repositories
>      >>> returned by
>      >>>
>      >>>> BiocManager::repositories()
>      >>>                                                 BioCsoft
>      >>>             "https://bioconductor.org/packages/3.9/bioc"
>      >>>                                                  BioCann
>      >>> "https://bioconductor.org/packages/3.9/data/annotation"
>      >>>                                                  BioCexp
>      >>> "https://bioconductor.org/packages/3.9/data/experiment"
>      >>>                                            BioCworkflows
>      >>>        "https://bioconductor.org/packages/3.9/workflows"
>      >>>                                                     CRAN
>      >>>                               "https://cran.rstudio.com"
>      >>>>
>      >>>
>      >>> On 3/25/19, 7:42 AM, "Martin Morgan" <mtmorgan.bioc using gmail.com
>     <mailto:mtmorgan.bioc using gmail.com>> wrote:
>      >>>
>      >>>      I think the usual incantation in configure files is
>     ${R_HOME}/bin/R
>      >>> ... R_HOME is the path to R set by the command that starts to
>     build or
>      >>> install the package, whereas Rscript is found on the search path.
>      >>>
>      >>>      Martin
>      >>>
>      >>>      On 3/25/19, 7:33 AM, "Bioc-devel on behalf of Vincent
>     Carey" <
>      >>> bioc-devel-bounces using r-project.org
>     <mailto:bioc-devel-bounces using r-project.org> on behalf of
>     stvjc using channing.harvard.edu <mailto:stvjc using channing.harvard.edu>>
>      >>> wrote:
>      >>>
>      >>>          The error on linux for 3.9:
>      >>>
>      >>>
>      >>>
>     ##############################################################################
>      >>>
>      >>>
>     ##############################################################################
>      >>>          ###
>      >>>          ### Running command:
>      >>>          ###
>      >>>          ###   /home/biocbuild/bbs-3.9-bioc/R/bin/R CMD INSTALL
>     RBGL
>      >>>          ###
>      >>>
>      >>>
>     ##############################################################################
>      >>>
>      >>>
>     ##############################################################################
>      >>>
>      >>>
>      >>>          * installing to library
>     ‘/home/biocbuild/bbs-3.9-bioc/R/library’
>      >>>          * installing *source* package ‘RBGL’ ...
>      >>>          ** using staged installation
>      >>>          checking R package BH ... no
>      >>>          configure: error: R package BH not found.
>      >>>          ERROR: configuration failed for package ‘RBGL’
>      >>>          * removing ‘/home/biocbuild/bbs-3.9-bioc/R/library/RBGL’
>      >>>          * restoring previous
>     ‘/home/biocbuild/bbs-3.9-bioc/R/library/RBGL’
>      >>>
>      >>>          Note that BiocParallel also uses BH and succeeds
>      >>>
>      >>>          configure: creating ./config.status
>      >>>          config.status: creating src/Makevars
>      >>>          ** libs
>      >>>          g++ -std=gnu++11
>     -I"/home/biocbuild/bbs-3.9-bioc/R/include"
>      >>> -DNDEBUG
>      >>>          -I"/home/biocbuild/bbs-3.9-bioc/R/library/BH/include"
>      >>>          -I/usr/local/include  -fpic  -g -O2  -Wall -c
>     ipcmutex.cpp -o
>      >>>          ipcmutex.o
>      >>>          In file included from
>      >>>
>      >>>
>     /home/biocbuild/bbs-3.9-bioc/R/library/BH/include/boost/random/detail/integer_log2.hpp:19:0,
>      >>>                           from
>      >>>
>      >>>
>     /home/biocbuild/bbs-3.9-bioc/R/library/BH/include/boost/random/detail/large_arithmetic.hpp:19,
>      >>>                           from
>      >>>
>      >>>
>     /home/biocbuild/bbs-3.9-bioc/R/library/BH/include/boost/random/detail/const_mod.hpp:23,
>      >>>                           from
>      >>>
>      >>>
>     /home/biocbuild/bbs-3.9-bioc/R/library/BH/include/boost/random/detail/seed_impl.hpp:26,
>      >>>                           from
>      >>>
>      >>>
>     /home/biocbuild/bbs-3.9-bioc/R/library/BH/include/boost/random/mersenne_twister.hpp:30,
>      >>>                           from
>      >>>
>      >>>
>     /home/biocbuild/bbs-3.9-bioc/R/library/BH/include/boost/uuid/random_generator.hpp:17,
>      >>>
>      >>>          So could it be an issue with the configure script?
>      >>>
>      >>>
>      >>>          On Mon, Mar 25, 2019 at 7:22 AM Samuela Pollack <
>      >>> spollack using jimmy.harvard.edu <mailto:spollack using jimmy.harvard.edu>>
>      >>>          wrote:
>      >>>
>      >>>          > Dear Bioconductor,
>      >>>          >
>      >>>          > The devel version of package RBGL is flunking build.
>      >>>          >
>      >>>          > This package has been modified to include header
>     files in the
>      >>> CRAN
>      >>>          > package 'BH' instead of using a local tarball of the
>     header
>      >>> files. We
>      >>>          > consider this an improvement because the 'BH'
>     maintainers
>      >>> update their
>      >>>          > package every time a new version of boost is
>     released, but
>      >>> rebuilding
>      >>>          > the included tarball is unreliable.
>      >>>          >
>      >>>          > Is it possible to request inclusion of a CRAN package
>      >>> dependency in a
>      >>>          > Bioconductor package? If not, how would Bioconductor
>     recommend
>      >>> we handle
>      >>>          > this?
>      >>>          >
>      >>>          > (Full disclosure: the BH package has all the header
>     files for
>      >>> all of
>      >>>          > boost. This is a lot more disk space then we need,
>     because we
>      >>> only need
>      >>>          > the BGL.)
>      >>>          >
>      >>>          > thanks,
>      >>>          >
>      >>>          > - Sam
>      >>>          >
>      >>>          >
>      >>>          >
>      >>>          > On 3/22/19 7:28 AM, Morgan, Martin wrote:
>      >>>          > >          External Email - Use Caution
>      >>>          > >
>      >>>          > > Thanks for the explanation and exemplary detective
>     work. Will
>      >>> you push
>      >>>          > these changes to the release and devel branches of
>     RBGL? I've
>      >>> given you
>      >>>          > permissions... Martin
>      >>>          > >
>      >>>          > > On 3/22/19, 5:15 AM, "Samuela Pollack" <
>      >>> spollack using jimmy.harvard.edu <mailto:spollack using jimmy.harvard.edu>>
>      >>>          > wrote:
>      >>>          > >
>      >>>          > >      We have a temporary fix which we believe will
>     alleviate
>      >>> the
>      >>>          > difficulty.
>      >>>          > >
>      >>>          > >      The only routine in RBGL that does not
>     compile under the
>      >>> LLVM-9.0
>      >>>          > system
>      >>>          > >      is the routine that implements betweenness
>     connectivity
>      >>> clustering.
>      >>>          > This
>      >>>          > >      seems to be a rarely-used routine, so we have
>      >>> temporarily removed it
>      >>>          > >      from RBGL and put in a message explaining how
>     users may
>      >>> replace it
>      >>>          > easily.
>      >>>          > >
>      >>>          > >      I have contacted Professor Jeremy Siek at in
>     Bloomington
>      >>> to discuss
>      >>>          > how
>      >>>          > >      best to proceed. It is possible this will
>     have to be
>      >>> fixed in BGL,
>      >>>          > >      probably not in time for boost 1.70.
>      >>>          > >
>      >>>          > >      For clarity: the incompatibility is not in
>     clang. The
>      >>>          > incompatibility is
>      >>>          > >      in the llvm c++ standard library. Mac users
>     who build
>      >>> with clang
>      >>>          > will be
>      >>>          > >      fine, as long as they don't link in the llvm
>     C++ stdlib,
>      >>> which most
>      >>>          > >      wouldn't think to do and Apple does not
>     encourage.
>      >>>          > >
>      >>>          > >      We hope this will be sufficient for now.
>      >>>          > >
>      >>>          > >      - Sam
>      >>>          > >
>      >>>          > >
>      >>>          > >      On 3/22/19 4:18 AM, Morgan, Martin wrote:
>      >>>          > >      >          External Email - Use Caution
>      >>>          > >      >
>      >>>          > >      > What's the status for RBGL?
>      >>>          > >      >
>      >>>          > >      > Thanks, Martin
>      >>>          > >      >
>      >>>          > >      > On 3/22/19, 3:57 AM, "Prof Brian Ripley" <
>      >>> ripley using stats.ox.ac.uk <mailto:ripley using stats.ox.ac.uk>>
>      >>>          > wrote:
>      >>>          > >      >
>      >>>          > >      >      clang 8.0.0 is now released, and these
>     fail there
>      >>> too (and
>      >>>          > break about
>      >>>          > >      >      50 CRAN packages which depend on them).
>      >>>          > >      >
>      >>>          > >      >      Reminder: this is with clang's native
>     libc++, as
>      >>> documented
>      >>>          > at
>      >>>          > >      >
>      >>>          >
>      >>>
>     https://www.stats.ox.ac.uk/pub/bdr/Rconfig/r-devel-linux-x86_64-fedora-clang
>      >>>          > >      >
>      >>>          > >      >      We really need fixes in both 3.8 and 3.9.
>      >>>          > >      >
>      >>>          > >      >      BDR
>      >>>          > >      >
>      >>>          > >      >      On 28/02/2019 18:52, Prof Brian Ripley
>     wrote:
>      >>>          > >      >      > These packages fail to install with
>     clang
>      >>> 8.0.0rc3, which
>      >>>          > is supposed to
>      >>>          > >      >      > be near-final (it is overdue for
>     release).
>      >>> (AFAIR they
>      >>>          > did install with
>      >>>          > >      >      > rc1.)  In both cases the problems
>     are with
>      >>> Boost.
>      >>>          > >      >      >
>      >>>          > >      >      > RBGL 1.95.1
>      >>>          > >      >      >
>      >>>          > >      >      > In file included from bbc.cpp:1:
>      >>>          > >      >      > In file included from ./RBGL.hpp:7:
>      >>>          > >      >      > In file included from
>      >>>          > /usr/local/clang8/bin/../include/c++/v1/iostream:38:
>      >>>          > >      >      > In file included from
>      >>>          > /usr/local/clang8/bin/../include/c++/v1/ios:216:
>      >>>          > >      >      > In file included from
>      >>>          > /usr/local/clang8/bin/../include/c++/v1/__locale:15:
>      >>>          > >      >      > In file included from
>      >>>          > /usr/local/clang8/bin/../include/c++/v1/string:505:
>      >>>          > >      >      > In file included from
>      >>>          > >      >      >
>      >>> /usr/local/clang8/bin/../include/c++/v1/string_view:176:
>      >>>          > >      >      > In file included from
>      >>>          > /usr/local/clang8/bin/../include/c++/v1/__string:57:
>      >>>          > >      >      >
>      >>> /usr/local/clang8/bin/../include/c++/v1/algorithm:2494:5:
>      >>>          > error:
>      >>>          > >      >      > static_assert
>      >>>          > >      >      >        failed due to requirement
>      >>>          > >      >      >
>      >>>          > >      >      >
>      >>>          >
>      >>>
>     '__is_forward_iterator<boost::detail::undirected_edge_iter<std::__1::__list_iterator<boost::list_edge<unsigned
>      >>>          > >      >      >
>      >>>          > >      >      >        long,
>      >>> boost::property<boost::edge_weight_t, double,
>      >>>          > >      >      >
>      >>> boost::property<boost::edge_centrality_t, double,
>      >>>          > >      >      > boost::no_property> > >,
>      >>>          > >      >      >        void *>,
>      >>>          > boost::detail::edge_desc_impl<boost::undirected_tag,
>      >>>          > >      >      > unsigned
>      >>>          > >      >      >        long>, long> >::value'
>     "std::max_element
>      >>> requires a
>      >>>          > ForwardIterator"
>      >>>          > >      >      >
>      >>>          >
>     static_assert(__is_forward_iterator<_ForwardIterator>::value,
>      >>>          > >      >      >      ^
>      >>>          >  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>      >>>          > >      >      >
>      >>>          >
>     rbgl_trimmed_boost_1_61_0/boost/graph/bc_clustering.hpp:132:26:
>      >>> note: in
>      >>>          > >      >      >        instantiation of function
>     template
>      >>> specialization
>      >>>          > >      >      >
>      >>>          > >      >      >
>      >>>          >
>      >>>
>     'std::__1::max_element<boost::detail::undirected_edge_iter<std::__1::__list_iterator<boost::list_edge<unsigned
>      >>>          > >      >      >
>      >>>          > >      >      >        long,
>      >>> boost::property<boost::edge_weight_t, double,
>      >>>          > >      >      >
>      >>> boost::property<boost::edge_centrality_t, double,
>      >>>          > >      >      > boost::no_property> > >,
>      >>>          > >      >      >        void *>,
>      >>>          > boost::detail::edge_desc_impl<boost::undirected_tag,
>      >>>          > >      >      > unsigned
>      >>>          > >      >      >        long>, long>,
>      >>>          > >      >      >
>      >>>          > >      >      >
>      >>>          >
>      >>>
>     boost::indirect_cmp<boost::adj_list_edge_property_map<boost::undirected_tag,
>      >>>          > >      >      >
>      >>>          > >      >      >        double, double &, unsigned long,
>      >>>          > >      >      > boost::property<boost::edge_weight_t,
>      >>>          > >      >      >        double,
>      >>> boost::property<boost::edge_centrality_t,
>      >>>          > double,
>      >>>          > >      >      >        boost::no_property> >,
>      >>> boost::edge_centrality_t>,
>      >>>          > >      >      > std::__1::less<double> >
>      >>>          > >      >      >        >' requested here
>      >>>          > >      >      >      edge_descriptor e =
>      >>> *max_element(edges_iters.first,
>      >>>          > >      >      > edges_iters.seco...
>      >>>          > >      >      >
>      >>>          >
>     rbgl_trimmed_boost_1_61_0/boost/graph/bc_clustering.hpp:146:3:
>      >>> note: in
>      >>>          > >      >      >        instantiation of function
>     template
>      >>> specialization
>      >>>          > >      >      >
>      >>>          > >      >      >
>      >>>          >
>      >>>
>     'boost::betweenness_centrality_clustering<boost::adjacency_list<boost::vecS,
>      >>>          > >      >      >
>      >>>          > >      >      >        boost::vecS, boost::undirectedS,
>      >>>          > >      >      > boost::property<boost::vertex_index_t,
>      >>>          > >      >      >        int,
>      >>> boost::property<boost::vertex_centrality_t,
>      >>>          > double,
>      >>>          > >      >      >        boost::no_property> >,
>      >>>          > boost::property<boost::edge_weight_t, double,
>      >>>          > >      >      >
>      >>> boost::property<boost::edge_centrality_t, double,
>      >>>          > >      >      > boost::no_property> >,
>      >>>          > >      >      >        boost::no_property,
>     boost::listS>,
>      >>>          > clustering_threshold,
>      >>>          > >      >      >
>      >>>          >
>     boost::adj_list_edge_property_map<boost::undirected_tag, double,
>      >>>          > >      >      > double &,
>      >>>          > >      >      >        unsigned long,
>      >>>          > boost::property<boost::edge_weight_t, double,
>      >>>          > >      >      >
>      >>> boost::property<boost::edge_centrality_t, double,
>      >>>          > >      >      > boost::no_property> >,
>      >>>          > >      >      >        boost::edge_centrality_t>,
>      >>>          > >      >      >
>      >>>          > >      >      >
>      >>>          >
>      >>>
>     boost::vec_adj_list_vertex_id_map<boost::property<boost::vertex_index_t,
>      >>>          > >      >      >        int,
>      >>> boost::property<boost::vertex_centrality_t,
>      >>>          > double,
>      >>>          > >      >      >        boost::no_property> >,
>     unsigned long> >'
>      >>> requested
>      >>>          > here
>      >>>          > >      >      >   
>     betweenness_centrality_clustering(g, done,
>      >>>          > edge_centrality,
>      >>>          > >      >      >    ^
>      >>>          > >      >      > bbc.cpp:122:3: note: in instantiation of
>      >>> function template
>      >>>          > specialization
>      >>>          > >      >      >
>      >>>          > >      >      >
>      >>>          >
>      >>>
>     'boost::betweenness_centrality_clustering<boost::adjacency_list<boost::vecS,
>      >>>          > >      >      >
>      >>>          > >      >      >        boost::vecS, boost::undirectedS,
>      >>>          > >      >      > boost::property<boost::vertex_index_t,
>      >>>          > >      >      >        int,
>      >>> boost::property<boost::vertex_centrality_t,
>      >>>          > double,
>      >>>          > >      >      >        boost::no_property> >,
>      >>>          > boost::property<boost::edge_weight_t, double,
>      >>>          > >      >      >
>      >>> boost::property<boost::edge_centrality_t, double,
>      >>>          > >      >      > boost::no_property> >,
>      >>>          > >      >      >        boost::no_property,
>     boost::listS>,
>      >>>          > clustering_threshold,
>      >>>          > >      >      >
>      >>>          >
>     boost::adj_list_edge_property_map<boost::undirected_tag, double,
>      >>>          > >      >      > double &,
>      >>>          > >      >      >        unsigned long,
>      >>>          > boost::property<boost::edge_weight_t, double,
>      >>>          > >      >      >
>      >>> boost::property<boost::edge_centrality_t, double,
>      >>>          > >      >      > boost::no_property> >,
>      >>>          > >      >      >        boost::edge_centrality_t> >'
>     requested
>      >>> here
>      >>>          > >      >      >
>      >>> betweenness_centrality_clustering(g,
>      >>>          > >      >      >                  ^
>      >>>          > >      >      >
>      >>>          > >      >      > mzR 2.17.1
>      >>>          > >      >      >
>      >>>          > >      >      > In file included from
>      >>>          > pwiz/data/identdata/Serializer_pepXML.cpp:25:
>      >>>          > >      >      > In file included from
>      >>>          > pwiz/data/identdata/Serializer_pepXML.hpp:27:
>      >>>          > >      >      > In file included from
>      >>> pwiz/data/identdata/IdentData.hpp:29:
>      >>>          > >      >      > In file included from
>      >>> ./pwiz/utility/misc/Exception.hpp:29:
>      >>>          > >      >      > In file included from
>      >>>          > /usr/local/clang8/bin/../include/c++/v1/string:505:
>      >>>          > >      >      > In file included from
>      >>>          > >      >      >
>      >>> /usr/local/clang8/bin/../include/c++/v1/string_view:176:
>      >>>          > >      >      > In file included from
>      >>>          > /usr/local/clang8/bin/../include/c++/v1/__string:57:
>      >>>          > >      >      >
>      >>> /usr/local/clang8/bin/../include/c++/v1/algorithm:2428:5:
>      >>>          > error:
>      >>>          > >      >      > static_assert
>      >>>          > >      >      >        failed due to requirement
>      >>>          > >      >      >
>      >>>          > >      >      >
>      >>>          >
>      >>>
>     '__is_forward_iterator<boost::iterators::transform_iterator<pwiz::identdata::(anonymous
>      >>>          > >      >      >
>      >>>          > >      >      >       
>     namespace)::EnzymePtr_specificity,
>      >>>          > std::__1::__wrap_iter<const
>      >>>          > >      >      >
>      >>> boost::shared_ptr<pwiz::identdata::Enzyme> *>,
>      >>>          > >      >      >        boost::iterators::use_default,
>      >>>          > boost::iterators::use_default>
>      >>>          > >      >      >  >::value'
>      >>>          > >      >      >        "std::min_element requires a
>      >>> ForwardIterator"
>      >>>          > >      >      >
>      >>>          >
>     static_assert(__is_forward_iterator<_ForwardIterator>::value,
>      >>>          > >      >      >      ^
>      >>>          >  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>      >>>          > >      >      >
>      >>> /usr/local/clang8/bin/../include/c++/v1/algorithm:2445:19:
>      >>>          > note: in
>      >>>          > >      >      >        instantiation of function
>     template
>      >>> specialization
>      >>>          > >      >      >
>      >>>          > >      >      >
>      >>>          >
>      >>>
>     'std::__1::min_element<boost::iterators::transform_iterator<pwiz::identdata::(anonymous
>      >>>          > >      >      >
>      >>>          > >      >      >       
>     namespace)::EnzymePtr_specificity,
>      >>>          > std::__1::__wrap_iter<const
>      >>>          > >      >      >
>      >>> boost::shared_ptr<pwiz::identdata::Enzyme> *>,
>      >>>          > >      >      >        boost::iterators::use_default,
>      >>>          > boost::iterators::use_default>,
>      >>>          > >      >      >        std::__1::__less<int, int> >'
>     requested
>      >>> here
>      >>>          > >      >      >      return
>     _VSTD::min_element(__first, __last,
>      >>>          > >      >      >                    ^
>      >>>          > >      >      >
>      >>> ./boost/boost/range/algorithm/min_element.hpp:44:17: note:
>      >>>          > in
>      >>>          > >      >      > instantiation of
>      >>>          > >      >      >        function template specialization
>      >>>          > >      >      >
>      >>>          > >      >      >
>      >>>          >
>      >>>
>     'std::__1::min_element<boost::iterators::transform_iterator<pwiz::identdata::(anonymous
>      >>>          > >      >      >
>      >>>          > >      >      >       
>     namespace)::EnzymePtr_specificity,
>      >>>          > std::__1::__wrap_iter<const
>      >>>          > >      >      >
>      >>> boost::shared_ptr<pwiz::identdata::Enzyme> *>,
>      >>>          > >      >      >        boost::iterators::use_default,
>      >>>          > boost::iterators::use_default> >'
>      >>>          > >      >      > requested
>      >>>          > >      >      >        here
>      >>>          > >      >      >      return
>     std::min_element(boost::begin(rng),
>      >>>          > boost::end(rng));
>      >>>          > >      >      >
>      >>>          > >      >      >
>      >>>          > >      >      >
>      >>>          > >      >      >
>      >>> pwiz/data/identdata/Serializer_pepXML.cpp:418:41: note: in
>      >>>          > instantiation of
>      >>>          > >      >      >        function template specialization
>      >>>          > >      >      >
>      >>>          > >      >      >
>      >>>          >
>      >>>
>     'boost::range::min_element<boost::range_detail::transformed_range<pwiz::identdata::(anonymous
>      >>>          > >      >      >
>      >>>          > >      >      >       
>     namespace)::EnzymePtr_specificity, const
>      >>>          > >      >      >
>      >>>          >
>     std::__1::vector<boost::shared_ptr<pwiz::identdata::Enzyme>,
>      >>>          > >      >      >
>      >>>          >
>     std::__1::allocator<boost::shared_ptr<pwiz::identdata::Enzyme> >
>      >>>          > >      >      >  > > >'
>      >>>          > >      >      >        requested here
>      >>>          > >      >      >      int minSpecificity =
>      >>>          > *boost::range::min_element(sip.enzymes.enzymes
>      >>>          > >      >      > ...
>      >>>          > >      >      >                                     
>          ^
>      >>>          > >      >      > In file included from
>      >>>          > pwiz/data/identdata/Serializer_pepXML.cpp:25:
>      >>>          > >      >      > In file included from
>      >>>          > pwiz/data/identdata/Serializer_pepXML.hpp:27:
>      >>>          > >      >      > In file included from
>      >>> pwiz/data/identdata/IdentData.hpp:29:
>      >>>          > >      >      > In file included from
>      >>> ./pwiz/utility/misc/Exception.hpp:29:
>      >>>          > >      >      > In file included from
>      >>>          > /usr/local/clang8/bin/../include/c++/v1/string:505:
>      >>>          > >      >      > In file included from
>      >>>          > >      >      >
>      >>> /usr/local/clang8/bin/../include/c++/v1/string_view:176:
>      >>>          > >      >      > In file included from
>      >>>          > /usr/local/clang8/bin/../include/c++/v1/__string:57:
>      >>>          > >      >      >
>      >>> /usr/local/clang8/bin/../include/c++/v1/algorithm:2494:5:
>      >>>          > error:
>      >>>          > >      >      > static_assert
>      >>>          > >      >      >        failed due to requirement
>      >>>          > >      >      >
>      >>>          > >      >      >
>      >>>          >
>      >>>
>     '__is_forward_iterator<boost::iterators::transform_iterator<pwiz::identdata::(anonymous
>      >>>          > >      >      >
>      >>>          > >      >      >       
>     namespace)::EnzymePtr_missedCleavages,
>      >>>          > std::__1::__wrap_iter<const
>      >>>          > >      >      >
>      >>> boost::shared_ptr<pwiz::identdata::Enzyme> *>,
>      >>>          > >      >      >        boost::iterators::use_default,
>      >>>          > boost::iterators::use_default>
>      >>>          > >      >      >  >::value'
>      >>>          > >      >      >        "std::max_element requires a
>      >>> ForwardIterator"
>      >>>          > >      >      >
>      >>>          >
>     static_assert(__is_forward_iterator<_ForwardIterator>::value,
>      >>>          > >      >      >      ^
>      >>>          >  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>      >>>          > >      >      >
>      >>> /usr/local/clang8/bin/../include/c++/v1/algorithm:2512:19:
>      >>>          > note: in
>      >>>          > >      >      >        instantiation of function
>     template
>      >>> specialization
>      >>>          > >      >      >
>      >>>          > >      >      >
>      >>>          >
>      >>>
>     'std::__1::max_element<boost::iterators::transform_iterator<pwiz::identdata::(anonymous
>      >>>          > >      >      >
>      >>>          > >      >      >       
>     namespace)::EnzymePtr_missedCleavages,
>      >>>          > std::__1::__wrap_iter<const
>      >>>          > >      >      >
>      >>> boost::shared_ptr<pwiz::identdata::Enzyme> *>,
>      >>>          > >      >      >        boost::iterators::use_default,
>      >>>          > boost::iterators::use_default>,
>      >>>          > >      >      >        std::__1::__less<int, int> >'
>     requested
>      >>> here
>      >>>          > >      >      >      return
>     _VSTD::max_element(__first, __last,
>      >>>          > >      >      >                    ^
>      >>>          > >      >      >
>      >>> ./boost/boost/range/algorithm/max_element.hpp:44:17: note:
>      >>>          > in
>      >>>          > >      >      > instantiation of
>      >>>          > >      >      >        function template specialization
>      >>>          > >      >      >
>      >>>          > >      >      >
>      >>>          >
>      >>>
>     'std::__1::max_element<boost::iterators::transform_iterator<pwiz::identdata::(anonymous
>      >>>          > >      >      >
>      >>>          > >      >      >       
>     namespace)::EnzymePtr_missedCleavages,
>      >>>          > std::__1::__wrap_iter<const
>      >>>          > >      >      >
>      >>> boost::shared_ptr<pwiz::identdata::Enzyme> *>,
>      >>>          > >      >      >        boost::iterators::use_default,
>      >>>          > boost::iterators::use_default> >'
>      >>>          > >      >      > requested
>      >>>          > >      >      >        here
>      >>>          > >      >      >      return
>     std::max_element(boost::begin(rng),
>      >>>          > boost::end(rng));
>      >>>          > >      >      > ...
>      >>>          > >      >      >
>      >>>          > >      >
>      >>>          > >      >
>      >>>          > >      >      --
>      >>>          > >      >      Brian D. Ripley,
>      >>> ripley using stats.ox.ac.uk <mailto:ripley using stats.ox.ac.uk>
>      >>>          > >      >      Emeritus Professor of Applied Statistics,
>      >>> University of
>      >>>          > Oxford
>      >>>          > >      >
>      >>>          > >      >
>      >>>          > >      >
>      >>>          > >      >
>      >>>          > >      > This email message may contain legally
>     privileged
>      >>> and/or
>      >>>          > confidential information.  If you are not the intended
>      >>> recipient(s), or the
>      >>>          > employee or agent responsible for the delivery of
>     this message
>      >>> to the
>      >>>          > intended recipient(s), you are hereby notified that any
>      >>> disclosure,
>      >>>          > copying, distribution, or use of this email message is
>      >>> prohibited.  If you
>      >>>          > have received this message in error, please notify
>     the sender
>      >>> immediately
>      >>>          > by e-mail and delete this email message from your
>     computer.
>      >>> Thank you.
>      >>>          > >
>      >>>          > >
>      >>>          > >
>      >>>          > >
>      >>>          > > This email message may contain legally privileged
>     and/or
>      >>> confidential
>      >>>          > information.  If you are not the intended
>     recipient(s), or the
>      >>> employee or
>      >>>          > agent responsible for the delivery of this message
>     to the
>      >>> intended
>      >>>          > recipient(s), you are hereby notified that any
>     disclosure,
>      >>> copying,
>      >>>          > distribution, or use of this email message is
>     prohibited.  If
>      >>> you have
>      >>>          > received this message in error, please notify the sender
>      >>> immediately by
>      >>>          > e-mail and delete this email message from your
>     computer. Thank
>      >>> you.
>      >>>          >
>      >>>
>      >>>          --
>      >>>          The information in this e-mail is intended only for the
>      >>> ...{{dropped:18}}
>      >>>
>      >>>          _______________________________________________
>      >>> Bioc-devel using r-project.org <mailto:Bioc-devel using r-project.org>
>     mailing list
>      >>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>      >>>
>      >>>
>      >>> _______________________________________________
>      >>> Bioc-devel using r-project.org <mailto:Bioc-devel using r-project.org>
>     mailing list
>      >>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>      >>>
>      >>
>      >
> 
>     _______________________________________________
>     Bioc-devel using r-project.org <mailto:Bioc-devel using r-project.org> mailing list
>     https://stat.ethz.ch/mailman/listinfo/bioc-devel
>



More information about the Bioc-devel mailing list