Changeset 3579


Ignore:
Timestamp:
Jan 16, 2017, 4:54:43 AM (7 years ago)
Author:
Peter
Message:

merge release 0.14 into trunk

Location:
trunk
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/NEWS

    r3566 r3579  
    1010yat 0.14.x series from http://dev.thep.lu.se/yat/svn/branches/0.14-stable
    1111
    12 version 0.14 (released NOT YET)
     12version 0.14 (released 16 January 2017)
    1313  - The concept 'Distance' now requires that operator() works on
    1414    iterator that are readable and forward traversal, i.e., the
  • trunk/doc/concepts.doxygen

    r3550 r3579  
    464464
    465465  - \c theplu::yat::utility::weighted_iterator_traits<I> must work
    466     well, which implies that iterator, \c I is a \readable_iterator.
     466    well, which implies that iterator, \c I is a \readable_iterator
     467    and \single_pass_iterator.
    467468
    468469\section concept_data_iterator_implementations Implementations
  • trunk/test/fasta.cc

    r3497 r3579  
    11// $Id$
    22//
    3 // Copyright (C) 2016 Peter Johansson
     3// Copyright (C) 2016, 2017 Peter Johansson
    44//
    55// This program is free software; you can redistribute it and/or modify
     
    4747  // 'samtools fasta' is required to generate input fasta file
    4848#ifndef HAVE_SAMTOOLS_FASTA_EXECUTABLE
     49  suite.out() << "no samtools with 'samtools fasta' support found\n";
    4950  exit (EXIT_SKIP);
    5051#endif
  • trunk/test/weighted_iterator_archetype.cc

    r3550 r3579  
    22
    33/*
    4   Copyright (C) 2014, 2015, 2016 Peter Johansson
     4  Copyright (C) 2014, 2015, 2016, 2017 Peter Johansson
    55
    66  This file is part of the yat library, http://dev.thep.lu.se/yat
     
    167167  // this is a compilation test - do not run
    168168  if (false) {
    169     test1<boost::incrementable_traversal_tag>();
     169    // On some systems std::iterator_traits<>::value_type does not
     170    // work, so we require concept Data Iterator to be single pass.
     171    //test1<boost::incrementable_traversal_tag>();
    170172    test1<boost::single_pass_traversal_tag>();
    171173    test1<boost::forward_traversal_tag>();
  • trunk/yat/classifier/Target.cc

    r2919 r3579  
    66  Copyright (C) 2007, 2008 Jari Häkkinen, Peter Johansson
    77  Copyright (C) 2012 Peter Johansson
     8  Copyright (C) 2017 Jari Häkkinen
    89
    910  This file is part of the yat library, http://dev.thep.lu.se/yat
     
    8586    while(ok) {
    8687      if(sep=='\0')
    87         ok=(is>>word);
     88        ok=!(is>>word).fail();
    8889      else
    89         ok=getline(is, word, sep);
     90        ok=!getline(is, word, sep).fail();
    9091
    9192      // ignore empty words
  • trunk/yat/omic/BamFile.cc

    r3484 r3579  
    1919  along with this program. If not, see <http://www.gnu.org/licenses/>.
    2020*/
    21 
    22 #include <iostream>
    2321
    2422#include <config.h>
  • trunk/yat/random/random.cc

    r3469 r3579  
    33/*
    44  Copyright (C) 2005, 2006, 2007, 2008 Jari Häkkinen, Peter Johansson
    5   Copyright (C) 2009, 2011, 2012, 2013, 2015, 2016 Peter Johansson
     5  Copyright (C) 2009, 2011, 2012, 2013, 2015, 2016, 2017 Peter Johansson
    66
    77  This file is part of the yat library, http://dev.thep.lu.se/yat
     
    3939
    4040  RNG* RNG::instance_=NULL;
     41  boost::mutex RNG::init_mutex_;
    4142
    4243  RNG::RNG(void)
     
    5960  RNG* RNG::instance(void)
    6061  {
    61     if (instance_==NULL)
    62       instance_ = new RNG;
     62    if (instance_==NULL) {
     63      boost::unique_lock<boost::mutex> lock(init_mutex_);
     64      if (instance_==NULL)
     65        instance_ = new RNG;
     66    }
    6367    return instance_;
    6468  }
  • trunk/yat/random/random.h

    r3518 r3579  
    66/*
    77  Copyright (C) 2005, 2006, 2007, 2008 Jari Häkkinen, Peter Johansson
    8   Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Peter Johansson
     8  Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Peter Johansson
    99
    1010  This file is part of the yat library, http://dev.thep.lu.se/yat
     
    200200    // guard needs to be mutable because major mission for it is to protect seed_ against multi-access, and seed_ is mutable...
    201201    mutable boost::mutex mutex_;
     202    static boost::mutex init_mutex_;
    202203  };
    203204
  • trunk/yat/utility/WeightedIteratorArchetype.h

    r3550 r3579  
    123123
    124124    TraversalCategory is one of the boost categories:
    125     boost::incrementable_traversal_tag
    126125    boost::single_pass_traversal_tag
    127126    boost::forward_traversal_tag
  • trunk/yat/utility/concept_check.h

    r3550 r3579  
    239239    BOOST_CONCEPT_USAGE(DataIteratorConcept)
    240240    {
    241       BOOST_CONCEPT_ASSERT((TrivialIterator<T>));
     241      BOOST_CONCEPT_ASSERT((boost_concepts::ReadableIterator<T>));
     242      BOOST_CONCEPT_ASSERT((boost_concepts::SinglePassIterator<T>));
    242243      tag t;
    243244      constraints(t);
  • trunk/yat/utility/utility.h

    r3550 r3579  
    99  Copyright (C) 2007, 2008 Jari Häkkinen, Peter Johansson
    1010  Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Peter Johansson
     11  Copyright (C) 2017 Jari Häkkinen
    1112
    1213  This file is part of the yat library, http://dev.thep.lu.se/yat
     
    529530    while(true) {
    530531      if(sep=='\0')
    531         ok=(is>>element);
     532        ok=!(is>>element).fail();
    532533      else
    533         ok=getline(is, element, sep);
     534        ok=!getline(is, element, sep).fail();
    534535      if(!ok)
    535536        break;
Note: See TracChangeset for help on using the changeset viewer.