Skip to content

Commit

Permalink
Various doc updates.
Browse files Browse the repository at this point in the history
  • Loading branch information
bluescarni committed Jan 15, 2021
1 parent 2cc05b1 commit 5dd20b3
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 26 deletions.
4 changes: 4 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -294,6 +294,10 @@ target_compile_features(obake PUBLIC cxx_std_20)
# Ensure vanilla C++ is being used.
set_property(TARGET obake PROPERTY CXX_EXTENSIONS NO)
if(YACMA_COMPILER_IS_MSVC)
# NOTE: older abseil versions have a problem on MSVC
# when using C++20:
# https://github.com/abseil/abseil-cpp/issues/649
# Hopefully we can eventually remove this.
target_compile_definitions(obake PUBLIC -D_HAS_DEPRECATED_RESULT_OF=1)
endif()

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
![language](https://img.shields.io/badge/language-C%2B%2B17-red.svg?style=for-the-badge)
![language](https://img.shields.io/badge/language-C%2B%2B20-green.svg?style=for-the-badge)
[![Linux Build Status](https://img.shields.io/circleci/project/github/bluescarni/obake/master.svg?style=for-the-badge)](https://circleci.com/gh/bluescarni/obake)
[![Windows Build Status](https://img.shields.io/appveyor/ci/bluescarni/obake/master.svg?logo=appveyor&style=for-the-badge)](https://ci.appveyor.com/project/bluescarni/obake)
[![OSX Build Status](https://img.shields.io/travis/bluescarni/obake/master.svg?logo=travis&style=for-the-badge)](https://travis-ci.org/bluescarni/obake)
Expand All @@ -13,7 +13,7 @@
> Literally, the terms mean a thing that changes, referring to a state of transformation
> or shapeshifting.
obake is a C++17 library for the symbolic manipulation of sparse polynomials
obake is a C++20 library for the symbolic manipulation of sparse polynomials
and other closely-related mathematical objects (e.g., truncated power
series, Poisson series, etc.). obake is the successor of the
[piranha](https://github.com/bluescarni/piranha) project.
Expand Down
26 changes: 7 additions & 19 deletions doc/install.rst
Original file line number Diff line number Diff line change
Expand Up @@ -25,23 +25,22 @@ obake also depends on other libraries for optional features:
Installation from source
------------------------

obake is written in `C++17 <https://en.wikipedia.org/wiki/C%2B%2B17>`_,
obake is written in `C++20 <https://en.wikipedia.org/wiki/C%2B%2B20>`_,
and thus it requires a fairly recent compiler with
robust support for modern C++ idioms. The following compilers are regularly
tested in obake's continuous integration setup:

* GCC 7 and 8 on Linux (Ubuntu bionic and cosmic),
* Clang 6 and 7 on Linux (Ubuntu bionic and cosmic),
* GCC 9 on Linux (Ubuntu Focal),
* Visual Studio 2019 on Windows,
* Clang + Visual Studio 2017 on Windows
* Clang 11 + Visual Studio 2017 on Windows
(via the ``clang-cl`` driver),
* Clang 9 on OSX.
* Clang 11 on OSX.

See also the
:ref:`compiler and platform specific notes <platform_specific_notes>`.

In order to install obake from source, `CMake <https://cmake.org/>`_ is
required (at least version 3.8). After downloading and unpacking obake's
required (at least version 3.12). After downloading and unpacking obake's
source code, go to obake's
source tree, create a ``build`` directory and ``cd`` into it. E.g.,
on a Unix-like system:
Expand Down Expand Up @@ -117,7 +116,7 @@ If enabled, the test suite can be executed with the command:
Troubleshooting
^^^^^^^^^^^^^^^

By far, the most common problem when compiling obake is the detection
The most common problem when compiling obake is the detection
of the dependencies.

On Linux systems, generally speaking, the best way of installing the
Expand Down Expand Up @@ -156,20 +155,9 @@ Visual Studio:
with the ``NOMINMAX`` and ``WIN32_LEAN_AND_MEAN`` definitions,
and, if supported, with the ``/permissive-`` compiler flag.

GCC:

* Due to a compiler bug, when using GCC 7 obake's customisation points
do not have any ``noexcept`` specifier.

Clang:

* Due to a compiler bug, Clang 8.0.0 may fail to compile obake's
test suite with debugging information. The issue appears to have been
rectified in Clang 8.0.1.

OSX:

* On OSX, only the most recent versions of Xcode (i.e., Xcode 9 or later)
* On OSX, only the most recent versions of Xcode
are capable of compiling obake.
As an alternative to Xcode, one can install a more modern compiler toolchain
using package managers such as `Conda <https://docs.conda.io/en/latest/>`_ or
Expand Down
7 changes: 2 additions & 5 deletions include/obake/detail/xoroshiro128_plus.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -82,11 +82,8 @@ struct xoroshiro128_plus {
}

// Cast back to the original type.
// NOTE: in case Int is signed, this operation is
// implementation-defined up to C++20, and from C++20
// this follows the rules of two's complement arithmetic.
// In practice, all implementations follow two's complement
// even before C++20.
// NOTE: since C++20 this follows the rules of
// two's complement arithmetic.
return static_cast<Int>(u_retval);
}

Expand Down

0 comments on commit 5dd20b3

Please sign in to comment.