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.keyboa...@gmail.com <mailto:infinite.monkeys.with.keyboa...@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 <
     > kasperdanielhan...@gmail.com
    <mailto:kasperdanielhan...@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.b...@gmail.com <mailto:mtmorgan.b...@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.b...@gmail.com
    <mailto:mtmorgan.b...@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-boun...@r-project.org
    <mailto:bioc-devel-boun...@r-project.org> on behalf of
    st...@channing.harvard.edu <mailto:st...@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 <
     >>> spoll...@jimmy.harvard.edu <mailto:spoll...@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" <
     >>> spoll...@jimmy.harvard.edu <mailto:spoll...@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" <
     >>> rip...@stats.ox.ac.uk <mailto:rip...@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,
     >>> rip...@stats.ox.ac.uk <mailto:rip...@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@r-project.org <mailto:Bioc-devel@r-project.org>
    mailing list
     >>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
     >>>
     >>>
     >>> _______________________________________________
     >>> Bioc-devel@r-project.org <mailto:Bioc-devel@r-project.org>
    mailing list
     >>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
     >>>
     >>
     >

    _______________________________________________
    Bioc-devel@r-project.org <mailto:Bioc-devel@r-project.org> mailing list
    https://stat.ethz.ch/mailman/listinfo/bioc-devel


_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel

Reply via email to