From fef94a4c5254e2280b601ab3ea211cc0193fecaa Mon Sep 17 00:00:00 2001 From: Steven Siloti Date: Sun, 1 May 2016 05:35:28 -0700 Subject: [PATCH] use standard random number classes (#679) use standard random number classes --- CMakeLists.txt | 2 +- Jamfile | 9 ---- configure.ac | 7 +-- m4/ax_boost_random.m4 | 123 ------------------------------------------ src/Makefile.am | 2 +- src/random.cpp | 14 ++--- 6 files changed, 7 insertions(+), 150 deletions(-) delete mode 100644 m4/ax_boost_random.m4 diff --git a/CMakeLists.txt b/CMakeLists.txt index abca484e9..cf6a8dc7b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -255,7 +255,7 @@ endif() # Boost if(NOT DEFINED Boost_INCLUDE_DIR OR NOT DEFINED Boost_LIBRARIES) - FIND_PACKAGE(Boost REQUIRED COMPONENTS system chrono random) + FIND_PACKAGE(Boost REQUIRED COMPONENTS system chrono) endif() include_directories(${Boost_INCLUDE_DIRS}) target_link_libraries(torrent-rasterbar ${Boost_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) diff --git a/Jamfile b/Jamfile index 81792bd46..a0e524b43 100644 --- a/Jamfile +++ b/Jamfile @@ -24,7 +24,6 @@ if $(BOOST_ROOT) use-project /boost : $(BOOST_ROOT) ; alias boost_chrono : /boost/chrono//boost_chrono : : : $(BOOST_ROOT) ; alias boost_system : /boost/system//boost_system : : : $(BOOST_ROOT) ; - alias boost_random : /boost/random//boost_random : : : $(BOOST_ROOT) ; } else { @@ -47,15 +46,11 @@ else : : $(boost-include-path) ; lib boost_system : : darwin boost_system-mt $(boost-lib-search-path) : : $(boost-include-path) ; - lib boost_random : : darwin boost_random-mt $(boost-lib-search-path) - : : $(boost-include-path) ; lib boost_chrono : : boost_chrono $(boost-lib-search-path) : : $(boost-include-path) ; lib boost_system : : boost_system $(boost-lib-search-path) : : $(boost-include-path) ; - lib boost_random : : boost_random $(boost-lib-search-path) - : : $(boost-include-path) ; } VERSION = 1.1.0 ; @@ -179,13 +174,11 @@ rule linking ( properties * ) result += BOOST_ALL_DYN_LINK ; result += boost_system/static/BOOST_ALL_DYN_LINK ; result += boost_chrono/static/BOOST_ALL_DYN_LINK ; - result += boost_random/static/BOOST_ALL_DYN_LINK ; } else { result += boost_system/static ; result += boost_chrono/static ; - result += boost_random/static ; } if gcc in $(properties) @@ -200,13 +193,11 @@ rule linking ( properties * ) { result += boost_system/shared ; result += boost_chrono/shared ; - result += boost_random/shared ; } else { result += boost_system ; result += boost_chrono ; - result += boost_random ; } result += BOOST_ALL_NO_LIB diff --git a/configure.ac b/configure.ac index 413da26cb..13b6ca8da 100644 --- a/configure.ac +++ b/configure.ac @@ -127,13 +127,9 @@ AX_BOOST_CHRONO() AS_IF([test -z "$BOOST_CHRONO_LIB"], [AC_MSG_ERROR(Boost.Chrono library not found. Try using --with-boost-chrono=lib)]) -AX_BOOST_RANDOM() -AS_IF([test -z "$BOOST_RANDOM_LIB"], - [AC_MSG_ERROR(Boost.Random library not found. Try using --with-boost-random=lib)]) - CPPFLAGS="$BOOST_CPPFLAGS $CPPFLAGS" LDFLAGS="$BOOST_LDFLAGS $LDFLAGS" -LIBS="$BOOST_CHRONO_LIB $BOOST_RANDOM_LIB $LIBS" +LIBS="$BOOST_CHRONO_LIB $BOOST_SYSTEM_LIB $LIBS" ############################################################################### # Checking for functions and other stuffs @@ -645,7 +641,6 @@ Boost libraries: LDFlags: ${BOOST_LDFLAGS} boost.system: ${BOOST_SYSTEM_LIB} boost.chrono: ${BOOST_CHRONO_LIB} - boost.random: ${BOOST_RANDOM_LIB} END AS_IF([test "x$ARG_ENABLE_PYTHON_BINDING" = "xyes"], [ diff --git a/m4/ax_boost_random.m4 b/m4/ax_boost_random.m4 deleted file mode 100644 index f7cf64530..000000000 --- a/m4/ax_boost_random.m4 +++ /dev/null @@ -1,123 +0,0 @@ -# =========================================================================== -# http://www.gnu.org/software/autoconf-archive/ax_boost_random.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_BOOST_RANDOM -# -# DESCRIPTION -# -# Test for Random library from the Boost C++ libraries. The macro requires a -# preceding call to AX_BOOST_BASE. Further documentation is available at -# . -# -# This macro calls: -# -# AC_SUBST(BOOST_RANDOM_LIB) -# -# And sets: -# -# HAVE_BOOST_RANDOM -# -# LICENSE -# -# Copyright (c) 2008 Thomas Porschberg -# Copyright (c) 2008 Michael Tindal -# Copyright (c) 2013 Daniel Casimiro -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 1 - -AC_DEFUN([AX_BOOST_RANDOM], -[ - AC_ARG_WITH([boost-random], - AS_HELP_STRING([--with-boost-random@<:@=special-lib@:>@], - [use the Random library from boost - it is possible to specify a certain library for the linker - e.g. --with-boost-random=boost_random-gcc-mt ]), [ - if test "$withval" = "no"; then - want_boost="no" - elif test "$withval" = "yes"; then - want_boost="yes" - ax_boost_user_random_lib="" - else - want_boost="yes" - ax_boost_user_random_lib="$withval" - fi - ], [want_boost="yes"] - ) - - if test "x$want_boost" = "xyes"; then - AC_REQUIRE([AC_PROG_CC]) - AC_REQUIRE([AC_CANONICAL_BUILD]) - - CPPFLAGS_SAVED="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" - export CPPFLAGS - - LDFLAGS_SAVED="$LDFLAGS" - LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" - export LDFLAGS - - AC_CACHE_CHECK(whether the Boost::Random library is available, - ax_cv_boost_random, - [AC_LANG_PUSH([C++]) - CXXFLAGS_SAVE=$CXXFLAGS - - AC_COMPILE_IFELSE([AC_LANG_PROGRAM( - [[@%:@include ]], - [[boost::random::random_device()();]])], - ax_cv_boost_random=yes, ax_cv_boost_random=no) - CXXFLAGS=$CXXFLAGS_SAVE - AC_LANG_POP([C++]) - ]) - - if test "x$ax_cv_boost_random" = "xyes"; then - AC_SUBST(BOOST_CPPFLAGS) - - AC_DEFINE(HAVE_BOOST_RANDOM,,[define if the Boost::Random library is available]) - BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'` - - if test "x$ax_boost_user_random_lib" = "x"; then - for libextension in `ls $BOOSTLIBDIR/libboost_random*.so* $BOOSTLIBDIR/libboost_random*.dylib* $BOOSTLIBDIR/libboost_random*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_random.*\)\.so.*$;\1;' -e 's;^lib\(boost_random.*\)\.dylib.*$;\1;' -e 's;^lib\(boost_random.*\)\.a.*$;\1;'` ; do - ax_lib=${libextension} - AC_CHECK_LIB($ax_lib, exit, - [BOOST_RANDOM_LIB="-l$ax_lib"; AC_SUBST(BOOST_RANDOM_LIB) link_random="yes"; break], - [link_random="no"]) - done - - if test "x$link_random" != "xyes"; then - for libextension in `ls $BOOSTLIBDIR/boost_random*.dll* $BOOSTLIBDIR/boost_random*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_random.*\)\.dll.*$;\1;' -e 's;^\(boost_random.*\)\.a.*$;\1;'` ; do - ax_lib=${libextension} - AC_CHECK_LIB($ax_lib, exit, - [BOOST_RANDOM_LIB="-l$ax_lib"; AC_SUBST(BOOST_RANDOM_LIB) link_random="yes"; break], - [link_random="no"]) - done - fi - - else - for ax_lib in $ax_boost_user_random_lib boost_random-$ax_boost_user_random_lib; do - AC_CHECK_LIB($ax_lib, exit, - [BOOST_RANDOM_LIB="-l$ax_lib"; AC_SUBST(BOOST_RANDOM_LIB) link_random="yes"; break], - [link_random="no"]) - done - fi - - if test "x$ax_lib" = "x"; then - AC_MSG_ERROR(Could not find a version of the library!) - fi - - if test "x$link_random" = "xno"; then - AC_MSG_ERROR(Could not link against $ax_lib !) - fi - fi - - CPPFLAGS="$CPPFLAGS_SAVED" - LDFLAGS="$LDFLAGS_SAVED" - fi -]) - diff --git a/src/Makefile.am b/src/Makefile.am index ad6ffdbdd..285a399ab 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -150,7 +150,7 @@ libtorrent_rasterbar_la_SOURCES = \ $(KADEMLIA_SOURCES) libtorrent_rasterbar_la_LDFLAGS = -version-info $(INTERFACE_VERSION_INFO) -libtorrent_rasterbar_la_LIBADD = @BOOST_SYSTEM_LIB@ @OPENSSL_LIBS@ +libtorrent_rasterbar_la_LIBADD = @OPENSSL_LIBS@ AM_CPPFLAGS = -DTORRENT_BUILDING_LIBRARY -I$(top_srcdir)/include -I$(top_srcdir)/ed25519/src @DEBUGFLAGS@ @OPENSSL_INCLUDES@ AM_CFLAGS = -I$(top_srcdir)/ed25519/src -std=c99 diff --git a/src/random.cpp b/src/random.cpp index 13b9e5f3c..891d7b89d 100644 --- a/src/random.cpp +++ b/src/random.cpp @@ -34,19 +34,13 @@ POSSIBILITY OF SUCH DAMAGE. #include "libtorrent/random.hpp" #include "libtorrent/assert.hpp" -#include "libtorrent/aux_/disable_warnings_push.hpp" - -#include -#include -#include - -#include "libtorrent/aux_/disable_warnings_pop.hpp" +#include namespace libtorrent { - using boost::random::random_device; - using boost::random::mt19937; - using boost::random::uniform_int_distribution; + using std::random_device; + using std::mt19937; + using std::uniform_int_distribution; #ifdef TORRENT_BUILD_SIMULATOR