From 095faae58ddf5b434d192064ce59a32a04c142a5 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sat, 2 Jan 2021 07:22:57 -0600 Subject: [PATCH 1/8] Update meta info with name and cxxstd. --- meta/libraries.json | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/meta/libraries.json b/meta/libraries.json index d7e326c..cc3df57 100644 --- a/meta/libraries.json +++ b/meta/libraries.json @@ -2,13 +2,14 @@ "key": "predef", "name": "Predef", "authors": [ - "Rene Rivera" + "René Ferdinand Rivera Morell" ], "description": "This library defines a set of compiler, architecture, operating system, library, and other version numbers from the information it can gather of C, C++, Objective C, and Objective C++ predefined macros or those defined in generally available headers.", "category": [ "Miscellaneous" ], "maintainers": [ - "Rene Rivera " - ] + "René Ferdinand Rivera Morell " + ], + "cxxstd": "98" } From 17cb5b78d533572630d35aa49b2f88ba0b3e85e3 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sat, 2 Jan 2021 17:57:43 -0600 Subject: [PATCH 2/8] Start of 1.12 changes. --- azure-pipelines.yml | 194 ++++++------------------ doc/history.adoc | 4 + doc/index.html | 251 +++++++++++++++++--------------- include/boost/predef/version.h | 2 +- tools/ci/linux-cxx-install.sh | 30 ++++ tools/ci/macos-xcode-install.sh | 38 +++++ 6 files changed, 245 insertions(+), 274 deletions(-) create mode 100755 tools/ci/linux-cxx-install.sh create mode 100755 tools/ci/macos-xcode-install.sh diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 3fed165..d60ef7e 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -32,139 +32,44 @@ stages: - job: 'Linux' strategy: matrix: - GCC 9 (GNU): - TOOLSET: gcc - CXX: g++-9 - PACKAGES: g++-9 - B2_ARGS: 'cxxstd=03,11,14,17,2a cxxstd-dialect=gnu' - VM_IMAGE: 'ubuntu-18.04' - GCC 9 (ISO): - TOOLSET: gcc - CXX: g++-9 - PACKAGES: g++-9 - B2_ARGS: 'cxxstd=03,11,14,17,2a cxxstd-dialect=iso' - VM_IMAGE: 'ubuntu-18.04' - GCC 9: - TOOLSET: gcc - CXX: g++-9 - PACKAGES: g++-9 - VM_IMAGE: 'ubuntu-18.04' - GCC 8: - TOOLSET: gcc - CXX: g++-8 - PACKAGES: g++-8 - VM_IMAGE: 'ubuntu-18.04' - GCC 7: - TOOLSET: gcc - CXX: g++-7 - PACKAGES: g++-7 - VM_IMAGE: 'ubuntu-18.04' - GCC 6: - TOOLSET: gcc - CXX: g++-6 - PACKAGES: g++-6 - VM_IMAGE: 'ubuntu-18.04' - GCC 5: - TOOLSET: gcc - CXX: g++-5 - PACKAGES: g++-5 - VM_IMAGE: 'ubuntu-18.04' - GCC 4.9: - TOOLSET: gcc - CXX: g++-4.9 - PACKAGES: g++-4.9 - VM_IMAGE: 'ubuntu-16.04' - GCC 4.8: - TOOLSET: gcc - CXX: g++-4.8 - PACKAGES: g++-4.8 - VM_IMAGE: 'ubuntu-16.04' - GCC 4.7: - TOOLSET: gcc - CXX: g++-4.7 - PACKAGES: g++-4.7 - VM_IMAGE: 'ubuntu-16.04' - Clang 9: - TOOLSET: clang - CXX: clang++-9 - PACKAGES: clang-9 - LLVM_REPO: llvm-toolchain-xenial-9 - VM_IMAGE: 'ubuntu-18.04' - Clang 8: - TOOLSET: clang - CXX: clang++-8 - PACKAGES: clang-8 - LLVM_REPO: llvm-toolchain-xenial-8 - VM_IMAGE: 'ubuntu-18.04' - Clang 7: - TOOLSET: clang - CXX: clang++-7 - PACKAGES: clang-7 - LLVM_REPO: llvm-toolchain-xenial-7 - VM_IMAGE: 'ubuntu-18.04' - Clang 6: - TOOLSET: clang - CXX: clang++-6.0 - PACKAGES: clang-6.0 - LLVM_REPO: llvm-toolchain-xenial-6.0 - VM_IMAGE: 'ubuntu-18.04' - Clang 5: - TOOLSET: clang - CXX: clang++-5.0 - PACKAGES: clang-5.0 - LLVM_REPO: llvm-toolchain-xenial-5.0 - VM_IMAGE: 'ubuntu-18.04' - Clang 4: - TOOLSET: clang - CXX: clang++-4.0 - PACKAGES: clang-4.0 - LLVM_REPO: llvm-toolchain-xenial-4.0 - VM_IMAGE: 'ubuntu-18.04' - Clang 3.9: - TOOLSET: clang - CXX: clang++-3.9 - PACKAGES: clang-3.9 - VM_IMAGE: 'ubuntu-18.04' - Clang 3.8: - TOOLSET: clang - CXX: clang++-3.8 - PACKAGES: clang-3.8 - VM_IMAGE: 'ubuntu-16.04' - Clang 3.7: - TOOLSET: clang - CXX: clang++-3.7 - PACKAGES: clang-3.7 - VM_IMAGE: 'ubuntu-16.04' - Clang 3.6: - TOOLSET: clang - CXX: clang++-3.6 - PACKAGES: clang-3.6 - VM_IMAGE: 'ubuntu-16.04' - Clang 3.5: - TOOLSET: clang - CXX: clang++-3.5 - PACKAGES: clang-3.5 - VM_IMAGE: 'ubuntu-16.04' + 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 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 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 } + Clang 7: { CXX: clang++-7, PACKAGES: clang-7, LLVM_OS: bionic, LLVM_VER: 7, VM_IMAGE: 'ubuntu-18.04', TOOLSET: clang } + 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: - bash: | set -e uname -a - sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test" - if test -n "${LLVM_REPO}" ; then - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - - sudo -E apt-add-repository "deb http://apt.llvm.org/xenial/ ${LLVM_REPO} main" - fi - sudo -E apt-get update - sudo -E apt-get -yq --no-install-suggests --no-install-recommends install ${PACKAGES} + ./tools/ci/linux-cxx-install.sh displayName: 'Install CXX' - bash: | set -e pushd ${HOME} - wget -nv https://github.com/boostorg/build/archive/master.tar.gz - tar -zxf master.tar.gz - cd build-master + wget -nv https://github.com/boostorg/build/archive/develop.tar.gz + tar -zxf develop.tar.gz + cd build-develop CXX= ./bootstrap.sh sudo ./b2 install popd @@ -181,46 +86,31 @@ stages: - job: 'macOS' strategy: matrix: - Xcode 11.4: + Xcode 11.4.1: TOOLSET: clang CXX: clang++ - XCODE_APP: /Applications/Xcode_11.4_beta.app + 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.3: + Xcode 11.2.1: TOOLSET: clang CXX: clang++ - XCODE_APP: /Applications/Xcode_11.3.app + XCODE_APP: /Applications/Xcode_11.2.1.app VM_IMAGE: 'macOS-10.15' - Xcode 11.2: + Xcode 10.3: TOOLSET: clang CXX: clang++ - XCODE_APP: /Applications/Xcode_11.2.app - VM_IMAGE: 'macOS-10.15' - Xcode 11.1: - TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_11.1.app - VM_IMAGE: 'macOS-10.15' - Xcode 11.0: - TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_11.app - VM_IMAGE: 'macOS-10.15' + 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.2: - TOOLSET: clang - CXX: clang++ - XCODE_APP: /Applications/Xcode_10.2.app - VM_IMAGE: 'macOS-10.14' Xcode 10.1: TOOLSET: clang CXX: clang++ @@ -244,9 +134,9 @@ stages: - bash: | set -e pushd ${HOME} - wget -nv https://github.com/boostorg/build/archive/master.tar.gz - tar -zxf master.tar.gz - cd build-master + wget -nv https://github.com/boostorg/build/archive/develop.tar.gz + tar -zxf develop.tar.gz + cd build-develop CXX= ./bootstrap.sh sudo ./b2 install popd @@ -313,7 +203,7 @@ stages: steps: - script: | cd %BUILD_SOURCESDIRECTORY%/.. - curl "https://github.com/boostorg/build/archive/master.zip" -L -o b2.zip + curl "https://github.com/boostorg/build/archive/develop.zip" -L -o b2.zip displayName: Download B2 - task: ExtractFiles@1 inputs: @@ -323,11 +213,11 @@ stages: displayName: Extract B2 - script: | echo using %TOOLSET% ^: %TOOLSET_VERSION% ^; > %HOMEDRIVE%%HOMEPATH%/user-config.jam - cd %BUILD_SOURCESDIRECTORY%/../build-master + cd %BUILD_SOURCESDIRECTORY%/../build-develop cmd.exe /c bootstrap.bat displayName: Install B2 - script: | - set BOOST_BUILD_PATH=%BUILD_SOURCESDIRECTORY%/../build-master + set BOOST_BUILD_PATH=%BUILD_SOURCESDIRECTORY%/../build-develop cd %BUILD_SOURCESDIRECTORY%/test - %BUILD_SOURCESDIRECTORY%/../build-master/b2.exe --debug-configuration -a toolset=%TOOLSET% %B2_ARGS% + %BUILD_SOURCESDIRECTORY%/../build-develop/b2.exe --debug-configuration -a toolset=%TOOLSET% %B2_ARGS% displayName: Test diff --git a/doc/history.adoc b/doc/history.adoc index 81b2d68..d21ebf9 100644 --- a/doc/history.adoc +++ b/doc/history.adoc @@ -7,6 +7,10 @@ http://www.boost.org/LICENSE_1_0.txt) = History +== 1.12 + +* + == 1.11 * Add `BOOST_ARCH_RISCV`. (from Andreas Schwab) diff --git a/doc/index.html b/doc/index.html index 53b45d9..052a5ed 100644 --- a/doc/index.html +++ b/doc/index.html @@ -4,7 +4,7 @@ - + Boost.Predef @@ -48,7 +48,7 @@ textarea{overflow:auto;vertical-align:top} table{border-collapse:collapse;border-spacing:0} *,*::before,*::after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box} html,body{font-size:100%} -body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto;tab-size:4;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased} +body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto;tab-size:4;word-wrap:anywhere;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased} a:hover{cursor:pointer} img,object,embed{max-width:100%;height:auto} object,embed{height:100%} @@ -63,10 +63,8 @@ img{-ms-interpolation-mode:bicubic} img,object,svg{display:inline-block;vertical-align:middle} textarea{height:auto;min-height:50px} select{width:100%} -.center{margin-left:auto;margin-right:auto} -.stretch{width:100%} .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:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em} -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} +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} a{color:#2156a5;text-decoration:underline;line-height:inherit} a:hover,a:focus{color:#1d4b8f} a img{border:0} @@ -106,19 +104,22 @@ h1{font-size:2.75em} h2{font-size:2.3125em} h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em} h4{font-size:1.4375em}} -table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede} +table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede;word-wrap:normal} table thead,table tfoot{background:#f7f8f7} table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left} table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)} table tr.even,table tr.alt{background:#f8f8f7} -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} +table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{line-height:1.6} h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em} h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400} +.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):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed;word-wrap:break-word} -:not(pre)>code.nobreak{word-wrap:normal} -:not(pre)>code.nowrap{white-space:nowrap} +: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:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed} pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed} pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit} pre>code{display:block} @@ -183,7 +184,7 @@ body.toc2.toc-right{padding-left:0;padding-right:20em}} #content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px} #content #toc>:first-child{margin-top:0} #content #toc>:last-child{margin-bottom:0} -#footer{max-width:100%;background:rgba(0,0,0,.8);padding:1.25em} +#footer{max-width:none;background:rgba(0,0,0,.8);padding:1.25em} #footer-text{color:rgba(255,255,255,.8);line-height:1.44} #content{margin-bottom:.625em} .sect1{padding-bottom:.625em} @@ -206,7 +207,7 @@ table.tableblock #preamble>.sectionbody>[class="paragraph"]:first-of-type p{font .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:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase} -.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6)} +.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6);word-wrap:anywhere} .admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0} .exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px} .exampleblock>.content>:first-child{margin-top:0} @@ -216,7 +217,7 @@ table.tableblock #preamble>.sectionbody>[class="paragraph"]:first-of-type p{font .sidebarblock>:last-child{margin-bottom:0} .sidebarblock>.content>.title{color:#7a2518;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{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;overflow-x:auto;padding:1em;font-size:.8125em} +.literalblock pre,.listingblock>.content>pre{-webkit-border-radius:4px;border-radius:4px;overflow-x:auto;padding:1em;font-size:.8125em} @media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}} @media 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:#f7f7f8} @@ -262,21 +263,20 @@ pre.pygments .lineno::before{content:"";margin-right:-.125em} .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} -table.tableblock{max-width:100%;border-collapse:separate} 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} -td.tableblock>.content>:last-child.sidebarblock{margin-bottom:0} table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede} -table.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0} -table.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0} -table.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0} -table.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px} -table.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0} -table.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0} -table.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0} +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-topbot,table.frame-ends{border-width:1px 0} +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:#f8f8f7} th.halign-left,td.halign-left{text-align:left} th.halign-right,td.halign-right{text-align:right} @@ -285,7 +285,7 @@ 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:#f7f8f7} +tbody tr th{background:#f7f8f7} tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold} p.tableblock>code:only-child{background:none;padding:0} p.tableblock{font-size:1em} @@ -314,6 +314,7 @@ ol.lowergreek{list-style-type:lower-greek} .hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none} td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em} td.hdlist1{font-weight:bold;padding-bottom:1.25em} +td.hdlist2{word-wrap:anywhere} .literalblock+.colist,.listingblock+.colist{margin-top:-.5em} .colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top} .colist td:not([class]):first-child img{max-width:none} @@ -386,7 +387,7 @@ a span.icon>.fa{cursor:inherit} .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:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.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]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);-webkit-border-radius:50%;border-radius:50%;text-align:center;font-size:.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)} @@ -413,6 +414,7 @@ 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{page-break-after:avoid} +#header,#content,#footnotes,#footer{max-width:none} #toc,.sidebarblock,.exampleblock>.content{background:none!important} #toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important} body.book #header{text-align:center} @@ -436,6 +438,77 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b #footer-text{color:rgba(0,0,0,.6);font-size:.9em}} @media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}} + + +
+

