Icod.TermInfo.Compiler 1.17.0

dotnet add package Icod.TermInfo.Compiler --version 1.17.0
                    
NuGet\Install-Package Icod.TermInfo.Compiler -Version 1.17.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Icod.TermInfo.Compiler" Version="1.17.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Icod.TermInfo.Compiler" Version="1.17.0" />
                    
Directory.Packages.props
<PackageReference Include="Icod.TermInfo.Compiler" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Icod.TermInfo.Compiler --version 1.17.0
                    
#r "nuget: Icod.TermInfo.Compiler, 1.17.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Icod.TermInfo.Compiler@1.17.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Icod.TermInfo.Compiler&version=1.17.0
                    
Install as a Cake Addin
#tool nuget:?package=Icod.TermInfo.Compiler&version=1.17.0
                    
Install as a Cake Tool

Icod.TermInfo.Compiler

Icod.TermInfo.Compiler is the optional managed compiled-terminfo writing and explicit database-publication layer for Icod.TermInfo.

1.16 release status

Version 1.16.0 preserves the frozen Compiler 1.2 public API, deterministic compiled-entry and database-publication semantics, Runtime-and-Source dependency graph, net8.0 / net9.0 / net10.0 support, and assembly identity 1.0.0.0. Hashed acquisition and publication are isolated to the optional BerkeleyDb package; Compiler retains conventional directory publication and does not acquire a BerkeleyDb, Inspection, Termcap, Terminal, or command-layer dependency.

Install

dotnet add package Icod.TermInfo.Compiler --version 1.16.0

The package depends on matching Icod.TermInfo and Icod.TermInfo.Source versions.

What Compiler provides

The frozen 1.2 contract includes:

  • deterministic conventional compiled terminfo writing;
  • legacy 0432 and wide 01036 output;
  • standard and ncurses extended-capability sections;
  • deterministic automatic or explicit format selection;
  • strict representation validation rather than silent narrowing;
  • direct compilation from immutable TerminalDescription values;
  • .ti source compilation through the existing Source parser/resolver;
  • explicit publication into caller-selected conventional database roots;
  • canonical-name and alias publication in compatible first-byte layouts;
  • explicit overwrite policy; and
  • semantic round-trip, byte-determinism, and pinned ncurses/tic differential validation.

Compiler never discovers or modifies an implicit system terminfo database. Callers must provide any publication root explicitly.

Source compilation

Compiler composes the Source package rather than duplicating parser or use= resolution semantics:

using Icod.TermInfo.Compiler;

TermInfoSourceCompilationResult result = TermInfoSourceCompiler.Compile(
	source,
	"example.ti"
);

if ( !result.HasErrors ) {
	foreach ( CompiledTermInfoSourceEntry entry in result.Entries ) {
		byte[] compiled = entry.Data;
		Console.WriteLine(
			$"{entry.CanonicalName}: {compiled.Length} compiled bytes"
		);
	}
}

TermInfoSourceCompilationResult.Diagnostics preserves Source parser/resolver diagnostics. Each CompiledTermInfoSourceEntry.Data access returns an independent copy of that entry's complete compiled bytes.

Database publication

CompiledTermInfoDatabaseWriter writes only to an explicit root. Existing files are rejected by default; replacement requires an explicit options opt-in. The resulting layout is compatible with DirectoryTerminalDescriptionProvider.

Compiler owns output bytes and database publication only. Inspection may use Compiler in tests/samples for semantic round trips, but production Icod.TermInfo.Inspection deliberately has no Compiler dependency.

Historical release record

Version 1.9.0 was the first coordinated line whose machine-readable Inspection release closure required package-facing documentation across the full suite. That historical marker remains part of the release-closure compatibility record; the current install version is 1.16.0.

Compatibility

The Compiler public contract was frozen at 1.2 and remains compatible throughout the coordinated 1.x line. Versions 1.15.0 and 1.16.0 retain Compiler semantics and public API. Applications compose Compiler output with the optional BerkeleyDb writer when hashed publication is needed; Compiler itself keeps directory publication. See the writing guide.

See ../docs/VERSIONING.md, ../docs/COMPATIBILITY.md, and the root ../README.md for the coordinated release contract.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.17.0 37 9/28/2026
1.16.0 47 9/27/2026
1.15.0 104 9/17/2026
1.14.0 90 9/15/2026
1.13.0 89 9/14/2026
1.12.0 85 9/13/2026
1.11.0 97 9/12/2026
1.10.0 115 9/3/2026
1.9.0 101 9/3/2026
1.8.0 138 9/2/2026
1.7.0 103 9/1/2026
1.6.1 108 9/1/2026
1.6.0 112 8/31/2026
1.5.0 106 8/30/2026
1.4.1 104 8/29/2026
1.4.0 106 8/29/2026
1.3.0 112 8/28/2026
1.2.0 104 8/27/2026
1.2.0-Alpha-7 100 8/27/2026
1.2.0-Alpha-6 106 8/27/2026

1.17.0 supports controlled directory fixture publication in the unified catalog sample while preserving the frozen Compiler API and Runtime-and-Source dependencies.