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
<PackageReference Include="Icod.TermInfo.Compiler" Version="1.17.0" />
<PackageVersion Include="Icod.TermInfo.Compiler" Version="1.17.0" />
<PackageReference Include="Icod.TermInfo.Compiler" />
paket add Icod.TermInfo.Compiler --version 1.17.0
#r "nuget: Icod.TermInfo.Compiler, 1.17.0"
#:package Icod.TermInfo.Compiler@1.17.0
#addin nuget:?package=Icod.TermInfo.Compiler&version=1.17.0
#tool nuget:?package=Icod.TermInfo.Compiler&version=1.17.0
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
0432and wide01036output; - standard and ncurses extended-capability sections;
- deterministic automatic or explicit format selection;
- strict representation validation rather than silent narrowing;
- direct compilation from immutable
TerminalDescriptionvalues; .tisource 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/
ticdifferential 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 | Versions 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. |
-
net10.0
- Icod.TermInfo (>= 1.17.0)
- Icod.TermInfo.Source (>= 1.17.0)
-
net8.0
- Icod.TermInfo (>= 1.17.0)
- Icod.TermInfo.Source (>= 1.17.0)
-
net9.0
- Icod.TermInfo (>= 1.17.0)
- Icod.TermInfo.Source (>= 1.17.0)
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.