well, we can't fix this in old branches of Bioc. My POV is that we need to consider - in some sense - lock down CRAN with a Bioc release.
On Tue, Mar 26, 2019 at 12:45 AM Aaron Lun < 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> 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> > >> 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> 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 on behalf of > 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> > >>> 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> > >>> > 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> > >>> > 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 > >>> > > > 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 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 > >>> > >> > > > > _______________________________________________ > Bioc-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/bioc-devel > [[alternative HTML version deleted]] _______________________________________________ Bioc-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/bioc-devel