mirror of
https://github.com/compiler-explorer/compiler-explorer.git
synced 2026-05-16 19:31:45 -04:00
noscript-share
250 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
1efb2a209f |
Further fixes to Clojure compiler execution in CE infra (#8300)
- [x] Ensure `CLJ_CACHE` environment variable is set to a writable directory - [x] Remove unnecessary `CLJ_CONFIG` environment variable - [x] ~~Configure location of `clojure_wrapper.clj` (not necessary)~~ - [x] Remove logging of namespace injection - text output causes UI to show compiler error flag |
||
|
|
81177b1c3e |
Bump lxml from 6.0.2 to 6.1.0 in /etc/scripts/docenizers (#8640)
Bumps [lxml](https://github.com/lxml/lxml) from 6.0.2 to 6.1.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/lxml/lxml/blob/master/CHANGES.txt">lxml's changelog</a>.</em></p> <blockquote> <h1>6.1.0 (2026-04-17)</h1> <p>This release fixes a possible external entity injection (XXE) vulnerability in <code>iterparse()</code> and the <code>ETCompatXMLParser</code>.</p> <h2>Features added</h2> <ul> <li> <p>GH#486: The HTML ARIA accessibility attributes were added to the set of safe attributes in <code>lxml.html.defs</code>. This allows <code>lxml_html_clean</code> to pass them through. Patch by oomsveta.</p> </li> <li> <p>The default chunk size for reading from file-likes in <code>iterparse()</code> is now configurable with a new <code>chunk_size</code> argument.</p> </li> </ul> <h2>Bugs fixed</h2> <ul> <li>LP#2146291: The <code>resolve_entities</code> option was still set to <code>True</code> for <code>iterparse</code> and <code>ETCompatXMLParser</code>, allowing for external entity injection (XXE) when using these parsers without setting this option explicitly. The default was now changed to <code>'internal'</code> only (as for the normal XML and HTML parsers since lxml 5.0). Issue found by Sihao Qiu as CVE-2026-41066.</li> </ul> <h1>6.0.4 (2026-04-12)</h1> <h2>Bugs fixed</h2> <ul> <li>LP#2148019: Spurious MemoryError during namespace cleanup.</li> </ul> <h1>6.0.3 (2026-04-09)</h1> <h2>Bugs fixed</h2> <ul> <li> <p>Several out of memory error cases now raise <code>MemoryError</code> that were not handled before.</p> </li> <li> <p>Slicing with large step values (outside of <code>+/- sys.maxsize</code>) could trigger undefined C behaviour.</p> </li> <li> <p>LP#2125399: Some failing tests were fixed or disabled in PyPy.</p> </li> <li> <p>LP#2138421: Memory leak in error cases when setting the <code>public_id</code> or <code>system_url</code> of a document.</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
cbb725f10d | Support Triton 3.5.x and 3.6.0 (#8577) | ||
|
|
8918aae56c |
Add asm docs for RISC-V SGT/SGTU pseudoinstructions (#8627)
## Summary - Fixes #8622: adds assembly documentation entries for the RISC-V `sgt` and `sgtu` pseudoinstructions so the hover/"View assembly documentation" feature works instead of showing an error. - `sgt rd, rs, rt` expands to `slt rd, rt, rs`; `sgtu rd, rs, rt` expands to `sltu rd, rt, rs`. Entries follow the same shape as the existing `SGTZ` pseudo entry. ## Test plan - [x] `npx vitest run test/handlers/asm-docs-tests.ts` - [x] `npx tsc --noEmit` - [x] `npm run lint` (no new errors) --- This PR is authored by an LLM (Claude) acting on behalf of @mattgodbolt. --------- Co-authored-by: mattgodbolt-molty <mattgodbolt-molty@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|
|
f8db7a4b55 |
Bump pytest from 9.0.2 to 9.0.3 in /etc/scripts/ce-properties-wizard (#8625)
Bumps [pytest](https://github.com/pytest-dev/pytest) from 9.0.2 to 9.0.3. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest/releases">pytest's releases</a>.</em></p> <blockquote> <h2>9.0.3</h2> <h1>pytest 9.0.3 (2026-04-07)</h1> <h2>Bug fixes</h2> <ul> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/12444">#12444</a>: Fixed <code>pytest.approx</code> which now correctly takes into account <code>~collections.abc.Mapping</code> keys order to compare them.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/13634">#13634</a>: Blocking a <code>conftest.py</code> file using the <code>-p no:</code> option is now explicitly disallowed.</p> <p>Previously this resulted in an internal assertion failure during plugin loading.</p> <p>Pytest now raises a clear <code>UsageError</code> explaining that conftest files are not plugins and cannot be disabled via <code>-p</code>.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/13734">#13734</a>: Fixed crash when a test raises an exceptiongroup with <code>__tracebackhide__ = True</code>.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/14195">#14195</a>: Fixed an issue where non-string messages passed to <!-- raw HTML omitted -->unittest.TestCase.subTest()<!-- raw HTML omitted --> were not printed.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/14343">#14343</a>: Fixed use of insecure temporary directory (CVE-2025-71176).</p> </li> </ul> <h2>Improved documentation</h2> <ul> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/13388">#13388</a>: Clarified documentation for <code>-p</code> vs <code>PYTEST_PLUGINS</code> plugin loading and fixed an incorrect <code>-p</code> example.</li> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/13731">#13731</a>: Clarified that capture fixtures (e.g. <code>capsys</code> and <code>capfd</code>) take precedence over the <code>-s</code> / <code>--capture=no</code> command-line options in <code>Accessing captured output from a test function <accessing-captured-output></code>.</li> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/14088">#14088</a>: Clarified that the default <code>pytest_collection</code> hook sets <code>session.items</code> before it calls <code>pytest_collection_finish</code>, not after.</li> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/14255">#14255</a>: TOML integer log levels must be quoted: Updating reference documentation.</li> </ul> <h2>Contributor-facing changes</h2> <ul> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/12689">#12689</a>: The test reports are now published to Codecov from GitHub Actions. The test statistics is visible <a href="https://app.codecov.io/gh/pytest-dev/pytest/tests">on the web interface</a>.</p> <p>-- by <code>aleguy02</code></p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
ee827e0cb3 |
Bump cryptography from 46.0.6 to 46.0.7 in /etc/scripts/docenizers (#8617)
Bumps [cryptography](https://github.com/pyca/cryptography) from 46.0.6
to 46.0.7.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst">cryptography's
changelog</a>.</em></p>
<blockquote>
<p>46.0.7 - 2026-04-07</p>
<pre><code>
* **SECURITY ISSUE**: Fixed an issue where non-contiguous buffers could
be
passed to APIs that accept Python buffers, which could lead to buffer
overflow. **CVE-2026-39892**
* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL
3.5.6.
<p>.. _v46-0-6:<br />
</code></pre></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="
|
||
|
|
ffba8f223f |
Bump cryptography from 46.0.5 to 46.0.6 in /etc/scripts/docenizers (#8595)
Bumps [cryptography](https://github.com/pyca/cryptography) from 46.0.5
to 46.0.6.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst">cryptography's
changelog</a>.</em></p>
<blockquote>
<p>46.0.6 - 2026-03-25</p>
<pre><code>
* **SECURITY ISSUE**: Fixed a bug where name constraints were not
applied
to peer names during verification when the leaf certificate contains a
wildcard DNS SAN. Ordinary X.509 topologies are not affected by this
bug,
including those used by the Web PKI. Credit to **Oleh Konko (1seal)**
for
reporting the issue. **CVE-2026-34073**
<p>.. _v46-0-5:<br />
</code></pre></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="
|
||
|
|
3fa50141d6 |
Bump requests from 2.32.5 to 2.33.0 in /etc/scripts/docenizers (#8587)
Bumps [requests](https://github.com/psf/requests) from 2.32.5 to 2.33.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/psf/requests/releases">requests's releases</a>.</em></p> <blockquote> <h2>v2.33.0</h2> <h2>2.33.0 (2026-03-25)</h2> <p><strong>Announcements</strong></p> <ul> <li>📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at <a href="https://redirect.github.com/psf/requests/issues/7271">#7271</a>. Give it a try, and report any gaps or feedback you may have in the issue. 📣</li> </ul> <p><strong>Security</strong></p> <ul> <li>CVE-2026-25645 <code>requests.utils.extract_zipped_paths</code> now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.</li> </ul> <p><strong>Improvements</strong></p> <ul> <li>Migrated to a PEP 517 build system using setuptools. (<a href="https://redirect.github.com/psf/requests/issues/7012">#7012</a>)</li> </ul> <p><strong>Bugfixes</strong></p> <ul> <li>Fixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (<a href="https://redirect.github.com/psf/requests/issues/7205">#7205</a>)</li> </ul> <p><strong>Deprecations</strong></p> <ul> <li>Dropped support for Python 3.9 following its end of support. (<a href="https://redirect.github.com/psf/requests/issues/7196">#7196</a>)</li> </ul> <p><strong>Documentation</strong></p> <ul> <li>Various typo fixes and doc improvements.</li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/M0d3v1"><code>@M0d3v1</code></a> made their first contribution in <a href="https://redirect.github.com/psf/requests/pull/6865">psf/requests#6865</a></li> <li><a href="https://github.com/aminvakil"><code>@aminvakil</code></a> made their first contribution in <a href="https://redirect.github.com/psf/requests/pull/7220">psf/requests#7220</a></li> <li><a href="https://github.com/E8Price"><code>@E8Price</code></a> made their first contribution in <a href="https://redirect.github.com/psf/requests/pull/6960">psf/requests#6960</a></li> <li><a href="https://github.com/mitre88"><code>@mitre88</code></a> made their first contribution in <a href="https://redirect.github.com/psf/requests/pull/7244">psf/requests#7244</a></li> <li><a href="https://github.com/magsen"><code>@magsen</code></a> made their first contribution in <a href="https://redirect.github.com/psf/requests/pull/6553">psf/requests#6553</a></li> <li><a href="https://github.com/Rohan5commit"><code>@Rohan5commit</code></a> made their first contribution in <a href="https://redirect.github.com/psf/requests/pull/7227">psf/requests#7227</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25">https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/psf/requests/blob/main/HISTORY.md">requests's changelog</a>.</em></p> <blockquote> <h2>2.33.0 (2026-03-25)</h2> <p><strong>Announcements</strong></p> <ul> <li>📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at <a href="https://redirect.github.com/psf/requests/issues/7271">#7271</a>. Give it a try, and report any gaps or feedback you may have in the issue. 📣</li> </ul> <p><strong>Security</strong></p> <ul> <li>CVE-2026-25645 <code>requests.utils.extract_zipped_paths</code> now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.</li> </ul> <p><strong>Improvements</strong></p> <ul> <li>Migrated to a PEP 517 build system using setuptools. (<a href="https://redirect.github.com/psf/requests/issues/7012">#7012</a>)</li> </ul> <p><strong>Bugfixes</strong></p> <ul> <li>Fixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (<a href="https://redirect.github.com/psf/requests/issues/7205">#7205</a>)</li> </ul> <p><strong>Deprecations</strong></p> <ul> <li>Dropped support for Python 3.9 following its end of support. (<a href="https://redirect.github.com/psf/requests/issues/7196">#7196</a>)</li> </ul> <p><strong>Documentation</strong></p> <ul> <li>Various typo fixes and doc improvements.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
b1fb177e21 |
Bump pygments from 2.19.2 to 2.20.0 in /etc/scripts/ce-properties-wizard (#8599)
Bumps [pygments](https://github.com/pygments/pygments) from 2.19.2 to 2.20.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pygments/pygments/releases">pygments's releases</a>.</em></p> <blockquote> <h2>2.20.0</h2> <ul> <li> <p>New lexers:</p> <ul> <li>Rell (<a href="https://redirect.github.com/pygments/pygments/issues/2914">#2914</a>)</li> </ul> </li> <li> <p>Updated lexers:</p> <ul> <li>archetype: Fix catastrophic backtracking in GUID and ID patterns (<a href="https://redirect.github.com/pygments/pygments/issues/3064">#3064</a>)</li> <li>ASN.1: Recognize minus sign and fix range operator (<a href="https://redirect.github.com/pygments/pygments/issues/3014">#3014</a>, <a href="https://redirect.github.com/pygments/pygments/issues/3060">#3060</a>)</li> <li>C++: Add C++26 keywords (<a href="https://redirect.github.com/pygments/pygments/issues/2955">#2955</a>), add integer literal suffixes (<a href="https://redirect.github.com/pygments/pygments/issues/2966">#2966</a>)</li> <li>ComponentPascal: Fix <code>analyse_text</code> (<a href="https://redirect.github.com/pygments/pygments/issues/3028">#3028</a>, <a href="https://redirect.github.com/pygments/pygments/issues/3032">#3032</a>)</li> <li>Coq renamed to Rocq (<a href="https://redirect.github.com/pygments/pygments/issues/2883">#2883</a>, <a href="https://redirect.github.com/pygments/pygments/issues/2908">#2908</a>)</li> <li>Cython: Various improvements (<a href="https://redirect.github.com/pygments/pygments/issues/2932">#2932</a>, <a href="https://redirect.github.com/pygments/pygments/issues/2933">#2933</a>)</li> <li>Debian control: Improve architecture parsing (<a href="https://redirect.github.com/pygments/pygments/issues/3052">#3052</a>)</li> <li>Devicetree: Add support for overlay/fragments (<a href="https://redirect.github.com/pygments/pygments/issues/3021">#3021</a>), add bytestring support (<a href="https://redirect.github.com/pygments/pygments/issues/3022">#3022</a>), fix catastrophic backtracking (<a href="https://redirect.github.com/pygments/pygments/issues/3057">#3057</a>)</li> <li>Fennel: Various improvements (<a href="https://redirect.github.com/pygments/pygments/issues/2911">#2911</a>)</li> <li>Haskell: Handle escape sequences in character literals (<a href="https://redirect.github.com/pygments/pygments/issues/3069">#3069</a>, <a href="https://redirect.github.com/pygments/pygments/issues/1795">#1795</a>)</li> <li>Java: Add module keywords (<a href="https://redirect.github.com/pygments/pygments/issues/2955">#2955</a>)</li> <li>Lean4: Add operators <code>]'</code>, <code>]?</code>, <code>]!</code> (<a href="https://redirect.github.com/pygments/pygments/issues/2946">#2946</a>)</li> <li>LESS: Support single-line comments (<a href="https://redirect.github.com/pygments/pygments/issues/3005">#3005</a>)</li> <li>LilyPond: Update to 2.25.29 (<a href="https://redirect.github.com/pygments/pygments/issues/2974">#2974</a>)</li> <li>LLVM: Support C-style comments (<a href="https://redirect.github.com/pygments/pygments/issues/3023">#3023</a>, <a href="https://redirect.github.com/pygments/pygments/issues/2978">#2978</a>)</li> <li>Lua(u): Fix catastrophic backtracking (<a href="https://redirect.github.com/pygments/pygments/issues/3047">#3047</a>)</li> <li>Macaulay2: Update to 1.25.05 (<a href="https://redirect.github.com/pygments/pygments/issues/2893">#2893</a>), 1.25.11 (<a href="https://redirect.github.com/pygments/pygments/issues/2988">#2988</a>)</li> <li>Mathematica: Various improvements (<a href="https://redirect.github.com/pygments/pygments/issues/2957">#2957</a>)</li> <li>meson: Add additional operators (<a href="https://redirect.github.com/pygments/pygments/issues/2919">#2919</a>)</li> <li>MySQL: Update keywords (<a href="https://redirect.github.com/pygments/pygments/issues/2970">#2970</a>)</li> <li>org-Mode: Support both schedule and deadline (<a href="https://redirect.github.com/pygments/pygments/issues/2899">#2899</a>)</li> <li>PHP: Add <code>__PROPERTY__</code> magic constant (<a href="https://redirect.github.com/pygments/pygments/issues/2924">#2924</a>), add reserved keywords (<a href="https://redirect.github.com/pygments/pygments/issues/3002">#3002</a>)</li> <li>PostgreSQL: Add more keywords (<a href="https://redirect.github.com/pygments/pygments/issues/2985">#2985</a>)</li> <li>protobuf: Fix namespace tokenization (<a href="https://redirect.github.com/pygments/pygments/issues/2929">#2929</a>)</li> <li>Python: Add <code>t</code>-string support (<a href="https://redirect.github.com/pygments/pygments/issues/2973">#2973</a>, <a href="https://redirect.github.com/pygments/pygments/issues/3009">#3009</a>, <a href="https://redirect.github.com/pygments/pygments/issues/3010">#3010</a>)</li> <li>Tablegen: Fix infinite loop (<a href="https://redirect.github.com/pygments/pygments/issues/2972">#2972</a>, <a href="https://redirect.github.com/pygments/pygments/issues/2940">#2940</a>)</li> <li>Tera Term macro: Add commands introduced in v5.3 through v5.6 (<a href="https://redirect.github.com/pygments/pygments/issues/2951">#2951</a>)</li> <li>TOML: Support TOML 1.1.0 (<a href="https://redirect.github.com/pygments/pygments/issues/3026">#3026</a>, <a href="https://redirect.github.com/pygments/pygments/issues/3027">#3027</a>)</li> <li>Turtle: Allow empty comment lines (<a href="https://redirect.github.com/pygments/pygments/issues/2980">#2980</a>)</li> <li>XML: Added <code>.xbrl</code> as file ending (<a href="https://redirect.github.com/pygments/pygments/issues/2890">#2890</a>, <a href="https://redirect.github.com/pygments/pygments/issues/2891">#2891</a>)</li> </ul> </li> <li> <p>Drop Python 3.8, and add Python 3.14 as a supported version (<a href="https://redirect.github.com/pygments/pygments/issues/2987">#2987</a>, <a href="https://redirect.github.com/pygments/pygments/issues/3012">#3012</a>)</p> </li> <li> <p>Various improvements to <code>autopygmentize</code> (<a href="https://redirect.github.com/pygments/pygments/issues/2894">#2894</a>)</p> </li> <li> <p>Update <code>onedark</code> style to support more token types (<a href="https://redirect.github.com/pygments/pygments/issues/2977">#2977</a>)</p> </li> <li> <p>Update <code>rtt</code> style to support more token types (<a href="https://redirect.github.com/pygments/pygments/issues/2895">#2895</a>)</p> </li> <li> <p>Cache entry points to improve performance (<a href="https://redirect.github.com/pygments/pygments/issues/2979">#2979</a>)</p> </li> <li> <p>Fix <code>xterm-256</code> color table (<a href="https://redirect.github.com/pygments/pygments/issues/3043">#3043</a>)</p> </li> <li> <p>Fix <code>kwargs</code> dictionary getting mutated on each call (<a href="https://redirect.github.com/pygments/pygments/issues/3044">#3044</a>)</p> </li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pygments/pygments/blob/master/CHANGES">pygments's changelog</a>.</em></p> <blockquote> <h2>Version 2.20.0</h2> <p>(released March 29th, 2026)</p> <ul> <li> <p>New lexers:</p> <ul> <li>Rell (<a href="https://redirect.github.com/pygments/pygments/issues/2914">#2914</a>)</li> </ul> </li> <li> <p>Updated lexers:</p> <ul> <li>archetype: Fix catastrophic backtracking in GUID and ID patterns (<a href="https://redirect.github.com/pygments/pygments/issues/3064">#3064</a>)</li> <li>ASN.1: Recognize minus sign and fix range operator (<a href="https://redirect.github.com/pygments/pygments/issues/3014">#3014</a>, <a href="https://redirect.github.com/pygments/pygments/issues/3060">#3060</a>)</li> <li>C++: Add C++26 keywords (<a href="https://redirect.github.com/pygments/pygments/issues/2955">#2955</a>), add integer literal suffixes (<a href="https://redirect.github.com/pygments/pygments/issues/2966">#2966</a>)</li> <li>ComponentPascal: Fix <code>analyse_text</code> (<a href="https://redirect.github.com/pygments/pygments/issues/3028">#3028</a>, <a href="https://redirect.github.com/pygments/pygments/issues/3032">#3032</a>)</li> <li>Coq renamed to Rocq (<a href="https://redirect.github.com/pygments/pygments/issues/2883">#2883</a>, <a href="https://redirect.github.com/pygments/pygments/issues/2908">#2908</a>)</li> <li>Cython: Various improvements (<a href="https://redirect.github.com/pygments/pygments/issues/2932">#2932</a>, <a href="https://redirect.github.com/pygments/pygments/issues/2933">#2933</a>)</li> <li>Debian control: Improve architecture parsing (<a href="https://redirect.github.com/pygments/pygments/issues/3052">#3052</a>)</li> <li>Devicetree: Add support for overlay/fragments (<a href="https://redirect.github.com/pygments/pygments/issues/3021">#3021</a>), add bytestring support (<a href="https://redirect.github.com/pygments/pygments/issues/3022">#3022</a>), fix catastrophic backtracking (<a href="https://redirect.github.com/pygments/pygments/issues/3057">#3057</a>)</li> <li>Fennel: Various improvements (<a href="https://redirect.github.com/pygments/pygments/issues/2911">#2911</a>)</li> <li>Haskell: Handle escape sequences in character literals (<a href="https://redirect.github.com/pygments/pygments/issues/3069">#3069</a>, <a href="https://redirect.github.com/pygments/pygments/issues/1795">#1795</a>)</li> <li>Java: Add module keywords (<a href="https://redirect.github.com/pygments/pygments/issues/2955">#2955</a>)</li> <li>Lean4: Add operators <code>]'</code>, <code>]?</code>, <code>]!</code> (<a href="https://redirect.github.com/pygments/pygments/issues/2946">#2946</a>)</li> <li>LESS: Support single-line comments (<a href="https://redirect.github.com/pygments/pygments/issues/3005">#3005</a>)</li> <li>LilyPond: Update to 2.25.29 (<a href="https://redirect.github.com/pygments/pygments/issues/2974">#2974</a>)</li> <li>LLVM: Support C-style comments (<a href="https://redirect.github.com/pygments/pygments/issues/3023">#3023</a>, <a href="https://redirect.github.com/pygments/pygments/issues/2978">#2978</a>)</li> <li>Lua(u): Fix catastrophic backtracking (<a href="https://redirect.github.com/pygments/pygments/issues/3047">#3047</a>)</li> <li>Macaulay2: Update to 1.25.05 (<a href="https://redirect.github.com/pygments/pygments/issues/2893">#2893</a>), 1.25.11 (<a href="https://redirect.github.com/pygments/pygments/issues/2988">#2988</a>)</li> <li>Mathematica: Various improvements (<a href="https://redirect.github.com/pygments/pygments/issues/2957">#2957</a>)</li> <li>meson: Add additional operators (<a href="https://redirect.github.com/pygments/pygments/issues/2919">#2919</a>)</li> <li>MySQL: Update keywords (<a href="https://redirect.github.com/pygments/pygments/issues/2970">#2970</a>)</li> <li>org-Mode: Support both schedule and deadline (<a href="https://redirect.github.com/pygments/pygments/issues/2899">#2899</a>)</li> <li>PHP: Add <code>__PROPERTY__</code> magic constant (<a href="https://redirect.github.com/pygments/pygments/issues/2924">#2924</a>), add reserved keywords (<a href="https://redirect.github.com/pygments/pygments/issues/3002">#3002</a>)</li> <li>PostgreSQL: Add more keywords (<a href="https://redirect.github.com/pygments/pygments/issues/2985">#2985</a>)</li> <li>protobuf: Fix namespace tokenization (<a href="https://redirect.github.com/pygments/pygments/issues/2929">#2929</a>)</li> <li>Python: Add <code>t</code>-string support (<a href="https://redirect.github.com/pygments/pygments/issues/2973">#2973</a>, <a href="https://redirect.github.com/pygments/pygments/issues/3009">#3009</a>, <a href="https://redirect.github.com/pygments/pygments/issues/3010">#3010</a>)</li> <li>Tablegen: Fix infinite loop (<a href="https://redirect.github.com/pygments/pygments/issues/2972">#2972</a>, <a href="https://redirect.github.com/pygments/pygments/issues/2940">#2940</a>)</li> <li>Tera Term macro: Add commands introduced in v5.3 through v5.6 (<a href="https://redirect.github.com/pygments/pygments/issues/2951">#2951</a>)</li> <li>TOML: Support TOML 1.1.0 (<a href="https://redirect.github.com/pygments/pygments/issues/3026">#3026</a>, <a href="https://redirect.github.com/pygments/pygments/issues/3027">#3027</a>)</li> <li>Turtle: Allow empty comment lines (<a href="https://redirect.github.com/pygments/pygments/issues/2980">#2980</a>)</li> <li>XML: Added <code>.xbrl</code> as file ending (<a href="https://redirect.github.com/pygments/pygments/issues/2890">#2890</a>, <a href="https://redirect.github.com/pygments/pygments/issues/2891">#2891</a>)</li> </ul> </li> <li> <p>Drop Python 3.8, and add Python 3.14 as a supported version (<a href="https://redirect.github.com/pygments/pygments/issues/2987">#2987</a>, <a href="https://redirect.github.com/pygments/pygments/issues/3012">#3012</a>)</p> </li> <li> <p>Various improvements to <code>autopygmentize</code> (<a href="https://redirect.github.com/pygments/pygments/issues/2894">#2894</a>)</p> </li> <li> <p>Update <code>onedark</code> style to support more token types (<a href="https://redirect.github.com/pygments/pygments/issues/2977">#2977</a>)</p> </li> <li> <p>Update <code>rtt</code> style to support more token types (<a href="https://redirect.github.com/pygments/pygments/issues/2895">#2895</a>)</p> </li> <li> <p>Cache entry points to improve performance (<a href="https://redirect.github.com/pygments/pygments/issues/2979">#2979</a>)</p> </li> <li> <p>Fix <code>xterm-256</code> color table (<a href="https://redirect.github.com/pygments/pygments/issues/3043">#3043</a>)</p> </li> <li> <p>Fix <code>kwargs</code> dictionary getting mutated on each call (<a href="https://redirect.github.com/pygments/pygments/issues/3044">#3044</a>)</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
7c48f67043 |
Migrate ce-properties-wizard and shortlinkmigration from Poetry to uv (#8559)
## Summary - Convert both subprojects from Poetry to uv with PEP 621 `[project]` table format - Replace `poetry.lock` with `uv.lock` - Update `run.sh` and `run.ps1` to use `uv` instead of `poetry` - Simplify `run.ps1` (removed Git Bash workaround, uv handles venvs natively) - Update READMEs to reference uv - Broaden `.gitignore` for all subproject Python artifacts (`.venv`, `.uv`, `.egg-info`) Depends on #update-subproject-dependencies (base branch). ## Test plan - [x] `uv sync --all-extras` works for ce-properties-wizard - [x] `uv run ce-props-wizard --list-types` works - [x] `uv run ce-props-wizard /usr/bin/g++ --verify-only` detects GCC correctly - [x] `uv run black --check .` and `uv run ruff check .` work - [x] `uv sync` works for shortlinkmigration - [x] `uv run python -c "import boto3"` works 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> |
||
|
|
805f4bbbcf |
Update subproject dependencies (#8558)
## Summary - **ce-properties-wizard**: Bump black 24→26, pytest 7→9, ruff 0.1→0.15, pytype 2023→2024. Fix ruff config deprecation. Run formatters. - **docenizers**: Update uv lock (pandas 2.3→3.0, beautifulsoup4, numpy, pdfminer, pycparser, etc.) - **shortlinkmigration**: Update poetry lock (boto3 1.39→1.42) ## Test plan - [x] ce-properties-wizard: `uv run ce-props-wizard --list-types` works - [x] ce-properties-wizard: `uv run ce-props-wizard /usr/bin/g++ --verify-only` detects correctly - [x] ce-properties-wizard: `black --check` and `ruff check` pass (4 pre-existing E501s remain) - [x] shortlinkmigration: `uv sync` and `import boto3` work 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> |
||
|
|
7d0d75d544 |
Bump cryptography from 46.0.1 to 46.0.5 in /etc/scripts/docenizers (#8463)
Bumps [cryptography](https://github.com/pyca/cryptography) from 46.0.1 to 46.0.5. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst">cryptography's changelog</a>.</em></p> <blockquote> <p>46.0.5 - 2026-02-10</p> <pre><code> * An attacker could create a malicious public key that reveals portions of your private key when using certain uncommon elliptic curves (binary curves). This version now includes additional security checks to prevent this attack. This issue only affects binary elliptic curves, which are rarely used in real-world applications. Credit to **XlabAI Team of Tencent Xuanwu Lab and Atuin Automated Vulnerability Discovery Engine** for reporting the issue. **CVE-2026-26007** * Support for ``SECT*`` binary elliptic curves is deprecated and will be removed in the next release. <p>.. v46-0-4:</p> <p>46.0.4 - 2026-01-27<br /> </code></pre></p> <ul> <li><code>Dropped support for win_arm64 wheels</code>_.</li> <li>Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.5.</li> </ul> <p>.. _v46-0-3:</p> <p>46.0.3 - 2025-10-15</p> <pre><code> * Fixed compilation when using LibreSSL 4.2.0. <p>.. _v46-0-2:</p> <p>46.0.2 - 2025-09-30<br /> </code></pre></p> <ul> <li>Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.4.</li> </ul> <p>.. _v46-0-1:</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
d51b212683 |
Bump urllib3 from 2.5.0 to 2.6.3 in /etc/scripts/docenizers (#8391)
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.5.0 to 2.6.3. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/urllib3/urllib3/releases">urllib3's releases</a>.</em></p> <blockquote> <h2>2.6.3</h2> <h2>🚀 urllib3 is fundraising for HTTP/2 support</h2> <p><a href="https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support">urllib3 is raising ~$40,000 USD</a> to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects <a href="https://opencollective.com/urllib3">please consider contributing financially</a> to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.</p> <p>Thank you for your support.</p> <h2>Changes</h2> <ul> <li>Fixed a security issue where decompression-bomb safeguards of the streaming API were bypassed when HTTP redirects were followed. (CVE-2026-21441 reported by <a href="https://github.com/D47A"><code>@D47A</code></a>, 8.9 High, GHSA-38jv-5279-wg99)</li> <li>Started treating <code>Retry-After</code> times greater than 6 hours as 6 hours by default. (<a href="https://redirect.github.com/urllib3/urllib3/issues/3743">urllib3/urllib3#3743</a>)</li> <li>Fixed <code>urllib3.connection.VerifiedHTTPSConnection</code> on Emscripten. (<a href="https://redirect.github.com/urllib3/urllib3/issues/3752">urllib3/urllib3#3752</a>)</li> </ul> <h2>2.6.2</h2> <h2>🚀 urllib3 is fundraising for HTTP/2 support</h2> <p><a href="https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support">urllib3 is raising ~$40,000 USD</a> to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects <a href="https://opencollective.com/urllib3">please consider contributing financially</a> to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.</p> <p>Thank you for your support.</p> <h2>Changes</h2> <ul> <li>Fixed <code>HTTPResponse.read_chunked()</code> to properly handle leftover data in the decoder's buffer when reading compressed chunked responses. (<a href="https://redirect.github.com/urllib3/urllib3/issues/3734">urllib3/urllib3#3734</a>)</li> </ul> <h2>2.6.1</h2> <h2>🚀 urllib3 is fundraising for HTTP/2 support</h2> <p><a href="https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support">urllib3 is raising ~$40,000 USD</a> to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects <a href="https://opencollective.com/urllib3">please consider contributing financially</a> to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.</p> <p>Thank you for your support.</p> <h2>Changes</h2> <ul> <li>Restore previously removed <code>HTTPResponse.getheaders()</code> and <code>HTTPResponse.getheader()</code> methods. (<a href="https://redirect.github.com/urllib3/urllib3/issues/3731">#3731</a>)</li> </ul> <h2>2.6.0</h2> <h2>🚀 urllib3 is fundraising for HTTP/2 support</h2> <p><a href="https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support">urllib3 is raising ~$40,000 USD</a> to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects <a href="https://opencollective.com/urllib3">please consider contributing financially</a> to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.</p> <p>Thank you for your support.</p> <h2>Security</h2> <ul> <li>Fixed a security issue where streaming API could improperly handle highly compressed HTTP content ("decompression bombs") leading to excessive resource consumption even when a small amount of data was requested. Reading small chunks of compressed data is safer and much more efficient now. (CVE-2025-66471 reported by <a href="https://github.com/Cycloctane"><code>@Cycloctane</code></a>, 8.9 High, GHSA-2xpw-w6gg-jr37)</li> <li>Fixed a security issue where an attacker could compose an HTTP response with virtually unlimited links in the <code>Content-Encoding</code> header, potentially leading to a denial of service (DoS) attack by exhausting system resources during decoding. The number of allowed chained encodings is now limited to 5. (CVE-2025-66418 reported by <a href="https://github.com/illia-v"><code>@illia-v</code></a>, 8.9 High, GHSA-gm62-xv2j-4w53)</li> </ul> <blockquote> <p>[!IMPORTANT]</p> <ul> <li>If urllib3 is not installed with the optional <code>urllib3[brotli]</code> extra, but your environment contains a Brotli/brotlicffi/brotlipy package anyway, make sure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to benefit from the security fixes and avoid warnings. Prefer using <code>urllib3[brotli]</code> to install a compatible Brotli package automatically.</li> </ul> </blockquote> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/urllib3/urllib3/blob/main/CHANGES.rst">urllib3's changelog</a>.</em></p> <blockquote> <h1>2.6.3 (2026-01-07)</h1> <ul> <li>Fixed a high-severity security issue where decompression-bomb safeguards of the streaming API were bypassed when HTTP redirects were followed. (<code>GHSA-38jv-5279-wg99 <https://github.com/urllib3/urllib3/security/advisories/GHSA-38jv-5279-wg99></code>__)</li> <li>Started treating <code>Retry-After</code> times greater than 6 hours as 6 hours by default. (<code>[#3743](https://github.com/urllib3/urllib3/issues/3743) <https://github.com/urllib3/urllib3/issues/3743></code>__)</li> <li>Fixed <code>urllib3.connection.VerifiedHTTPSConnection</code> on Emscripten. (<code>[#3752](https://github.com/urllib3/urllib3/issues/3752) <https://github.com/urllib3/urllib3/issues/3752></code>__)</li> </ul> <h1>2.6.2 (2025-12-11)</h1> <ul> <li>Fixed <code>HTTPResponse.read_chunked()</code> to properly handle leftover data in the decoder's buffer when reading compressed chunked responses. (<code>[#3734](https://github.com/urllib3/urllib3/issues/3734) <https://github.com/urllib3/urllib3/issues/3734></code>__)</li> </ul> <h1>2.6.1 (2025-12-08)</h1> <ul> <li>Restore previously removed <code>HTTPResponse.getheaders()</code> and <code>HTTPResponse.getheader()</code> methods. (<code>[#3731](https://github.com/urllib3/urllib3/issues/3731) <https://github.com/urllib3/urllib3/issues/3731></code>__)</li> </ul> <h1>2.6.0 (2025-12-05)</h1> <h2>Security</h2> <ul> <li>Fixed a security issue where streaming API could improperly handle highly compressed HTTP content ("decompression bombs") leading to excessive resource consumption even when a small amount of data was requested. Reading small chunks of compressed data is safer and much more efficient now. (<code>GHSA-2xpw-w6gg-jr37 <https://github.com/urllib3/urllib3/security/advisories/GHSA-2xpw-w6gg-jr37></code>__)</li> <li>Fixed a security issue where an attacker could compose an HTTP response with virtually unlimited links in the <code>Content-Encoding</code> header, potentially leading to a denial of service (DoS) attack by exhausting system resources during decoding. The number of allowed chained encodings is now limited to 5. (<code>GHSA-gm62-xv2j-4w53 <https://github.com/urllib3/urllib3/security/advisories/GHSA-gm62-xv2j-4w53></code>__)</li> </ul> <p>.. caution::</p> <ul> <li>If urllib3 is not installed with the optional <code>urllib3[brotli]</code> extra, but your environment contains a Brotli/brotlicffi/brotlipy package anyway, make sure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to benefit from the security fixes and avoid warnings. Prefer using</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
ddb0266645 |
Convert propscheck.py to TypeScript/Vitest tests (#8404)
## Summary Replaces the Python `propscheck.py` validation script with TypeScript code that: - Uses a testable validator module (`lib/properties-validator.ts`) - Has comprehensive unit tests (71 tests in `test/properties-validation-tests.ts`) - Integrates with the existing property loading infrastructure - Runs as part of the normal test suite ## Changes - **New validator module** (`lib/properties-validator.ts`): - Raw file validation: duplicate keys, empty list elements, typos, suspicious paths - Orphan detection: compilers, groups, formatters, tools, libraries - Cross-file duplicate compiler ID detection - Disabled allowlist support (`# Disabled: id1 id2`) - Invalid property format detection (leverages `parseProperties()` with new `collectErrors` option) - Missing compilers list detection for language files - **Property library enhancement** (`lib/properties.ts`): - Added `collectErrors` option to `parseProperties()` for structured error collection - **New npm script**: `npm run test:props` for quick property validation - Set `CHECK_LOCAL_PROPS=true` to include `.local.properties` files - **Updated references**: - CI workflow no longer calls propscheck.py - Pre-commit hook uses `npm run test:props` - CE Properties Wizard uses the new validation - **Removed**: `etc/scripts/util/propscheck.py` and `propschecktest.py` ## Test plan - [x] All 71 unit tests pass - [x] Integration tests validate real config files - [x] `npm run test:props` works standalone - [x] CE Properties Wizard validation works - [x] CI passes 🤖 Generated with [Claude Code](https://claude.ai/code) --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> |
||
|
|
3d4fc27de0 |
Add the perl language (#8351)
Based on https://github.com/KaceCottam/compiler-explorer/commits/language-perl/ rebased, modernized and captures the generated perl op codes. <img width="1569" height="878" alt="image" src="https://github.com/user-attachments/assets/4d131097-d258-419b-86c9-1a56c16f9ce2" /> --------- Co-authored-by: Kace Cottam <kaceac1@hotmail.com> |
||
|
|
adca61373a | Make sure newlines are present in LLVM IR documentation (#8289) | ||
|
|
f7bc52a923 |
Add Helion language support (#8206)
Helion is a Python-embedded domain-specific language (DSL) for authoring machine learning kernels, designed to compile down to Triton. https://github.com/pytorch/helion I mostly followed the Triton example, please let me know if there's more I need to do or anything I missed. infra PR: https://github.com/compiler-explorer/infra/pull/1875 |
||
|
|
b88f255729 |
Ensure documentation for LLVM IR casting operations can be found (#8241)
Previously, the "View IR Documentation" functionality for LLVM IR casting operations would not work at all, generating errors similar to the following: > There was an error fetching the documentation for this opcode (Error: Unknown opcode 'FPTRUNC'). This is because the generated documentation adds the `-to` suffix to all casting operations, causing a mismatch with the instruction's real name in the IR. Here are minimal examples for all casting instructions: - [`trunc`](https://godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(filename:'1',fontScale:14,fontUsePx:'0',j:1,lang:llvm,selection:(endColumn:1,endLineNumber:6,positionColumn:1,positionLineNumber:6,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),source:'define+dso_local+noundef+i8+@main()+%7B%0Aentry:%0A++%25X+%3D+trunc+i32+257+to+i8+%0A++ret+i8+%25X%0A%7D%0A'),l:'5',n:'0',o:'LLVM+IR+source+%231',t:'0')),k:35.25084847852495,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:compiler,i:(compiler:irclangtrunk,filters:(b:'0',binary:'1',binaryObject:'1',commentOnly:'0',debugCalls:'1',demangle:'0',directives:'0',execute:'1',intel:'0',libraryCode:'0',trim:'1',verboseDemangling:'0'),flagsViewOpen:'1',fontScale:14,fontUsePx:'0',j:2,lang:llvm,libs:!(),options:'',overrides:!(),selection:(endColumn:1,endLineNumber:1,positionColumn:1,positionLineNumber:1,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),source:1),l:'5',n:'0',o:'+clang+(trunk)+(Editor+%231)',t:'0')),k:31.41581818814172,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:ir,i:('-fno-discard-value-names':'0',compilerName:'clang+(trunk)',demangle-symbols:'0',editorid:1,filter-attributes:'0',filter-comments:'0',filter-debug-info:'0',filter-instruction-metadata:'0',fontScale:14,fontUsePx:'0',j:2,selection:(endColumn:11,endLineNumber:3,positionColumn:11,positionLineNumber:3,selectionStartColumn:11,selectionStartLineNumber:3,startColumn:11,startLineNumber:3),show-optimized:'0',treeid:0,wrap:'1'),l:'5',n:'0',o:'LLVM+IR+Viewer+clang+(trunk)+(Editor+%231,+Compiler+%232)',t:'0')),k:33.33333333333333,l:'4',n:'0',o:'',s:0,t:'0')),l:'2',n:'0',o:'',t:'0')),version:4) - [`zext`](https://godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(filename:'1',fontScale:14,fontUsePx:'0',j:1,lang:llvm,selection:(endColumn:1,endLineNumber:6,positionColumn:1,positionLineNumber:6,selectionStartColumn:1,selectionStartLineNumber:6,startColumn:1,startLineNumber:6),source:'define+dso_local+noundef+i64+@main()+%7B%0Aentry:%0A++%25X+%3D+zext+i32+257+to+i64+%0A++ret+i64+%25X%0A%7D%0A'),l:'5',n:'0',o:'LLVM+IR+source+%231',t:'0')),k:35.25084847852495,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:compiler,i:(compiler:irclangtrunk,filters:(b:'0',binary:'1',binaryObject:'1',commentOnly:'0',debugCalls:'1',demangle:'0',directives:'0',execute:'1',intel:'0',libraryCode:'0',trim:'1',verboseDemangling:'0'),flagsViewOpen:'1',fontScale:14,fontUsePx:'0',j:2,lang:llvm,libs:!(),options:'',overrides:!(),selection:(endColumn:1,endLineNumber:1,positionColumn:1,positionLineNumber:1,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),source:1),l:'5',n:'0',o:'+clang+(trunk)+(Editor+%231)',t:'0')),k:31.41581818814172,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:ir,i:('-fno-discard-value-names':'0',compilerName:'clang+(trunk)',demangle-symbols:'0',editorid:1,filter-attributes:'0',filter-comments:'0',filter-debug-info:'0',filter-instruction-metadata:'0',fontScale:14,fontUsePx:'0',j:2,selection:(endColumn:12,endLineNumber:3,positionColumn:12,positionLineNumber:3,selectionStartColumn:8,selectionStartLineNumber:3,startColumn:8,startLineNumber:3),show-optimized:'0',treeid:0,wrap:'1'),l:'5',n:'0',o:'LLVM+IR+Viewer+clang+(trunk)+(Editor+%231,+Compiler+%232)',t:'0')),k:33.33333333333333,l:'4',n:'0',o:'',s:0,t:'0')),l:'2',n:'0',o:'',t:'0')),version:4) - [`sext`](https://godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(filename:'1',fontScale:14,fontUsePx:'0',j:1,lang:llvm,selection:(endColumn:1,endLineNumber:6,positionColumn:1,positionLineNumber:6,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),source:'define+dso_local+noundef+i16+@main()+%7B%0Aentry:%0A++%25X+%3D+sext+i8++-1+to+i16+%0A++ret+i16+%25X%0A%7D%0A'),l:'5',n:'0',o:'LLVM+IR+source+%231',t:'0')),k:35.25084847852495,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:compiler,i:(compiler:irclangtrunk,filters:(b:'0',binary:'1',binaryObject:'1',commentOnly:'0',debugCalls:'1',demangle:'0',directives:'0',execute:'1',intel:'0',libraryCode:'0',trim:'1',verboseDemangling:'0'),flagsViewOpen:'1',fontScale:14,fontUsePx:'0',j:2,lang:llvm,libs:!(),options:'',overrides:!(),selection:(endColumn:1,endLineNumber:1,positionColumn:1,positionLineNumber:1,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),source:1),l:'5',n:'0',o:'+clang+(trunk)+(Editor+%231)',t:'0')),k:31.41581818814172,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:ir,i:('-fno-discard-value-names':'0',compilerName:'clang+(trunk)',demangle-symbols:'0',editorid:1,filter-attributes:'0',filter-comments:'0',filter-debug-info:'0',filter-instruction-metadata:'0',fontScale:14,fontUsePx:'0',j:2,selection:(endColumn:12,endLineNumber:3,positionColumn:12,positionLineNumber:3,selectionStartColumn:8,selectionStartLineNumber:3,startColumn:8,startLineNumber:3),show-optimized:'0',treeid:0,wrap:'1'),l:'5',n:'0',o:'LLVM+IR+Viewer+clang+(trunk)+(Editor+%231,+Compiler+%232)',t:'0')),k:33.33333333333333,l:'4',n:'0',o:'',s:0,t:'0')),l:'2',n:'0',o:'',t:'0')),version:4) - [`fptrunc`](https://godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(filename:'1',fontScale:14,fontUsePx:'0',j:1,lang:llvm,selection:(endColumn:1,endLineNumber:6,positionColumn:1,positionLineNumber:6,selectionStartColumn:1,selectionStartLineNumber:6,startColumn:1,startLineNumber:6),source:'define+dso_local+noundef+float+@main()+%7B%0Aentry:%0A++%25X+%3D+fptrunc+double+16777217.0+to+float+%0A++ret+float+%25X%0A%7D%0A'),l:'5',n:'0',o:'LLVM+IR+source+%231',t:'0')),k:35.25084847852495,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:compiler,i:(compiler:irclangtrunk,filters:(b:'0',binary:'1',binaryObject:'1',commentOnly:'0',debugCalls:'1',demangle:'0',directives:'0',execute:'1',intel:'0',libraryCode:'0',trim:'1',verboseDemangling:'0'),flagsViewOpen:'1',fontScale:14,fontUsePx:'0',j:2,lang:llvm,libs:!(),options:'',overrides:!(),selection:(endColumn:1,endLineNumber:1,positionColumn:1,positionLineNumber:1,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),source:1),l:'5',n:'0',o:'+clang+(trunk)+(Editor+%231)',t:'0')),k:31.41581818814172,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:ir,i:('-fno-discard-value-names':'0',compilerName:'clang+(trunk)',demangle-symbols:'0',editorid:1,filter-attributes:'0',filter-comments:'0',filter-debug-info:'0',filter-instruction-metadata:'0',fontScale:14,fontUsePx:'0',j:2,selection:(endColumn:15,endLineNumber:3,positionColumn:15,positionLineNumber:3,selectionStartColumn:8,selectionStartLineNumber:3,startColumn:8,startLineNumber:3),show-optimized:'0',treeid:0,wrap:'1'),l:'5',n:'0',o:'LLVM+IR+Viewer+clang+(trunk)+(Editor+%231,+Compiler+%232)',t:'0')),k:33.33333333333333,l:'4',n:'0',o:'',s:0,t:'0')),l:'2',n:'0',o:'',t:'0')),version:4) - [`fpext`](https://godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(filename:'1',fontScale:14,fontUsePx:'0',j:1,lang:llvm,selection:(endColumn:1,endLineNumber:6,positionColumn:1,positionLineNumber:6,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),source:'define+dso_local+noundef+double+@main()+%7B%0Aentry:%0A++%25X+%3D+fpext+float+3.125+to+double%0A++ret+double+%25X%0A%7D%0A'),l:'5',n:'0',o:'LLVM+IR+source+%231',t:'0')),k:35.25084847852495,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:compiler,i:(compiler:irclangtrunk,filters:(b:'0',binary:'1',binaryObject:'1',commentOnly:'0',debugCalls:'1',demangle:'0',directives:'0',execute:'1',intel:'0',libraryCode:'0',trim:'1',verboseDemangling:'0'),flagsViewOpen:'1',fontScale:14,fontUsePx:'0',j:2,lang:llvm,libs:!(),options:'',overrides:!(),selection:(endColumn:1,endLineNumber:1,positionColumn:1,positionLineNumber:1,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),source:1),l:'5',n:'0',o:'+clang+(trunk)+(Editor+%231)',t:'0')),k:31.41581818814172,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:ir,i:('-fno-discard-value-names':'0',compilerName:'clang+(trunk)',demangle-symbols:'0',editorid:1,filter-attributes:'0',filter-comments:'0',filter-debug-info:'0',filter-instruction-metadata:'0',fontScale:14,fontUsePx:'0',j:2,selection:(endColumn:13,endLineNumber:3,positionColumn:13,positionLineNumber:3,selectionStartColumn:8,selectionStartLineNumber:3,startColumn:8,startLineNumber:3),show-optimized:'0',treeid:0,wrap:'1'),l:'5',n:'0',o:'LLVM+IR+Viewer+clang+(trunk)+(Editor+%231,+Compiler+%232)',t:'0')),k:33.33333333333333,l:'4',n:'0',o:'',s:0,t:'0')),l:'2',n:'0',o:'',t:'0')),version:4) - [`fptoui`](https://godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(filename:'1',fontScale:14,fontUsePx:'0',j:1,lang:llvm,selection:(endColumn:1,endLineNumber:6,positionColumn:1,positionLineNumber:6,selectionStartColumn:1,selectionStartLineNumber:6,startColumn:1,startLineNumber:6),source:'define+dso_local+noundef+i32+@main()+%7B%0Aentry:%0A++%25X+%3D+fptoui+double+123.0+to+i32%0A++ret+i32+%25X%0A%7D%0A'),l:'5',n:'0',o:'LLVM+IR+source+%231',t:'0')),k:35.25084847852495,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:compiler,i:(compiler:irclangtrunk,filters:(b:'0',binary:'1',binaryObject:'1',commentOnly:'0',debugCalls:'1',demangle:'0',directives:'0',execute:'1',intel:'0',libraryCode:'0',trim:'1',verboseDemangling:'0'),flagsViewOpen:'1',fontScale:14,fontUsePx:'0',j:2,lang:llvm,libs:!(),options:'',overrides:!(),selection:(endColumn:1,endLineNumber:1,positionColumn:1,positionLineNumber:1,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),source:1),l:'5',n:'0',o:'+clang+(trunk)+(Editor+%231)',t:'0')),k:31.41581818814172,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:ir,i:('-fno-discard-value-names':'0',compilerName:'clang+(trunk)',demangle-symbols:'0',editorid:1,filter-attributes:'0',filter-comments:'0',filter-debug-info:'0',filter-instruction-metadata:'0',fontScale:14,fontUsePx:'0',j:2,selection:(endColumn:1,endLineNumber:1,positionColumn:1,positionLineNumber:1,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),show-optimized:'0',treeid:0,wrap:'1'),l:'5',n:'0',o:'LLVM+IR+Viewer+clang+(trunk)+(Editor+%231,+Compiler+%232)',t:'0')),k:33.33333333333333,l:'4',n:'0',o:'',s:0,t:'0')),l:'2',n:'0',o:'',t:'0')),version:4) - [`fptosi`](https://godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(filename:'1',fontScale:14,fontUsePx:'0',j:1,lang:llvm,selection:(endColumn:2,endLineNumber:5,positionColumn:2,positionLineNumber:5,selectionStartColumn:2,selectionStartLineNumber:5,startColumn:2,startLineNumber:5),source:'define+dso_local+noundef+i32+@main()+%7B%0Aentry:%0A++%25X+%3D+fptosi+double+123.0+to+i32%0A++ret+i32+%25X%0A%7D%0A'),l:'5',n:'0',o:'LLVM+IR+source+%231',t:'0')),k:35.25084847852495,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:compiler,i:(compiler:irclangtrunk,filters:(b:'0',binary:'1',binaryObject:'1',commentOnly:'0',debugCalls:'1',demangle:'0',directives:'0',execute:'1',intel:'0',libraryCode:'0',trim:'1',verboseDemangling:'0'),flagsViewOpen:'1',fontScale:14,fontUsePx:'0',j:2,lang:llvm,libs:!(),options:'',overrides:!(),selection:(endColumn:1,endLineNumber:1,positionColumn:1,positionLineNumber:1,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),source:1),l:'5',n:'0',o:'+clang+(trunk)+(Editor+%231)',t:'0')),k:31.41581818814172,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:ir,i:('-fno-discard-value-names':'0',compilerName:'clang+(trunk)',demangle-symbols:'0',editorid:1,filter-attributes:'0',filter-comments:'0',filter-debug-info:'0',filter-instruction-metadata:'0',fontScale:14,fontUsePx:'0',j:2,selection:(endColumn:14,endLineNumber:3,positionColumn:14,positionLineNumber:3,selectionStartColumn:8,selectionStartLineNumber:3,startColumn:8,startLineNumber:3),show-optimized:'0',treeid:0,wrap:'1'),l:'5',n:'0',o:'LLVM+IR+Viewer+clang+(trunk)+(Editor+%231,+Compiler+%232)',t:'0')),k:33.33333333333333,l:'4',n:'0',o:'',s:0,t:'0')),l:'2',n:'0',o:'',t:'0')),version:4) - [`uitofp`](https://godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(filename:'1',fontScale:14,fontUsePx:'0',j:1,lang:llvm,selection:(endColumn:10,endLineNumber:3,positionColumn:10,positionLineNumber:3,selectionStartColumn:10,selectionStartLineNumber:3,startColumn:10,startLineNumber:3),source:'define+dso_local+noundef+float+@main()+%7B%0Aentry:%0A++%25X+%3D+uitofp+i32+257+to+float%0A++ret+float+%25X%0A%7D%0A'),l:'5',n:'0',o:'LLVM+IR+source+%231',t:'0')),k:35.25084847852495,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:compiler,i:(compiler:irclangtrunk,filters:(b:'0',binary:'1',binaryObject:'1',commentOnly:'0',debugCalls:'1',demangle:'0',directives:'0',execute:'1',intel:'0',libraryCode:'0',trim:'1',verboseDemangling:'0'),flagsViewOpen:'1',fontScale:14,fontUsePx:'0',j:2,lang:llvm,libs:!(),options:'',overrides:!(),selection:(endColumn:1,endLineNumber:1,positionColumn:1,positionLineNumber:1,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),source:1),l:'5',n:'0',o:'+clang+(trunk)+(Editor+%231)',t:'0')),k:31.41581818814172,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:ir,i:('-fno-discard-value-names':'0',compilerName:'clang+(trunk)',demangle-symbols:'0',editorid:1,filter-attributes:'0',filter-comments:'0',filter-debug-info:'0',filter-instruction-metadata:'0',fontScale:14,fontUsePx:'0',j:2,selection:(endColumn:14,endLineNumber:3,positionColumn:14,positionLineNumber:3,selectionStartColumn:8,selectionStartLineNumber:3,startColumn:8,startLineNumber:3),show-optimized:'0',treeid:0,wrap:'1'),l:'5',n:'0',o:'LLVM+IR+Viewer+clang+(trunk)+(Editor+%231,+Compiler+%232)',t:'0')),k:33.33333333333333,l:'4',n:'0',o:'',s:0,t:'0')),l:'2',n:'0',o:'',t:'0')),version:4) - [`sitofp`](https://godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(filename:'1',fontScale:14,fontUsePx:'0',j:1,lang:llvm,selection:(endColumn:15,endLineNumber:4,positionColumn:15,positionLineNumber:4,selectionStartColumn:15,selectionStartLineNumber:4,startColumn:15,startLineNumber:4),source:'define+dso_local+noundef+float+@main()+%7B%0Aentry:%0A++%25X+%3D+sitofp+i32+257+to+float%0A++ret+float+%25X%0A%7D%0A'),l:'5',n:'0',o:'LLVM+IR+source+%231',t:'0')),k:35.25084847852495,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:compiler,i:(compiler:irclangtrunk,filters:(b:'0',binary:'1',binaryObject:'1',commentOnly:'0',debugCalls:'1',demangle:'0',directives:'0',execute:'1',intel:'0',libraryCode:'0',trim:'1',verboseDemangling:'0'),flagsViewOpen:'1',fontScale:14,fontUsePx:'0',j:2,lang:llvm,libs:!(),options:'',overrides:!(),selection:(endColumn:1,endLineNumber:1,positionColumn:1,positionLineNumber:1,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),source:1),l:'5',n:'0',o:'+clang+(trunk)+(Editor+%231)',t:'0')),k:31.41581818814172,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:ir,i:('-fno-discard-value-names':'0',compilerName:'clang+(trunk)',demangle-symbols:'0',editorid:1,filter-attributes:'0',filter-comments:'0',filter-debug-info:'0',filter-instruction-metadata:'0',fontScale:14,fontUsePx:'0',j:2,selection:(endColumn:1,endLineNumber:1,positionColumn:1,positionLineNumber:1,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),show-optimized:'0',treeid:0,wrap:'1'),l:'5',n:'0',o:'LLVM+IR+Viewer+clang+(trunk)+(Editor+%231,+Compiler+%232)',t:'0')),k:33.33333333333333,l:'4',n:'0',o:'',s:0,t:'0')),l:'2',n:'0',o:'',t:'0')),version:4) - [`ptrtoint`](https://godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(filename:'1',fontScale:14,fontUsePx:'0',j:1,lang:llvm,selection:(endColumn:1,endLineNumber:7,positionColumn:1,positionLineNumber:7,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),source:'define+dso_local+noundef+i64+@main()+%7B%0Aentry:%0A++%25P+%3D+alloca+i32%0A++%25X+%3D+ptrtoint+ptr+%25P+to+i64%0A++ret+i64+%25X%0A%7D%0A'),l:'5',n:'0',o:'LLVM+IR+source+%231',t:'0')),k:35.25084847852495,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:compiler,i:(compiler:irclangtrunk,filters:(b:'0',binary:'1',binaryObject:'1',commentOnly:'0',debugCalls:'1',demangle:'0',directives:'0',execute:'1',intel:'0',libraryCode:'0',trim:'1',verboseDemangling:'0'),flagsViewOpen:'1',fontScale:14,fontUsePx:'0',j:2,lang:llvm,libs:!(),options:'',overrides:!(),selection:(endColumn:1,endLineNumber:1,positionColumn:1,positionLineNumber:1,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),source:1),l:'5',n:'0',o:'+clang+(trunk)+(Editor+%231)',t:'0')),k:31.41581818814172,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:ir,i:('-fno-discard-value-names':'0',compilerName:'clang+(trunk)',demangle-symbols:'0',editorid:1,filter-attributes:'0',filter-comments:'0',filter-debug-info:'0',filter-instruction-metadata:'0',fontScale:14,fontUsePx:'0',j:2,selection:(endColumn:16,endLineNumber:4,positionColumn:16,positionLineNumber:4,selectionStartColumn:8,selectionStartLineNumber:4,startColumn:8,startLineNumber:4),show-optimized:'0',treeid:0,wrap:'1'),l:'5',n:'0',o:'LLVM+IR+Viewer+clang+(trunk)+(Editor+%231,+Compiler+%232)',t:'0')),k:33.33333333333333,l:'4',n:'0',o:'',s:0,t:'0')),l:'2',n:'0',o:'',t:'0')),version:4) - [`ptrtoaddr`](https://godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(filename:'1',fontScale:14,fontUsePx:'0',j:1,lang:llvm,selection:(endColumn:17,endLineNumber:4,positionColumn:17,positionLineNumber:4,selectionStartColumn:17,selectionStartLineNumber:4,startColumn:17,startLineNumber:4),source:'define+dso_local+noundef+i64+@main()+%7B%0Aentry:%0A++%25P+%3D+alloca+i32%0A++%25X+%3D+ptrtoaddr+ptr+%25P+to+i64%0A++ret+i64+%25X%0A%7D%0A'),l:'5',n:'0',o:'LLVM+IR+source+%231',t:'0')),k:35.25084847852495,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:compiler,i:(compiler:irclangtrunk,filters:(b:'0',binary:'1',binaryObject:'1',commentOnly:'0',debugCalls:'1',demangle:'0',directives:'0',execute:'1',intel:'0',libraryCode:'0',trim:'1',verboseDemangling:'0'),flagsViewOpen:'1',fontScale:14,fontUsePx:'0',j:2,lang:llvm,libs:!(),options:'',overrides:!(),selection:(endColumn:1,endLineNumber:1,positionColumn:1,positionLineNumber:1,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),source:1),l:'5',n:'0',o:'+clang+(trunk)+(Editor+%231)',t:'0')),k:31.41581818814172,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:ir,i:('-fno-discard-value-names':'0',compilerName:'clang+(trunk)',demangle-symbols:'0',editorid:1,filter-attributes:'0',filter-comments:'0',filter-debug-info:'0',filter-instruction-metadata:'0',fontScale:14,fontUsePx:'0',j:2,selection:(endColumn:2,endLineNumber:6,positionColumn:2,positionLineNumber:6,selectionStartColumn:2,selectionStartLineNumber:6,startColumn:2,startLineNumber:6),show-optimized:'0',treeid:0,wrap:'1'),l:'5',n:'0',o:'LLVM+IR+Viewer+clang+(trunk)+(Editor+%231,+Compiler+%232)',t:'0')),k:33.33333333333333,l:'4',n:'0',o:'',s:0,t:'0')),l:'2',n:'0',o:'',t:'0')),version:4) - [`inttoptr`](https://godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(filename:'1',fontScale:14,fontUsePx:'0',j:1,lang:llvm,selection:(endColumn:13,endLineNumber:4,positionColumn:13,positionLineNumber:4,selectionStartColumn:13,selectionStartLineNumber:4,startColumn:13,startLineNumber:4),source:'define+dso_local+noundef+ptr+@main()+%7B%0Aentry:%0A++%25X+%3D+inttoptr+i32+255+to+ptr%0A++ret+ptr+%25X%0A%7D%0A'),l:'5',n:'0',o:'LLVM+IR+source+%231',t:'0')),k:35.25084847852495,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:compiler,i:(compiler:irclangtrunk,filters:(b:'0',binary:'1',binaryObject:'1',commentOnly:'0',debugCalls:'1',demangle:'0',directives:'0',execute:'1',intel:'0',libraryCode:'0',trim:'1',verboseDemangling:'0'),flagsViewOpen:'1',fontScale:14,fontUsePx:'0',j:2,lang:llvm,libs:!(),options:'',overrides:!(),selection:(endColumn:1,endLineNumber:1,positionColumn:1,positionLineNumber:1,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),source:1),l:'5',n:'0',o:'+clang+(trunk)+(Editor+%231)',t:'0')),k:31.41581818814172,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:ir,i:('-fno-discard-value-names':'0',compilerName:'clang+(trunk)',demangle-symbols:'0',editorid:1,filter-attributes:'0',filter-comments:'0',filter-debug-info:'0',filter-instruction-metadata:'0',fontScale:14,fontUsePx:'0',j:2,selection:(endColumn:16,endLineNumber:3,positionColumn:16,positionLineNumber:3,selectionStartColumn:8,selectionStartLineNumber:3,startColumn:8,startLineNumber:3),show-optimized:'0',treeid:0,wrap:'1'),l:'5',n:'0',o:'LLVM+IR+Viewer+clang+(trunk)+(Editor+%231,+Compiler+%232)',t:'0')),k:33.33333333333333,l:'4',n:'0',o:'',s:0,t:'0')),l:'2',n:'0',o:'',t:'0')),version:4) - [`bitcast`](https://godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(filename:'1',fontScale:14,fontUsePx:'0',j:1,lang:llvm,selection:(endColumn:28,endLineNumber:3,positionColumn:28,positionLineNumber:3,selectionStartColumn:28,selectionStartLineNumber:3,startColumn:28,startLineNumber:3),source:'define+dso_local+noundef+i8+@main()+%7B%0Aentry:%0A++%25X+%3D+bitcast+i8+255+to+i8%0A++ret+i8+%25X%0A%7D%0A'),l:'5',n:'0',o:'LLVM+IR+source+%231',t:'0')),k:35.25084847852495,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:compiler,i:(compiler:irclangtrunk,filters:(b:'0',binary:'1',binaryObject:'1',commentOnly:'0',debugCalls:'1',demangle:'0',directives:'0',execute:'1',intel:'0',libraryCode:'0',trim:'1',verboseDemangling:'0'),flagsViewOpen:'1',fontScale:14,fontUsePx:'0',j:2,lang:llvm,libs:!(),options:'',overrides:!(),selection:(endColumn:1,endLineNumber:1,positionColumn:1,positionLineNumber:1,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),source:1),l:'5',n:'0',o:'+clang+(trunk)+(Editor+%231)',t:'0')),k:31.41581818814172,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:ir,i:('-fno-discard-value-names':'0',compilerName:'clang+(trunk)',demangle-symbols:'0',editorid:1,filter-attributes:'0',filter-comments:'0',filter-debug-info:'0',filter-instruction-metadata:'0',fontScale:14,fontUsePx:'0',j:2,selection:(endColumn:15,endLineNumber:3,positionColumn:15,positionLineNumber:3,selectionStartColumn:8,selectionStartLineNumber:3,startColumn:8,startLineNumber:3),show-optimized:'0',treeid:0,wrap:'1'),l:'5',n:'0',o:'LLVM+IR+Viewer+clang+(trunk)+(Editor+%231,+Compiler+%232)',t:'0')),k:33.33333333333333,l:'4',n:'0',o:'',s:0,t:'0')),l:'2',n:'0',o:'',t:'0')),version:4) - [`addrspacecast`](https://godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(filename:'1',fontScale:14,fontUsePx:'0',j:1,lang:llvm,selection:(endColumn:7,endLineNumber:2,positionColumn:7,positionLineNumber:2,selectionStartColumn:7,selectionStartLineNumber:2,startColumn:7,startLineNumber:2),source:'define+dso_local+noundef+ptr+addrspace(1)+@main()+%7B%0Aentry:%0A++%25P+%3D+alloca+i32%0A++%25X+%3D+addrspacecast+ptr+%25P+to+ptr+addrspace(1)%0A++ret+ptr+addrspace(1)+%25X%0A%7D%0A'),l:'5',n:'0',o:'LLVM+IR+source+%231',t:'0')),k:35.25084847852495,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:compiler,i:(compiler:irclangtrunk,filters:(b:'0',binary:'1',binaryObject:'1',commentOnly:'0',debugCalls:'1',demangle:'0',directives:'0',execute:'1',intel:'0',libraryCode:'0',trim:'1',verboseDemangling:'0'),flagsViewOpen:'1',fontScale:14,fontUsePx:'0',j:2,lang:llvm,libs:!(),options:'',overrides:!(),selection:(endColumn:1,endLineNumber:1,positionColumn:1,positionLineNumber:1,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),source:1),l:'5',n:'0',o:'+clang+(trunk)+(Editor+%231)',t:'0')),k:31.41581818814172,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:ir,i:('-fno-discard-value-names':'0',compilerName:'clang+(trunk)',demangle-symbols:'0',editorid:1,filter-attributes:'0',filter-comments:'0',filter-debug-info:'0',filter-instruction-metadata:'0',fontScale:14,fontUsePx:'0',j:2,selection:(endColumn:21,endLineNumber:4,positionColumn:21,positionLineNumber:4,selectionStartColumn:8,selectionStartLineNumber:4,startColumn:8,startLineNumber:4),show-optimized:'0',treeid:0,wrap:'1'),l:'5',n:'0',o:'LLVM+IR+Viewer+clang+(trunk)+(Editor+%231,+Compiler+%232)',t:'0')),k:33.33333333333333,l:'4',n:'0',o:'',s:0,t:'0')),l:'2',n:'0',o:'',t:'0')),version:4) The suggested fix is to: - Remove the trailing `-to` from any instruction parsed from the LLVM IR docs, as it is _probably_ a casting operation. - Add `ptrtoaddr` to the `llvmStatements` list, as it didn't seem to be recognized as an operation otherwise (and so failed the precondition to have a 'View IR Documentation' link). The diff for the generated documentation may seem larger than expected, that's because the IDs of the embedded HTML seem to have changed since last time. |
||
|
|
b9dc265973 |
Clojure language support (#8146)
<img width="1405" height="474" alt="Clojure in Compiler Explorer 2" src="https://github.com/user-attachments/assets/76dfed9b-d0eb-4764-b371-9c6023088a50" /> With Macro Expansion: <img width="1642" height="594" alt="image" src="https://github.com/user-attachments/assets/8b511af9-3617-426e-868d-5a99e5db5756" /> TODO - [x] Language configuration - [x] Compile via wrapper - Inject namespace if necessary to simplify minimal code sample - Parse Unix style command line parameters into compiler bindings - Place file in path according to namespace - [x] Install some versions of Clojure [PR here](https://github.com/compiler-explorer/infra/pull/1849) - [x] Macroexpansion view (modeled on Rust macro expansion view) - [x] Filter out command line options that would break wrapper operation - [x] ~~Parse `--help` output to a list of options~~ Reverted because not applicable. - [x] Short form compiler options - [x] Support Clojure compiler settings via env var, like `JAVA_OPTS=-Dclojure.compiler.direct-linking=true -Dclojure.compiler.elide-meta=[:doc,:file]` NOT DOING - [x] ~~Support loading dependencies~~ Non-trivial enhancement. Not necessary for initial release. --------- Co-authored-by: Matt Godbolt <matt@godbolt.org> |
||
|
|
3fc36bb322 | Tweaks | ||
|
|
fd39af7be8 |
Add AI-powered duplicate detection with strict filtering (#8176)
## Summary Adds optional AI-powered duplicate detection using Claude API to eliminate false positives from string similarity matching. The AI analyzes candidate groups with strict rules and only confirms true duplicates. ## Problem The tag-stripping improvement (#8175) reduced false positives significantly, but string similarity still produces noise: - Different assemblers grouped together: "fasm", "YASM", "AsmX" (all different tools) - Unrelated features: "language tooltips" vs "language detection" (different features) - Specific vs general requests: "EWARM" vs "ARM execution" (specific toolchain vs general support) **Before AI filtering:** 63 groups with ~60% false positive rate ## Solution ### Two-phase detection: 1. **Broadphase:** String similarity (fast, high recall) creates candidate groups 2. **AI Refinement:** Claude Sonnet 4 applies strict rules to confirm duplicates ### Strict AI rules: - ✓ **Duplicates:** Same tool with spelling/version variants ("NumPy" = "numpy", "GCC 13" = "GCC 13.1") - ✗ **NOT duplicates:** Different named tools ("fasm" ≠ "YASM"), related features ("tooltips" ≠ "detection") ### Features: - Optional `--use-ai` flag (requires `ANTHROPIC_API_KEY` in `.env` file) - Adjustable confidence threshold with `--ai-confidence` (default: 0.7) - AI reasoning included in markdown reports for transparency - Graceful fallback if API key not available ## Results Testing on 843 open CE issues: | Phase | Groups | Quality | |-------|--------|---------| | Broadphase (string similarity) | 63 | ~40% accurate | | AI filtering | 5 | **100% accurate** | ### Confirmed duplicates found: 1. Forth language requests (identical) 2. Documentation out-of-date reports (#5937 + #4906) 3. objdump tool requests (#4633 + #3139) 4. Haskell vector library requests 5. Make/webpack build issues (same bug) ### False positives eliminated: - ✗ fasm/YASM/AsmX (different assemblers) - ✗ Language tooltips vs detection (different features) - ✗ ARM vs EWARM execution (general vs specific) - ✗ Lua vs LUAU (related but different languages) - ✗ OpenBLAS vs OpenSSL (different libraries) ## Cost Analysis - 63 groups × ~400-500 tokens/group ≈ 25-30k tokens per run - Cost: **~$0.15 per run** with Sonnet 4 (based on actual usage) - Runs only when `--use-ai` flag is used - Very affordable for occasional duplicate detection ## Configuration Create `.env` file in `etc/scripts/gh_tool/`: ```bash ANTHROPIC_API_KEY=sk-ant-... ``` The `.env` file is gitignored for security. ## Example Usage ```bash # Standard detection (no AI) uv run gh_tool find-duplicates /tmp/report.md # AI-powered detection uv run gh_tool find-duplicates /tmp/report.md --use-ai # Adjust AI confidence threshold uv run gh_tool find-duplicates /tmp/report.md --use-ai --ai-confidence 0.8 ``` ## Dependencies Added - `anthropic>=0.40.0` - Claude API SDK - `python-dotenv>=1.0.0` - Environment variable management ## Test Plan - [x] All existing tests pass - [x] Tested on 843 real CE issues with 100% accuracy - [x] Graceful fallback when API key not available - [x] AI reasoning included in markdown reports - [x] Code passes ruff linting 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
70df51df29 |
Improve duplicate issue detection by stripping category tags (#8175)
## Summary Fixes the duplicate issue detection algorithm to strip `[TAGS]` from issue titles before calculating similarity. This eliminates massive false-positive groups caused by shared tag prefixes like `[LIB REQUEST]` or `[COMPILER REQUEST]`. ## Problem The previous implementation would create groups of 98+ completely unrelated issues just because they shared common tag prefixes. For example: - `[LIB REQUEST] Add ULib Library` - `[LIB REQUEST] musl vs glibc` - `[REQUEST] Float explorer support` - `[REQUEST] Support logging in` These would all be grouped together despite being completely different requests. ## Solution - Strip `[TAGS]` before calculating text similarity using a compiled regex pattern - Compare only the actual content: "Add ULib Library" vs "musl vs glibc" → low similarity ✓ ## Additional Changes - Added `ruff` as a project dependency for consistent code quality - Fixed linting issues (unused imports, updated to `datetime.UTC`) - Updated tests to reflect new tag-stripping behavior ## Results Testing on actual CE issues shows dramatic improvement: - **Before**: 83 groups, with Group 1 containing 98 unrelated issues (98% false positives) - **After**: 63 groups, with Group 1 containing 2 legitimate "Forth" duplicates (actual duplicates) Most groups are now legitimate duplicates like: - Three "Problem with [opcode]" bugs - Two TI ARM compiler requests - Multiple MSVC version requests ## Test Plan - [x] All existing tests pass - [x] Tested on real CE issue data showing 20+ group reduction - [x] Code passes ruff linting and formatting 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
4cb1416c2a |
Add gh_tool CLI for GitHub repository automation (#8170)
This PR adds a new Python CLI tool for automating GitHub repository
management tasks.
## Overview
The initial implementation provides duplicate issue detection using text
similarity analysis. This is the first step toward automating repository
triage tasks.
## Features
- **Click-based CLI** with subcommands for future extensibility
- **find-duplicates command** for detecting duplicate issues using text
similarity
- Uses **gh CLI** for GitHub API access (no token management needed)
- Text similarity using `difflib.SequenceMatcher` (ratio-based
algorithm)
- Configurable similarity threshold (default: 0.6)
- Progress bar for long-running comparisons
- Age filtering support (`--min-age` parameter)
- Standard Python src-layout with **uv** for dependency management
- **Comprehensive test suite** with pytest (integrated into CI)
## Project Structure
```
etc/scripts/gh_tool/
├── src/gh_tool/ # Main package
│ ├── cli.py # Click-based CLI interface
│ └── duplicate_finder.py # Core duplicate detection logic
├── tests/ # Test suite
│ └── test_duplicate_finder.py
├── docs/ # Documentation
│ ├── TRIAGE-CRITERIA.md # Triage guidelines from manual review
│ └── PHASE1-FINDINGS.md # Historical analysis of 855 issues
├── pyproject.toml # Package configuration
└── README.md # Usage documentation
```
## Usage
```bash
cd etc/scripts/gh_tool
uv sync
uv run gh_tool find-duplicates /tmp/report.md
```
**Options:**
- `--threshold FLOAT` - Similarity threshold 0-1 (default: 0.6)
- `--state {all,open,closed}` - Issue state to check (default: open)
- `--min-age DAYS` - Only check issues older than N days (default: 0)
- `--limit INTEGER` - Maximum number of issues to fetch (default: 1000)
- `--repo TEXT` - GitHub repository in owner/repo format (default:
compiler-explorer/compiler-explorer)
**Example:**
```bash
# Find high-confidence duplicates in open issues
uv run gh_tool find-duplicates /tmp/report.md --threshold 0.85
# Check all issues older than 30 days
uv run gh_tool find-duplicates /tmp/report.md --state all --min-age 30
```
## Testing
The tool includes comprehensive test coverage:
- Unit tests for similarity calculation
- Integration tests for duplicate detection
- Edge case handling (transitive grouping, age filtering, threshold
sensitivity)
- Report generation validation
**Run tests:**
```bash
cd etc/scripts/gh_tool
uv run pytest -v
```
Tests are integrated into CI and run on every push.
## Documentation
- **`README.md`**: Complete usage guide with examples
- **`docs/TRIAGE-CRITERIA.md`**: Comprehensive triage guidelines
developed during manual review of 22+ issues
- **`docs/PHASE1-FINDINGS.md`**: Historical analysis context from
initial 855 issue review
## CI Integration
The tool is integrated into the GitHub Actions workflow:
- `uv` is installed via `astral-sh/setup-uv@v6`
- Tests run automatically on every push
- Ensures tool remains functional as codebase evolves
## Next Steps
Future enhancements planned for follow-up PRs:
- GitHub Action for automatic duplicate detection on new issues
- Additional automation tools (upstream health checker, label validator,
etc.)
- Automated triage reports
## Changes in this PR
- ✅ Core duplicate detection implementation
- ✅ Comprehensive test suite (192 lines)
- ✅ CI integration
- ✅ Complete documentation
- ✅ Example triage criteria and findings
---------
Co-authored-by: Claude <noreply@anthropic.com>
|
||
|
|
b8ef5e6d26 | update docs | ||
|
|
e776af64a0 | propwiz add objdump support | ||
|
|
2b0813c182 | propwizard add undname and sdk param | ||
|
|
d1589ac332 | Bump black from 23.12.1 to 24.3.0 in /etc/scripts/ce-properties-wizard (#8162) | ||
|
|
16af4186ad | CE Properties Wizard: Interactive tool for adding compilers (#7934) | ||
|
|
3160f628cc |
Fix AMD64 SHR missing and PTX documentation extraction (#8141)
Fixes test failures in assembly documentation generation. ## Import fixes All docenizers: Change imports from `../base.js` to `../../../types/assembly-docs.interfaces.js` with `import type`. ## AMD64: Fix missing SHR instruction The docenizer only read the first `<table>` in HTML files. Files like `SAL:SAR:SHL:SHR.html` have multiple tables - SHR was in table 2. **Fix**: Read all tables and combine results. ## PTX: Fix broken documentation extraction The PTX website structure changed. The old code looked for navigation links like "Instructions: add, sub, mul" which no longer exist. **Fix**: - Find instructions by scanning `<code>` blocks - Map each to its documentation section - Extract text from Description paragraphs - Ensure common instructions (add, sub) map to their definition sections, not changelogs All asm-docs tests now pass. --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
60497c6b9a |
Use uv to install python dependencies in docenizers (#8140)
Tested locally and it works BUT the created `.ts` files are still broken similar to what was found in #8101 --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> |
||
|
|
1f7099057c | additional propcheck | ||
|
|
4ff8e7917d |
Migrate 'wine' msvc to windows (#8005)
- Converts all "wine" compilers to be "ex wine" in Windows. uses different IDs to avoid clashes BUT aliases in the old IDs. - removes wine and firejail config |
||
|
|
e9011ec592 |
Phase 3: Automate Golden Layout CSS Import Processing (#7977)
## Problem
The SCSS migration encountered issues with Golden Layout CSS imports:
1. Sass `@import` statements are deprecated and will be removed in Dart
Sass 3.0.0
2. `@use` cannot be used inside conditional blocks like
`html[data-theme='default']`
3. The `~` webpack resolver doesn't work with `@use`, only `@import`
Current problematic code:
```scss
html[data-theme='default'] {
@import '~golden-layout/src/css/goldenlayout-light-theme';
}
```
## Solution
Added a custom webpack loader that automatically inlines Golden Layout
CSS content at build time.
**Custom Loader** (`etc/webpack/replace-golden-layout-imports.js`):
- Detects `@import` statements for `~golden-layout/src/css/*` files
- Reads CSS content from `node_modules/golden-layout/src/css/`
- Replaces import statements with actual CSS content
- Uses generalized regex to handle any golden-layout CSS file
**Integration & Cleanup**:
- Positioned before sass-loader in webpack processing chain
- Automatically syncs with Golden Layout package updates
- Consolidated all webpack loaders in `etc/webpack/` directory
- Moved pug loader from `etc/scripts/parsed-pug/` to `etc/webpack/`
- Converted both loaders to ES modules for consistency
- Removed unnecessary `package.json` override
## Result
Eliminates Sass deprecation warnings while preserving existing theme
architecture. Build-time processing with no runtime overhead. Cleaner
webpack loader organization.
## Files Changed
- `webpack.config.esm.ts` - Updated loader paths and added Golden Layout
processor
- `etc/webpack/replace-golden-layout-imports.js` - Custom loader
implementation
- `etc/webpack/parsed-pug-loader.js` - Moved from
`etc/scripts/parsed-pug/` and converted to ES modules
- Removed `etc/webpack/package.json` - No longer needed with ES modules
- Removed `etc/scripts/parsed-pug/` directory - Consolidated into
webpack directory
---------
Co-authored-by: Claude <noreply@anthropic.com>
|
||
|
|
9c72429e08 |
Remove duplicates in SASS docs (#7991)
In PR https://github.com/compiler-explorer/compiler-explorer/pull/7976, I forgot to handle the case where same instructions have different descriptions. This PR fixes the script and removes the duplicates from the generated file. The SASS docs are extracted from multiple tables from https://docs.nvidia.com/cuda/cuda-binary-utilities/index.html#instruction-set-reference. For example, - Table 4. Maxwell and Pascal Instruction Set - ... - Table 8. Hopper Instruction Set - Table 8. Blackwell Instruction Set (wait...what? both tables are table 8? whatever...) Previously, only the duplications for the (opcode, descriptions) pair were removed. In this PR, we only check the duplications based on the opcode and only keep the last one (based on the assumption that the newer ones are better). I manually went through the removed duplicates, and found that - No instruction actually changed the meaning across generations (I would be very surprised if they did so). - Most of the changes are minor fixes like changing capitalization (e.g., `generic Memory` -> `Generic Memory`) or fixing typo (e.g., `Local within Shared Memory Window` -> `Load within Shared Memory Window`) - A couple of the descriptions are for whatever reason simplified (e.g., `LOP3`: `3-input Logic Operation` -> `Logic Operation`), which is a bit unfortunate. |
||
|
|
ef264acace |
Update to Privacy Policy (#7983)
A whole bunch of changes I've been meaning to make: - Clarify things and put the TLDR at the top - Remove my own darn address etc (after checking this is OK) - Clarifying the goo.gl situation - Paving the way for the explain feature |
||
|
|
bdd776634f |
[Triton] Add Triton 3.4.0 and tests (#7974)
- Add Triton 3.4.0 released July 30th (c.f. https://github.com/compiler-explorer/infra/pull/1727). It came sooner than I expected. - Add `test_triton_wrapper.py` for testing the correctness of wrapper. |
||
|
|
21f6cdcf20 |
[Triton] Fix AMD lld issue (#7975)
Fix issue with AMD by removing the dependency on lld (tested locally by
moving `/usr/bin/ld.lld` and `/opt/rocm/llvm/bin/ld.lld`)
```
File "/opt/compiler-explorer/triton/v3.3.1/lib/python3.12/site-packages/triton/runtime/jit.py", line 347, in <lambda>
return lambda *args, **kwargs: self.run(grid=grid, warmup=False, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/compiler-explorer/triton/v3.3.1/lib/python3.12/site-packages/triton/runtime/jit.py", line 569, in run
kernel = self.compile(src, target=target, options=options.__dict__)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/compiler-explorer/triton/v3.3.1/lib/python3.12/site-packages/triton/compiler/compiler.py", line 230, in compile
key = f"{triton_key()}-{src.hash()}-{backend.hash()}-{options.hash()}-{str(sorted(env_vars.items()))}"
^^^^^^^^^^^^^^
File "/opt/compiler-explorer/triton/v3.3.1/lib/python3.12/site-packages/triton/backends/amd/compiler.py", line 418, in hash
version = subprocess.check_output([HIPBackend.path_to_rocm_lld(), "--version"], encoding='utf-8')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/compiler-explorer/triton/v3.3.1/lib/python3.12/site-packages/triton/backends/amd/compiler.py", line 197, in path_to_rocm_lld
raise Exception("ROCm linker /opt/rocm/llvm/bin/ld.lld not found. Set 'TRITON_HIP_LLD_PATH' to its path.")
Exception: ROCm linker /opt/rocm/llvm/bin/ld.lld not found. Set 'TRITON_HIP_LLD_PATH' to its path.
```
|
||
|
|
97c6ce61ec |
Update SASS docs and fix link (#7976)
- Change SASS instruction link from `https://docs.nvidia.com/cuda/cuda-binary-utilities/index.html#id14` to `https://docs.nvidia.com/cuda/cuda-binary-utilities/index.html#instruction-set-reference`. In the former URL, the tag (`#id14`) no longer exists on the webpage. - Run `etc/scripts/docenizers/docenizer-ptx-sass.py` and add some new instructions from the website. |
||
|
|
8befc91a79 |
Add Triton language and compiler (#7919)
Close #5530. Infra: https://github.com/compiler-explorer/infra/pull/1711. Previous work by @siboehm at #5531 ## Summary This pull request introduces support for the [Triton](https://github.com/triton-lang/triton) language, a Python-based DSL for writing highly efficient GPU kernels. - [x] **New Language Support**: I've added comprehensive support for the Triton programming language, allowing users to compile and inspect Triton kernels within Compiler Explorer. (c.f., `lib/compilers/triton.ts`) - [x] **Python Wrapper for Compilation**: A new Python wrapper script (`triton_wrapper.py`) has been introduced to manage Triton compilation, patching its behavior to dump compiled kernels and intermediate representations without requiring actual execution, and consolidating the output for Compiler Explorer. - [x] **Device Assembly View**: Enables viewing of generated device assembly code (e.g., PTX, AMDGCN) and various intermediate representations (MLIR, LLVM IR) produced by the Triton compiler. - [x] **MLIR Parsing**: New parsers (`asm-parser-mlir.ts` and `mlir-pass-dump-parser.ts`) have been added to correctly interpret and display MLIR assembly and optimization pass dumps, including source location information. - [x] **Multi-Version & Multi-Backend Support**: Painstakingly includes all 8 versions (from 2.2.0 to 3.3.1) of Triton that supports Python 3.12. Supports both CUDA and HIP backend for Triton 3. ## Screenshots Source and assembly: <img width="1354" height="789" alt="image" src="https://github.com/user-attachments/assets/c29650ff-2073-40e0-a9e6-ff8377094b5e" /> Device view for MLIR and LLVM IR: <img width="1402" height="670" alt="image" src="https://github.com/user-attachments/assets/43dd5c68-ca78-41b1-9865-e97ffe3ef73c" /> Opt pipeline viewer: <img width="1408" height="668" alt="image" src="https://github.com/user-attachments/assets/429eef8c-aaac-4781-aafa-39ef0ffc7241" /> Diff of TTIR in Triton 3.3.1 vs 2.3.0: <img width="1580" height="726" alt="image" src="https://github.com/user-attachments/assets/a928c893-dd9a-4c3a-a048-14046e56a14c" /> CUDA & HIP: <img width="1596" height="800" alt="image" src="https://github.com/user-attachments/assets/c18800c3-cfad-4e5e-96de-ba92c9f236ea" /> ## Implementation Details (and Notes for Reviewers) - For Device Assembly View, I Implemented `MlirAsmParser` for parsing MLIR assembly. Technically MLIR is not an assembly language, but there is no better choice to make the source line map work w/ device view. - I Implemented `MlirPassDumpParser` for processing MLIR optimization pass dumps. I tried to subclass `LlvmPassDumpParser`, but they turn out to be too different to worth doing it. - `LlvmPassDumpParser` made some assumptions that do not hold true for MLIR passed. Some effort is put to make sure that the passes are properly diff-ed, since some passes can run multiple times and also sometimes pass can be nested (i.e., some number of `before`s followed by some number of `after`s) - A lot of effort is put into `patch_triton` to make sure that the we only compile the kernel without actually running it, and that needs to work across all the versions we support. ## Steps to Run Locally 1. Clone https://github.com/ShawnZhong/compiler-explorer-infra.git 2. Install Triton to `/opt/compiler-explorer/triton`: ```sh $ cd compiler-explorer-infra $ ./bin/ce_install install triton $ ls /opt/compiler-explorer/triton # v2.2.0 v2.3.0 v2.3.1 v3.0.0 v3.1.0 v3.2.0 v3.3.0 v3.3.1 ``` 3. Clone https://github.com/ShawnZhong/compiler-explorer.git and checkout branch `triton` 4. Run Compiler Explorer ```sh make EXTRA_ARGS='--language triton' dev ``` 5. Enjoy --------- Co-authored-by: Matt Godbolt <matt@godbolt.org> |
||
|
|
534e1428fa | Update AVR instruction documentation for 2024 manual (#7947) | ||
|
|
615b4a003a | Feature/shortlink migration script (#7912) | ||
|
|
42cf30d7a6 | Decouple Site Template images from template name (#7883) | ||
|
|
9e9e035b28 |
Rephrase frontend imports (#7824)
- Removes `rootDirs` so all imports will be relative in the frontend - Updates (and unifies) imports to be `../types/...` etc instead of relying on "types" being in the rootDir for the frontend. - Fixes one type that was being picked up from `lib` in the frontend. - Adds a precommit hook to check in future Paves the way to writing _unit_ tests for the frontend for the subset of the frontend code we can import from `node` (which might be a lot of it!) |
||
|
|
bd80d171de |
Add raku language and rakudo compiler (#7784)
This relies on https://github.com/compiler-explorer/infra/pull/1658 to put rakudo release versions in the right spot.  There are more things that can be added, such as opcode tooltips, suggested options for `--target=parse`, `--target=ast`, `--target=optimize`, and probably other things I haven't thought of yet. But this pull request should be a good starting point, and fine to merge without waiting for further features. |
||
|
|
1e07e16758 |
Adapt Julia wrapper to v1.12 (#7634)
This is needed for https://github.com/JuliaLang/julia/issues/58286. CC @vchuravy. --------- Co-authored-by: Valentin Churavy <vchuravy@users.noreply.github.com> |
||
|
|
637564f389 |
Migrate to Bootstrap 5 (#7582)
This PR completes the migration from Bootstrap 4 to Bootstrap 5.3.5 following the plan outlined in [docs/Bootstrap5Migration.md](https://github.com/compiler-explorer/compiler-explorer/blob/mg/bootstrap5/docs/Bootstrap5Migration.md). ## Migration Process We followed a phased approach as documented in the migration plan: 1. **Phase 1: Dependency Updates and Basic Setup** - Updated Bootstrap from 4.6.2 to 5.3.5 - Added @popperjs/core dependency (replacing Popper.js) - Updated Tom Select theme from bootstrap4 to bootstrap5 2. **Phase 2: Global CSS Class Migration** - Updated directional utility classes (ml/mr → ms/me) - Updated floating utility classes (float-left/right → float-start/end) - Updated text alignment classes (text-left/right → text-start/end) 3. **Phase 3: HTML Attribute Updates** - Updated data attributes to use Bootstrap 5 prefixes (data-bs-toggle, data-bs-target, etc.) - Fixed tab navigation issues 4. **Phase 4: JavaScript API Compatibility Layer** - Created bootstrap-utils.ts compatibility layer - Updated component initialization for modals, dropdowns, popovers, etc. 5. **Phase 5: Component Migration** - Updated and tested specific components (modals, dropdowns, toasts, etc.) - Fixed styling issues in cards and button groups 6. **Phase 6: Form System Updates** - Updated form control classes to Bootstrap 5 standards - Updated checkbox/radio markup patterns - Simplified input groups 7. **Phase 7: Navbar Structure Updates** - Updated navbar structure with container-fluid - Fixed responsive behavior 8. **Phase 8: SCSS Variables and Theming** - Added custom CSS fixes for navbar alignment - Verified theme compatibility 9. **Phase 9: Accessibility Improvements** - Updated sr-only to visually-hidden - Added proper ARIA attributes - Enhanced screen reader support ## Key Changes - No more jQuery dependency in Bootstrap 5 - New prefix for data attributes (data-bs-*) - Improved accessibility with ARIA attributes - Updated positioning classes (start/end instead of left/right) - Simplified input group structure ## Test Plan 1. **Navigation Testing** - Verify all dropdown menus open and close properly - Test mobile menu responsiveness - Check tab navigation in settings dialog 2. **Component Testing** - Verify all modals open and close correctly (settings, share, load/save) - Test tooltips and popovers - Check form controls in different dialogs 3. **Layout Testing** - Test responsiveness on different screen sizes - Verify proper alignment of elements - Check dark mode compatibility 4. **Specific Features to Test** - Compiler selection and options - Share dialog functionality - Settings dialog - Tree view (IDE mode) - Font selection dropdown 5. **Browser Testing** - Test in Chrome, Firefox, Safari - Test in mobile browsers ## Note on Further Improvements After this migration is stable, we could consider Phase 12: removing jQuery dependency entirely, as Bootstrap 5 no longer requires it. This would be a separate effort. --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
afccba613e |
Quash some warnings in tests (#7415)
- Prevent some warnings in the `test-and-deploy` action; see, for example, `Run checks` at https://github.com/compiler-explorer/compiler-explorer/actions/runs/13421609790/job/37495341332: - Await a result to avoid: ```text Promise returned by `expect(actual).toMatchFileSnapshot(expected)` was not awaited. Vitest currently auto-awaits hanging assertions at the end of the test, but this will cause the test to fail in Vitest 3. Please remember to await the assertion. at it.timeout(/home/runner/work/compiler-explorer/compiler-explorer/test/filter-tests.ts:91:50) ``` - Remove duplicated `AVRrc` entries in `lib/asm-docs/generated/asm-docs-avr.ts`. `AVRrc` is a [reduced core AVR](https://ww1.microchip.com/downloads/en/DeviceDoc/AVR-InstructionSet-Manual-DS40002198.pdf#page=18), not an opcode. This avoids a warning beginning `[vite] warning: This case clause will never be evaluated because it duplicates an earlier case clause`. - Update generator script to also filter `AVRe`. - Deduplicate `RLDICL` in `lib/asm-docs/generated/asm-docs-power.ts`. IBM document this instruction both [here](https://www.ibm.com/docs/en/aix/7.3?topic=is-rldicl-rotate-left-double-word-immediate-then-clear-left-instruction) and [here](https://www.ibm.com/docs/en/aix/7.3?topic=is-rldicl-rotate-left-double-word-immediate-then-clear-left-instruction-1). I choose the neater-looking one, which is also more similar to their [`RLDICR`](https://www.ibm.com/docs/en/aix/7.3?topic=is-rldicr-rotate-left-double-word-immediate-then-clear-right-instruction) documentation. This avoids warnings beginning `[vite] warning: This case clause will never be evaluated because it duplicates an earlier case clause`. |
||
|
|
5eeded45c4 |
Test the numba wrapper in test-and-deploy (#7413)
- Resolve comments from #5592: - Replace a silly indirect import https://github.com/compiler-explorer/compiler-explorer/pull/5592#discussion_r1962004963 - Run `test_numba_wrapper` in `.github/workflows/test-and-deploy.yml`. https://github.com/compiler-explorer/compiler-explorer/pull/5592#discussion_r1962004131 - Patch minor errors in `etc/scripts/util/propschecktest.py` and also test it. |
||
|
|
ca1ecbb2e3 |
Add Numba (#5592)
- Add initial support for Numba compilation: asm, demangling, execution Numba wraps Python functions in `Dispatcher` objects. Each dispatcher contains zero or more compiled argument-type-indexed overloads of its function. We import the user's code as a module, and emit the code from all overloads of all dispatchers that the module publicly exposes. Name mangling is odd in Numba. It uses a similar mangling syntax to C++, but also encodes non-symbol (`r"[^a-z0-9_]"`) characters as `_%02x`. This encoding yields valid identifier names, so it is not strictly invertible. Here, I have hard-coded some replacements to decode some common cases at the cost of possible clashes with ugly user-defined names. Screenshot captured via `make dev EXTRA_ARGS="--debug --language numba"`  ## To do - [x] Answer questions of #5591. - [x] Acquire a python environment. - [ ] Automatically run the python test? Locally, I have installed a virtual environment with python 3.12.3 with ```shell path/to/python -m venv venv_numba path/to/venv_numba/bin/python -m pip install numba==0.61.0 scipy>=0.16 ``` and configured its use with ```properties # compiler-explorer/etc/config/numba.local.properties compilers=&numba defaultCompiler=numba_0_61_0 group.numba.compilers=numba_0_61_0 group.numba.baseName=Numba compiler.numba_0_61_0.exe=/path/to/python3.13 compiler.numba_0_61_0.semver=0.61.0 ``` I run this python-side test file with ```python path/to/venv_numba/bin/python -m unittest etc/scripts/test_numba_wrapper.py ``` --------- Co-authored-by: Mats Jun Larsen <mats@jun.codes> |
||
|
|
3aeed42066 |
Upgrade to node 20 minimum, target node 22 (#7343)
Co-authored-by: Mats Jun Larsen <mats@jun.codes> |