From df63bf3dca044d886dd024271f109e912d3420d9 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 21 May 2021 15:30:36 +0100 Subject: [PATCH 1/7] Fix spelling of epoch (#119) --- doc/index.html | 8 ++++---- include/boost/predef/language/stdc.h | 2 +- include/boost/predef/language/stdcpp.h | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/index.html b/doc/index.html index c7bde8c..f9d5c78 100644 --- a/doc/index.html +++ b/doc/index.html @@ -3748,7 +3748,7 @@ If available, the version is detected as VV.RR.P.

4.3.3. BOOST_LANG_STDC

Standard C language. -If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date.

+If available, the year of the standard is detected as YYYY.MM.1 from the Epoch date.

@@ -3777,7 +3777,7 @@ If available, the year of the standard is detected as YYYY.MM.1 from the Epoc da

4.3.4. BOOST_LANG_STDCPP

Standard C++ language. -If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date. +If available, the year of the standard is detected as YYYY.MM.1 from the Epoch date. Because of the way the C++ standardization process works the defined version year will not be the commonly known year of the standard. Specifically the defined versions are:

@@ -3846,7 +3846,7 @@ Specifically the defined versions are:

4.3.5. BOOST_LANG_STDCPPCLI

Standard C++/CLI language. -If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date.

+If available, the year of the standard is detected as YYYY.MM.1 from the Epoch date.

@@ -7313,4 +7313,4 @@ Joel Falcou for managing the review of this library.

- \ No newline at end of file + diff --git a/include/boost/predef/language/stdc.h b/include/boost/predef/language/stdc.h index 94e30fe..8cbd6a1 100644 --- a/include/boost/predef/language/stdc.h +++ b/include/boost/predef/language/stdc.h @@ -15,7 +15,7 @@ http://www.boost.org/LICENSE_1_0.txt) = `BOOST_LANG_STDC` http://en.wikipedia.org/wiki/C_(programming_language)[Standard C] language. -If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date. +If available, the year of the standard is detected as YYYY.MM.1 from the Epoch date. [options="header"] |=== diff --git a/include/boost/predef/language/stdcpp.h b/include/boost/predef/language/stdcpp.h index fc83431..daa14cf 100644 --- a/include/boost/predef/language/stdcpp.h +++ b/include/boost/predef/language/stdcpp.h @@ -15,7 +15,7 @@ http://www.boost.org/LICENSE_1_0.txt) = `BOOST_LANG_STDCPP` http://en.wikipedia.org/wiki/C%2B%2B[Standard {CPP}] language. -If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date. +If available, the year of the standard is detected as YYYY.MM.1 from the Epoch date. Because of the way the {CPP} standardization process works the defined version year will not be the commonly known year of the standard. Specifically the defined versions are: @@ -61,7 +61,7 @@ Specifically the defined versions are: = `BOOST_LANG_STDCPPCLI` http://en.wikipedia.org/wiki/C%2B%2B/CLI[Standard {CPP}/CLI] language. -If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date. +If available, the year of the standard is detected as YYYY.MM.1 from the Epoch date. [options="header"] |=== From 1be0e4a2d8db15a405f64a6f65507b87c1be7e1a Mon Sep 17 00:00:00 2001 From: tkoecker Date: Fri, 21 May 2021 16:31:11 +0200 Subject: [PATCH 2/7] added missing brackets (#118) --- include/boost/predef/architecture/sparc.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/boost/predef/architecture/sparc.h b/include/boost/predef/architecture/sparc.h index d7b94f0..d01605e 100644 --- a/include/boost/predef/architecture/sparc.h +++ b/include/boost/predef/architecture/sparc.h @@ -34,10 +34,10 @@ http://en.wikipedia.org/wiki/SPARC[SPARC] architecture. #if defined(__sparc__) || defined(__sparc) # undef BOOST_ARCH_SPARC -# if !defined(BOOST_ARCH_SPARC) && (defined(__sparcv9) || defined(__sparc_v9__) +# if !defined(BOOST_ARCH_SPARC) && (defined(__sparcv9) || defined(__sparc_v9__)) # define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER(9,0,0) # endif -# if !defined(BOOST_ARCH_SPARC) && (defined(__sparcv8) || defined(__sparc_v8__) +# if !defined(BOOST_ARCH_SPARC) && (defined(__sparcv8) || defined(__sparc_v8__)) # define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER(8,0,0) # endif # if !defined(BOOST_ARCH_SPARC) From b48ed9ec623d4083b05a08cfdc5ab1c44ae2f0ec Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Sat, 23 Oct 2021 20:15:03 +0300 Subject: [PATCH 3/7] Specify LANGUAGES NONE to avoid enabling C and CXX (#120) --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index dc69fe5..7e76edc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,7 +25,7 @@ cmake_minimum_required( VERSION 3.0 ) # Don't set VERSION, as that's a pita to keep up to date with the version # header. And don't set LANGUAGES as we are multi-language and header # only, so it's irrelevant. -project( BoostPredef ) +project( BoostPredef LANGUAGES NONE ) # Simple INTERFACE, and header only, library target. add_library( boost_predef INTERFACE ) From 76218d7a1966b405b879facb126262691c757219 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sun, 24 Oct 2021 12:51:46 -0500 Subject: [PATCH 4/7] Predef 1.13.1 --- .cirrus.yml | 49 + .gitignore | 1 + CMakeLists.txt | 2 +- appveyor.yml | 101 ++ azure-pipelines.yml | 163 ++- build.jam | 2 +- doc/amber.css | 829 ++++++++++++++ doc/build.jam | 8 +- doc/history.adoc | 8 +- doc/index.html | 1922 +++++++++++++++++++------------- doc/predef.adoc | 14 +- doc/predef.css | 45 - doc/pygments_init.rb | 11 - doc/todo.adoc | 2 +- include/boost/predef/version.h | 2 +- test/build.jam | 12 +- 16 files changed, 2261 insertions(+), 910 deletions(-) create mode 100644 .cirrus.yml create mode 100644 appveyor.yml create mode 100644 doc/amber.css delete mode 100644 doc/predef.css delete mode 100644 doc/pygments_init.rb diff --git a/.cirrus.yml b/.cirrus.yml new file mode 100644 index 0000000..5d4900a --- /dev/null +++ b/.cirrus.yml @@ -0,0 +1,49 @@ +# Use, modification, and distribution are +# subject to the Boost Software License, Version 1.0. (See accompanying +# file LICENSE.txt) +# +# Copyright René Ferdinand Rivera Morell 2020-2021. + +freebsd_task: + # All the GCC's and Clang's currently supported by FreeBSD ports. + matrix: + - { name: 'FreeBSD, GCC 11', env: { CXX: 'g++11', PACKAGE: 'gcc11-devel', TOOLSET: gcc }, freebsd_instance: { image_family: 'freebsd-13-0' } } + - { name: 'FreeBSD, GCC 10', env: { CXX: 'g++10', PACKAGE: 'gcc10-devel', TOOLSET: gcc }, freebsd_instance: { image_family: 'freebsd-13-0' } } + - { name: 'FreeBSD, GCC 9', env: { CXX: 'g++9', PACKAGE: 'gcc9-devel', TOOLSET: gcc }, freebsd_instance: { image_family: 'freebsd-13-0' } } + - { name: 'FreeBSD, GCC 8', env: { CXX: 'g++8', PACKAGE: 'gcc8', TOOLSET: gcc }, freebsd_instance: { image_family: 'freebsd-13-0' } } + # - { name: 'FreeBSD, GCC 7', env: { CXX: 'g++7', PACKAGE: 'gcc7', TOOLSET: gcc }, freebsd_instance: { image_family: 'freebsd-12-2' } } + - { name: 'FreeBSD, Clang 12', env: { CXX: 'clang++12', PACKAGE: 'devel/llvm12', TOOLSET: clang }, freebsd_instance: { image_family: 'freebsd-13-0' } } + - { name: 'FreeBSD, Clang 11', env: { CXX: 'clang++11', PACKAGE: 'devel/llvm11', TOOLSET: clang }, freebsd_instance: { image_family: 'freebsd-13-0' } } + - { name: 'FreeBSD, Clang 10', env: { CXX: 'clang++10', PACKAGE: 'devel/llvm10', TOOLSET: clang }, freebsd_instance: { image_family: 'freebsd-13-0' } } + - { name: 'FreeBSD, Clang 9', env: { CXX: 'clang++90', PACKAGE: 'devel/llvm90', TOOLSET: clang }, freebsd_instance: { image_family: 'freebsd-13-0' } } + - { name: 'FreeBSD, Clang 8', env: { CXX: 'clang++80', PACKAGE: 'devel/llvm80' , TOOLSET: clang}, freebsd_instance: { image_family: 'freebsd-13-0' } } + - { name: 'FreeBSD, Clang 7', env: { CXX: 'clang++70', PACKAGE: 'devel/llvm70', TOOLSET: clang }, freebsd_instance: { image_family: 'freebsd-13-0' } } + # To install with ports we need to initialize the package manager. To avoid + # confirmation prompts we need to set an env var. + install_script: [ + "uname -a", + "env ASSUME_ALWAYS_YES=YES pkg bootstrap", + "env ASSUME_ALWAYS_YES=YES pkg install wget", + "env ASSUME_ALWAYS_YES=YES pkg install ncurses", + "env ASSUME_ALWAYS_YES=YES pkg install ${PACKAGE}" + ] + # Install B2. + install_b2_script: [ + "set -e", + "export \"PCD=${PWD}\" ; cd ${HOME}", + "wget -nv https://github.com/bfgroup/b2/archive/release.tar.gz", + "tar -zxf release.tar.gz", + "cd b2-release", + "CXX= ./bootstrap.sh", + "sudo ./b2 install toolset=clang", + "cd \"${PCD}\"" + ] + # Test. + test_script: [ + "set -e", + "CXX_PATH=`which ${CXX}`", + "echo \"using ${TOOLSET} : : ${CXX_PATH} ;\" > ${HOME}/user-config.jam", + "cd test", + "b2 --verbose-test -a toolset=${TOOLSET} ${B2_ARGS} predef-info", + "b2 --debug-configuration -a toolset=${TOOLSET} ${B2_ARGS} predef predef-headers" + ] diff --git a/.gitignore b/.gitignore index 784ff83..43f0c33 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +/.conan/ .bin boost-build.jam project-config.jam diff --git a/CMakeLists.txt b/CMakeLists.txt index 7e76edc..4a3d6c4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ # Copyright Mike Dev 2018 -# Copyright Rene Rivera 2018 +# Copyright René Ferdinand Rivera Morell 2018-2021 # Distributed under the Boost Software License, Version 1.0. # See accompanying file LICENSE_1_0.txt or copy at # http://www.boost.org/LICENSE_1_0.txt diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 0000000..1ec83fd --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,101 @@ +# Use, modification, and distribution are +# subject to the Boost Software License, Version 1.0. (See accompanying +# file LICENSE.txt) +# +# Copyright René Ferdinand Rivera Morell 2020-2021. + +branches: + only: + - /master.*/ + - /develop.*/ + - /feature.*/ + +skip_commits: + files: + - .circleci/* + - .cirrus.yml + - .drone.star + - .github/workflows/* + - .semaphore/* + - .travis.yml + - azure-pipelines.yml + +environment: + matrix: + # All the Visual Studio installs available on Appveyor + # - { job_name: 'VS 2019', TOOLSET: "msvc", TOOLSET_VERSION: '14.2', APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2019' } + # - { job_name: 'VS 2017', TOOLSET: "msvc", TOOLSET_VERSION: '14.1', APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017' } + - { job_name: 'VS 2015', TOOLSET: "msvc", TOOLSET_VERSION: '14.0', APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015' } + - { job_name: 'VS 2013', TOOLSET: "msvc", TOOLSET_VERSION: '12.0', APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015' } + # - { job_name: 'VS 2012', TOOLSET: "msvc", TOOLSET_VERSION: '11.0', APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015' } + # - { job_name: 'VS 2010', TOOLSET: "msvc", TOOLSET_VERSION: '10.0', APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015' } + # The "recent" MinGW installs available on Appveyor. + - { job_name: 'MinGW-w64 8.1', TOOLSET: "gcc", CXXPATH: 'C:/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/g++.exe', APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015' } + - { job_name: 'MinGW-w64 7.3', TOOLSET: "gcc", CXXPATH: 'C:/mingw-w64/x86_64-7.3.0-posix-seh-rt_v5-rev0/mingw64/bin/g++.exe', APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015' } + - { job_name: 'MinGW-w64 6.3', TOOLSET: "gcc", CXXPATH: 'C:/mingw-w64/x86_64-6.3.0-posix-seh-rt_v5-rev1/mingw64/bin/g++.exe', APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015' } + # Cygwin versions available. + # - { job_name: 'Cygwin32 3.1.7', TOOLSET: 'gcc', CXXPATH: 'C:/cygwin/bin/g++.exe', APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2019' } + # - { job_name: 'Cygwin64 3.1.7', TOOLSET: 'gcc', CXXPATH: 'C:/cygwin64/bin/g++.exe', APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2019' } + - { job_name: 'Cygwin32 3.0.7', TOOLSET: 'gcc', CXXPATH: 'C:/cygwin/bin/g++.exe', APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017' } + - { job_name: 'Cygwin64 3.0.7', TOOLSET: 'gcc', CXXPATH: 'C:/cygwin64/bin/g++.exe', APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017' } + +platform: + - x86 + - x64 + +matrix: + exclude: + # - { platform: x64, job_name: 'VS 2012' } + # - { platform: x64, job_name: 'VS 2010' } + - { platform: x64, job_name: 'Cygwin32 3.1.7' } + - { platform: x86, job_name: 'Cygwin64 3.1.7' } + - { platform: x64, job_name: 'Cygwin32 3.0.7' } + - { platform: x86, job_name: 'Cygwin64 3.0.7' } + +for: +# msvc job steps. +- matrix: + only: + - TOOLSET: 'msvc' + install: + - cmd: | + echo ">>>>> INSTALL .." + choco install vswhere + echo ">>>>> INSTALL B2 .." + cd %APPVEYOR_BUILD_FOLDER%/.. + curl "https://github.com/boostorg/build/archive/develop.zip" -L -o b2.zip + 7z x b2.zip -r + echo using %TOOLSET% ^: %TOOLSET_VERSION% ^: %CXXPATH% ^; > %HOMEDRIVE%%HOMEPATH%/user-config.jam + cd %APPVEYOR_BUILD_FOLDER%/../build-develop + cmd.exe /c bootstrap.bat + build_script: + - cmd: | + echo ">>>>>" + echo ">>>>> TEST .." + echo ">>>>>" + set BOOST_BUILD_PATH=%APPVEYOR_BUILD_FOLDER%/../build-develop + cd %APPVEYOR_BUILD_FOLDER%/test + %APPVEYOR_BUILD_FOLDER%/../build-develop/b2.exe --verbose-test -a toolset=%TOOLSET% %B2_ARGS% predef-info + %APPVEYOR_BUILD_FOLDER%/../build-develop/b2.exe --debug-configuration -a toolset=%TOOLSET% %B2_ARGS% predef predef-headers +# Windows MinGW & Cygwin job steps. +- matrix: + only: + - TOOLSET: 'gcc' + install: + - cmd: | + echo ">>>>> INSTALL B2 .." + cd %APPVEYOR_BUILD_FOLDER%/.. + curl "https://github.com/boostorg/build/archive/develop.zip" -L -o b2.zip + 7z x b2.zip -r + echo using %TOOLSET% ^: %TOOLSET_VERSION% ^: %CXXPATH% ^; > %HOMEDRIVE%%HOMEPATH%/user-config.jam + cd %APPVEYOR_BUILD_FOLDER%/../build-develop + cmd.exe /c bootstrap.bat + build_script: + # The build itself just calls the compiler directly. + - cmd: | + echo ">>>>> TEST .." + set PATH=%CXXPATH%\..\;%PATH% + set BOOST_BUILD_PATH=%APPVEYOR_BUILD_FOLDER%/../build-develop + cd %APPVEYOR_BUILD_FOLDER%/test + %APPVEYOR_BUILD_FOLDER%/../build-develop/b2.exe --verbose-test -a toolset=%TOOLSET% %B2_ARGS% predef-info + %APPVEYOR_BUILD_FOLDER%/../build-develop/b2.exe --debug-configuration -a toolset=%TOOLSET% %B2_ARGS% predef predef-headers diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 9af16b7..aeb5b09 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -2,7 +2,7 @@ # subject to the Boost Software License, Version 1.0. (See accompanying # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) # -# Copyright Rene Rivera 2019-2020. +# Copyright René Ferdinand Rivera Morell 2019-2021. trigger: branches: @@ -10,6 +10,15 @@ trigger: - develop - master - feature/* + paths: + exclude: + - .circleci/* + - .cirrus.yml + - .drone.star + - .github/workflows/* + - .semaphore/* + - .travis.yml + - appveyor.yml pr: branches: include: @@ -32,18 +41,18 @@ stages: - job: 'Linux' strategy: matrix: - GCC 10 (GNU): { CXX: g++-10, PACKAGES: g++-10, VM_IMAGE: 'ubuntu-18.04', TOOLSET: gcc, B2_ARGS: 'cxxstd=03,11,14,17,2a cxxstd-dialect=gnu' } - GCC 10 (ISO): { CXX: g++-10, PACKAGES: g++-10, VM_IMAGE: 'ubuntu-18.04', TOOLSET: gcc, B2_ARGS: 'cxxstd=03,11,14,17,2a cxxstd-dialect=iso' } - GCC 10: { CXX: g++-10, PACKAGES: g++-10, VM_IMAGE: 'ubuntu-18.04', TOOLSET: gcc } + GCC 11 (GNU): { CXX: g++-11, PACKAGES: g++-11, VM_IMAGE: 'ubuntu-20.04', TOOLSET: gcc, B2_ARGS: 'cxxstd=03,11,14,17,2a cxxstd-dialect=gnu' } + GCC 11 (ISO): { CXX: g++-11, PACKAGES: g++-11, VM_IMAGE: 'ubuntu-20.04', TOOLSET: gcc, B2_ARGS: 'cxxstd=03,11,14,17,2a cxxstd-dialect=iso' } + GCC 11: { CXX: g++-11, PACKAGES: g++-11, VM_IMAGE: 'ubuntu-20.04', TOOLSET: gcc } + GCC 10: { CXX: g++-10, PACKAGES: g++-10, VM_IMAGE: 'ubuntu-20.04', TOOLSET: gcc } GCC 9: { CXX: g++-9, PACKAGES: g++-9, VM_IMAGE: 'ubuntu-18.04', TOOLSET: gcc } GCC 8: { CXX: g++-8, PACKAGES: g++-8, VM_IMAGE: 'ubuntu-18.04', TOOLSET: gcc } GCC 7: { CXX: g++-7, PACKAGES: g++-7, VM_IMAGE: 'ubuntu-18.04', TOOLSET: gcc } GCC 6: { CXX: g++-6, PACKAGES: g++-6, VM_IMAGE: 'ubuntu-18.04', TOOLSET: gcc } GCC 5: { CXX: g++-5, PACKAGES: g++-5, VM_IMAGE: 'ubuntu-18.04', TOOLSET: gcc } - GCC 4.9: { CXX: g++-4.9, PACKAGES: g++-4.9, VM_IMAGE: 'ubuntu-16.04', TOOLSET: gcc } - GCC 4.8: { CXX: g++-4.8, PACKAGES: g++-4.8, VM_IMAGE: 'ubuntu-16.04', TOOLSET: gcc } - GCC 4.7: { CXX: g++-4.7, PACKAGES: g++-4.7, VM_IMAGE: 'ubuntu-16.04', TOOLSET: gcc } - Clang 11: { CXX: clang++-11, PACKAGES: clang-11, LLVM_OS: bionic, LLVM_VER: 11, VM_IMAGE: 'ubuntu-18.04', TOOLSET: clang } + # Clang 13: { CXX: clang++-13, PACKAGES: clang-13, LLVM_OS: focal, LLVM_VER: 11, VM_IMAGE: 'ubuntu-20.04', TOOLSET: clang } + Clang 12: { CXX: clang++-12, PACKAGES: clang-12, LLVM_OS: focal, LLVM_VER: 11, VM_IMAGE: 'ubuntu-20.04', TOOLSET: clang } + Clang 11: { CXX: clang++-11, PACKAGES: clang-11, LLVM_OS: focal, LLVM_VER: 11, VM_IMAGE: 'ubuntu-20.04', TOOLSET: clang } Clang 10: { CXX: clang++-10, PACKAGES: clang-10, LLVM_OS: bionic, LLVM_VER: 10, VM_IMAGE: 'ubuntu-18.04', TOOLSET: clang } Clang 9: { CXX: clang++-9, PACKAGES: clang-9, LLVM_OS: bionic, LLVM_VER: 9, VM_IMAGE: 'ubuntu-18.04', TOOLSET: clang } Clang 8: { CXX: clang++-8, PACKAGES: clang-8, LLVM_OS: bionic, LLVM_VER: 8, VM_IMAGE: 'ubuntu-18.04', TOOLSET: clang } @@ -51,11 +60,6 @@ stages: Clang 6.0: { CXX: clang++-6.0, PACKAGES: clang-6.0, LLVM_OS: bionic, LLVM_VER: 6.0, VM_IMAGE: 'ubuntu-18.04', TOOLSET: clang } Clang 5.0: { CXX: clang++-5.0, PACKAGES: clang-5.0, LLVM_OS: bionic, LLVM_VER: 5.0, VM_IMAGE: 'ubuntu-18.04', TOOLSET: clang } Clang 4.0: { CXX: clang++-4.0, PACKAGES: clang-4.0, LLVM_OS: xenial, LLVM_VER: 4.0, VM_IMAGE: 'ubuntu-18.04', TOOLSET: clang } - Clang 3.9: { CXX: clang++-3.9, PACKAGES: clang-3.9, LLVM_OS: xenial, LLVM_VER: 3.9, VM_IMAGE: 'ubuntu-18.04', TOOLSET: clang } - Clang 3.8: { CXX: clang++-3.8, PACKAGES: clang-3.8, LLVM_OS: xenial, LLVM_VER: 3.8, VM_IMAGE: 'ubuntu-16.04', TOOLSET: clang } - Clang 3.7: { CXX: clang++-3.7, PACKAGES: clang-3.7, LLVM_OS: xenial, VM_IMAGE: 'ubuntu-16.04', TOOLSET: clang } - Clang 3.6: { CXX: clang++-3.6, PACKAGES: clang-3.6, LLVM_OS: xenial, VM_IMAGE: 'ubuntu-16.04', TOOLSET: clang } - Clang 3.5: { CXX: clang++-3.5, PACKAGES: clang-3.5, LLVM_OS: xenial, VM_IMAGE: 'ubuntu-16.04', TOOLSET: clang } pool: vmImage: $(VM_IMAGE) steps: @@ -67,9 +71,9 @@ stages: - bash: | set -e pushd ${HOME} - wget -nv https://github.com/boostorg/build/archive/develop.tar.gz - tar -zxf develop.tar.gz - cd build-develop + wget -nv https://github.com/bfgroup/b2/archive/release.tar.gz + tar -zxf release.tar.gz + cd b2-release CXX= ./bootstrap.sh sudo ./b2 install popd @@ -87,41 +91,22 @@ stages: - job: 'macOS' strategy: matrix: - Xcode 11.4.1: - TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_11.4.1.app - VM_IMAGE: 'macOS-10.15' - Xcode 11.3.1: - TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_11.3.1.app - VM_IMAGE: 'macOS-10.15' - Xcode 11.2.1: - TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_11.2.1.app - VM_IMAGE: 'macOS-10.15' - Xcode 10.3: - TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_10.3.app - VM_IMAGE: 'macOS-10.14' - Xcode 10.2.1: - TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_10.2.1.app - VM_IMAGE: 'macOS-10.14' - Xcode 10.1: - TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_10.1.app - VM_IMAGE: 'macOS-10.14' - Xcode 10.0: - TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_10.app - VM_IMAGE: 'macOS-10.14' + Xcode 13.0: {TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_13.0.app, VM_IMAGE: 'macOS-11'} + Xcode 12.4: {TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_12.4.app, VM_IMAGE: 'macOS-11'} + Xcode 12.3: {TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_12.3.app, VM_IMAGE: 'macOS-10.15'} + Xcode 12.2: {TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_12.2.app, VM_IMAGE: 'macOS-10.15'} + Xcode 12.1.1: {TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_12.1.1.app, VM_IMAGE: 'macOS-10.15'} + Xcode 12.0.1: {TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_12.0.1.app, VM_IMAGE: 'macOS-10.15'} + Xcode 11.7: {TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.7.app, VM_IMAGE: 'macOS-10.15'} + Xcode 11.6: {TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.6.app, VM_IMAGE: 'macOS-10.15'} + Xcode 11.5: {TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.5.app, VM_IMAGE: 'macOS-10.15'} + Xcode 11.4.1: {TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.4.1.app, VM_IMAGE: 'macOS-10.15'} + Xcode 11.3.1: {TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.3.1.app, VM_IMAGE: 'macOS-10.15'} + Xcode 11.2.1: {TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_11.2.1.app, VM_IMAGE: 'macOS-10.15'} + Xcode 10.3: {TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_10.3.app, VM_IMAGE: 'macOS-10.14'} + Xcode 10.2.1: {TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_10.2.1.app, VM_IMAGE: 'macOS-10.14'} + Xcode 10.1: {TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_10.1.app, VM_IMAGE: 'macOS-10.14'} + Xcode 10.0: {TOOLSET: clang, CXX: clang++, XCODE_APP: /Applications/Xcode_10.app, VM_IMAGE: 'macOS-10.14'} pool: vmImage: $(VM_IMAGE) steps: @@ -135,9 +120,9 @@ stages: - bash: | set -e pushd ${HOME} - wget -nv https://github.com/boostorg/build/archive/develop.tar.gz - tar -zxf develop.tar.gz - cd build-develop + wget -nv https://github.com/bfgroup/b2/archive/release.tar.gz + tar -zxf release.tar.gz + cd b2-release CXX= ./bootstrap.sh sudo ./b2 install popd @@ -185,6 +170,10 @@ stages: TOOLSET_VERSION: 14.2 B2_ARGS: address-model=64 define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_SYSTEM VM_IMAGE: 'windows-2019' + VS 2022: + TOOLSET: msvc + TOOLSET_VERSION: 14.3 + VM_IMAGE: 'windows-2022' VS 2017: TOOLSET: msvc TOOLSET_VERSION: 14.1 @@ -205,7 +194,7 @@ stages: steps: - script: | cd %BUILD_SOURCESDIRECTORY%/.. - curl "https://github.com/boostorg/build/archive/develop.zip" -L -o b2.zip + curl "https://github.com/bfgroup/b2/archive/release.zip" -L -o b2.zip displayName: Download B2 - task: ExtractFiles@1 inputs: @@ -215,12 +204,68 @@ stages: displayName: Extract B2 - script: | echo using %TOOLSET% ^: %TOOLSET_VERSION% ^; > %HOMEDRIVE%%HOMEPATH%/user-config.jam - cd %BUILD_SOURCESDIRECTORY%/../build-develop + cd %BUILD_SOURCESDIRECTORY%/../b2-release cmd.exe /c bootstrap.bat displayName: Install B2 - script: | - set BOOST_BUILD_PATH=%BUILD_SOURCESDIRECTORY%/../build-develop + set BOOST_BUILD_PATH=%BUILD_SOURCESDIRECTORY%/../b2-release cd %BUILD_SOURCESDIRECTORY%/test - %BUILD_SOURCESDIRECTORY%/../build-develop/b2.exe --verbose-test -a toolset=%TOOLSET% %B2_ARGS% predef-info - %BUILD_SOURCESDIRECTORY%/../build-develop/b2.exe --debug-configuration -a toolset=%TOOLSET% %B2_ARGS% predef predef-headers + %BUILD_SOURCESDIRECTORY%/../b2-release/b2.exe --verbose-test -a toolset=%TOOLSET% %B2_ARGS% predef-info + %BUILD_SOURCESDIRECTORY%/../b2-release/b2.exe --debug-configuration -a toolset=%TOOLSET% %B2_ARGS% predef predef-headers displayName: Test + +- stage: WebsiteUpdate + displayName: 'Website Update' + condition: in(variables['Build.SourceBranch'], 'refs/heads/master', 'refs/heads/develop') + jobs: + + - job: Documentation + pool: + vmImage: 'ubuntu-latest' + steps: + - task: UsePythonVersion@0 + inputs: + versionSpec: '2.x' + - task: UseRubyVersion@0 + - bash: | + gem install asciidoctor + gem install rouge + displayName: 'Install Doc Tools' + - bash: | + set -e + pushd ${HOME} + wget -nv https://github.com/bfgroup/b2/archive/release.tar.gz + tar -zxf release.tar.gz + cd b2-release + CXX= ./bootstrap.sh + sudo ./b2 install + popd + displayName: 'Install B2' + - bash: | + rm -rf ${WEB_DIR} + git clone --verbose --branch gh-pages --depth 1 "https://${GH_TOKEN}github.com/grafikrobot/hash-predef.git" ${WEB_DIR} || exit 1 + pushd ${WEB_DIR} + git rm --ignore-unmatch -r "${DOC_DIR}" || exit 1 + mkdir -p "${DOC_DIR}" || exit 1 + popd + displayName: 'Clone Website' + env: + GH_TOKEN: $(GitHubToken) + WEB_DIR: website + DOC_DIR: manual/$(Build.SourceBranchName) + - bash: | + echo "using asciidoctor ;" > ${HOME}/user-config.jam + pushd doc + b2 --doc-dir=${WEB_DIR}/${DOC_DIR} html + git config user.email "doc-bot" + git config user.name "doc-bot" + cd ${WEB_DIR}/${DOC_DIR} + git add --verbose . || exit 1 + git commit -m "Update documentation." + git push + popd + displayName: 'Build & Publish' + env: + GH_TOKEN: $(GitHubToken) + WEB_DIR: website + DOC_DIR: manual/$(Build.SourceBranchName) diff --git a/build.jam b/build.jam index 69be969..0f39f9d 100644 --- a/build.jam +++ b/build.jam @@ -1,4 +1,4 @@ -# Copyright Rene Rivera 2014-2019 +# Copyright René Ferdinand Rivera Morell 2014-2019 # Distributed under the Boost Software License, Version 1.0. # (See accompanying file LICENSE_1_0.txt or copy at # http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/amber.css b/doc/amber.css new file mode 100644 index 0000000..24b78fb --- /dev/null +++ b/doc/amber.css @@ -0,0 +1,829 @@ +@import url(https://fonts.googleapis.com/css2?family=Comfortaa&display=swap); +/*! normalize.css v2.1.2 | MIT License | git.io/normalize */ +/* ========================================================================== HTML5 display definitions ========================================================================== */ +/** Correct `block` display not defined in IE 8/9. */ +@import url(https://fonts.googleapis.com/css2?family=IBM+Plex+Mono&display=swap); +article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { display: block; } + +/** Correct `inline-block` display not defined in IE 8/9. */ +audio, canvas, video { display: inline-block; } + +/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */ +audio:not([controls]) { display: none; height: 0; } + +/** Address `[hidden]` styling not present in IE 8/9. Hide the `template` element in IE, Safari, and Firefox < 22. */ +[hidden], template { display: none; } + +script { display: none !important; } + +/* ========================================================================== Base ========================================================================== */ +/** 1. Set default font family to sans-serif. 2. Prevent iOS text size adjust after orientation change, without disabling user zoom. */ +html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ } + +/** Remove default margin. */ +body { margin: 0; } + +/* ========================================================================== Links ========================================================================== */ +/** Remove the gray background color from active links in IE 10. */ +a { background: transparent; } + +/** Address `outline` inconsistency between Chrome and other browsers. */ +a:focus { outline: thin dotted; } + +/** Improve readability when focused and also mouse hovered in all browsers. */ +a:active, a:hover { outline: 0; } + +/* ========================================================================== Typography ========================================================================== */ +/** Address variable `h1` font-size and margin within `section` and `article` contexts in Firefox 4+, Safari 5, and Chrome. */ +h1 { font-size: 2em; margin: 0.67em 0; } + +/** Address styling not present in IE 8/9, Safari 5, and Chrome. */ +abbr[title] { border-bottom: 1px dotted; } + +/** Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. */ +b, strong { font-weight: bold; } + +/** Address styling not present in Safari 5 and Chrome. */ +dfn { font-style: italic; } + +/** Address differences between Firefox and other browsers. */ +hr { -moz-box-sizing: content-box; box-sizing: content-box; height: 0; } + +/** Address styling not present in IE 8/9. */ +mark { background: #ff0; color: #000; } + +/** Correct font family set oddly in Safari 5 and Chrome. */ +code, kbd, pre, samp { font-family: monospace, serif; font-size: 1em; } + +/** Improve readability of pre-formatted text in all browsers. */ +pre { white-space: pre-wrap; } + +/** Set consistent quote types. */ +q { quotes: "\201C" "\201D" "\2018" "\2019"; } + +/** Address inconsistent and variable font size in all browsers. */ +small { font-size: 80%; } + +/** Prevent `sub` and `sup` affecting `line-height` in all browsers. */ +sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } + +sup { top: -0.5em; } + +sub { bottom: -0.25em; } + +/* ========================================================================== Embedded content ========================================================================== */ +/** Remove border when inside `a` element in IE 8/9. */ +img { border: 0; } + +/** Correct overflow displayed oddly in IE 9. */ +svg:not(:root) { overflow: hidden; } + +/* ========================================================================== Figures ========================================================================== */ +/** Address margin not present in IE 8/9 and Safari 5. */ +figure { margin: 0; } + +/* ========================================================================== Forms ========================================================================== */ +/** Define consistent border, margin, and padding. */ +fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } + +/** 1. Correct `color` not being inherited in IE 8/9. 2. Remove padding so people aren't caught out if they zero out fieldsets. */ +legend { border: 0; /* 1 */ padding: 0; /* 2 */ } + +/** 1. Correct font family not being inherited in all browsers. 2. Correct font size not being inherited in all browsers. 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. */ +button, input, select, textarea { font-family: inherit; /* 1 */ font-size: 100%; /* 2 */ margin: 0; /* 3 */ } + +/** Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet. */ +button, input { line-height: normal; } + +/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. Correct `select` style inheritance in Firefox 4+ and Opera. */ +button, select { text-transform: none; } + +/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. */ +button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ } + +/** Re-set default cursor for disabled elements. */ +button[disabled], html input[disabled] { cursor: default; } + +/** 1. Address box sizing set to `content-box` in IE 8/9. 2. Remove excess padding in IE 8/9. */ +input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } + +/** 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome (include `-moz` to future-proof). */ +input[type="search"] { -webkit-appearance: textfield; /* 1 */ -moz-box-sizing: content-box; -webkit-box-sizing: content-box; /* 2 */ box-sizing: content-box; } + +/** Remove inner padding and search cancel button in Safari 5 and Chrome on OS X. */ +input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } + +/** Remove inner padding and border in Firefox 4+. */ +button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } + +/** 1. Remove default vertical scrollbar in IE 8/9. 2. Improve readability and alignment in all browsers. */ +textarea { overflow: auto; /* 1 */ vertical-align: top; /* 2 */ } + +/* ========================================================================== Tables ========================================================================== */ +/** Remove most spacing between table cells. */ +table { border-collapse: collapse; border-spacing: 0; } + +meta.foundation-mq-small { font-family: "only screen and (min-width: 768px)"; width: 768px; } + +meta.foundation-mq-medium { font-family: "only screen and (min-width:1280px)"; width: 1280px; } + +meta.foundation-mq-large { font-family: "only screen and (min-width:1440px)"; width: 1440px; } + +*, *:before, *:after { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; } + +html, body { font-size: 100%; } + +body { background: #111; color: #aaa; padding: 0; margin: 0; font-family: "Comfortaa", "-apple-system", "BlinkMacSystemFont", "Segoe UI", "Roboto", "Helvetica Neue", "Arial", "sans-serif", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-weight: normal; font-style: normal; line-height: 1; position: relative; cursor: auto; } + +a:hover { cursor: pointer; } + +img, object, embed { max-width: 100%; height: auto; } + +object, embed { height: 100%; } + +img { -ms-interpolation-mode: bicubic; } + +#map_canvas img, #map_canvas embed, #map_canvas object, .map_canvas img, .map_canvas embed, .map_canvas object { max-width: none !important; } + +.left { float: left !important; } + +.right { float: right !important; } + +.text-left { text-align: left !important; } + +.text-right { text-align: right !important; } + +.text-center { text-align: center !important; } + +.text-justify { text-align: justify !important; } + +.hide { display: none; } + +.antialiased { -webkit-font-smoothing: antialiased; } + +img { display: inline-block; vertical-align: middle; } + +textarea { height: auto; min-height: 50px; } + +select { width: 100%; } + +p.lead { font-size: 1.21875em; line-height: 1.6; } + +.subheader, .admonitionblock td.content > .title, .audioblock > .title, .exampleblock > .title, .imageblock > .title, .listingblock > .title, .literalblock > .title, .stemblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, table.tableblock > .title, .verseblock > .title, .videoblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title { line-height: 1.45; color: #e18400; font-weight: normal; margin-top: 0; margin-bottom: 0.25em; } + +/* Typography resets */ +div, dl, dt, dd, ul, ol, li, h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6, pre, form, p, blockquote, th, td { margin: 0; padding: 0; direction: ltr; } + +/* Default Link Styles */ +a { color: #FA9300; text-decoration: underline; line-height: inherit; } +a:hover, a:focus { color: #e18400; } +a img { border: none; } + +/* Default paragraph styles */ +p { font-family: inherit; font-weight: normal; font-size: 1em; line-height: 1.6; margin-bottom: 1.25em; text-rendering: optimizeLegibility; } +p aside { font-size: 0.875em; line-height: 1.35; font-style: italic; } + +/* Default header styles */ +h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { font-family: "Comfortaa", "-apple-system", "BlinkMacSystemFont", "Segoe UI", "Roboto", "Helvetica Neue", "Arial", "sans-serif", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-weight: 300; font-style: normal; color: #ffa92e; text-rendering: optimizeLegibility; margin-top: 1em; margin-bottom: 0.5em; line-height: 1.0125em; } +h1 small, h2 small, h3 small, #toctitle small, .sidebarblock > .content > .title small, h4 small, h5 small, h6 small { font-size: 60%; color: #ffe8c7; line-height: 0; } + +h1 { font-size: 2.125em; } + +h2 { font-size: 1.6875em; } + +h3, #toctitle, .sidebarblock > .content > .title { font-size: 1.375em; } + +h4 { font-size: 1.125em; } + +h5 { font-size: 1.125em; } + +h6 { font-size: 1em; } + +hr { border: solid #2b2b2b; border-width: 1px 0 0; clear: both; margin: 1.25em 0 1.1875em; height: 0; } + +/* Helpful Typography Defaults */ +em, i { font-style: italic; line-height: inherit; } + +strong, b { font-weight: bold; line-height: inherit; } + +small { font-size: 60%; line-height: inherit; } + +code { font-family: "IBM Plex Mono", "Droid Sans Mono", "DejaVu Sans Mono", "Monospace", monospace; font-weight: normal; color: #ffe8c7; } + +/* Lists */ +ul, ol, dl { font-size: 1em; line-height: 1.6; margin-bottom: 1.25em; list-style-position: outside; font-family: inherit; } + +ul, ol { margin-left: 1.5em; } +ul.no-bullet, ol.no-bullet { margin-left: 1.5em; } + +/* Unordered Lists */ +ul li ul, ul li ol { margin-left: 1.25em; margin-bottom: 0; font-size: 1em; /* Override nested font-size change */ } +ul.square li ul, ul.circle li ul, ul.disc li ul { list-style: inherit; } +ul.square { list-style-type: square; } +ul.circle { list-style-type: circle; } +ul.disc { list-style-type: disc; } +ul.no-bullet { list-style: none; } + +/* Ordered Lists */ +ol li ul, ol li ol { margin-left: 1.25em; margin-bottom: 0; } + +/* Definition Lists */ +dl dt { margin-bottom: 0.3125em; font-weight: bold; } +dl dd { margin-bottom: 1.25em; } + +/* Abbreviations */ +abbr, acronym { text-transform: uppercase; font-size: 90%; color: #aaa; border-bottom: 1px dotted #ddd; cursor: help; } + +abbr { text-transform: none; } + +/* Blockquotes */ +blockquote { margin: 0 0 1.25em; padding: 0.5625em 1.25em 0 1.1875em; border-left: 1px solid #ddd; } +blockquote cite { display: block; font-size: 0.9375em; color: #aaa; } +blockquote cite:before { content: "\2014 \0020"; } +blockquote cite a, blockquote cite a:visited { color: #aaa; } + +blockquote, blockquote p { line-height: 1.6; color: #ffa92e; } + +/* Microformats */ +.vcard { display: inline-block; margin: 0 0 1.25em 0; border: 1px solid #ddd; padding: 0.625em 0.75em; } +.vcard li { margin: 0; display: block; } +.vcard .fn { font-weight: bold; font-size: 0.9375em; } + +.vevent .summary { font-weight: bold; } +.vevent abbr { cursor: auto; text-decoration: none; font-weight: bold; border: none; padding: 0 0.0625em; } + +@media only screen and (min-width: 768px) { h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { line-height: 1.2; } + h1 { font-size: 2.75em; } + h2 { font-size: 2.3125em; } + h3, #toctitle, .sidebarblock > .content > .title { font-size: 1.6875em; } + h4 { font-size: 1.4375em; } } +/* Tables */ +table { background: #111; margin-bottom: 1.25em; border: solid 1px #613900; } +table thead, table tfoot { background: #2e1b00; font-weight: bold; } +table thead tr th, table thead tr td, table tfoot tr th, table tfoot tr td { padding: 0.5em 0.625em 0.625em; font-size: inherit; color: #aaa; text-align: left; } +table tr th, table tr td { padding: 0.5625em 0.625em; font-size: inherit; color: #aaa; } +table tr.even, table tr.alt, table tr:nth-of-type(even) { background: #040404; } +table thead tr th, table tfoot tr th, table tbody tr td, table tr td, table tfoot tr td { display: table-cell; line-height: 1.6; } + +body { tab-size: 4; word-wrap: anywhere; -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; } + +table { word-wrap: normal; } + +h1, h2, h3, #toctitle, .sidebarblock > .content > .title, h4, h5, h6 { line-height: 1.2; word-spacing: -0.05em; } +h1 strong, h2 strong, h3 strong, #toctitle strong, .sidebarblock > .content > .title strong, h4 strong, h5 strong, h6 strong { font-weight: 400; } + +object, svg { display: inline-block; vertical-align: middle; } + +.center { margin-left: auto; margin-right: auto; } + +.stretch { width: 100%; } + +.clearfix:before, .clearfix:after, .float-group:before, .float-group:after { content: " "; display: table; } +.clearfix:after, .float-group:after { clear: both; } + +:not(pre).nobreak { word-wrap: normal; } +:not(pre).nowrap { white-space: nowrap; } +:not(pre).pre-wrap { white-space: pre-wrap; } + +:not(pre):not([class^=L]) > code { font-size: 0.875em; font-style: normal !important; letter-spacing: 0; padding: 0.1em 0.5ex; word-spacing: -0.15em; background-color: black; border: 1px solid #111; -webkit-border-radius: 8px; border-radius: 8px; line-height: 1.45; text-rendering: optimizeSpeed; } + +pre { color: #FA9300; font-family: "IBM Plex Mono", "Droid Sans Mono", "DejaVu Sans Mono", "Monospace", monospace; line-height: 1.45; text-rendering: optimizeSpeed; } +pre code, pre pre { color: inherit; font-size: inherit; line-height: inherit; } +pre > code { display: block; } + +pre.nowrap, pre.nowrap pre { white-space: pre; word-wrap: normal; } + +em em { font-style: normal; } + +strong strong { font-weight: normal; } + +.keyseq { color: #dddddd; } + +kbd { font-family: "IBM Plex Mono", "Droid Sans Mono", "DejaVu Sans Mono", "Monospace", monospace; display: inline-block; color: #aaa; font-size: 0.65em; line-height: 1.45; background-color: #f7f7f7; border: 1px solid #ccc; -webkit-border-radius: 3px; border-radius: 3px; -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 0.1em white inset; -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 0.1em white inset; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 0.1em white inset; margin: 0 0.15em; padding: 0.2em 0.5em; vertical-align: middle; position: relative; top: -0.1em; white-space: nowrap; } + +.keyseq kbd:first-child { margin-left: 0; } + +.keyseq kbd:last-child { margin-right: 0; } + +.menuseq, .menuref { color: #000; } + +.menuseq b:not(.caret), .menuref { font-weight: inherit; } + +.menuseq { word-spacing: -0.02em; } +.menuseq b.caret { font-size: 1.25em; line-height: 0.8; } +.menuseq i.caret { font-weight: bold; text-align: center; width: 0.45em; } + +b.button:before, b.button:after { position: relative; top: -1px; font-weight: normal; } + +b.button:before { content: "["; padding: 0 3px 0 2px; } + +b.button:after { content: "]"; padding: 0 2px 0 3px; } + +p a > code:hover { color: #ffddae; } + +#header, #content, #footnotes, #footer { width: 100%; margin-left: auto; margin-right: auto; margin-top: 0; margin-bottom: 0; max-width: 62.5em; *zoom: 1; position: relative; padding-left: 0.9375em; padding-right: 0.9375em; } +#header:before, #header:after, #content:before, #content:after, #footnotes:before, #footnotes:after, #footer:before, #footer:after { content: " "; display: table; } +#header:after, #content:after, #footnotes:after, #footer:after { clear: both; } + +#content { margin-top: 1.25em; } + +#content:before { content: none; } + +#header > h1:first-child { color: #ffa92e; margin-top: 2.25rem; margin-bottom: 0; } +#header > h1:first-child + #toc { margin-top: 8px; border-top: 1px solid #2b2b2b; } +#header > h1:only-child, body.toc2 #header > h1:nth-last-child(2) { border-bottom: 1px solid #2b2b2b; padding-bottom: 8px; } +#header .details { border-bottom: 1px solid #2b2b2b; line-height: 1.45; padding-top: 0.25em; padding-bottom: 0.25em; padding-left: 0.25em; color: #aaa; display: -ms-flexbox; display: -webkit-flex; display: flex; -ms-flex-flow: row wrap; -webkit-flex-flow: row wrap; flex-flow: row wrap; } +#header .details span:first-child { margin-left: -0.125em; } +#header .details span.email a { color: #ffa92e; } +#header .details br { display: none; } +#header .details br + span:before { content: "\00a0\2013\00a0"; } +#header .details br + span.author:before { content: "\00a0\22c5\00a0"; color: #ffa92e; } +#header .details br + span#revremark:before { content: "\00a0|\00a0"; } +#header #revnumber { text-transform: capitalize; } +#header #revnumber:after { content: "\00a0"; } + +#content > h1:first-child:not([class]) { color: #ffa92e; border-bottom: 1px solid #2b2b2b; padding-bottom: 8px; margin-top: 0; padding-top: 1rem; margin-bottom: 1.25rem; } + +#toc { border-bottom: 1px solid #1e1e1e; padding-bottom: 0.5em; } +#toc > ul { margin-left: 0.125em; } +#toc ul.sectlevel0 > li > a { font-style: italic; } +#toc ul.sectlevel0 ul.sectlevel1 { margin: 0.5em 0; } +#toc ul { font-family: "Comfortaa", "-apple-system", "BlinkMacSystemFont", "Segoe UI", "Roboto", "Helvetica Neue", "Arial", "sans-serif", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; list-style-type: none; } +#toc li { line-height: 1.3334; margin-top: 0.3334em; } +#toc a { text-decoration: none; } +#toc a:active { text-decoration: underline; } + +#toctitle { color: #e18400; font-size: 1.2em; } + +@media only screen and (min-width: 768px) { #toctitle { font-size: 1.375em; } + body.toc2 { padding-left: 15em; padding-right: 0; } + #toc.toc2 { margin-top: 0 !important; background: black; position: fixed; width: 15em; left: 0; top: 0; border-right: 1px solid #1e1e1e; border-top-width: 0 !important; border-bottom-width: 0 !important; z-index: 1000; padding: 1.25em 1em; height: 100%; overflow: auto; } + #toc.toc2 #toctitle { margin-top: 0; margin-bottom: 0.8rem; font-size: 1.2em; } + #toc.toc2 > ul { font-size: 0.9em; margin-bottom: 0; } + #toc.toc2 ul ul { margin-left: 0; padding-left: 1em; } + #toc.toc2 ul.sectlevel0 ul.sectlevel1 { padding-left: 0; margin-top: 0.5em; margin-bottom: 0.5em; } + body.toc2.toc-right { padding-left: 0; padding-right: 15em; } + body.toc2.toc-right #toc.toc2 { border-right-width: 0; border-left: 1px solid #1e1e1e; left: auto; right: 0; } } +@media only screen and (min-width: 1280px) { body.toc2 { padding-left: 20em; padding-right: 0; } + #toc.toc2 { width: 20em; } + #toc.toc2 #toctitle { font-size: 1.375em; } + #toc.toc2 > ul { font-size: 0.95em; } + #toc.toc2 ul ul { padding-left: 1.25em; } + body.toc2.toc-right { padding-left: 0; padding-right: 20em; } } +#content #toc { border-style: solid; border-width: 1px; border-color: black; margin-bottom: 1.25em; padding: 1.25em; background: black; -webkit-border-radius: 8px; border-radius: 8px; } +#content #toc > :first-child { margin-top: 0; } +#content #toc > :last-child { margin-bottom: 0; } + +#footer { max-width: none; background: #aaa; padding: 1.25em; } + +#footer-text { color: #555555; line-height: 1.44; } + +#content { margin-bottom: 0.625em; } + +.sect1 { padding-bottom: 0.625em; } + +@media only screen and (min-width: 768px) { #content { margin-bottom: 1.25em; } + .sect1 { padding-bottom: 1.25em; } } +.sect1:last-child { padding-bottom: 0; } + +.sect1 + .sect1 { border-top: 1px solid #1e1e1e; } + +#content h1 > a.anchor, h2 > a.anchor, h3 > a.anchor, #toctitle > a.anchor, .sidebarblock > .content > .title > a.anchor, h4 > a.anchor, h5 > a.anchor, h6 > a.anchor { position: absolute; z-index: 1001; width: 1.5ex; margin-left: -1.5ex; display: block; text-decoration: none !important; visibility: hidden; text-align: center; font-weight: normal; } +#content h1 > a.anchor:before, h2 > a.anchor:before, h3 > a.anchor:before, #toctitle > a.anchor:before, .sidebarblock > .content > .title > a.anchor:before, h4 > a.anchor:before, h5 > a.anchor:before, h6 > a.anchor:before { content: "\00A7"; font-size: 0.85em; display: block; padding-top: 0.1em; } +#content h1:hover > a.anchor, #content h1 > a.anchor:hover, h2:hover > a.anchor, h2 > a.anchor:hover, h3:hover > a.anchor, #toctitle:hover > a.anchor, .sidebarblock > .content > .title:hover > a.anchor, h3 > a.anchor:hover, #toctitle > a.anchor:hover, .sidebarblock > .content > .title > a.anchor:hover, h4:hover > a.anchor, h4 > a.anchor:hover, h5:hover > a.anchor, h5 > a.anchor:hover, h6:hover > a.anchor, h6 > a.anchor:hover { visibility: visible; } +#content h1 > a.link, h2 > a.link, h3 > a.link, #toctitle > a.link, .sidebarblock > .content > .title > a.link, h4 > a.link, h5 > a.link, h6 > a.link { color: #ffa92e; text-decoration: none; } +#content h1 > a.link:hover, h2 > a.link:hover, h3 > a.link:hover, #toctitle > a.link:hover, .sidebarblock > .content > .title > a.link:hover, h4 > a.link:hover, h5 > a.link:hover, h6 > a.link:hover { color: #ff9e15; } + +details, .audioblock, .imageblock, .literalblock, .listingblock, .stemblock, .videoblock { margin-bottom: 1.25em; } + +details > summary:first-of-type { cursor: pointer; display: list-item; outline: none; margin-bottom: 0.75em; } + +.admonitionblock td.content > .title, .audioblock > .title, .exampleblock > .title, .imageblock > .title, .listingblock > .title, .literalblock > .title, .stemblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, table.tableblock > .title, .verseblock > .title, .videoblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title { text-rendering: optimizeLegibility; text-align: left; font-family: "Comfortaa", "-apple-system", "BlinkMacSystemFont", "Segoe UI", "Roboto", "Helvetica Neue", "Arial", "sans-serif", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 1rem; font-style: italic; } + +table.tableblock.fit-content > caption.title { white-space: nowrap; width: 0; } + +.paragraph.lead > p, #preamble > .sectionbody > [class="paragraph"]:first-of-type p { font-size: 1.21875em; line-height: 1.6; color: #ffa92e; } + +table.tableblock #preamble > .sectionbody > [class="paragraph"]:first-of-type p { font-size: inherit; } + +.admonitionblock > table { border-collapse: separate; border: 0; background: none; width: 100%; } +.admonitionblock > table td.icon { text-align: center; width: 80px; } +.admonitionblock > table td.icon img { max-width: none; } +.admonitionblock > table td.icon .title { font-weight: bold; font-family: "Comfortaa", "-apple-system", "BlinkMacSystemFont", "Segoe UI", "Roboto", "Helvetica Neue", "Arial", "sans-serif", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; text-transform: uppercase; } +.admonitionblock > table td.content { padding-left: 1.125em; padding-right: 1.25em; border-left: 1px solid #2b2b2b; color: #aaa; word-wrap: anywhere; } +.admonitionblock > table td.content > :last-child > :last-child { margin-bottom: 0; } + +.exampleblock > .content { border-style: solid; border-width: 1px; border-color: black; margin-bottom: 1.25em; padding: 1.25em; background: #111; -webkit-border-radius: 8px; border-radius: 8px; } +.exampleblock > .content > :first-child { margin-top: 0; } +.exampleblock > .content > :last-child { margin-bottom: 0; } + +.sidebarblock { border-style: solid; border-width: 1px; border-color: black; margin-bottom: 1.25em; padding: 1.25em; background: black; -webkit-border-radius: 8px; border-radius: 8px; } +.sidebarblock > :first-child { margin-top: 0; } +.sidebarblock > :last-child { margin-bottom: 0; } +.sidebarblock > .content > .title { color: #e18400; margin-top: 0; text-align: center; } + +.exampleblock > .content > :last-child > :last-child, .exampleblock > .content .olist > ol > li:last-child > :last-child, .exampleblock > .content .ulist > ul > li:last-child > :last-child, .exampleblock > .content .qlist > ol > li:last-child > :last-child, .sidebarblock > .content > :last-child > :last-child, .sidebarblock > .content .olist > ol > li:last-child > :last-child, .sidebarblock > .content .ulist > ul > li:last-child > :last-child, .sidebarblock > .content .qlist > ol > li:last-child > :last-child { margin-bottom: 0; } + +.literalblock pre, .listingblock > .content > pre { border: 1px solid #2e1b00; -webkit-border-radius: 8px; border-radius: 8px; overflow-x: auto; padding: 1em; font-size: 0.8125em; } +@media only screen and (min-width: 768px) { .literalblock pre, .listingblock > .content > pre { font-size: 0.90625em; } } +@media only screen and (min-width: 1280px) { .literalblock pre, .listingblock > .content > pre { font-size: 1em; } } + +.literalblock pre, .listingblock > .content > pre:not(.highlight), .listingblock > .content > pre[class="highlight"], .listingblock > .content > pre[class^="highlight "] { background: black; } + +.literalblock.output pre { color: black; background-color: #FA9300; } + +.listingblock > .content { position: relative; } + +.listingblock code[data-lang]:before { display: none; content: attr(data-lang); position: absolute; font-size: 0.75em; top: 0.425rem; right: 0.5rem; line-height: 1; text-transform: uppercase; color: inherit; opacity: 0.5; } + +.listingblock:hover code[data-lang]:before { display: block; } + +.listingblock.terminal pre .command:before { content: attr(data-prompt); padding-right: 0.5em; color: inherit; opacity: 0.5; } + +.listingblock.terminal pre .command:not([data-prompt]):before { content: "$"; } + +.listingblock pre.highlightjs { padding: 0; } +.listingblock pre.highlightjs > code { padding: 1em; -webkit-border-radius: 8px; border-radius: 8px; } + +.prettyprint { background: black; } + +pre.prettyprint .linenums { line-height: 1.45; margin-left: 2em; } + +pre.prettyprint li { background: none; list-style-type: inherit; padding-left: 0; } + +pre.prettyprint li code[data-lang]:before { opacity: 1; } + +pre.prettyprint li:not(:first-child) code[data-lang]:before { display: none; } + +table.linenotable { border-collapse: separate; border: 0; margin-bottom: 0; background: none; } +table.linenotable td[class] { color: inherit; vertical-align: top; padding: 0; line-height: inherit; white-space: normal; } +table.linenotable td.code { padding-left: 0.75em; } +table.linenotable td.linenos { border-right: 1px solid currentColor; opacity: 0.35; padding-right: 0.5em; } + +pre.pygments .lineno { border-right: 1px solid currentColor; opacity: 0.35; display: inline-block; margin-right: 0.75em; } +pre.pygments .lineno:before { content: ""; margin-right: -0.125em; } + +.quoteblock { margin: 0 1em 1.25em 1.5em; display: table; } +.quoteblock:not(.excerpt) > .title { margin-left: -1.5em; margin-bottom: 0.75em; } +.quoteblock blockquote, .quoteblock p { color: #ffa92e; font-size: 1.15rem; line-height: 1.75; word-spacing: 0.1em; letter-spacing: 0; font-style: italic; text-align: justify; } +.quoteblock blockquote { margin: 0; padding: 0; border: 0; } +.quoteblock blockquote:before { content: "\201c"; float: left; font-size: 2.75em; font-weight: bold; line-height: 0.6em; margin-left: -0.6em; color: #e18400; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); } +.quoteblock blockquote > .paragraph:last-child p { margin-bottom: 0; } +.quoteblock .attribution { margin-top: 0.75em; margin-right: 0.5ex; text-align: right; } + +.verseblock { margin: 0 1em 1.25em 1em; } +.verseblock pre { font-family: "Open Sans", "DejaVu Sans", sans; font-size: 1.15rem; color: #ffa92e; font-weight: 300; text-rendering: optimizeLegibility; } +.verseblock pre strong { font-weight: 400; } +.verseblock .attribution { margin-top: 1.25rem; margin-left: 0.5ex; } + +.quoteblock .attribution, .verseblock .attribution { font-size: 0.9375em; line-height: 1.45; font-style: italic; } +.quoteblock .attribution br, .verseblock .attribution br { display: none; } +.quoteblock .attribution cite, .verseblock .attribution cite { display: block; letter-spacing: -0.025em; color: #aaa; } + +.quoteblock.abstract blockquote:before, .quoteblock.excerpt blockquote:before, .quoteblock .quoteblock blockquote:before { display: none; } +.quoteblock.abstract blockquote, .quoteblock.abstract p, .quoteblock.excerpt blockquote, .quoteblock.excerpt p, .quoteblock .quoteblock blockquote, .quoteblock .quoteblock p { line-height: 1.6; word-spacing: 0; } +.quoteblock.abstract { margin: 0 1em 1.25em 1em; display: block; } +.quoteblock.abstract > .title { margin: 0 0 0.375em 0; font-size: 1.15em; text-align: center; } +.quoteblock.excerpt > blockquote, .quoteblock .quoteblock { padding: 0 0 0.25em 1em; border-left: 0.25em solid #2b2b2b; } +.quoteblock.excerpt, .quoteblock .quoteblock { margin-left: 0; } +.quoteblock.excerpt blockquote, .quoteblock.excerpt p, .quoteblock .quoteblock blockquote, .quoteblock .quoteblock p { color: inherit; font-size: 1.0625rem; } +.quoteblock.excerpt .attribution, .quoteblock .quoteblock .attribution { color: inherit; text-align: left; margin-right: 0; } + +p.tableblock:last-child { margin-bottom: 0; } + +td.tableblock > .content { margin-bottom: 1.25em; word-wrap: anywhere; } +td.tableblock > .content > :last-child { margin-bottom: -1.25em; } + +table.tableblock, th.tableblock, td.tableblock { border: 0 solid #613900; } + +table.grid-all > * > tr > * { border-width: 1px; } + +table.grid-cols > * > tr > * { border-width: 0 1px; } + +table.grid-rows > * > tr > * { border-width: 1px 0; } + +table.frame-all { border-width: 1px; } + +table.frame-ends { border-width: 1px 0; } + +table.frame-sides { border-width: 0 1px; } + +table.frame-none > colgroup + * > :first-child > *, table.frame-sides > colgroup + * > :first-child > * { border-top-width: 0; } + +table.frame-none > :last-child > :last-child > *, table.frame-sides > :last-child > :last-child > * { border-bottom-width: 0; } + +table.frame-none > * > tr > :first-child, table.frame-ends > * > tr > :first-child { border-left-width: 0; } + +table.frame-none > * > tr > :last-child, table.frame-ends > * > tr > :last-child { border-right-width: 0; } + +table.stripes-all tr, table.stripes-odd tr:nth-of-type(odd), table.stripes-even tr:nth-of-type(even), table.stripes-hover tr:hover { background: #040404; } + +th.halign-left, td.halign-left { text-align: left; } + +th.halign-right, td.halign-right { text-align: right; } + +th.halign-center, td.halign-center { text-align: center; } + +th.valign-top, td.valign-top { vertical-align: top; } + +th.valign-bottom, td.valign-bottom { vertical-align: bottom; } + +th.valign-middle, td.valign-middle { vertical-align: middle; } + +table thead th, table tfoot th { font-weight: bold; } + +tbody tr th { display: table-cell; line-height: 1.6; background: #2e1b00; } + +tbody tr th, tbody tr th p, tfoot tr th, tfoot tr th p { color: #aaa; font-weight: bold; } + +p.tableblock > code:only-child { background: none; padding: 0; } + +p.tableblock { font-size: 1em; } + +ol { margin-left: 1.75em; } + +ul li ol { margin-left: 1.5em; } + +dl dd { margin-left: 1.125em; } + +dl dd:last-child, dl dd:last-child > :last-child { margin-bottom: 0; } + +ol > li p, ul > li p, ul dd, ol dd, .olist .olist, .ulist .ulist, .ulist .olist, .olist .ulist { margin-bottom: 0.625em; } + +ul.checklist, ul.none, ol.none, ul.no-bullet, ol.no-bullet, ol.unnumbered, ul.unstyled, ol.unstyled { list-style-type: none; } + +ul.no-bullet, ol.no-bullet, ol.unnumbered { margin-left: 0.625em; } + +ul.unstyled, ol.unstyled { margin-left: 0; } + +ul.checklist { margin-left: 0.625em; } + +ul.checklist li > p:first-child > .fa-square-o:first-child, ul.checklist li > p:first-child > .fa-check-square-o:first-child { width: 1.25em; font-size: 0.8em; position: relative; bottom: 0.125em; } + +ul.checklist li > p:first-child > input[type="checkbox"]:first-child { margin-right: 0.25em; } + +ul.inline { display: -ms-flexbox; display: -webkit-box; display: flex; -ms-flex-flow: row wrap; -webkit-flex-flow: row wrap; flex-flow: row wrap; list-style: none; margin: 0 0 0.625em -1.25em; } + +ul.inline > li { margin-left: 1.25em; } + +.unstyled dl dt { font-weight: normal; font-style: normal; } + +ol.arabic { list-style-type: decimal; } + +ol.decimal { list-style-type: decimal-leading-zero; } + +ol.loweralpha { list-style-type: lower-alpha; } + +ol.upperalpha { list-style-type: upper-alpha; } + +ol.lowerroman { list-style-type: lower-roman; } + +ol.upperroman { list-style-type: upper-roman; } + +ol.lowergreek { list-style-type: lower-greek; } + +.hdlist > table, .colist > table { border: 0; background: none; } +.hdlist > table > tbody > tr, .colist > table > tbody > tr { background: none; } + +td.hdlist1, td.hdlist2 { vertical-align: top; padding: 0 0.625em; } + +td.hdlist1 { font-weight: bold; padding-bottom: 1.25em; } + +td.hdlist2 { word-wrap: anywhere; } + +.literalblock + .colist, .listingblock + .colist { margin-top: -0.5em; } + +.colist td:not([class]):first-child { padding: 0.4em 0.75em 0 0.75em; line-height: 1; vertical-align: top; } +.colist td:not([class]):first-child img { max-width: none; } +.colist td:not([class]):last-child { padding: 0.25em 0; } + +.thumb, .th { line-height: 0; display: inline-block; border: solid 4px #fff; -webkit-box-shadow: 0 0 0 1px #ddd; box-shadow: 0 0 0 1px #ddd; } + +.imageblock.left { margin: 0.25em 0.625em 1.25em 0; } +.imageblock.right { margin: 0.25em 0 1.25em 0.625em; } +.imageblock > .title { margin-bottom: 0; } +.imageblock.thumb, .imageblock.th { border-width: 6px; } +.imageblock.thumb > .title, .imageblock.th > .title { padding: 0 0.125em; } + +.image.left, .image.right { margin-top: 0.25em; margin-bottom: 0.25em; display: inline-block; line-height: 0; } +.image.left { margin-right: 0.625em; } +.image.right { margin-left: 0.625em; } + +a.image { text-decoration: none; display: inline-block; } +a.image object { pointer-events: none; } + +sup.footnote, sup.footnoteref { font-size: 0.875em; position: static; vertical-align: super; } +sup.footnote a, sup.footnoteref a { text-decoration: none; } +sup.footnote a:active, sup.footnoteref a:active { text-decoration: underline; } + +#footnotes { padding-top: 0.75em; padding-bottom: 0.75em; margin-bottom: 0.625em; } +#footnotes hr { width: 20%; min-width: 6.25em; margin: -0.25em 0 0.75em 0; border-width: 1px 0 0 0; } +#footnotes .footnote { padding: 0 0.375em 0 0.225em; line-height: 1.3334; font-size: 0.875em; margin-left: 1.2em; margin-bottom: 0.2em; } +#footnotes .footnote a:first-of-type { font-weight: bold; text-decoration: none; margin-left: -1.05em; } +#footnotes .footnote:last-of-type { margin-bottom: 0; } +#content #footnotes { margin-top: -0.625em; margin-bottom: 0; padding: 0.75em 0; } + +.gist .file-data > table { border: 0; background: #fff; width: 100%; margin-bottom: 0; } +.gist .file-data > table td.line-data { width: 99%; } + +div.unbreakable { page-break-inside: avoid; } + +.big { font-size: larger; } + +.small { font-size: smaller; } + +.underline { text-decoration: underline; } + +.overline { text-decoration: overline; } + +.line-through { text-decoration: line-through; } + +.aqua { color: #00bfbf; } + +.aqua-background { background-color: #00fafa; } + +.black { color: black; } + +.black-background { background-color: black; } + +.blue { color: #0000bf; } + +.blue-background { background-color: #0000fa; } + +.fuchsia { color: #bf00bf; } + +.fuchsia-background { background-color: #fa00fa; } + +.gray { color: #606060; } + +.gray-background { background-color: #7d7d7d; } + +.green { color: #006000; } + +.green-background { background-color: #007d00; } + +.lime { color: #00bf00; } + +.lime-background { background-color: #00fa00; } + +.maroon { color: #600000; } + +.maroon-background { background-color: #7d0000; } + +.navy { color: #000060; } + +.navy-background { background-color: #00007d; } + +.olive { color: #606000; } + +.olive-background { background-color: #7d7d00; } + +.purple { color: #600060; } + +.purple-background { background-color: #7d007d; } + +.red { color: #bf0000; } + +.red-background { background-color: #fa0000; } + +.silver { color: #909090; } + +.silver-background { background-color: #bcbcbc; } + +.teal { color: #006060; } + +.teal-background { background-color: #007d7d; } + +.white { color: #bfbfbf; } + +.white-background { background-color: #fafafa; } + +.yellow { color: #bfbf00; } + +.yellow-background { background-color: #fafa00; } + +span.icon > .fa { cursor: default; } +a span.icon > .fa { cursor: inherit; } + +.admonitionblock td.icon [class^="fa icon-"] { font-size: 2.5em; text-shadow: 0px 0px 5px #c77500; cursor: default; } +.admonitionblock td.icon .icon-note:before { content: "\f05a"; color: #bc6e00; } +.admonitionblock td.icon .icon-tip:before { content: "\f0eb"; text-shadow: 1px 1px 2px rgba(155, 155, 0, 0.8); color: #111; } +.admonitionblock td.icon .icon-warning:before { content: "\f071"; color: #bf6900; } +.admonitionblock td.icon .icon-caution:before { content: "\f06d"; color: #bf3400; } +.admonitionblock td.icon .icon-important:before { content: "\f06a"; color: #bf0000; } + +.conum[data-value] { display: inline-block; color: #fff !important; background-color: #aaa; -webkit-border-radius: 50%; border-radius: 50%; text-align: center; font-size: 0.75em; width: 1.67em; height: 1.67em; line-height: 1.67em; font-family: "Open Sans", "DejaVu Sans", sans-serif; font-style: normal; font-weight: bold; } +.conum[data-value] * { color: #fff !important; } +.conum[data-value] + b { display: none; } +.conum[data-value]:after { content: attr(data-value); } +pre .conum[data-value] { position: relative; top: -0.125em; } + +b.conum * { color: inherit !important; } + +.conum:not([data-value]):empty { display: none; } + +dt, th.tableblock, td.content, div.footnote { text-rendering: optimizeLegibility; } + +h1, h2, p, td.content, span.alt { letter-spacing: -0.01em; } + +p strong, td.content strong, div.footnote strong { letter-spacing: -0.005em; } + +strong { text-shadow: 0px 0px 2px; } + +p, blockquote, dt, td.content, span.alt { font-size: 1.0625rem; } + +p { margin-bottom: 1.25rem; } + +.sidebarblock p, .sidebarblock dt, .sidebarblock td.content, p.tableblock { font-size: 1em; } + +.exampleblock > .content { border-color: #2e1b00; -moz-box-shadow: 0 1px 4px #2e1b00; -webkit-box-shadow: 0 1px 4px #2e1b00; box-shadow: 0 1px 4px #2e1b00; } + +.admonitionblock .icon .title { font-size: 2.5em; text-shadow: 0px 0px 5px #c77500; } + +.caution .icon .title { color: #6610f2; } + +.important .icon .title { color: #e74c3c; } + +.note .icon .title { color: #3498db; } + +.tip .icon .title { color: #00bc8c; } + +.warning .icon .title { color: #f39c12; } + +pre.pygments { background: #000 !important; } + +.literalblock pre, .listingblock > .content > pre { font-size: 0.875em; } +@media only screen and (min-width: 768px) { .literalblock pre, .listingblock > .content > pre { font-size: 0.875em; } } +@media only screen and (min-width: 1280px) { .literalblock pre, .listingblock > .content > pre { font-size: 0.875em; } } + +.literalblock pre, .listingblock > .content > pre { background: black !important; } + +.sidebarblock { border-color: #2e1b00; } + +a { color: inherit; } + +#header .details { color: #c77500; } + +#toc { scrollbar-width: none; scrollbar-color: #613900 transparent; } + +#toc:hover { scrollbar-width: thin; scrollbar-color: #c77500 #2e1b00; } + +#toc::-webkit-scrollbar { width: 0px; } + +#toc::-webkit-scrollbar-thumb { background: #613900; } + +#toc::-webkit-scrollbar-track { background: transparent; } + +#toc:hover::-webkit-scrollbar { width: 6px; } + +#toc:hover::-webkit-scrollbar-thumb { background: #c77500; } + +#toc:hover::-webkit-scrollbar-track { background: #2e1b00; } + +.print-only { display: none !important; } + +@page { margin: 1.25cm 0.75cm; } +@media print { * { -moz-box-shadow: none !important; -webkit-box-shadow: none !important; box-shadow: none !important; text-shadow: none !important; } + html { font-size: 80%; } + a { color: inherit !important; text-decoration: underline !important; } + a.bare, a[href^="#"], a[href^="mailto:"] { text-decoration: none !important; } + a[href^="http:"]:not(.bare):after, a[href^="https:"]:not(.bare):after { content: "(" attr(href) ")"; display: inline-block; font-size: 0.875em; padding-left: 0.25em; } + abbr[title]:after { content: " (" attr(title) ")"; } + pre, blockquote, tr, img, object, svg { page-break-inside: avoid; } + thead { display: table-header-group; } + svg { max-width: 100%; } + p, blockquote, dt, td.content { font-size: 1em; orphans: 3; widows: 3; } + h2, h3, #toctitle, .sidebarblock > .content > .title, #toctitle, .sidebarblock > .content > .title { page-break-after: avoid; } + #header, #content, #footnotes, #footer { max-width: none; } + #toc, .sidebarblock, .exampleblock > .content { background: none !important; } + #toc { border-bottom: 1px solid #2b2b2b !important; padding-bottom: 0 !important; } + body.book #header { text-align: center; } + body.book #header > h1:first-child { border: 0 !important; margin: 2.5em 0 1em 0; } + body.book #header .details { border: 0 !important; display: block; padding: 0 !important; } + body.book #header .details span:first-child { margin-left: 0 !important; } + body.book #header .details br { display: block; } + body.book #header .details br + span:before { content: none !important; } + body.book #toc { border: 0 !important; text-align: left !important; padding: 0 !important; margin: 0 !important; } + body.book #toc, body.book #preamble, body.book h1.sect0, body.book .sect1 > h2 { page-break-before: always; } + .literalblock pre, .literalblock pre[class], .listingblock pre, .listingblock pre[class] { border: 0 !important; } + .listingblock code[data-lang]:before { display: block; } + #footer { padding: 0 0.9375em; } + .hide-on-print { display: none !important; } + .print-only { display: block !important; } + .hide-for-print { display: none !important; } + .show-for-print { display: inherit !important; } } +@media print, amzn-kf8 { #header > h1:first-child { margin-top: 1.25rem; } + .sect1 { padding: 0 !important; } + .sect1 + .sect1 { border: 0; } + #footer { background: none; } + #footer-text { color: #aaa; font-size: 0.9em; } } +@media amzn-kf8 { #header, #content, #footnotes, #footer { padding: 0; } } +.menubar { position: fixed; display: block; top: 0px; left: 0px; right: 0px; z-index: 99; background-color: black; border-bottom: 1px solid #2e1b00; padding: 10px; text-align: center; } + +.menubar p { margin: 0px; } + +.menubar image { padding-right: 1em; } + +.menubar-item { padding-left: 1em; } + +@media print { .menubar { display: none; } } diff --git a/doc/build.jam b/doc/build.jam index b2f1d6b..3a87acc 100644 --- a/doc/build.jam +++ b/doc/build.jam @@ -1,5 +1,5 @@ #| -Copyright Rene Rivera 2011-2019 +Copyright René Ferdinand Rivera Morell 2011-2021 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -11,8 +11,6 @@ import path ; project predefdoc ; -path-constant PYGMENTS_DIR : . ; - doc-dir = [ MATCH "--doc-dir=(.*)" : [ modules.peek : ARGV ] ] ; doc-dir ?= . ; @@ -20,10 +18,10 @@ local headers = [ glob-tree-ex $(BOOST_PREDEF_INCLUDE) : *.h ] ; html index : predef.adoc : : - --require=$(PYGMENTS_DIR)/pygments_init.rb --trace --verbose - $(PYGMENTS_DIR)/pygments_init.rb + --attribute=stylesheet=amber.css + --attribute=rouge-style=base16.solarized $(headers) ; explicit index ; diff --git a/doc/history.adoc b/doc/history.adoc index 1746fbb..e664712 100644 --- a/doc/history.adoc +++ b/doc/history.adoc @@ -1,5 +1,5 @@ //// -Copyright 2014-2021 Rene Rivera +Copyright 2014-2021 René Ferdinand Rivera Morell Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -7,6 +7,12 @@ http://www.boost.org/LICENSE_1_0.txt) = History +== 1.13.1 + +* Fix spelling of "epoch". +* Add missing parenthesis in `sparc.h` (from tkoecker). +* Update documentation to use Rouge code styling and Amber general style. + == 1.13 * Add `ARCH_PPC_64` predef. diff --git a/doc/index.html b/doc/index.html index f9d5c78..aabf09b 100644 --- a/doc/index.html +++ b/doc/index.html @@ -4,517 +4,929 @@ - - + + Boost.Predef -
-
-
- -
-

1. Introduction

@@ -973,7 +1335,7 @@ single top-level header:

-
#include <boost/predef.h>
+
#include <boost/predef.h>
@@ -1036,17 +1398,17 @@ a choice based on the version of the GCC C++ compiler one would:

-
#include <boost/predef.h>
-#include <iostream>
-
-int main()
-{
-  if (BOOST_COMP_GNUC >= BOOST_VERSION_NUMBER(4,0,0))
-    std::cout << "GCC compiler is at least version 4.0.0" << std::endl;
-  else
-    std::cout << "GCC compiler is at older than version 4.0.0, or not a GCC compiler" << std::endl;
-  return 0;
-}
+
#include <boost/predef.h>
+#include <iostream>
+
+int main()
+{
+  if (BOOST_COMP_GNUC >= BOOST_VERSION_NUMBER(4,0,0))
+    std::cout << "GCC compiler is at least version 4.0.0" << std::endl;
+  else
+    std::cout << "GCC compiler is at older than version 4.0.0, or not a GCC compiler" << std::endl;
+  return 0;
+}
@@ -1058,17 +1420,17 @@ detection with a natural single condition. For example:

-
#include <boost/predef.h>
-#include <iostream>
-
-int main()
-{
-  if (BOOST_COMP_GNUC)
-    std::cout << "This is GNU GCC!" << std::endl;
-  else
-    std::cout << "Not GNU GCC." << std::endl;
-  return 0;
-}
+
#include <boost/predef.h>
+#include <iostream>
+
+int main()
+{
+  if (BOOST_COMP_GNUC)
+    std::cout << "This is GNU GCC!" << std::endl;
+  else
+    std::cout << "Not GNU GCC." << std::endl;
+  return 0;
+}
@@ -1077,24 +1439,24 @@ from the preprocessor:

-
#include <boost/predef.h>
-#include <iostream>
-
-#if BOOST_COMP_GNUC
-  #if BOOST_COMP_GNUC >= BOOST_VERSION_NUMBER(4,0,0)
-    const char * the_compiler = "GNU GCC, of at least version 4."
-  #else
-    const char * the_compiler = "GNU GCC, less than version 4."
-  #endif
-#else
-  const char * the_compiler = "Not GNU GCC."
-#endif
-
-int main()
-{
-  std::cout << the_compiler << std::endl;
-  return 0;
-}
+
#include <boost/predef.h>
+#include <iostream>
+
+#if BOOST_COMP_GNUC
+  #if BOOST_COMP_GNUC >= BOOST_VERSION_NUMBER(4,0,0)
+    const char * the_compiler = "GNU GCC, of at least version 4."
+  #else
+    const char * the_compiler = "GNU GCC, less than version 4."
+  #endif
+#else
+  const char * the_compiler = "Not GNU GCC."
+#endif
+
+int main()
+{
+  std::cout << the_compiler << std::endl;
+  return 0;
+}
@@ -1104,9 +1466,9 @@ detected. I.e. a definition equivalent to:

-
#if BOOST_PREDEF_ABC
-  #define BOOST_PREDEF_ABC_AVAILABLE
-#endif
+
#if BOOST_PREDEF_ABC
+  #define BOOST_PREDEF_ABC_AVAILABLE
+#endif
@@ -1134,7 +1496,7 @@ The macro takes individual major, minor, and patch value expressions:

-
#define BOOST_VERSION_NUMBER( major, minor, patch ) ...
+
#define BOOST_VERSION_NUMBER( major, minor, patch ) ...
@@ -1170,7 +1532,7 @@ possible, i.e. binary, octal, decimal, and hexadecimal. For example:

-
#define MY_APPLICATION_VERSION_NUMBER BOOST_VERSION_NUMBER(2,0xA,015)
+
#define MY_APPLICATION_VERSION_NUMBER BOOST_VERSION_NUMBER(2,0xA,015)
@@ -1178,7 +1540,7 @@ possible, i.e. binary, octal, decimal, and hexadecimal. For example:

-
#define MY_APPLICATION_VERSION_NUMBER BOOST_VERSION_NUMBER(2,10,13)
+
#define MY_APPLICATION_VERSION_NUMBER BOOST_VERSION_NUMBER(2,10,13)
@@ -1270,15 +1632,15 @@ and license statement, followed by the include guard:

-
/*
-Copyright Jane Doe YYYY
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
+
/*
+Copyright Jane Doe YYYY
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
 
-#ifndef BOOST_PREDEF_category_tag_H
-#define BOOST_PREDEF_category_tag_H
+#ifndef BOOST_PREDEF_category_tag_H +#define BOOST_PREDEF_category_tag_H
@@ -1287,7 +1649,7 @@ include those headers here.

-
#include <boost/predef/CATEGORY_TAG/DEPENDENCY.h>
+
#include <boost/predef/CATEGORY_TAG/DEPENDENCY.h>
@@ -1298,8 +1660,8 @@ macros:

-
#include <boost/predef/version_number.h>
-#include <boost/predef/make.h>
+
#include <boost/predef/version_number.h>
+#include <boost/predef/make.h>
@@ -1313,15 +1675,15 @@ for the macro. In particular this works for the popular Eclipse IDE:

-
/* tag::reference[]
+
/* tag::reference[]
 
-= `BOOST_category_tag`
+= `BOOST_category_tag`
 
-Documentation about what is detected.
+Documentation about what is detected.
 
-*/
+*/
 
-#define BOOST_category_tag BOOST_VERSION_NUMBER_NOT_AVAILABLE
+#define BOOST_category_tag BOOST_VERSION_NUMBER_NOT_AVAILABLE
@@ -1336,14 +1698,14 @@ the fallback to minimally indicate that the predef was detected:

-
#if (condition_a)
-#   undef BOOST_category_tag
-#   if (condition_b)
-#        define BOOST_category_tag BOOST_VERSION_NUMBER(major,minor,patch)
-#    else
-#        define BOOST_category_tag BOOST_VERSION_NUMBER_AVAILABLE
-#    endif
-#endif
+
#if (condition_a)
+#   undef BOOST_category_tag
+#   if (condition_b)
+#        define BOOST_category_tag BOOST_VERSION_NUMBER(major,minor,patch)
+#    else
+#        define BOOST_category_tag BOOST_VERSION_NUMBER_AVAILABLE
+#    endif
+#endif
@@ -1351,9 +1713,9 @@ the fallback to minimally indicate that the predef was detected:

-
#if BOOST_category_tag
-#   define BOOST_category_tag_AVAILABLE
-#endif
+
#if BOOST_category_tag
+#   define BOOST_category_tag_AVAILABLE
+#endif
@@ -1361,7 +1723,7 @@ the fallback to minimally indicate that the predef was detected:

-
#define BOOST_category_tag_NAME "Name"
+
#define BOOST_category_tag_NAME "Name"
@@ -1371,7 +1733,7 @@ to generate the needed testing code.

-
#endif
+
#endif
@@ -1383,8 +1745,8 @@ to create informational output:

-
#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_category_tag,BOOST_category_tag_NAME)
+
#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_category_tag,BOOST_category_tag_NAME)
@@ -1405,14 +1767,14 @@ written as:

-
#if !BOOST_PREDEF_DETAIL_category_DETECTED && (condition_a)
-#   undef BOOST_category_tag
-#   if (condition_b)
-#        define BOOST_category_tag BOOST_VERSION_NUMBER(major,minor,patch)
-#    else
-#        define BOOST_category_tag BOOST_VERSION_NUMBER(0,0,1)
-#    endif
-#endif
+
#if !BOOST_PREDEF_DETAIL_category_DETECTED && (condition_a)
+#   undef BOOST_category_tag
+#   if (condition_b)
+#        define BOOST_category_tag BOOST_VERSION_NUMBER(major,minor,patch)
+#    else
+#        define BOOST_category_tag BOOST_VERSION_NUMBER(0,0,1)
+#    endif
+#endif
@@ -1421,10 +1783,10 @@ the detection:

-
#if BOOST_category_tag
-#   define BOOST_category_tag_AVAILABLE
-#   include <boost/predef/detail/CATEGORY_detected.h>
-#endif
+
#if BOOST_category_tag
+#   define BOOST_category_tag_AVAILABLE
+#   include <boost/predef/detail/CATEGORY_detected.h>
+#endif
@@ -1446,13 +1808,13 @@ define either the base compiler predef BOOST_COMP_compiler or the a
-
#if (condition_a)
-#   if (condition_b)
-#        define BOOST_COMP_tag_DETECTION BOOST_VERSION_NUMBER(major,minor,patch)
-#    else
-#        define BOOST_COMP_tag_DETECTION BOOST_VERSION_NUMBER_AVAILABLE
-#    endif
-#endif
+
#if (condition_a)
+#   if (condition_b)
+#        define BOOST_COMP_tag_DETECTION BOOST_VERSION_NUMBER(major,minor,patch)
+#    else
+#        define BOOST_COMP_tag_DETECTION BOOST_VERSION_NUMBER_AVAILABLE
+#    endif
+#endif
@@ -1460,16 +1822,16 @@ define either the base compiler predef BOOST_COMP_compiler or the a
-
#ifdef BOOST_COMP_tag_DETECTION
-#   if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED)
-#       define BOOST_COMP_tag_EMULATED BOOST_COMP_tag_DETECTION
-#   else
-#       undef BOOST_COMP_tag
-#       define BOOST_COMP_tag BOOST_COMP_tag_DETECTION
-#   endif
-#   define BOOST_category_tag_AVAILABLE
-#   include <boost/predef/detail/comp_detected.h>
-#endif
+
#ifdef BOOST_COMP_tag_DETECTION
+#   if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED)
+#       define BOOST_COMP_tag_EMULATED BOOST_COMP_tag_DETECTION
+#   else
+#       undef BOOST_COMP_tag
+#       define BOOST_COMP_tag BOOST_COMP_tag_DETECTION
+#   endif
+#   define BOOST_category_tag_AVAILABLE
+#   include <boost/predef/detail/comp_detected.h>
+#endif
@@ -1480,7 +1842,7 @@ define either the base compiler predef BOOST_COMP_compiler or the a
-
#include <boost/predef/make.h>
+
#include <boost/predef/make.h>
@@ -1491,7 +1853,7 @@ and defined as:

-
#define BOOST_COMP_EDG BOOST_PREDEF_MAKE_N_N_N(__EDG_VERSION__)
+
#define BOOST_COMP_EDG BOOST_PREDEF_MAKE_N_N_N(__EDG_VERSION__)
@@ -5767,16 +6129,16 @@ architecture.
-
#include <boost/predef/hardware/simd.h>
-#include <iostream>
-
-int main()
-{
-#if defined(BOOST_HW_SIMD_AVAILABLE)
-    std::cout << "SIMD detected!" << std::endl;
-#endif
-    return 0;
-}
+
#include <boost/predef/hardware/simd.h>
+#include <iostream>
+
+int main()
+{
+#if defined(BOOST_HW_SIMD_AVAILABLE)
+    std::cout << "SIMD detected!" << std::endl;
+#endif
+    return 0;
+}
@@ -5792,16 +6154,16 @@ version number of the most recent SIMD extension detected for the architecture.<
-
#include <boost/predef/hardware/simd.h>
-#include <iostream>
-
-int main()
-{
-#if BOOST_HW_SIMD_X86 >= BOOST_HW_SIMD_X86_SSE3_VERSION
-    std::cout << "This is SSE3!" << std::endl;
-#endif
-    return 0;
-}
+
#include <boost/predef/hardware/simd.h>
+#include <iostream>
+
+int main()
+{
+#if BOOST_HW_SIMD_X86 >= BOOST_HW_SIMD_X86_SSE3_VERSION
+    std::cout << "This is SSE3!" << std::endl;
+#endif
+    return 0;
+}
@@ -5823,17 +6185,17 @@ version numbers.
-
#include <boost/predef/hardware/simd.h>
-#include <iostream>
-
-int main()
-{
-#if BOOST_HW_SIMD_X86 == BOOST_HW_SIMD_X86_SSE3_VERSION
-    std::cout << "This is SSE3 and this is the most recent enabled extension!"
-        << std::endl;
-#endif
-    return 0;
-}
+
#include <boost/predef/hardware/simd.h>
+#include <iostream>
+
+int main()
+{
+#if BOOST_HW_SIMD_X86 == BOOST_HW_SIMD_X86_SSE3_VERSION
+    std::cout << "This is SSE3 and this is the most recent enabled extension!"
+        << std::endl;
+#endif
+    return 0;
+}
@@ -5842,17 +6204,17 @@ extensions macros, you can easily check for ranges of supported extensions:

-
#include <boost/predef/hardware/simd.h>
-#include <iostream>
-
-int main()
-{
-#if BOOST_HW_SIMD_X86 >= BOOST_HW_SIMD_X86_SSE2_VERSION &&\
-    BOOST_HW_SIMD_X86 <= BOOST_HW_SIMD_X86_SSSE3_VERSION
-    std::cout << "This is SSE2, SSE3 and SSSE3!" << std::endl;
-#endif
-    return 0;
-}
+
#include <boost/predef/hardware/simd.h>
+#include <iostream>
+
+int main()
+{
+#if BOOST_HW_SIMD_X86 >= BOOST_HW_SIMD_X86_SSE2_VERSION &&\
+    BOOST_HW_SIMD_X86 <= BOOST_HW_SIMD_X86_SSSE3_VERSION
+    std::cout << "This is SSE2, SSE3 and SSSE3!" << std::endl;
+#endif
+    return 0;
+}
@@ -6529,7 +6891,7 @@ the wordsize.h header will also include all the architecture header

4.8.3. BOOST_PREDEF_WORKAROUND

-
BOOST_PREDEF_WORKAROUND(symbol,comp,major,minor,patch)
+
BOOST_PREDEF_WORKAROUND(symbol,comp,major,minor,patch)
@@ -6537,9 +6899,9 @@ the wordsize.h header will also include all the architecture header
-
#if BOOST_PREDEF_WORKAROUND(BOOST_COMP_CLANG,<,3,0,0)
-    // Workaround for old clang compilers..
-#endif
+
#if BOOST_PREDEF_WORKAROUND(BOOST_COMP_CLANG,<,3,0,0)
+    // Workaround for old clang compilers..
+#endif
@@ -6555,7 +6917,7 @@ is undefine this expand to test the given symbol version value with

4.8.4. BOOST_PREDEF_TESTED_AT

-
BOOST_PREDEF_TESTED_AT(symbol,major,minor,patch)
+
BOOST_PREDEF_TESTED_AT(symbol,major,minor,patch)
@@ -6563,9 +6925,9 @@ is undefine this expand to test the given symbol version value with
-
#if BOOST_PREDEF_TESTED_AT(BOOST_COMP_CLANG,3,5,0)
-    // Needed for clang, and last checked for 3.5.0.
-#endif
+
#if BOOST_PREDEF_TESTED_AT(BOOST_COMP_CLANG,3,5,0)
+    // Needed for clang, and last checked for 3.5.0.
+#endif
@@ -6602,7 +6964,7 @@ defined.

4.9.1. BOOST_VERSION_NUMBER

-
BOOST_VERSION_NUMBER(major,minor,patch)
+
BOOST_VERSION_NUMBER(major,minor,patch)
@@ -6641,7 +7003,7 @@ are truncated (modulo).

-
BOOST_VERSION_NUMBER_MAJOR(N), BOOST_VERSION_NUMBER_MINOR(N), BOOST_VERSION_NUMBER_PATCH(N)
+
BOOST_VERSION_NUMBER_MAJOR(N), BOOST_VERSION_NUMBER_MINOR(N), BOOST_VERSION_NUMBER_PATCH(N)
@@ -6808,7 +7170,7 @@ Otherwise the index of the first false expression is returned.

-
predef-definition [ relational-operator version-value ]
+
predef-definition [ relational-operator version-value ]
@@ -6831,7 +7193,7 @@ which case it is equivalent to:

-
predef-definition > 0.0.0
+
predef-definition > 0.0.0
@@ -6845,12 +7207,12 @@ version information available in Predef. The basic use is simple:

-
import path-to-predef-src/tools/check/predef
-    : check require
-    : predef-check predef-require ;
+
import path-to-predef-src/tools/check/predef
+    : check require
+    : predef-check predef-require ;
 
-exe my_windows_program : windows_source.cpp
-    : [ predef-require "BOOST_OS_WINDOWS" ] ;
+exe my_windows_program : windows_source.cpp + : [ predef-require "BOOST_OS_WINDOWS" ] ;
@@ -6861,12 +7223,12 @@ For example:

-
import path-to-predef-src/tools/check/predef
-    : check require
-    : predef-check predef-require ;
+
import path-to-predef-src/tools/check/predef
+    : check require
+    : predef-check predef-require ;
 
-lib my_special_lib : source.cpp
-    : [ predef-require "BOOST_OS_WINDOWS != 0" "BOOST_OS_VMS != 0"] ;
+lib my_special_lib : source.cpp + : [ predef-require "BOOST_OS_WINDOWS != 0" "BOOST_OS_VMS != 0"] ;
@@ -6876,10 +7238,10 @@ not Windows or VMS. The requires rule is a special case of the
-
rule require ( expressions + : language ? )
-{
-    return [ check $(expressions) : $(language) : : <build>no ] ;
-}
+
rule require ( expressions + : language ? )
+{
+    return [ check $(expressions) : $(language) : : <build>no ] ;
+}
@@ -6888,12 +7250,12 @@ to for more complex checks:

-
import path-to-predef-src/tools/check/predef
-    : check require
-    : predef-check predef-require ;
+
import path-to-predef-src/tools/check/predef
+    : check require
+    : predef-check predef-require ;
 
-lib my_special_lib : source.cpp
-    : [ predef-require "BOOST_OS_WINDOWS" or "BOOST_OS_VMS"] ;
+lib my_special_lib : source.cpp + : [ predef-require "BOOST_OS_WINDOWS" or "BOOST_OS_VMS"] ;
@@ -6903,7 +7265,7 @@ for the check rule is:

-
rule check ( expressions + : language ? : true-properties * : false-properties * )
+
rule check ( expressions + : language ? : true-properties * : false-properties * )
@@ -6915,14 +7277,14 @@ features in your programs:

-
import path-to-predef-src/tools/check/predef
-    : check require
-    : predef-check predef-require ;
+
import path-to-predef-src/tools/check/predef
+    : check require
+    : predef-check predef-require ;
 
-exe my_special_exe : source.cpp
-    : [ predef-check "BOOST_OS_WINDOWS == 0"
-        : : <define>ENABLE_WMF=0
-        : <define>ENABLE_WMF=1 ] ;
+exe my_special_exe : source.cpp + : [ predef-check "BOOST_OS_WINDOWS == 0" + : : <define>ENABLE_WMF=0 + : <define>ENABLE_WMF=1 ] ;
@@ -6938,7 +7300,23 @@ expressions. It defaults to "c++", but can be any of: "c", "cpp",

6. History

-

6.1. 1.13

+

6.1. 1.13.1

+
+
    +
  • +

    Fix spelling of "epoch".

    +
  • +
  • +

    Add missing parenthesis in sparc.h (from tkoecker).

    +
  • +
  • +

    Update documentation to use Rouge code styling and Amber general style.

    +
  • +
+
+
+
+

6.2. 1.13

  • @@ -6957,7 +7335,7 @@ expressions. It defaults to "c++", but can be any of: "c", "cpp",
-

6.2. 1.12

+

6.3. 1.12

  • @@ -6986,7 +7364,7 @@ Initial implementation inspired by submission from Mikhail Komarov.

-

6.3. 1.11

+

6.4. 1.11

  • @@ -7014,7 +7392,7 @@ Initial implementation inspired by submission from Mikhail Komarov.

-

6.4. 1.10

+

6.5. 1.10

  • @@ -7039,7 +7417,7 @@ removed in a future release.

-

6.5. 1.9

+

6.6. 1.9

  • @@ -7052,7 +7430,7 @@ removed in a future release.

-

6.6. 1.8

+

6.7. 1.8

  • @@ -7074,7 +7452,7 @@ removed in a future release.

-

6.7. 1.7

+

6.8. 1.7

  • @@ -7090,7 +7468,7 @@ removed in a future release.

-

6.8. 1.6

+

6.9. 1.6

  • @@ -7114,7 +7492,7 @@ Baratov)

