<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>cint news</title>
<subtitle>Results from the cint development tree and from each release.</subtitle>
<link rel="alternate" type="text/html" href="https://integerc.dev/news/"/>
<link rel="self" type="application/atom+xml" href="https://integerc.dev/news/feed.xml"/>
<id>https://integerc.dev/news/</id>
<updated>2026-10-09T00:00:00-04:00</updated>
<author><name>Harriett Little</name></author>
<rights>CC BY 4.0, https://creativecommons.org/licenses/by/4.0/</rights>
<entry>
<title>Wide Integers: Runtime Helpers for I128 to I1024 Agree with the Reference on 126,423 Cases</title>
<link rel="alternate" type="text/html" href="https://integerc.dev/news/#wide-integers"/>
<id>https://integerc.dev/news/#wide-integers</id>
<published>2026-10-09T00:00:00-04:00</published>
<updated>2026-10-09T00:00:00-04:00</updated>
<summary>New checked, wrapping and saturating helpers in cint's C runtime for I128, I256, I512 and I1024 agree with the reference on all 126,423 test cases under GCC 13.3.0, Clang 18.1.3, MSVC 19.44 and Apple Clang 21.0.0. Each compiler builds the helpers at two optimization levels, once with its own built-ins and once without. The cases test 47 operations, from addition, division and shifts to the rounding and square-root built-ins and conversions among all widths, at each width's boundaries and on seeded random values. A case that faults writes the same fault record as the reference, including the exact result.</summary>
</entry>
<entry>
<title>Performance: Within 1.10x of Hand-Checked C in All Eight Measurements</title>
<link rel="alternate" type="text/html" href="https://integerc.dev/news/#speed-record"/>
<id>https://integerc.dev/news/#speed-record</id>
<published>2026-10-09T00:00:00-04:00</published>
<updated>2026-10-09T00:00:00-04:00</updated>
<summary>cint is within 1.10x of hand-checked C in all eight measurements, up from seven, now that the two runtime changes projected in the 2026-10-08 performance entry are timed on that entry's four builds. The table loop under GCC and Clang runs in half its earlier time: 200,039 ns against 414,464 ns under GCC 13.3.0, and 201,873 ns against 403,415 ns under Clang 18.1.3 (medians). On both compilers, it now measures 1.010x Rust's time, down from about 2.0x.</summary>
</entry>
<entry>
<title>GCC 16 Performance Update: Ledger Loop Outperforms Rust</title>
<link rel="alternate" type="text/html" href="https://integerc.dev/news/#speed-gcc16"/>
<id>https://integerc.dev/news/#speed-gcc16</id>
<published>2026-10-09T00:00:00-04:00</published>
<updated>2026-10-09T00:00:00-04:00</updated>
<summary>The two runtime changes projected in the 2026-10-08 performance entry are now timed on a second machine: an Intel Core i7-8700K running Fedora Linux 44, with GCC 16.2.1, Clang 22.1.8 and Rust 1.96.1. After both changes, cint's ledger loop under GCC runs in 0.927x Rust's time (1,058,061 ns against 1,141,463 ns, median) and matches hand-checked C at 0.998x (1,060,602 ns).</summary>
</entry>
<entry>
<title>Workbench: Differential Debugging and Execution Replay</title>
<link rel="alternate" type="text/html" href="https://integerc.dev/news/#workbench"/>
<id>https://integerc.dev/news/#workbench</id>
<published>2026-10-09T00:00:00-04:00</published>
<updated>2026-10-09T00:00:00-04:00</updated>
<summary>The interactive workbench gains three diagnostic commands. cint explain shows what the compiler knows about a function without running it, including every operation that can fault, with its source position and fault code. cint debug diff runs a saved case as compiled C and on the interpreter, then reports that the two agree or names the first point where they part. cint debug replay runs a recording again to check that it reproduces, and cint debug locate replays a recording straight to its first fault.</summary>
</entry>
<entry>
<title>Interpreter Engine &amp; State Checkpointing</title>
<link rel="alternate" type="text/html" href="https://integerc.dev/news/#interpreter"/>
<id>https://integerc.dev/news/#interpreter</id>
<published>2026-10-09T00:00:00-04:00</published>
<updated>2026-10-09T00:00:00-04:00</updated>
<summary>cint programs can now run directly on the interpreter, cint-interp, with no C compiler involved. The interpreter executes the same semantic IR that the C backend compiles, so a program means the same thing in both modes. On the conformance suite, 513 programs and 1,842,927 records, the interpreter and the compiled C both matched the reference on every record, in 24 builds each across GCC, Clang, MSVC and Apple Clang, with and without sanitizers. The sanitizers reported nothing.</summary>
</entry>
<entry>
<title>Performance: Matching or Beating Hand-Checked C in Six of Eight Measurements</title>
<link rel="alternate" type="text/html" href="https://integerc.dev/news/#speed"/>
<id>https://integerc.dev/news/#speed</id>
<published>2026-10-08T00:00:00-04:00</published>
<updated>2026-10-08T00:00:00-04:00</updated>
<summary>The benchmarks time two loops from a ledger program: checked addition and subtraction in sequence, and checked accumulation over a 256-entry table, 1,000,000 iterations each. cint builds them the way cint build builds any program (-O2, built-in overflow helpers, fuel metering off). The C versions check overflow by hand with __builtin_*_overflow where the compiler has it and are built by the same compiler with the same flags. The Rust versions use checked_* arithmetic with overflow checks on, at opt-level=2. Each ratio is cint's median time over 110 samples divided by the other program's, so below 1.00x means cint is faster. Every variant was checked against the reference before it was timed.</summary>
</entry>
<entry>
<title>NVIDIA PTX Code Generation &amp; CUDA Execution</title>
<link rel="alternate" type="text/html" href="https://integerc.dev/news/#gpu"/>
<id>https://integerc.dev/news/#gpu</id>
<published>2026-10-08T00:00:00-04:00</published>
<updated>2026-10-08T00:00:00-04:00</updated>
<summary>Kernels written in cint now run natively on NVIDIA GPUs and match the CPU backend exactly: the same output buffers, reduction values, fuel consumed, dispatch counts and fault records. cintc, itself written in cint, generates the PTX.</summary>
</entry>
<entry>
<title>v0.1.1: Maintenance Release</title>
<link rel="alternate" type="text/html" href="https://integerc.dev/news/#v0.1.1"/>
<id>https://integerc.dev/news/#v0.1.1</id>
<published>2026-10-06T00:00:00-04:00</published>
<updated>2026-10-06T00:00:00-04:00</updated>
<summary>Released the same day as v0.1.0. The cint command now counts every runtime source file in a receipt's runtime identity; v0.1.0 counted 8 of the 14. The Python bridge is included, so tutorial 04 and the matrix example run. The compiler is unchanged. See the release notes.</summary>
</entry>
<entry>
<title>v0.1.0: Initial Public Release</title>
<link rel="alternate" type="text/html" href="https://integerc.dev/news/#v0.1.0"/>
<id>https://integerc.dev/news/#v0.1.0</id>
<published>2026-10-06T00:00:00-04:00</published>
<updated>2026-10-06T00:00:00-04:00</updated>
<summary>The first public release includes cintc, a self-hosting compiler written in cint that emits C17 and rebuilds itself byte for byte; the seed compiler in C that bootstraps it; the runtime; the cint command; the reference implementation, cint_ref; and a conformance suite of 861 cases. cintc agrees with the reference on all 783 cases it is compared on.</summary>
</entry>
</feed>
