<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>C++ on ./Code</title><link>https://blog.ouankou.com/tags/c++/</link><description>Recent content in C++ on ./Code</description><generator>Hugo</generator><language>en</language><copyright>© Anjia Wang</copyright><lastBuildDate>Wed, 12 Aug 2026 06:37:11 +0000</lastBuildDate><atom:link href="https://blog.ouankou.com/tags/c++/index.xml" rel="self" type="application/rss+xml"/><item><title>How REX Cut Cxx_Grammar Translation From 28 Minutes to Under 3 Minutes</title><link>https://blog.ouankou.com/2026/08/10/how-rex-cut-cxx-grammar-translation-from-28-minutes-to-under-3/</link><pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.ouankou.com/2026/08/10/how-rex-cut-cxx-grammar-translation-from-28-minutes-to-under-3/</guid><description>&lt;p&gt;A compiler can stop timing out and still be much too slow.&lt;/p&gt;
&lt;p&gt;An earlier REX frontend repair stopped ordinary translation from eagerly
materializing an unnecessary universe of system-header namespaces and templates.
That changed &lt;code&gt;Cxx_Grammar.C&lt;/code&gt; from an opaque timeout into a test that completed.
It was the right ownership fix, and it is documented in
&lt;a href="https://blog.ouankou.com/2026/05/02/how-rex-fixed-the-cxx-grammar-timeout-by-owning-the-frontend-traversal-boundary/"&gt;the earlier traversal-boundary post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But &amp;ldquo;completes&amp;rdquo; was not a satisfying performance result.&lt;/p&gt;
&lt;p&gt;Three full-size tests still took between 25 and 28 minutes each. They were doing
real work on one of the largest translation units in REX, and the resulting Sage
AST really did need declarations, types, scopes, symbols, parents, source
positions, preprocessing information, and validation. The tests could not be
made fast by translating less of the program or checking less of the result.&lt;/p&gt;</description></item></channel></rss>