T27.AI

Blog

Four languages shared one .tri extension

2026-09-08 · 6 min read

[reported in merged PR #793] The VIBEE generator now names Markdown, TOML, and t27 inputs instead of silently treating them as empty VIBEE modules, while unrecognised files retain the old fall-through.

#Compiler#Parser#Testing#Reproducibility

[reported in merged PR #793] The VIBEE generator now distinguishes Markdown, TOML, and t27 inputs that share the .tri extension instead of silently treating them as empty VIBEE modules. Unrecognised files retain the previous fall-through.

The result is a parser-boundary fix, not a claim about a new language. The repository census in the PR describes 1,065 YAML VIBEE files, 14 t27 blocks, 32 Markdown files, 13 TOML files, 10 comment-led files, and 3 nearly empty files: 1,137 files in the reported corpus.

A zero-behaviour module was not an innocent result

[reported verification] Before the change, each non-YAML input that reached this path produced Types: 0, Behaviors: 0, wrote a stub, and exited with code 0. A corpus gate could therefore accept an empty interpretation as a valid spec with no behaviours.

The merged change reports 62 files refused by name and 1,075 files still processed, with no corpus-gate regression in the PR report. The category census explains the recognised shapes, rather than claiming that every .tri file is now understood.

Detection order changes the error message

[reported in PR #793] Markdown is checked before t27. specs/storm_main.tri is a Markdown document containing a Zig function named executeStormCommand; t27 markers could recognise the code first and produce the wrong language name. An ATX heading beginning with ## is used, while a bare # remains compatible with VIBEE comments.

TOML is identified by a section header such as [section] together with a key = "value" shape. The order is deliberately explicit: the diagnostic should name the dialect that made the file invalid for this generator, not merely report an empty result.

The permissive path is still intentional

Ten files beginning with comments and 3 nearly empty files remain on the old path. The PR chooses a false-positive-resistant boundary: a recognised Markdown, TOML, or t27 shape is rejected with a named error, while an unrecognised file is not promoted to a new language by guesswork.

What the merged checks report

What is established, and what is not

The merged PR establishes a more specific software diagnostic for three recognised dialects that share .tri, and preserves the documented permissive behaviour for files that do not match those shapes. This is a compiler and corpus-gate result.

What this does not settle

Receipts

Work with me

Want this kind of check on your own design?

I audit RTL and build independent, bit-exact models, then take the result through synthesis and, when useful, onto an Artix-7 board. The first conformance module is free.