-

6.9. 1.5

+

6.10. 1.5

  • @@ -7133,7 +7511,7 @@ version instead of the varied product versions.

-

6.10. 1.4.1

+

6.11. 1.4.1

  • @@ -7146,7 +7524,7 @@ version instead of the varied product versions.

-

6.11. 1.4

+

6.12. 1.4

  • @@ -7167,7 +7545,7 @@ use cases. And changed the BBv2 check support to use compile only checks.

-

6.12. 1.3

+

6.13. 1.3

  • @@ -7192,7 +7570,7 @@ use cases. And changed the BBv2 check support to use compile only checks.

-

6.13. 1.2

+

6.14. 1.2

  • @@ -7216,7 +7594,7 @@ checks.

-

6.14. 1.1

+

6.15. 1.1

-

Copyright 2005-2020 Rene Rivera; Copyright 2015 Charly Chevalier; Copyright 2015 Joel Falcou

+

Copyright 2005-2021 René Ferdinand Rivera Morell; Copyright 2015 Charly Chevalier; Copyright 2015 Joel Falcou

- + \ No newline at end of file diff --git a/doc/predef.adoc b/doc/predef.adoc index 850d48d..b7a2980 100644 --- a/doc/predef.adoc +++ b/doc/predef.adoc @@ -1,11 +1,11 @@ = Boost.Predef -:author: Rene Rivera +:author: René Ferdinand Rivera Morell :toc: left :toclevels: 3 :sectanchors: :sectnums: :nofooter: -:source-highlighter: pygments +:source-highlighter: rouge :source-language: cpp :caution-caption: ⚑ :important-caption: ‼ @@ -17,14 +17,6 @@ :predef_version: Version :predef_detection: pass:q[*detection*] -ifdef::backend-html5[] -++++ - -++++ -endif::[] - == Introduction This library defines a set of compiler, architecture, operating system, @@ -1015,4 +1007,4 @@ Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt) -Copyright 2005-2020 Rene Rivera; Copyright 2015 Charly Chevalier; Copyright 2015 Joel Falcou \ No newline at end of file +Copyright 2005-2021 René Ferdinand Rivera Morell; Copyright 2015 Charly Chevalier; Copyright 2015 Joel Falcou \ No newline at end of file diff --git a/doc/predef.css b/doc/predef.css deleted file mode 100644 index e023fb7..0000000 --- a/doc/predef.css +++ /dev/null @@ -1,45 +0,0 @@ -/* -Copyright 2018-2019 Rene Rivera -Distributed under the Boost Software License, Version 1.0. -(See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) -*/ -.admonitionblock .icon .title { - font-size: 2.5em; - text-shadow: 1px 1px 2px rgba(0, 0, 0, .5); -} -.caution .icon .title { - color: rgba(192, 51, 0, 1); -} -.important .icon .title { - color: rgba(192, 0, 0, 1); -} -.note .icon .title { - color: rgba(26, 64, 128, 1); -} -.tip .icon .title { - color: rgba(255, 192, 0, 1); -} -.warning .icon .title { - color: rgba(192, 102, 0, 1); -} -p,blockquote,dt,td.content,span.alt { - font-size: 1.1rem -} -h1, h2, h3, h4, h5, h6 { - font-weight: bold; -} -h1 { - font-size: 2.25em; -} -h2 { - font-size: 1.5em; -} -h3,#toctitle,.sidebarblock>.content>.title { - font-size: 1.3em; -} -h4, h5 { - font-size: 1.2em; -} -h6 { - font-size: 1.1em; -} diff --git a/doc/pygments_init.rb b/doc/pygments_init.rb deleted file mode 100644 index d18a032..0000000 --- a/doc/pygments_init.rb +++ /dev/null @@ -1,11 +0,0 @@ -=begin -Copyright 2018 Rene Rivera -Distributed under the Boost Software License, Version 1.0. -(See accompanying file LICENSE.txt or http://www.boost.org/LICENSE_1_0.txt) -=end - -require 'pygments' - -# Need to create/register non-builtin lexers even if they are global plugins. -Pygments::Lexer.create name: 'Jam', aliases: ['jam','bjam','b2'], - filenames: ['*.jam','Jamfile','Jamroot'], mimetypes: ['text/x-jam'] diff --git a/doc/todo.adoc b/doc/todo.adoc index 2a7b2f2..00925ef 100644 --- a/doc/todo.adoc +++ b/doc/todo.adoc @@ -1,5 +1,5 @@ //// -Copyright 2014-2017 Rene Rivera +Copyright 2014-2017 René Ferdinand Rivera Morell Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/include/boost/predef/version.h b/include/boost/predef/version.h index 41fcdc2..0b07938 100644 --- a/include/boost/predef/version.h +++ b/include/boost/predef/version.h @@ -10,6 +10,6 @@ http://www.boost.org/LICENSE_1_0.txt) #include -#define BOOST_PREDEF_VERSION BOOST_VERSION_NUMBER(1,13,0) +#define BOOST_PREDEF_VERSION BOOST_VERSION_NUMBER(1,13,1) #endif diff --git a/test/build.jam b/test/build.jam index bbc60fd..beebe6e 100644 --- a/test/build.jam +++ b/test/build.jam @@ -30,10 +30,18 @@ using testing ; test-suite predef-info : [ run info_as_cpp.cpp : : : always_show_run_output ] [ run info_as_c.c : : : always_show_run_output ] - [ run info_as_objcpp.mm : : : always_show_run_output ] - [ run info_as_objc.m : : : always_show_run_output ] + [ run info_as_objcpp.mm : : : always_show_run_output @objc ] + [ run info_as_objc.m : : : always_show_run_output @objc ] ; +rule objc ( props * ) +{ + if ! ( darwin in $(props) ) + { + return no ; + } +} + test-suite predef : [ run version.cpp ] [ run make.cpp ] From e777e38a431830ed2cba38379a2f9ac5710defb0 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sun, 24 Oct 2021 16:49:15 -0500 Subject: [PATCH 5/7] Only run doc CI build on hash-predef root repo. --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index aeb5b09..1d7c5b3 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -216,7 +216,7 @@ stages: - stage: WebsiteUpdate displayName: 'Website Update' - condition: in(variables['Build.SourceBranch'], 'refs/heads/master', 'refs/heads/develop') + condition: and(in(variables['Build.SourceBranch'], 'refs/heads/master', 'refs/heads/develop'), eq(variables['Build.Repository.Name'], 'hash-predef') jobs: - job: Documentation From 01f4cbe4a4c7b50811329d88840cbe83f92e8c51 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sun, 24 Oct 2021 16:58:11 -0500 Subject: [PATCH 6/7] Fix missing parens. --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 1d7c5b3..3672056 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -216,7 +216,7 @@ stages: - stage: WebsiteUpdate displayName: 'Website Update' - condition: and(in(variables['Build.SourceBranch'], 'refs/heads/master', 'refs/heads/develop'), eq(variables['Build.Repository.Name'], 'hash-predef') + condition: and(in(variables['Build.SourceBranch'], 'refs/heads/master', 'refs/heads/develop'), eq(variables['Build.Repository.Name'], 'hash-predef')) jobs: - job: Documentation From 8e62bd04dd313170f16c26dd08740e42042059a8 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sun, 24 Oct 2021 17:51:33 -0500 Subject: [PATCH 7/7] Update from hash-predef. --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 3672056..febe21d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -216,7 +216,7 @@ stages: - stage: WebsiteUpdate displayName: 'Website Update' - condition: and(in(variables['Build.SourceBranch'], 'refs/heads/master', 'refs/heads/develop'), eq(variables['Build.Repository.Name'], 'hash-predef')) + condition: and(in(variables['Build.SourceBranch'], 'refs/heads/master', 'refs/heads/develop'), eq(variables['Build.Repository.Name'], 'grafikrobot/hash-predef')) jobs: - job: Documentation