Skip to content

Commit

Permalink
Deploying to gh-pages from @ c75dd79 🚀
Browse files Browse the repository at this point in the history
  • Loading branch information
andrie committed Jan 7, 2024
1 parent e85f001 commit 438ef4d
Show file tree
Hide file tree
Showing 13 changed files with 461 additions and 435 deletions.
2 changes: 1 addition & 1 deletion r-admin/Configuration-on-a-Unix-alike.html
Original file line number Diff line number Diff line change
Expand Up @@ -528,7 +528,7 @@ <h2 class="section anchored" data-number="B.7" data-anchor-id="compile-and-load-
<section id="maintainer-mode" class="level2 section page-columns page-full" data-number="B.8">
<h2 class="section anchored" data-number="B.8" data-anchor-id="maintainer-mode"><span class="header-section-number">B.8</span> Maintainer mode</h2>
<p>There are several files that are part of the R sources but can be re-generated from their own sources by configuring with option <code>--enable-maintainer-mode</code> and then running <code>make</code> in the build directory. This requires other tools to be installed, discussed in the rest of this section.</p>
<div class="page-columns page-full"><p>File <code>configure</code> is created from <code>configure.ac</code> and the files under <code>m4</code> by <code>autoconf</code> and <code>aclocal</code> (part of the <strong>automake</strong> package). There is a formal version requirement on <code>autoconf</code> of 2.69 or later, but it is unlikely that anything other than the most recent versions<a href="#fn2" class="footnote-ref" id="fnref2" role="doc-noteref"><sup>2</sup></a> have been thoroughly tested.</p><div class="no-row-height column-margin column-container"><li id="fn2"><p><sup>2</sup>&nbsp;at the time of revision of this para in late 2021, <strong>autoconf-2.71</strong> and <strong>automake-1.16.5</strong>.</p></li></div></div>
<div class="page-columns page-full"><p>File <code>configure</code> is created from <code>configure.ac</code> and the files under <code>m4</code> by <code>autoconf</code> and <code>aclocal</code> (part of the <strong>automake</strong> package). There is a formal version requirement on <code>autoconf</code> of 2.71 or later, but it is unlikely that anything other than the most recent versions<a href="#fn2" class="footnote-ref" id="fnref2" role="doc-noteref"><sup>2</sup></a> have been thoroughly tested.</p><div class="no-row-height column-margin column-container"><li id="fn2"><p><sup>2</sup>&nbsp;at the time of revision of this para in late 2021, <strong>autoconf-2.71</strong> and <strong>automake-1.16.5</strong>. Subsequently <strong>autoconf-2.72</strong> has been tested.</p></li></div></div>
<p>File <code>src/include/config.h</code> is created by <code>autoheader</code> (part of <strong>autoconf</strong>).</p>
<p>Grammar files <code>*.y</code> are converted to C sources by an implementation of <code>yacc</code>, usually <code>bison -y</code>: these are found in <code>src/main</code> and <code>src/library/tools/src</code>. It is known that earlier versions of <code>bison</code> generate code which reads (and in some cases writes) outside array bounds: <code>bison</code> 2.6.1 was found to be satisfactory.</p>
<div class="page-columns page-full"><p>The ultimate sources for package <strong>compiler</strong> are in its <code>noweb</code> directory. To re-create the sources from <code>src/library/compiler/noweb/compiler.nw</code>, the command <code>notangle</code> is required. Some Linux distributions include this command in package <strong>noweb</strong>. It can also be installed from the sources at <a href="https://www.cs.tufts.edu/~nr/noweb/" class="uri">https://www.cs.tufts.edu/~nr/noweb/</a><a href="#fn3" class="footnote-ref" id="fnref3" role="doc-noteref"><sup>3</sup></a>. The package sources are only re-created even in maintainer mode if <code>src/library/compiler/noweb/compiler.nw</code> has been updated.</p><div class="no-row-height column-margin column-container"><li id="fn3"><p><sup>3</sup>&nbsp;The links there have proved difficult to access, in which case grab the copy made available at <a href="https://developer.r-project.org/noweb-2.11b.tgz" class="uri">https://developer.r-project.org/noweb-2.11b.tgz</a>.</p></li></div></div>
Expand Down
59 changes: 37 additions & 22 deletions r-admin/Essential-and-useful-other-programs-under-a-Unix-alike.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion r-admin/Installing-R-under-Unix-alikes.html
Original file line number Diff line number Diff line change
Expand Up @@ -601,7 +601,7 @@ <h3 class="subsection anchored" data-number="2.7.3" data-anchor-id="c-support"><
<span id="cb30-2"><a href="#cb30-2" aria-hidden="true" tabindex="-1"></a> c<span class="sc">++</span><span class="dv">20</span> gnu<span class="sc">++</span><span class="dv">20</span> (from <span class="dv">10</span>) c<span class="sc">++</span><span class="dv">23</span> gnu<span class="sc">++</span><span class="dv">23</span> c<span class="sc">++</span>2b gnu<span class="sc">++</span>2b (from <span class="dv">11</span>)</span>
<span id="cb30-3"><a href="#cb30-3" aria-hidden="true" tabindex="-1"></a>Intel<span class="sc">:</span> c<span class="sc">++</span><span class="dv">11</span> gnu<span class="sc">+</span><span class="dv">11</span> c<span class="sc">++</span><span class="dv">14</span> gnu<span class="sc">++</span><span class="dv">14</span> c<span class="sc">++</span><span class="dv">17</span> gnu<span class="sc">++</span><span class="dv">17</span></span>
<span id="cb30-4"><a href="#cb30-4" aria-hidden="true" tabindex="-1"></a> c<span class="sc">++</span><span class="dv">20</span> gnu<span class="sc">++</span><span class="dv">20</span> (from <span class="fl">2021.1</span>) c<span class="sc">++</span>2b gnu<span class="sc">++</span>2b (from <span class="fl">2022.2</span>)</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<p>(Those for LLVM <code>clang++</code> are documented at <a href="https://clang.llvm.org/cxx_status.html" class="uri">https://clang.llvm.org/cxx_status.html</a>, and follow <code>g++</code>: <code>-std=c++20</code> is supported from Clang 10, <code>-std=c++2b</code> from Clang 13. Apple Clang supports <code>-std=c++2b</code> from 13.1.6.)</p>
<p>(Those for LLVM <code>clang++</code> are documented at <a href="https://clang.llvm.org/cxx_status.html" class="uri">https://clang.llvm.org/cxx_status.html</a>, and follow <code>g++</code>: <code>-std=c++20</code> is supported from Clang 10, <code>-std=c++2b</code> from Clang 13 and <code>-std=c++23</code> from Clang 17. Apple Clang supports <code>-std=c++2b</code> from 13.1.6: version 15.0.0 does not support <code>-std=c++23</code>.)</p>
<p>‘Standards’ for <code>g++</code> starting with <code>gnu</code> enable ‘GNU extensions’: what those are is hard to track down.</p>
<p>For the use of C++11 and later in R packages see the ‘Writing R Extensions’ manual. Prior to R 3.6.0 the default C++ standard was that of the compiler used: currently it is C++17 (if available): this can be overridden by setting <code>CXXSTD</code> when R is configured.</p>
<p><a href="https://en.cppreference.com/w/cpp/compiler_support" class="uri">https://en.cppreference.com/w/cpp/compiler_support</a> indicates which versions of common compilers support (parts of) which C++ standards. GCC 5 was the minimum version with sufficient C++14 support. GCC introduced C++17 support gradually, but version 7 should suffice.</p>
Expand Down
2 changes: 1 addition & 1 deletion r-admin/Platform-notes.html
Original file line number Diff line number Diff line change
Expand Up @@ -437,7 +437,7 @@ <h3 class="subsection anchored" data-number="C.2.3" data-anchor-id="intel-compil
<p>The compilers are now all under Intel’s ‘oneAPI’ brand. The revamped ones are <code>icx</code>, <code>icpx</code> and <code>ifx</code>; they are identified by the C/C++ macro <code>__INTEL_LLVM_COMPILER</code> (and do not define <code>__INTEL_COMPILER</code>: they also define <code>__clang__</code> and <code>__clang_major__</code>).</p>
<p>The C++ compiler uses the system’s <code>lidstdc++</code> as its runtime library rather than LLVM’s <code>libc++</code>.</p>
<p>Standalone installers (which are free-of-charge) are available from <a href="https://www.intel.com/content/www/us/en/developer/articles/tool/oneapi-standalone-components.html" class="uri">https://www.intel.com/content/www/us/en/developer/articles/tool/oneapi-standalone-components.html</a>: they are also part of the oneAPI Base and HPC (for Fortran) ToolKits.</p>
<p>We tried the compilers in oneAPI 2024.0.0 and 2023.x.y using (the paths do differ by compiler version)</p>
<p>We tried the compilers in oneAPI 2024.0.2 and 2023.x.y using (the paths do differ by compiler version)</p>
<div class="sourceCode" id="cb11"><pre class="sourceCode makefile code-with-copy"><code class="sourceCode makefile"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a><span class="dt">IP</span><span class="ch">=</span><span class="st">/path/to/compilers/bin/</span></span>
<span id="cb11-2"><a href="#cb11-2" aria-hidden="true" tabindex="-1"></a><span class="dt">CC</span><span class="ch">=$I</span><span class="st">P/icx</span></span>
<span id="cb11-3"><a href="#cb11-3" aria-hidden="true" tabindex="-1"></a><span class="dt">CXX</span><span class="ch">=$I</span><span class="st">P/icpx</span></span>
Expand Down
Loading

0 comments on commit 438ef4d

Please sign in to comment.