4.8.3. BOOST_PREDEF_WORKAROUND

BOOST_PREDEF_WORKAROUND(symbol,comp,major,minor,patch)
@@ -6416,7 +6453,7 @@ is undefine this expand to test the given symbol version value with
-

4.8.3. BOOST_PREDEF_TESTED_AT

+

4.8.4. BOOST_PREDEF_TESTED_AT

BOOST_PREDEF_TESTED_AT(symbol,major,minor,patch)
@@ -6820,6 +6857,10 @@ expressions. It defaults to "c++", but can be any of: "c", "cpp",
  • Add CI testing on FreeBSD for clang and gcc.

  • +
  • +

    Add WORD_BITS set of predefs to detect the architecture word size. +Initial implementation inspired by submission from Mikhail Komarov.

    +
  • diff --git a/doc/predef.adoc b/doc/predef.adoc index cac33c8..85566b9 100644 --- a/doc/predef.adoc +++ b/doc/predef.adoc @@ -828,6 +828,8 @@ include::../include/boost/predef/hardware/simd/x86_amd/versions.h[tag=reference] include::../include/boost/predef/other/endian.h[tag=reference] +include::../include/boost/predef/other/wordsize.h[tag=reference] + include::../include/boost/predef/other/workaround.h[tag=reference] :leveloffset: -3 diff --git a/include/boost/predef/architecture.h b/include/boost/predef/architecture.h index 732d6f0..3048329 100644 --- a/include/boost/predef/architecture.h +++ b/include/boost/predef/architecture.h @@ -29,6 +29,5 @@ http://www.boost.org/LICENSE_1_0.txt) #include #include #include -/*#include */ #endif diff --git a/include/boost/predef/architecture/alpha.h b/include/boost/predef/architecture/alpha.h index a24b10f..64d3dad 100644 --- a/include/boost/predef/architecture/alpha.h +++ b/include/boost/predef/architecture/alpha.h @@ -52,6 +52,11 @@ http://en.wikipedia.org/wiki/DEC_Alpha[DEC Alpha] architecture. # define BOOST_ARCH_ALPHA_AVAILABLE #endif +#if BOOST_ARCH_ALPHA +# undef BOOST_ARCH_WORD_BITS_64 +# define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_AVAILABLE +#endif + #define BOOST_ARCH_ALPHA_NAME "DEC Alpha" #endif diff --git a/include/boost/predef/architecture/arm.h b/include/boost/predef/architecture/arm.h index b7a8a83..8ab20b2 100644 --- a/include/boost/predef/architecture/arm.h +++ b/include/boost/predef/architecture/arm.h @@ -126,6 +126,16 @@ http://en.wikipedia.org/wiki/ARM_architecture[ARM] architecture. # define BOOST_ARCH_ARM_AVAILABLE #endif +#if BOOST_ARCH_ARM +# if BOOST_ARCH_ARM >= BOOST_VERSION_NUMBER(8,0,0) +# undef BOOST_ARCH_WORD_BITS_64 +# define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_AVAILABLE +# else +# undef BOOST_ARCH_WORD_BITS_32 +# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + #define BOOST_ARCH_ARM_NAME "ARM" #endif diff --git a/include/boost/predef/architecture/blackfin.h b/include/boost/predef/architecture/blackfin.h index ce1a655..5c94b44 100644 --- a/include/boost/predef/architecture/blackfin.h +++ b/include/boost/predef/architecture/blackfin.h @@ -39,6 +39,11 @@ Blackfin Processors from Analog Devices. # define BOOST_ARCH_BLACKFIN_AVAILABLE #endif +#if BOOST_ARCH_BLACKFIN +# undef BOOST_ARCH_WORD_BITS_16 +# define BOOST_ARCH_WORD_BITS_16 BOOST_VERSION_NUMBER_AVAILABLE +#endif + #define BOOST_ARCH_BLACKFIN_NAME "Blackfin" #endif diff --git a/include/boost/predef/architecture/convex.h b/include/boost/predef/architecture/convex.h index 5ce59c7..eb73d08 100644 --- a/include/boost/predef/architecture/convex.h +++ b/include/boost/predef/architecture/convex.h @@ -58,6 +58,11 @@ http://en.wikipedia.org/wiki/Convex_Computer[Convex Computer] architecture. # define BOOST_ARCH_CONVEX_AVAILABLE #endif +#if BOOST_ARCH_CONVEX +# undef BOOST_ARCH_WORD_BITS_32 +# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE +#endif + #define BOOST_ARCH_CONVEX_NAME "Convex Computer" #endif diff --git a/include/boost/predef/architecture/ia64.h b/include/boost/predef/architecture/ia64.h index 12a08d1..1f4b58a 100644 --- a/include/boost/predef/architecture/ia64.h +++ b/include/boost/predef/architecture/ia64.h @@ -42,6 +42,11 @@ http://en.wikipedia.org/wiki/Ia64[Intel Itanium 64] architecture. # define BOOST_ARCH_IA64_AVAILABLE #endif +#if BOOST_ARCH_IA64 +# undef BOOST_ARCH_WORD_BITS_64 +# define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_AVAILABLE +#endif + #define BOOST_ARCH_IA64_NAME "Intel Itanium 64" #endif diff --git a/include/boost/predef/architecture/m68k.h b/include/boost/predef/architecture/m68k.h index 2d87745..a594537 100644 --- a/include/boost/predef/architecture/m68k.h +++ b/include/boost/predef/architecture/m68k.h @@ -75,6 +75,11 @@ http://en.wikipedia.org/wiki/M68k[Motorola 68k] architecture. # define BOOST_ARCH_M68K_AVAILABLE #endif +#if BOOST_ARCH_M68K +# undef BOOST_ARCH_WORD_BITS_32 +# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE +#endif + #define BOOST_ARCH_M68K_NAME "Motorola 68k" #endif diff --git a/include/boost/predef/architecture/mips.h b/include/boost/predef/architecture/mips.h index 490c5e5..e35d23a 100644 --- a/include/boost/predef/architecture/mips.h +++ b/include/boost/predef/architecture/mips.h @@ -66,6 +66,16 @@ http://en.wikipedia.org/wiki/MIPS_architecture[MIPS] architecture. # define BOOST_ARCH_MIPS_AVAILABLE #endif +#if BOOST_ARCH_MIPS +# if BOOST_ARCH_MIPS >= BOOST_VERSION_NUMBER(3,0,0) +# undef BOOST_ARCH_WORD_BITS_64 +# define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_AVAILABLE +# else +# undef BOOST_ARCH_WORD_BITS_32 +# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + #define BOOST_ARCH_MIPS_NAME "MIPS" #endif diff --git a/include/boost/predef/architecture/parisc.h b/include/boost/predef/architecture/parisc.h index 0825445..b93bfd9 100644 --- a/include/boost/predef/architecture/parisc.h +++ b/include/boost/predef/architecture/parisc.h @@ -57,6 +57,11 @@ http://en.wikipedia.org/wiki/PA-RISC_family[HP/PA RISC] architecture. # define BOOST_ARCH_PARISC_AVAILABLE #endif +#if BOOST_ARCH_PARISC +# undef BOOST_ARCH_WORD_BITS_32 +# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE +#endif + #define BOOST_ARCH_PARISC_NAME "HP/PA RISC" #endif diff --git a/include/boost/predef/architecture/ppc.h b/include/boost/predef/architecture/ppc.h index 019e11b..55ba5a1 100644 --- a/include/boost/predef/architecture/ppc.h +++ b/include/boost/predef/architecture/ppc.h @@ -65,6 +65,11 @@ http://en.wikipedia.org/wiki/PowerPC[PowerPC] architecture. # define BOOST_ARCH_PPC_AVAILABLE #endif +#if BOOST_ARCH_PPC +# undef BOOST_ARCH_WORD_BITS_32 +# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE +#endif + #define BOOST_ARCH_PPC_NAME "PowerPC" #endif diff --git a/include/boost/predef/architecture/ptx.h b/include/boost/predef/architecture/ptx.h index a331094..7737213 100644 --- a/include/boost/predef/architecture/ptx.h +++ b/include/boost/predef/architecture/ptx.h @@ -37,6 +37,11 @@ https://en.wikipedia.org/wiki/Parallel_Thread_Execution[PTX] architecture. # define BOOST_ARCH_PTX_AVAILABLE #endif +#if BOOST_ARCH_PTX +# undef BOOST_ARCH_WORD_BITS_64 +# define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_AVAILABLE +#endif + #define BOOST_ARCH_PTX_NAME "PTX" #endif diff --git a/include/boost/predef/architecture/pyramid.h b/include/boost/predef/architecture/pyramid.h index afcd1a9..40c5359 100644 --- a/include/boost/predef/architecture/pyramid.h +++ b/include/boost/predef/architecture/pyramid.h @@ -35,6 +35,11 @@ Pyramid 9810 architecture. # define BOOST_ARCH_PYRAMID_AVAILABLE #endif +#if BOOST_ARCH_PYRAMID +# undef BOOST_ARCH_WORD_BITS_32 +# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE +#endif + #define BOOST_ARCH_PYRAMID_NAME "Pyramid 9810" #endif diff --git a/include/boost/predef/architecture/riscv.h b/include/boost/predef/architecture/riscv.h index 7c3a7ba..8b819d7 100644 --- a/include/boost/predef/architecture/riscv.h +++ b/include/boost/predef/architecture/riscv.h @@ -35,6 +35,11 @@ http://en.wikipedia.org/wiki/RISC-V[RISC-V] architecture. # define BOOST_ARCH_RISCV_AVAILABLE #endif +#if BOOST_ARCH_RISCV +# undef BOOST_ARCH_WORD_BITS_32 +# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE +#endif + #define BOOST_ARCH_RISCV_NAME "RISC-V" #endif diff --git a/include/boost/predef/architecture/rs6k.h b/include/boost/predef/architecture/rs6k.h index e33c793..1c6d987 100644 --- a/include/boost/predef/architecture/rs6k.h +++ b/include/boost/predef/architecture/rs6k.h @@ -41,6 +41,11 @@ http://en.wikipedia.org/wiki/RS/6000[RS/6000] architecture. # define BOOST_ARCH_RS6000_AVAILABLE #endif +#if BOOST_ARCH_RS6000 +# undef BOOST_ARCH_WORD_BITS_32 +# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE +#endif + #define BOOST_ARCH_RS6000_NAME "RS/6000" #define BOOST_ARCH_PWR BOOST_ARCH_RS6000 @@ -49,6 +54,11 @@ http://en.wikipedia.org/wiki/RS/6000[RS/6000] architecture. # define BOOST_ARCH_PWR_AVAILABLE #endif +#if BOOST_ARCH_PWR +# undef BOOST_ARCH_WORD_BITS_32 +# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE +#endif + #define BOOST_ARCH_PWR_NAME BOOST_ARCH_RS6000_NAME #endif diff --git a/include/boost/predef/architecture/sparc.h b/include/boost/predef/architecture/sparc.h index 31551e3..52e9fcb 100644 --- a/include/boost/predef/architecture/sparc.h +++ b/include/boost/predef/architecture/sparc.h @@ -47,6 +47,16 @@ http://en.wikipedia.org/wiki/SPARC[SPARC] architecture. # define BOOST_ARCH_SPARC_AVAILABLE #endif +#if BOOST_ARCH_SPARC +# if BOOST_ARCH_SPARC >= BOOST_VERSION_NUMBER(9,0,0) +# undef BOOST_ARCH_WORD_BITS_64 +# define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_AVAILABLE +# else +# undef BOOST_ARCH_WORD_BITS_32 +# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + #define BOOST_ARCH_SPARC_NAME "SPARC" #endif diff --git a/include/boost/predef/architecture/superh.h b/include/boost/predef/architecture/superh.h index 5034d90..f72dc8b 100644 --- a/include/boost/predef/architecture/superh.h +++ b/include/boost/predef/architecture/superh.h @@ -60,6 +60,19 @@ If available versions [1-5] are specifically detected. # define BOOST_ARCH_SH_AVAILABLE #endif +#if BOOST_ARCH_SH +# if BOOST_ARCH_SH >= BOOST_VERSION_NUMBER(5,0,0) +# undef BOOST_ARCH_WORD_BITS_64 +# define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_AVAILABLE +# elif BOOST_ARCH_SH >= BOOST_VERSION_NUMBER(3,0,0) +# undef BOOST_ARCH_WORD_BITS_32 +# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE +# else +# undef BOOST_ARCH_WORD_BITS_16 +# define BOOST_ARCH_WORD_BITS_16 BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + #define BOOST_ARCH_SH_NAME "SuperH" #endif diff --git a/include/boost/predef/architecture/sys370.h b/include/boost/predef/architecture/sys370.h index 265d0f0..5500d25 100644 --- a/include/boost/predef/architecture/sys370.h +++ b/include/boost/predef/architecture/sys370.h @@ -36,6 +36,11 @@ http://en.wikipedia.org/wiki/System/370[System/370] architecture. # define BOOST_ARCH_SYS370_AVAILABLE #endif +#if BOOST_ARCH_SYS370 +# undef BOOST_ARCH_WORD_BITS_32 +# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE +#endif + #define BOOST_ARCH_SYS370_NAME "System/370" #endif diff --git a/include/boost/predef/architecture/sys390.h b/include/boost/predef/architecture/sys390.h index 155c9be..9aba568 100644 --- a/include/boost/predef/architecture/sys390.h +++ b/include/boost/predef/architecture/sys390.h @@ -36,6 +36,11 @@ http://en.wikipedia.org/wiki/System/390[System/390] architecture. # define BOOST_ARCH_SYS390_AVAILABLE #endif +#if BOOST_ARCH_SYS390 +# undef BOOST_ARCH_WORD_BITS_32 +# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE +#endif + #define BOOST_ARCH_SYS390_NAME "System/390" #endif diff --git a/include/boost/predef/architecture/x86/32.h b/include/boost/predef/architecture/x86/32.h index cd2e750..b20fed9 100644 --- a/include/boost/predef/architecture/x86/32.h +++ b/include/boost/predef/architecture/x86/32.h @@ -78,6 +78,11 @@ If available versions [3-6] are specifically detected. # define BOOST_ARCH_X86_32_AVAILABLE #endif +#if BOOST_ARCH_X86_32 +# undef BOOST_ARCH_WORD_BITS_32 +# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE +#endif + #define BOOST_ARCH_X86_32_NAME "Intel x86-32" #include diff --git a/include/boost/predef/architecture/x86/64.h b/include/boost/predef/architecture/x86/64.h index ebd80fb..f0554a0 100644 --- a/include/boost/predef/architecture/x86/64.h +++ b/include/boost/predef/architecture/x86/64.h @@ -41,6 +41,11 @@ http://en.wikipedia.org/wiki/Ia64[Intel IA-64] architecture. # define BOOST_ARCH_X86_64_AVAILABLE #endif +#if BOOST_ARCH_X86_64 +# undef BOOST_ARCH_WORD_BITS_64 +# define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_AVAILABLE +#endif + #define BOOST_ARCH_X86_64_NAME "Intel x86-64" #include diff --git a/include/boost/predef/architecture/z.h b/include/boost/predef/architecture/z.h index d2d8e95..a5f7979 100644 --- a/include/boost/predef/architecture/z.h +++ b/include/boost/predef/architecture/z.h @@ -35,6 +35,11 @@ http://en.wikipedia.org/wiki/Z/Architecture[z/Architecture] architecture. # define BOOST_ARCH_Z_AVAILABLE #endif +#if BOOST_ARCH_Z +# undef BOOST_ARCH_WORD_BITS_64 +# define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_AVAILABLE +#endif + #define BOOST_ARCH_Z_NAME "z/Architecture" #endif diff --git a/include/boost/predef/other.h b/include/boost/predef/other.h index c09ad49..dc7e341 100644 --- a/include/boost/predef/other.h +++ b/include/boost/predef/other.h @@ -1,5 +1,5 @@ /* -Copyright Rene Rivera 2013-2015 +Copyright Rene Ferdinand Rivera Morell 2013-2020 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,6 +11,7 @@ http://www.boost.org/LICENSE_1_0.txt) #endif #include -/*#include */ +#include +#include #endif diff --git a/include/boost/predef/other/endian.h b/include/boost/predef/other/endian.h index eb82da2..8f116de 100644 --- a/include/boost/predef/other/endian.h +++ b/include/boost/predef/other/endian.h @@ -95,7 +95,7 @@ information and acquired knowledge: # endif #endif -/* Built-in byte-swpped big-endian macros. +/* Built-in byte-swapped big-endian macros. */ #if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD @@ -112,7 +112,7 @@ information and acquired knowledge: # endif #endif -/* Built-in byte-swpped little-endian macros. +/* Built-in byte-swapped little-endian macros. */ #if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD @@ -154,7 +154,7 @@ information and acquired knowledge: #endif /* Windows on ARM, if not otherwise detected/specified, is always - * byte-swaped little-endian. + * byte-swapped little-endian. */ #if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD diff --git a/include/boost/predef/other/wordsize.h b/include/boost/predef/other/wordsize.h new file mode 100644 index 0000000..165e786 --- /dev/null +++ b/include/boost/predef/other/wordsize.h @@ -0,0 +1,69 @@ +/* +Copyright Rene Ferdinand Rivera Morell 2020 +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_OTHER_WORD_SIZE_H +#define BOOST_PREDEF_OTHER_WORD_SIZE_H + +#include +#include +#include + +/* tag::reference[] += `BOOST_ARCH_WORD_BITS` + +Detects the native word size, in bits, for the current architecture. There are +two types of macros for this detection: + +* `BOOST_ARCH_WORD_BITS`, gives the number of word size bits + (16, 32, 64). +* `BOOST_ARCH_WORD_BITS_16`, `BOOST_ARCH_WORD_BITS_32`, and + `BOOST_ARCH_WORD_BITS_64`, indicate when the given word size is + detected. + +They allow for both single checks and direct use of the size in code. + +NOTE: The word size is determined manually on each architecture. Hence use of +the `wordsize.h` header will also include all the architecture headers. + +*/ // end::reference[] + +#ifndef BOOST_ARCH_WORD_BITS_16 +# define BOOST_ARCH_WORD_BITS_16 BOOST_VERSION_NUMBER_NOT_AVAILABLE +#else +# define BOOST_ARCH_WORD_BITS 16 +#endif + +#ifndef BOOST_ARCH_WORD_BITS_32 +# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_NOT_AVAILABLE +#else +# define BOOST_ARCH_WORD_BITS 32 +#endif + +#ifndef BOOST_ARCH_WORD_BITS_64 +# define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_NOT_AVAILABLE +#else +# define BOOST_ARCH_WORD_BITS 64 +#endif + +#ifndef BOOST_ARCH_WORD_BITS +# define BOOST_ARCH_WORD_BITS 0 +#endif + +#define BOOST_ARCH_WORD_BITS_16_NAME "16-bit Word Size" +#define BOOST_ARCH_WORD_BITS_32_NAME "32-bit Word Size" +#define BOOST_ARCH_WORD_BITS_64_NAME "64-bit Word Size" + +#endif + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_WORD_BITS_16,BOOST_ARCH_WORD_BITS_16_NAME) + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_WORD_BITS_32,BOOST_ARCH_WORD_BITS_32_NAME) + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_WORD_BITS_64,BOOST_ARCH_WORD_BITS_64_NAME) diff --git a/include/boost/predef/platform.h b/include/boost/predef/platform.h index 65a0e2a..756d65f 100644 --- a/include/boost/predef/platform.h +++ b/include/boost/predef/platform.h @@ -24,6 +24,5 @@ http://www.boost.org/LICENSE_1_0.txt) #include #include // deprecated #include -/*#include */ #endif From caa0627ab5518333d8c0f272667140c793adca1d Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Tue, 5 Jan 2021 22:19:58 -0600 Subject: [PATCH 8/8] Add Appveyor Windows CI back in. fixes https://github.com/boostorg/predef/issues/59 fixes https://github.com/boostorg/predef/issues/87 --- doc/history.adoc | 1 + doc/index.html | 3 +++ 2 files changed, 4 insertions(+) diff --git a/doc/history.adoc b/doc/history.adoc index 38b31e9..7b6b76f 100644 --- a/doc/history.adoc +++ b/doc/history.adoc @@ -16,6 +16,7 @@ http://www.boost.org/LICENSE_1_0.txt) * Add CI testing on FreeBSD for clang and gcc. * Add `WORD_BITS` set of predefs to detect the architecture word size. Initial implementation inspired by submission from Mikhail Komarov. +* Add CI testing for Cygwin 32 and 64. == 1.11 diff --git a/doc/index.html b/doc/index.html index f8d328f..a799041 100644 --- a/doc/index.html +++ b/doc/index.html @@ -6861,6 +6861,9 @@ expressions. It defaults to "c++", but can be any of: "c", "cpp",

    Add WORD_BITS set of predefs to detect the architecture word size. Initial implementation inspired by submission from Mikhail Komarov.

    +
  • +

    Add CI testing for Cygwin 32 and 64.

    +