Compare commits
23 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
4948a8c354 | ||
|
637c023d06 | ||
|
f006ec0b68 | ||
|
04e5ff0349 | ||
|
9ad1c02430 | ||
|
61c263af6e | ||
|
fe0ed9eaae | ||
|
d8f39ebef3 | ||
|
07d53fb77e | ||
|
3ded8e6734 | ||
|
774f630e14 | ||
|
d6a1c98314 | ||
|
75283445fd | ||
|
45084cb718 | ||
|
bc150fec04 | ||
|
9a0cd68ea5 | ||
|
603eb261c5 | ||
|
de97f3492e | ||
|
8a167cb2a7 | ||
|
d0953a507c | ||
|
fe8e198106 | ||
|
dfc3b4632a | ||
|
6106bf30de |
4
.gitmodules
vendored
Normal file
4
.gitmodules
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
[submodule "src/base"]
|
||||||
|
path = src/base
|
||||||
|
url = https://github.com/xmrig/base.git
|
||||||
|
branch = master
|
@ -156,14 +156,12 @@ endif()
|
|||||||
if (XMRIG_OS_WIN)
|
if (XMRIG_OS_WIN)
|
||||||
list(APPEND SOURCES_OS
|
list(APPEND SOURCES_OS
|
||||||
res/app.rc
|
res/app.rc
|
||||||
src/App_win.cpp
|
|
||||||
src/crypto/common/VirtualMemory_win.cpp
|
src/crypto/common/VirtualMemory_win.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
set(EXTRA_LIBS ws2_32 psapi iphlpapi userenv)
|
set(EXTRA_LIBS ws2_32 psapi iphlpapi userenv)
|
||||||
elseif (XMRIG_OS_APPLE)
|
elseif (XMRIG_OS_APPLE)
|
||||||
list(APPEND SOURCES_OS
|
list(APPEND SOURCES_OS
|
||||||
src/App_unix.cpp
|
|
||||||
src/crypto/common/VirtualMemory_unix.cpp
|
src/crypto/common/VirtualMemory_unix.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -172,7 +170,6 @@ elseif (XMRIG_OS_APPLE)
|
|||||||
set(EXTRA_LIBS ${IOKIT_LIBRARY} ${CORESERVICES_LIBRARY})
|
set(EXTRA_LIBS ${IOKIT_LIBRARY} ${CORESERVICES_LIBRARY})
|
||||||
else()
|
else()
|
||||||
list(APPEND SOURCES_OS
|
list(APPEND SOURCES_OS
|
||||||
src/App_unix.cpp
|
|
||||||
src/crypto/common/VirtualMemory_unix.cpp
|
src/crypto/common/VirtualMemory_unix.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -190,11 +187,16 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_definitions(-DXMRIG_MINER_PROJECT -DXMRIG_JSON_SINGLE_LINE_ARRAY)
|
add_definitions(-DXMRIG_MINER_PROJECT -DXMRIG_LEGACY -DXMRIG_JSON_SINGLE_LINE_ARRAY)
|
||||||
add_definitions(-D__STDC_FORMAT_MACROS -DUNICODE -D_FILE_OFFSET_BITS=64)
|
add_definitions(-D__STDC_FORMAT_MACROS -DUNICODE -D_FILE_OFFSET_BITS=64)
|
||||||
|
|
||||||
find_package(UV REQUIRED)
|
find_package(UV REQUIRED)
|
||||||
|
|
||||||
|
include_directories(src)
|
||||||
|
include_directories(src/3rdparty)
|
||||||
|
include_directories(src/base)
|
||||||
|
include_directories(${UV_INCLUDE_DIR})
|
||||||
|
|
||||||
include(cmake/flags.cmake)
|
include(cmake/flags.cmake)
|
||||||
include(cmake/randomx.cmake)
|
include(cmake/randomx.cmake)
|
||||||
include(cmake/argon2.cmake)
|
include(cmake/argon2.cmake)
|
||||||
@ -226,10 +228,6 @@ endif()
|
|||||||
include(src/hw/api/api.cmake)
|
include(src/hw/api/api.cmake)
|
||||||
include(src/hw/dmi/dmi.cmake)
|
include(src/hw/dmi/dmi.cmake)
|
||||||
|
|
||||||
include_directories(src)
|
|
||||||
include_directories(src/3rdparty)
|
|
||||||
include_directories(${UV_INCLUDE_DIR})
|
|
||||||
|
|
||||||
if (WITH_DEBUG_LOG)
|
if (WITH_DEBUG_LOG)
|
||||||
add_definitions(/DAPP_DEBUG)
|
add_definitions(/DAPP_DEBUG)
|
||||||
endif()
|
endif()
|
||||||
|
@ -11,7 +11,7 @@ if (WITH_KAWPOW)
|
|||||||
src/crypto/kawpow/KPHash.cpp
|
src/crypto/kawpow/KPHash.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
add_subdirectory(src/3rdparty/libethash)
|
add_subdirectory(src/base/3rdparty/libethash)
|
||||||
set(ETHASH_LIBRARY ethash)
|
set(ETHASH_LIBRARY ethash)
|
||||||
else()
|
else()
|
||||||
remove_definitions(/DXMRIG_ALGO_KAWPOW)
|
remove_definitions(/DXMRIG_ALGO_KAWPOW)
|
||||||
|
@ -20,7 +20,7 @@ VS_VERSION_INFO VERSIONINFO
|
|||||||
BEGIN
|
BEGIN
|
||||||
BLOCK "000004b0"
|
BLOCK "000004b0"
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", APP_SITE
|
VALUE "CompanyName", APP_DOMAIN
|
||||||
VALUE "FileDescription", APP_DESC
|
VALUE "FileDescription", APP_DESC
|
||||||
VALUE "FileVersion", APP_VERSION
|
VALUE "FileVersion", APP_VERSION
|
||||||
VALUE "LegalCopyright", APP_COPYRIGHT
|
VALUE "LegalCopyright", APP_COPYRIGHT
|
||||||
|
25
src/3rdparty/epee/LICENSE.txt
vendored
25
src/3rdparty/epee/LICENSE.txt
vendored
@ -1,25 +0,0 @@
|
|||||||
Copyright (c) 2006-2013, Andrey N. Sabelnikov, www.sabelnikov.net
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
* Redistributions of source code must retain the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer.
|
|
||||||
* Redistributions in binary form must reproduce the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer in the
|
|
||||||
documentation and/or other materials provided with the distribution.
|
|
||||||
* Neither the name of the Andrey N. Sabelnikov nor the
|
|
||||||
names of its contributors may be used to endorse or promote products
|
|
||||||
derived from this software without specific prior written permission.
|
|
||||||
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
DISCLAIMED. IN NO EVENT SHALL Andrey N. Sabelnikov BE LIABLE FOR ANY
|
|
||||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
1
src/3rdparty/epee/README.md
vendored
1
src/3rdparty/epee/README.md
vendored
@ -1 +0,0 @@
|
|||||||
epee - is a small library of helpers, wrappers, tools and and so on, used to make my life easier.
|
|
176
src/3rdparty/epee/span.h
vendored
176
src/3rdparty/epee/span.h
vendored
@ -1,176 +0,0 @@
|
|||||||
// Copyright (c) 2017-2020, The Monero Project
|
|
||||||
//
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without modification, are
|
|
||||||
// permitted provided that the following conditions are met:
|
|
||||||
//
|
|
||||||
// 1. Redistributions of source code must retain the above copyright notice, this list of
|
|
||||||
// conditions and the following disclaimer.
|
|
||||||
//
|
|
||||||
// 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
|
||||||
// of conditions and the following disclaimer in the documentation and/or other
|
|
||||||
// materials provided with the distribution.
|
|
||||||
//
|
|
||||||
// 3. Neither the name of the copyright holder nor the names of its contributors may be
|
|
||||||
// used to endorse or promote products derived from this software without specific
|
|
||||||
// prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
|
||||||
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
||||||
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
|
||||||
// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
||||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
||||||
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
|
||||||
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
|
|
||||||
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <algorithm>
|
|
||||||
#include <cstdint>
|
|
||||||
#include <memory>
|
|
||||||
#include <string>
|
|
||||||
#include <type_traits>
|
|
||||||
|
|
||||||
namespace epee
|
|
||||||
{
|
|
||||||
/*!
|
|
||||||
\brief Non-owning sequence of data. Does not deep copy
|
|
||||||
|
|
||||||
Inspired by `gsl::span` and/or `boost::iterator_range`. This class is
|
|
||||||
intended to be used as a parameter type for functions that need to take a
|
|
||||||
writable or read-only sequence of data. Most common cases are `span<char>`
|
|
||||||
and `span<std::uint8_t>`. Using as a class member is only recommended if
|
|
||||||
clearly documented as not doing a deep-copy. C-arrays are easily convertible
|
|
||||||
to this type.
|
|
||||||
|
|
||||||
\note Conversion from C string literal to `span<const char>` will include
|
|
||||||
the NULL-terminator.
|
|
||||||
\note Never allows derived-to-base pointer conversion; an array of derived
|
|
||||||
types is not an array of base types.
|
|
||||||
*/
|
|
||||||
template<typename T>
|
|
||||||
class span
|
|
||||||
{
|
|
||||||
template<typename U>
|
|
||||||
static constexpr bool safe_conversion() noexcept
|
|
||||||
{
|
|
||||||
// Allow exact matches or `T*` -> `const T*`.
|
|
||||||
using with_const = typename std::add_const<U>::type;
|
|
||||||
return std::is_same<T, U>() ||
|
|
||||||
(std::is_const<T>() && std::is_same<T, with_const>());
|
|
||||||
}
|
|
||||||
|
|
||||||
public:
|
|
||||||
using value_type = T;
|
|
||||||
using size_type = std::size_t;
|
|
||||||
using difference_type = std::ptrdiff_t;
|
|
||||||
using pointer = T*;
|
|
||||||
using const_pointer = const T*;
|
|
||||||
using reference = T&;
|
|
||||||
using const_reference = const T&;
|
|
||||||
using iterator = pointer;
|
|
||||||
using const_iterator = const_pointer;
|
|
||||||
|
|
||||||
constexpr span() noexcept : ptr(nullptr), len(0) {}
|
|
||||||
constexpr span(std::nullptr_t) noexcept : span() {}
|
|
||||||
|
|
||||||
//! Prevent derived-to-base conversions; invalid in this context.
|
|
||||||
template<typename U, typename = typename std::enable_if<safe_conversion<U>()>::type>
|
|
||||||
constexpr span(U* const src_ptr, const std::size_t count) noexcept
|
|
||||||
: ptr(src_ptr), len(count) {}
|
|
||||||
|
|
||||||
//! Conversion from C-array. Prevents common bugs with sizeof + arrays.
|
|
||||||
template<std::size_t N>
|
|
||||||
constexpr span(T (&src)[N]) noexcept : span(src, N) {}
|
|
||||||
|
|
||||||
constexpr span(const span&) noexcept = default;
|
|
||||||
span& operator=(const span&) noexcept = default;
|
|
||||||
|
|
||||||
/*! Try to remove `amount` elements from beginning of span.
|
|
||||||
\return Number of elements removed. */
|
|
||||||
std::size_t remove_prefix(std::size_t amount) noexcept
|
|
||||||
{
|
|
||||||
amount = std::min(len, amount);
|
|
||||||
ptr += amount;
|
|
||||||
len -= amount;
|
|
||||||
return amount;
|
|
||||||
}
|
|
||||||
|
|
||||||
constexpr iterator begin() const noexcept { return ptr; }
|
|
||||||
constexpr const_iterator cbegin() const noexcept { return ptr; }
|
|
||||||
|
|
||||||
constexpr iterator end() const noexcept { return begin() + size(); }
|
|
||||||
constexpr const_iterator cend() const noexcept { return cbegin() + size(); }
|
|
||||||
|
|
||||||
constexpr bool empty() const noexcept { return size() == 0; }
|
|
||||||
constexpr pointer data() const noexcept { return ptr; }
|
|
||||||
constexpr std::size_t size() const noexcept { return len; }
|
|
||||||
constexpr std::size_t size_bytes() const noexcept { return size() * sizeof(value_type); }
|
|
||||||
|
|
||||||
T &operator[](size_t idx) noexcept { return ptr[idx]; }
|
|
||||||
const T &operator[](size_t idx) const noexcept { return ptr[idx]; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
T* ptr;
|
|
||||||
std::size_t len;
|
|
||||||
};
|
|
||||||
|
|
||||||
//! \return `span<const T::value_type>` from a STL compatible `src`.
|
|
||||||
template<typename T>
|
|
||||||
constexpr span<const typename T::value_type> to_span(const T& src)
|
|
||||||
{
|
|
||||||
// compiler provides diagnostic if size() is not size_t.
|
|
||||||
return {src.data(), src.size()};
|
|
||||||
}
|
|
||||||
|
|
||||||
//! \return `span<T::value_type>` from a STL compatible `src`.
|
|
||||||
template<typename T>
|
|
||||||
constexpr span<typename T::value_type> to_mut_span(T& src)
|
|
||||||
{
|
|
||||||
// compiler provides diagnostic if size() is not size_t.
|
|
||||||
return {src.data(), src.size()};
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename T>
|
|
||||||
constexpr bool has_padding() noexcept
|
|
||||||
{
|
|
||||||
return !std::is_standard_layout<T>() || alignof(T) != 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
//! \return Cast data from `src` as `span<const std::uint8_t>`.
|
|
||||||
template<typename T>
|
|
||||||
span<const std::uint8_t> to_byte_span(const span<const T> src) noexcept
|
|
||||||
{
|
|
||||||
static_assert(!has_padding<T>(), "source type may have padding");
|
|
||||||
return {reinterpret_cast<const std::uint8_t*>(src.data()), src.size_bytes()};
|
|
||||||
}
|
|
||||||
|
|
||||||
//! \return `span<const std::uint8_t>` which represents the bytes at `&src`.
|
|
||||||
template<typename T>
|
|
||||||
span<const std::uint8_t> as_byte_span(const T& src) noexcept
|
|
||||||
{
|
|
||||||
static_assert(!std::is_empty<T>(), "empty types will not work -> sizeof == 1");
|
|
||||||
static_assert(!has_padding<T>(), "source type may have padding");
|
|
||||||
return {reinterpret_cast<const std::uint8_t*>(std::addressof(src)), sizeof(T)};
|
|
||||||
}
|
|
||||||
|
|
||||||
//! \return `span<std::uint8_t>` which represents the bytes at `&src`.
|
|
||||||
template<typename T>
|
|
||||||
span<std::uint8_t> as_mut_byte_span(T& src) noexcept
|
|
||||||
{
|
|
||||||
static_assert(!std::is_empty<T>(), "empty types will not work -> sizeof == 1");
|
|
||||||
static_assert(!has_padding<T>(), "source type may have padding");
|
|
||||||
return {reinterpret_cast<std::uint8_t*>(std::addressof(src)), sizeof(T)};
|
|
||||||
}
|
|
||||||
|
|
||||||
//! make a span from a std::string
|
|
||||||
template<typename T>
|
|
||||||
span<const T> strspan(const std::string &s) noexcept
|
|
||||||
{
|
|
||||||
static_assert(std::is_same<T, char>() || std::is_same<T, unsigned char>() || std::is_same<T, int8_t>() || std::is_same<T, uint8_t>(), "Unexpected type");
|
|
||||||
return {reinterpret_cast<const T*>(s.data()), s.size()};
|
|
||||||
}
|
|
||||||
}
|
|
27
src/3rdparty/fmt/LICENSE.rst
vendored
27
src/3rdparty/fmt/LICENSE.rst
vendored
@ -1,27 +0,0 @@
|
|||||||
Copyright (c) 2012 - present, Victor Zverovich
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining
|
|
||||||
a copy of this software and associated documentation files (the
|
|
||||||
"Software"), to deal in the Software without restriction, including
|
|
||||||
without limitation the rights to use, copy, modify, merge, publish,
|
|
||||||
distribute, sublicense, and/or sell copies of the Software, and to
|
|
||||||
permit persons to whom the Software is furnished to do so, subject to
|
|
||||||
the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be
|
|
||||||
included in all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
||||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
||||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
||||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
||||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
||||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
||||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
|
|
||||||
--- Optional exception to the license ---
|
|
||||||
|
|
||||||
As an exception, if, as a result of your compiling your source code, portions
|
|
||||||
of this Software are embedded into a machine-executable object form of such
|
|
||||||
source code, you may redistribute such embedded portions in such object form
|
|
||||||
without including the above copyright and permission notices.
|
|
505
src/3rdparty/fmt/README.rst
vendored
505
src/3rdparty/fmt/README.rst
vendored
File diff suppressed because it is too large
Load Diff
1118
src/3rdparty/fmt/chrono.h
vendored
1118
src/3rdparty/fmt/chrono.h
vendored
File diff suppressed because it is too large
Load Diff
602
src/3rdparty/fmt/color.h
vendored
602
src/3rdparty/fmt/color.h
vendored
File diff suppressed because it is too large
Load Diff
699
src/3rdparty/fmt/compile.h
vendored
699
src/3rdparty/fmt/compile.h
vendored
File diff suppressed because it is too large
Load Diff
2129
src/3rdparty/fmt/core.h
vendored
2129
src/3rdparty/fmt/core.h
vendored
File diff suppressed because it is too large
Load Diff
2801
src/3rdparty/fmt/format-inl.h
vendored
2801
src/3rdparty/fmt/format-inl.h
vendored
File diff suppressed because it is too large
Load Diff
69
src/3rdparty/fmt/format.cc
vendored
69
src/3rdparty/fmt/format.cc
vendored
@ -1,69 +0,0 @@
|
|||||||
// Formatting library for C++
|
|
||||||
//
|
|
||||||
// Copyright (c) 2012 - 2016, Victor Zverovich
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// For the license information refer to format.h.
|
|
||||||
|
|
||||||
#include "3rdparty/fmt/format-inl.h"
|
|
||||||
|
|
||||||
FMT_BEGIN_NAMESPACE
|
|
||||||
namespace detail {
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
int format_float(char* buf, std::size_t size, const char* format, int precision,
|
|
||||||
T value) {
|
|
||||||
#ifdef FMT_FUZZ
|
|
||||||
if (precision > 100000)
|
|
||||||
throw std::runtime_error(
|
|
||||||
"fuzz mode - avoid large allocation inside snprintf");
|
|
||||||
#endif
|
|
||||||
// Suppress the warning about nonliteral format string.
|
|
||||||
int (*snprintf_ptr)(char*, size_t, const char*, ...) = FMT_SNPRINTF;
|
|
||||||
return precision < 0 ? snprintf_ptr(buf, size, format, value)
|
|
||||||
: snprintf_ptr(buf, size, format, precision, value);
|
|
||||||
}
|
|
||||||
} // namespace detail
|
|
||||||
|
|
||||||
template struct FMT_INSTANTIATION_DEF_API detail::basic_data<void>;
|
|
||||||
|
|
||||||
// Workaround a bug in MSVC2013 that prevents instantiation of format_float.
|
|
||||||
int (*instantiate_format_float)(double, int, detail::float_specs,
|
|
||||||
detail::buffer<char>&) = detail::format_float;
|
|
||||||
|
|
||||||
#ifndef FMT_STATIC_THOUSANDS_SEPARATOR
|
|
||||||
template FMT_API detail::locale_ref::locale_ref(const std::locale& loc);
|
|
||||||
template FMT_API std::locale detail::locale_ref::get<std::locale>() const;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Explicit instantiations for char.
|
|
||||||
|
|
||||||
template FMT_API std::string detail::grouping_impl<char>(locale_ref);
|
|
||||||
template FMT_API char detail::thousands_sep_impl(locale_ref);
|
|
||||||
template FMT_API char detail::decimal_point_impl(locale_ref);
|
|
||||||
|
|
||||||
template FMT_API void detail::buffer<char>::append(const char*, const char*);
|
|
||||||
|
|
||||||
template FMT_API FMT_BUFFER_CONTEXT(char)::iterator detail::vformat_to(
|
|
||||||
detail::buffer<char>&, string_view,
|
|
||||||
basic_format_args<FMT_BUFFER_CONTEXT(char)>);
|
|
||||||
|
|
||||||
template FMT_API int detail::snprintf_float(double, int, detail::float_specs,
|
|
||||||
detail::buffer<char>&);
|
|
||||||
template FMT_API int detail::snprintf_float(long double, int,
|
|
||||||
detail::float_specs,
|
|
||||||
detail::buffer<char>&);
|
|
||||||
template FMT_API int detail::format_float(double, int, detail::float_specs,
|
|
||||||
detail::buffer<char>&);
|
|
||||||
template FMT_API int detail::format_float(long double, int, detail::float_specs,
|
|
||||||
detail::buffer<char>&);
|
|
||||||
|
|
||||||
// Explicit instantiations for wchar_t.
|
|
||||||
|
|
||||||
template FMT_API std::string detail::grouping_impl<wchar_t>(locale_ref);
|
|
||||||
template FMT_API wchar_t detail::thousands_sep_impl(locale_ref);
|
|
||||||
template FMT_API wchar_t detail::decimal_point_impl(locale_ref);
|
|
||||||
|
|
||||||
template FMT_API void detail::buffer<wchar_t>::append(const wchar_t*,
|
|
||||||
const wchar_t*);
|
|
||||||
FMT_END_NAMESPACE
|
|
3869
src/3rdparty/fmt/format.h
vendored
3869
src/3rdparty/fmt/format.h
vendored
File diff suppressed because it is too large
Load Diff
78
src/3rdparty/fmt/locale.h
vendored
78
src/3rdparty/fmt/locale.h
vendored
@ -1,78 +0,0 @@
|
|||||||
// Formatting library for C++ - std::locale support
|
|
||||||
//
|
|
||||||
// Copyright (c) 2012 - present, Victor Zverovich
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// For the license information refer to format.h.
|
|
||||||
|
|
||||||
#ifndef FMT_LOCALE_H_
|
|
||||||
#define FMT_LOCALE_H_
|
|
||||||
|
|
||||||
#include <locale>
|
|
||||||
|
|
||||||
#include "format.h"
|
|
||||||
|
|
||||||
FMT_BEGIN_NAMESPACE
|
|
||||||
|
|
||||||
namespace detail {
|
|
||||||
template <typename Char>
|
|
||||||
typename buffer_context<Char>::iterator vformat_to(
|
|
||||||
const std::locale& loc, buffer<Char>& buf,
|
|
||||||
basic_string_view<Char> format_str,
|
|
||||||
basic_format_args<buffer_context<type_identity_t<Char>>> args) {
|
|
||||||
using af = arg_formatter<typename buffer_context<Char>::iterator, Char>;
|
|
||||||
return vformat_to<af>(buffer_appender<Char>(buf), to_string_view(format_str),
|
|
||||||
args, detail::locale_ref(loc));
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename Char>
|
|
||||||
std::basic_string<Char> vformat(
|
|
||||||
const std::locale& loc, basic_string_view<Char> format_str,
|
|
||||||
basic_format_args<buffer_context<type_identity_t<Char>>> args) {
|
|
||||||
basic_memory_buffer<Char> buffer;
|
|
||||||
detail::vformat_to(loc, buffer, format_str, args);
|
|
||||||
return fmt::to_string(buffer);
|
|
||||||
}
|
|
||||||
} // namespace detail
|
|
||||||
|
|
||||||
template <typename S, typename Char = char_t<S>>
|
|
||||||
inline std::basic_string<Char> vformat(
|
|
||||||
const std::locale& loc, const S& format_str,
|
|
||||||
basic_format_args<buffer_context<type_identity_t<Char>>> args) {
|
|
||||||
return detail::vformat(loc, to_string_view(format_str), args);
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename S, typename... Args, typename Char = char_t<S>>
|
|
||||||
inline std::basic_string<Char> format(const std::locale& loc,
|
|
||||||
const S& format_str, Args&&... args) {
|
|
||||||
return detail::vformat(
|
|
||||||
loc, to_string_view(format_str),
|
|
||||||
fmt::make_args_checked<Args...>(format_str, args...));
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename S, typename OutputIt, typename... Args,
|
|
||||||
typename Char = enable_if_t<
|
|
||||||
detail::is_output_iterator<OutputIt>::value, char_t<S>>>
|
|
||||||
inline OutputIt vformat_to(
|
|
||||||
OutputIt out, const std::locale& loc, const S& format_str,
|
|
||||||
basic_format_args<buffer_context<type_identity_t<Char>>> args) {
|
|
||||||
decltype(detail::get_buffer<Char>(out)) buf(detail::get_buffer_init(out));
|
|
||||||
using af =
|
|
||||||
detail::arg_formatter<typename buffer_context<Char>::iterator, Char>;
|
|
||||||
vformat_to<af>(detail::buffer_appender<Char>(buf), to_string_view(format_str),
|
|
||||||
args, detail::locale_ref(loc));
|
|
||||||
return detail::get_iterator(buf);
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename OutputIt, typename S, typename... Args,
|
|
||||||
FMT_ENABLE_IF(detail::is_output_iterator<OutputIt>::value&&
|
|
||||||
detail::is_string<S>::value)>
|
|
||||||
inline OutputIt format_to(OutputIt out, const std::locale& loc,
|
|
||||||
const S& format_str, Args&&... args) {
|
|
||||||
const auto& vargs = fmt::make_args_checked<Args...>(format_str, args...);
|
|
||||||
return vformat_to(out, loc, to_string_view(format_str), vargs);
|
|
||||||
}
|
|
||||||
|
|
||||||
FMT_END_NAMESPACE
|
|
||||||
|
|
||||||
#endif // FMT_LOCALE_H_
|
|
322
src/3rdparty/fmt/os.cc
vendored
322
src/3rdparty/fmt/os.cc
vendored
File diff suppressed because it is too large
Load Diff
480
src/3rdparty/fmt/os.h
vendored
480
src/3rdparty/fmt/os.h
vendored
File diff suppressed because it is too large
Load Diff
177
src/3rdparty/fmt/ostream.h
vendored
177
src/3rdparty/fmt/ostream.h
vendored
@ -1,177 +0,0 @@
|
|||||||
// Formatting library for C++ - std::ostream support
|
|
||||||
//
|
|
||||||
// Copyright (c) 2012 - present, Victor Zverovich
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// For the license information refer to format.h.
|
|
||||||
|
|
||||||
#ifndef FMT_OSTREAM_H_
|
|
||||||
#define FMT_OSTREAM_H_
|
|
||||||
|
|
||||||
#include <ostream>
|
|
||||||
|
|
||||||
#include "format.h"
|
|
||||||
|
|
||||||
FMT_BEGIN_NAMESPACE
|
|
||||||
|
|
||||||
template <typename Char> class basic_printf_parse_context;
|
|
||||||
template <typename OutputIt, typename Char> class basic_printf_context;
|
|
||||||
|
|
||||||
namespace detail {
|
|
||||||
|
|
||||||
template <class Char> class formatbuf : public std::basic_streambuf<Char> {
|
|
||||||
private:
|
|
||||||
using int_type = typename std::basic_streambuf<Char>::int_type;
|
|
||||||
using traits_type = typename std::basic_streambuf<Char>::traits_type;
|
|
||||||
|
|
||||||
buffer<Char>& buffer_;
|
|
||||||
|
|
||||||
public:
|
|
||||||
formatbuf(buffer<Char>& buf) : buffer_(buf) {}
|
|
||||||
|
|
||||||
protected:
|
|
||||||
// The put-area is actually always empty. This makes the implementation
|
|
||||||
// simpler and has the advantage that the streambuf and the buffer are always
|
|
||||||
// in sync and sputc never writes into uninitialized memory. The obvious
|
|
||||||
// disadvantage is that each call to sputc always results in a (virtual) call
|
|
||||||
// to overflow. There is no disadvantage here for sputn since this always
|
|
||||||
// results in a call to xsputn.
|
|
||||||
|
|
||||||
int_type overflow(int_type ch = traits_type::eof()) FMT_OVERRIDE {
|
|
||||||
if (!traits_type::eq_int_type(ch, traits_type::eof()))
|
|
||||||
buffer_.push_back(static_cast<Char>(ch));
|
|
||||||
return ch;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::streamsize xsputn(const Char* s, std::streamsize count) FMT_OVERRIDE {
|
|
||||||
buffer_.append(s, s + count);
|
|
||||||
return count;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
struct converter {
|
|
||||||
template <typename T, FMT_ENABLE_IF(is_integral<T>::value)> converter(T);
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename Char> struct test_stream : std::basic_ostream<Char> {
|
|
||||||
private:
|
|
||||||
void_t<> operator<<(converter);
|
|
||||||
};
|
|
||||||
|
|
||||||
// Hide insertion operators for built-in types.
|
|
||||||
template <typename Char, typename Traits>
|
|
||||||
void_t<> operator<<(std::basic_ostream<Char, Traits>&, Char);
|
|
||||||
template <typename Char, typename Traits>
|
|
||||||
void_t<> operator<<(std::basic_ostream<Char, Traits>&, char);
|
|
||||||
template <typename Traits>
|
|
||||||
void_t<> operator<<(std::basic_ostream<char, Traits>&, char);
|
|
||||||
template <typename Traits>
|
|
||||||
void_t<> operator<<(std::basic_ostream<char, Traits>&, signed char);
|
|
||||||
template <typename Traits>
|
|
||||||
void_t<> operator<<(std::basic_ostream<char, Traits>&, unsigned char);
|
|
||||||
|
|
||||||
// Checks if T has a user-defined operator<< (e.g. not a member of
|
|
||||||
// std::ostream).
|
|
||||||
template <typename T, typename Char> class is_streamable {
|
|
||||||
private:
|
|
||||||
template <typename U>
|
|
||||||
static bool_constant<!std::is_same<decltype(std::declval<test_stream<Char>&>()
|
|
||||||
<< std::declval<U>()),
|
|
||||||
void_t<>>::value>
|
|
||||||
test(int);
|
|
||||||
|
|
||||||
template <typename> static std::false_type test(...);
|
|
||||||
|
|
||||||
using result = decltype(test<T>(0));
|
|
||||||
|
|
||||||
public:
|
|
||||||
static const bool value = result::value;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Write the content of buf to os.
|
|
||||||
template <typename Char>
|
|
||||||
void write_buffer(std::basic_ostream<Char>& os, buffer<Char>& buf) {
|
|
||||||
const Char* buf_data = buf.data();
|
|
||||||
using unsigned_streamsize = std::make_unsigned<std::streamsize>::type;
|
|
||||||
unsigned_streamsize size = buf.size();
|
|
||||||
unsigned_streamsize max_size = to_unsigned(max_value<std::streamsize>());
|
|
||||||
do {
|
|
||||||
unsigned_streamsize n = size <= max_size ? size : max_size;
|
|
||||||
os.write(buf_data, static_cast<std::streamsize>(n));
|
|
||||||
buf_data += n;
|
|
||||||
size -= n;
|
|
||||||
} while (size != 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename Char, typename T>
|
|
||||||
void format_value(buffer<Char>& buf, const T& value,
|
|
||||||
locale_ref loc = locale_ref()) {
|
|
||||||
formatbuf<Char> format_buf(buf);
|
|
||||||
std::basic_ostream<Char> output(&format_buf);
|
|
||||||
#if !defined(FMT_STATIC_THOUSANDS_SEPARATOR)
|
|
||||||
if (loc) output.imbue(loc.get<std::locale>());
|
|
||||||
#endif
|
|
||||||
output << value;
|
|
||||||
output.exceptions(std::ios_base::failbit | std::ios_base::badbit);
|
|
||||||
buf.try_resize(buf.size());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Formats an object of type T that has an overloaded ostream operator<<.
|
|
||||||
template <typename T, typename Char>
|
|
||||||
struct fallback_formatter<T, Char, enable_if_t<is_streamable<T, Char>::value>>
|
|
||||||
: private formatter<basic_string_view<Char>, Char> {
|
|
||||||
FMT_CONSTEXPR auto parse(basic_format_parse_context<Char>& ctx)
|
|
||||||
-> decltype(ctx.begin()) {
|
|
||||||
return formatter<basic_string_view<Char>, Char>::parse(ctx);
|
|
||||||
}
|
|
||||||
template <typename ParseCtx,
|
|
||||||
FMT_ENABLE_IF(std::is_same<
|
|
||||||
ParseCtx, basic_printf_parse_context<Char>>::value)>
|
|
||||||
auto parse(ParseCtx& ctx) -> decltype(ctx.begin()) {
|
|
||||||
return ctx.begin();
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename OutputIt>
|
|
||||||
auto format(const T& value, basic_format_context<OutputIt, Char>& ctx)
|
|
||||||
-> OutputIt {
|
|
||||||
basic_memory_buffer<Char> buffer;
|
|
||||||
format_value(buffer, value, ctx.locale());
|
|
||||||
basic_string_view<Char> str(buffer.data(), buffer.size());
|
|
||||||
return formatter<basic_string_view<Char>, Char>::format(str, ctx);
|
|
||||||
}
|
|
||||||
template <typename OutputIt>
|
|
||||||
auto format(const T& value, basic_printf_context<OutputIt, Char>& ctx)
|
|
||||||
-> OutputIt {
|
|
||||||
basic_memory_buffer<Char> buffer;
|
|
||||||
format_value(buffer, value, ctx.locale());
|
|
||||||
return std::copy(buffer.begin(), buffer.end(), ctx.out());
|
|
||||||
}
|
|
||||||
};
|
|
||||||
} // namespace detail
|
|
||||||
|
|
||||||
template <typename Char>
|
|
||||||
void vprint(std::basic_ostream<Char>& os, basic_string_view<Char> format_str,
|
|
||||||
basic_format_args<buffer_context<type_identity_t<Char>>> args) {
|
|
||||||
basic_memory_buffer<Char> buffer;
|
|
||||||
detail::vformat_to(buffer, format_str, args);
|
|
||||||
detail::write_buffer(os, buffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
\rst
|
|
||||||
Prints formatted data to the stream *os*.
|
|
||||||
|
|
||||||
**Example**::
|
|
||||||
|
|
||||||
fmt::print(cerr, "Don't {}!", "panic");
|
|
||||||
\endrst
|
|
||||||
*/
|
|
||||||
template <typename S, typename... Args,
|
|
||||||
typename Char = enable_if_t<detail::is_string<S>::value, char_t<S>>>
|
|
||||||
void print(std::basic_ostream<Char>& os, const S& format_str, Args&&... args) {
|
|
||||||
vprint(os, to_string_view(format_str),
|
|
||||||
fmt::make_args_checked<Args...>(format_str, args...));
|
|
||||||
}
|
|
||||||
FMT_END_NAMESPACE
|
|
||||||
|
|
||||||
#endif // FMT_OSTREAM_H_
|
|
2
src/3rdparty/fmt/posix.h
vendored
2
src/3rdparty/fmt/posix.h
vendored
@ -1,2 +0,0 @@
|
|||||||
#include "os.h"
|
|
||||||
#warning "fmt/posix.h is deprecated; use fmt/os.h instead"
|
|
751
src/3rdparty/fmt/printf.h
vendored
751
src/3rdparty/fmt/printf.h
vendored
File diff suppressed because it is too large
Load Diff
393
src/3rdparty/fmt/ranges.h
vendored
393
src/3rdparty/fmt/ranges.h
vendored
File diff suppressed because it is too large
Load Diff
45
src/3rdparty/hwloc/AUTHORS
vendored
45
src/3rdparty/hwloc/AUTHORS
vendored
@ -1,45 +0,0 @@
|
|||||||
hwloc Authors
|
|
||||||
=============
|
|
||||||
|
|
||||||
The following cumulative list contains the names of most individuals
|
|
||||||
who have committed code to the hwloc repository
|
|
||||||
(either directly or through a third party).
|
|
||||||
|
|
||||||
Name Affiliation(s)
|
|
||||||
--------------------------- --------------------
|
|
||||||
Grzegorz Andrejczuk Intel
|
|
||||||
Cédric Augonnet University of Bordeaux
|
|
||||||
Guillaume Beauchamp Inria
|
|
||||||
Ahmad Boissetri Binzagr Inria
|
|
||||||
Cyril Bordage Inria
|
|
||||||
Nicholas Buroker UWL
|
|
||||||
Christopher M. Cantalupo Intel
|
|
||||||
Jérôme Clet-Ortega University of Bordeaux
|
|
||||||
Ludovic Courtès Inria
|
|
||||||
Clément Foyer Inria
|
|
||||||
Nathalie Furmento CNRS
|
|
||||||
Bryon Gloden
|
|
||||||
Brice Goglin Inria
|
|
||||||
Gilles Gouaillardet RIST
|
|
||||||
Valentin Hoyet Inria
|
|
||||||
Joshua Hursey UWL
|
|
||||||
Alexey Kardashevskiy IBM
|
|
||||||
Rob Latham ANL
|
|
||||||
Douglas MacFarland UWL
|
|
||||||
Marc Marí BSC
|
|
||||||
Jonathan L Peyton Intel
|
|
||||||
Piotr Luc Intel
|
|
||||||
Antoine Rougier intern from University of Bordeaux
|
|
||||||
Jeff Squyres Cisco
|
|
||||||
Samuel Thibault University of Bordeaux
|
|
||||||
Jean-Yves VET DDN
|
|
||||||
Benjamin Worpitz
|
|
||||||
Jeff Zhao Zhaoxin
|
|
||||||
|
|
||||||
Affiliaion abbreviations:
|
|
||||||
-------------------------
|
|
||||||
ANL = Argonne National Lab
|
|
||||||
BSC = Barcelona Supercomputing Center
|
|
||||||
Cisco = Cisco Systems, Inc.
|
|
||||||
CNRS = Centre national de la recherche scientifique (France)
|
|
||||||
UWL = University of Wisconsin-La Crosse
|
|
40
src/3rdparty/hwloc/CMakeLists.txt
vendored
40
src/3rdparty/hwloc/CMakeLists.txt
vendored
@ -1,40 +0,0 @@
|
|||||||
cmake_minimum_required (VERSION 2.8.12)
|
|
||||||
project (hwloc C)
|
|
||||||
|
|
||||||
include_directories(include)
|
|
||||||
include_directories(src)
|
|
||||||
|
|
||||||
add_definitions(/D_CRT_SECURE_NO_WARNINGS)
|
|
||||||
set(CMAKE_C_FLAGS_RELEASE "/MT /O2 /Ob2 /DNDEBUG")
|
|
||||||
|
|
||||||
set(HEADERS
|
|
||||||
include/hwloc.h
|
|
||||||
src/static-components.h
|
|
||||||
)
|
|
||||||
|
|
||||||
set(SOURCES
|
|
||||||
src/base64.c
|
|
||||||
src/bind.c
|
|
||||||
src/bitmap.c
|
|
||||||
src/components.c
|
|
||||||
src/diff.c
|
|
||||||
src/distances.c
|
|
||||||
src/misc.c
|
|
||||||
src/pci-common.c
|
|
||||||
src/shmem.c
|
|
||||||
src/topology.c
|
|
||||||
src/topology-noos.c
|
|
||||||
src/topology-synthetic.c
|
|
||||||
src/topology-windows.c
|
|
||||||
src/topology-x86.c
|
|
||||||
src/topology-xml.c
|
|
||||||
src/topology-xml-nolibxml.c
|
|
||||||
src/traversal.c
|
|
||||||
src/memattrs.c
|
|
||||||
src/cpukinds.c
|
|
||||||
)
|
|
||||||
|
|
||||||
add_library(hwloc STATIC
|
|
||||||
${HEADERS}
|
|
||||||
${SOURCES}
|
|
||||||
)
|
|
39
src/3rdparty/hwloc/COPYING
vendored
39
src/3rdparty/hwloc/COPYING
vendored
@ -1,39 +0,0 @@
|
|||||||
Copyright © 2004-2006 The Trustees of Indiana University and Indiana University Research and Technology Corporation. All rights reserved.
|
|
||||||
Copyright © 2004-2005 The University of Tennessee and The University of Tennessee Research Foundation. All rights reserved.
|
|
||||||
Copyright © 2004-2005 High Performance Computing Center Stuttgart, University of Stuttgart. All rights reserved.
|
|
||||||
Copyright © 2004-2005 The Regents of the University of California. All rights reserved.
|
|
||||||
Copyright © 2009 CNRS
|
|
||||||
Copyright © 2009-2016 Inria. All rights reserved.
|
|
||||||
Copyright © 2009-2015 Université Bordeaux
|
|
||||||
Copyright © 2009-2015 Cisco Systems, Inc. All rights reserved.
|
|
||||||
Copyright © 2009-2012 Oracle and/or its affiliates. All rights reserved.
|
|
||||||
Copyright © 2010 IBM
|
|
||||||
Copyright © 2010 Jirka Hladky
|
|
||||||
Copyright © 2012 Aleksej Saushev, The NetBSD Foundation
|
|
||||||
Copyright © 2012 Blue Brain Project, EPFL. All rights reserved.
|
|
||||||
Copyright © 2013-2014 University of Wisconsin-La Crosse. All rights reserved.
|
|
||||||
Copyright © 2015 Research Organization for Information Science and Technology (RIST). All rights reserved.
|
|
||||||
Copyright © 2015-2016 Intel, Inc. All rights reserved.
|
|
||||||
See COPYING in top-level directory.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions
|
|
||||||
are met:
|
|
||||||
1. Redistributions of source code must retain the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer.
|
|
||||||
2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer in the
|
|
||||||
documentation and/or other materials provided with the distribution.
|
|
||||||
3. The name of the author may not be used to endorse or promote products
|
|
||||||
derived from this software without specific prior written permission.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
|
||||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
||||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
||||||
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
||||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
||||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
||||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
||||||
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
1978
src/3rdparty/hwloc/NEWS
vendored
1978
src/3rdparty/hwloc/NEWS
vendored
File diff suppressed because it is too large
Load Diff
85
src/3rdparty/hwloc/README
vendored
85
src/3rdparty/hwloc/README
vendored
@ -1,85 +0,0 @@
|
|||||||
Introduction
|
|
||||||
|
|
||||||
The Hardware Locality (hwloc) software project aims at easing the process of
|
|
||||||
discovering hardware resources in parallel architectures. It offers
|
|
||||||
command-line tools and a C API for consulting these resources, their locality,
|
|
||||||
attributes, and interconnection. hwloc primarily aims at helping
|
|
||||||
high-performance computing (HPC) applications, but is also applicable to any
|
|
||||||
project seeking to exploit code and/or data locality on modern computing
|
|
||||||
platforms.
|
|
||||||
|
|
||||||
hwloc is actually made of two subprojects distributed together:
|
|
||||||
|
|
||||||
* The original hwloc project for describing the internals of computing nodes.
|
|
||||||
It is described in details starting at section Hardware Locality (hwloc)
|
|
||||||
Introduction.
|
|
||||||
* The network-oriented companion called netloc (Network Locality), described
|
|
||||||
in details starting with section Network Locality (netloc).
|
|
||||||
|
|
||||||
See also the Related pages tab above for links to other sections.
|
|
||||||
|
|
||||||
Netloc may be disabled, but the original hwloc cannot. Both hwloc and netloc
|
|
||||||
APIs are documented after these sections.
|
|
||||||
|
|
||||||
Installation
|
|
||||||
|
|
||||||
hwloc (https://www.open-mpi.org/projects/hwloc/) is available under the BSD
|
|
||||||
license. It is hosted as a sub-project of the overall Open MPI project (https:/
|
|
||||||
/www.open-mpi.org/). Note that hwloc does not require any functionality from
|
|
||||||
Open MPI -- it is a wholly separate (and much smaller!) project and code base.
|
|
||||||
It just happens to be hosted as part of the overall Open MPI project.
|
|
||||||
|
|
||||||
Basic Installation
|
|
||||||
|
|
||||||
Installation is the fairly common GNU-based process:
|
|
||||||
|
|
||||||
shell$ ./configure --prefix=...
|
|
||||||
shell$ make
|
|
||||||
shell$ make install
|
|
||||||
|
|
||||||
hwloc- and netloc-specific configure options and requirements are documented in
|
|
||||||
sections hwloc Installation and Netloc Installation respectively.
|
|
||||||
|
|
||||||
Also note that if you install supplemental libraries in non-standard locations,
|
|
||||||
hwloc's configure script may not be able to find them without some help. You
|
|
||||||
may need to specify additional CPPFLAGS, LDFLAGS, or PKG_CONFIG_PATH values on
|
|
||||||
the configure command line.
|
|
||||||
|
|
||||||
For example, if libpciaccess was installed into /opt/pciaccess, hwloc's
|
|
||||||
configure script may not find it be default. Try adding PKG_CONFIG_PATH to the
|
|
||||||
./configure command line, like this:
|
|
||||||
|
|
||||||
./configure PKG_CONFIG_PATH=/opt/pciaccess/lib/pkgconfig ...
|
|
||||||
|
|
||||||
Running the "lstopo" tool is a good way to check as a graphical output whether
|
|
||||||
hwloc properly detected the architecture of your node. Netloc command-line
|
|
||||||
tools can be used to display the network topology interconnecting your nodes.
|
|
||||||
|
|
||||||
Installing from a Git clone
|
|
||||||
|
|
||||||
Additionally, the code can be directly cloned from Git:
|
|
||||||
|
|
||||||
shell$ git clone https://github.com/open-mpi/hwloc.git
|
|
||||||
shell$ cd hwloc
|
|
||||||
shell$ ./autogen.sh
|
|
||||||
|
|
||||||
Note that GNU Autoconf >=2.63, Automake >=1.11 and Libtool >=2.2.6 are required
|
|
||||||
when building from a Git clone.
|
|
||||||
|
|
||||||
Nightly development snapshots are available on the web site, they can be
|
|
||||||
configured and built without any need for Git or GNU Autotools.
|
|
||||||
|
|
||||||
Questions and Bugs
|
|
||||||
|
|
||||||
Bugs should be reported in the tracker (https://github.com/open-mpi/hwloc/
|
|
||||||
issues). Opening a new issue automatically displays lots of hints about how to
|
|
||||||
debug and report issues.
|
|
||||||
|
|
||||||
Questions may be sent to the users or developers mailing lists (https://
|
|
||||||
www.open-mpi.org/community/lists/hwloc.php).
|
|
||||||
|
|
||||||
There is also a #hwloc IRC channel on Freenode (irc.freenode.net).
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
See https://www.open-mpi.org/projects/hwloc/doc/ for more hwloc documentation.
|
|
47
src/3rdparty/hwloc/VERSION
vendored
47
src/3rdparty/hwloc/VERSION
vendored
@ -1,47 +0,0 @@
|
|||||||
# This is the VERSION file for hwloc, describing the precise version
|
|
||||||
# of hwloc in this distribution. The various components of the version
|
|
||||||
# number below are combined to form a single version number string.
|
|
||||||
|
|
||||||
# major, minor, and release are generally combined in the form
|
|
||||||
# <major>.<minor>.<release>. If release is zero, then it is omitted.
|
|
||||||
|
|
||||||
# Please update HWLOC_VERSION* in contrib/windows/hwloc_config.h too.
|
|
||||||
|
|
||||||
major=2
|
|
||||||
minor=7
|
|
||||||
release=1
|
|
||||||
|
|
||||||
# greek is used for alpha or beta release tags. If it is non-empty,
|
|
||||||
# it will be appended to the version number. It does not have to be
|
|
||||||
# numeric. Common examples include a1 (alpha release 1), b1 (beta
|
|
||||||
# release 1), sc2005 (Super Computing 2005 release). The only
|
|
||||||
# requirement is that it must be entirely printable ASCII characters
|
|
||||||
# and have no white space.
|
|
||||||
|
|
||||||
greek=
|
|
||||||
|
|
||||||
# The date when this release was created
|
|
||||||
|
|
||||||
date="Mar 20, 2022"
|
|
||||||
|
|
||||||
# If snapshot=1, then use the value from snapshot_version as the
|
|
||||||
# entire hwloc version (i.e., ignore major, minor, release, and
|
|
||||||
# greek). This is only set to 1 when making snapshot tarballs.
|
|
||||||
snapshot=0
|
|
||||||
snapshot_version=${major}.${minor}.${release}${greek}-git
|
|
||||||
|
|
||||||
# The shared library version of hwloc's public library. This version
|
|
||||||
# is maintained in accordance with the "Library Interface Versions"
|
|
||||||
# chapter from the GNU Libtool documentation. Notes:
|
|
||||||
|
|
||||||
# 1. Since version numbers are associated with *releases*, the version
|
|
||||||
# number maintained on the hwloc git master (and developer branches)
|
|
||||||
# is always 0:0:0.
|
|
||||||
|
|
||||||
# 2. Version numbers are described in the Libtool current:revision:age
|
|
||||||
# format.
|
|
||||||
|
|
||||||
libhwloc_so_version=20:3:5
|
|
||||||
libnetloc_so_version=0:0:0
|
|
||||||
|
|
||||||
# Please also update the <TargetName> lines in contrib/windows/libhwloc.vcxproj
|
|
2578
src/3rdparty/hwloc/include/hwloc.h
vendored
2578
src/3rdparty/hwloc/include/hwloc.h
vendored
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user