Skip to content

UniversalToolchain documentation ​

UniversalToolchain is a modular .NET compiler/runtime framework with two public entry surfaces:

  • UniversalToolchain.Wist for validating restricted formulas and compiling approved expressions into typed delegates;
  • External Language Authoring SDK for composing independent non-Wist languages from typed packages, contributions, artifact routes and runtime components.

Wist is the reference language and compatibility proving ground. It is not the mandatory frontend or IR of every language built with the generic SDK.

At configuration time, before source compilation, LanguageCompiler resolves package-owned components into an explicit LanguagePlan. This is structural planning and exact runtime binding, not a general semantic proof. Read What is UniversalToolchain? and alternatives for the boundary and trade-offs.

Choose your role ​

Wist first contact ​

csharp
using UniversalToolchain.Wist;

using var engine = WistEngine.CreateRestrictedArithmetic();

const string source = "usage * 0.7 + reliability * 0.3 - incidents * 15.0";
var program = engine.Compile<Func<double, double, double, double>>(
    source,
    "usage",
    "reliability",
    "incidents");

double score = program.CompiledDelegate(100.0, 90.0, 1.0);

The formula returns data. The host owns authorization, persistence, approval, rollback, side effects and process-level resource isolation. Continue with First Program or the Production Integration guide.

External language authoring model ​

text
package registrations
  -> immutable package descriptor + component catalog
  -> LanguageDefinition
  -> LanguageCompiler (dependency, slot, provider and route resolution)
  -> immutable LanguagePlan + schema-v6 lock snapshot
  -> exact runtime package assembly
  -> typed artifact route
  -> exact backend executor

The alpha SDK supports typed artifact contracts, contribution dependencies and conflicts, capability-provider selection, deterministic pass ordering, configurable entry artifacts and per-session lifecycle. It does not generate parsers, binders, type systems or IDE tooling. Continue with the Language Authoring Quickstart.

Documentation authority ​

Public current documentation lives under docs/. Maintainer policies, proposals, dated reviews, conference material and historical reports live under internal-docs/ and are excluded from the VitePress source tree.

When documents conflict, use this order:

  1. current implementation and executable tests;
  2. current public reference and architecture pages;
  3. evidence records tied to a named artifact;
  4. internal proposals, reviews and archive material.

Public developer manual. Internal reviews, proposals and maintainer material live under internal-docs/.