rspeele/LicenseToCIL
56.9
Adequate · 3 October 2026
909
lines of production code
F#
primary language
2
measurements over time
What this system is
LicenseToCIL is an F\# library that provides a type-safe wrapper around .NET's System.Reflection.Emit API for generating CIL code at runtime. It utilizes a computation expression builder to simplify the creation of delegates, handling stack management, locals, and control flow constructs like loops and switches. The system includes examples demonstrating performance comparisons for operations such as factorial computation and string switching against standard F\# implementations.
Features
Added factorial and string switch performance examples
The LicenseToCIL.Examples project now includes new demonstration modules for factorial computation and string switching. The Factorial module provides iterative CIL implementations alongside recursive and iterative F\# versions to benchmark performance. The Switches module introduces comprehensive examples for integer and string switches, including case-insensitive variants, hash-based lookups, and binary search strategies, allowing users to compare the performance of generated CIL switch logic against standard F\# match expressions and dictionary lookups.
LicenseToCIL.Examples · high confidence
Initial release of LicenseToCIL library with documentation and examples
This change introduces the LicenseToCIL library, a wrapper around the .NET System.Reflection.Emit API that generates CIL code at runtime with added type safety for stack depth. The release includes the core library project, an examples project, an MIT license file, and a comprehensive README explaining the \cil\ computation expression, dedicated opcode functions, and usage for generating delegates.
(repo-wide) · high confidence
Behavioural changes
Refactor CIL generation API to use a computation expression builder
The LicenseToCIL library replaces its previous low-level stack-manipulation API with a new F\# computation expression builder (\cil\). This change introduces a \CILBuilder\ type that supports \let!\ bindings for defining locals and labels, \yield\ for emitting operations, and control-flow constructs like \while\, \for\, \try/finally\, and \using\. The core \Op\ type signature has been updated to accept an explicit stack state argument and return \unit\, simplifying the internal representation. Additionally, the library now supports temporary locals that are automatically freed, optimized switch generation for strings and integers, and the ability to compile CIL operations into delegates via \Delegates.fs\.
LicenseToCIL · high confidence
Dependencies
Migration to .NET SDK-style project files and multi-targeting
The project has been modernized to use the SDK-style .csproj format, replacing the legacy .NET Framework 4.6 configuration. It now multi-targets netstandard2.0, net8.0, and net10.0, with FSharp.Core updated to version 8.0.401. For the netstandard2.0 target, explicit references to System.Reflection.Emit packages are added to support required APIs not present in the base class library.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 57 → 57 (-0.2)
- Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 95 → 95 (+0.0)
- Architecture 98 → 95 (-2.5)
- Maturity 54 → 54 (+0.0)
- Readiness 37 → 37 (+0.0)
- Security 100 → 100 (+0.0)
Resolved (3)
- Documentation: no contributor guidance (README.md)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
rspeele/LicenseToCIL was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 3 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 85a35d338ea5b9d9df5d5af68680c03e5e129bbd — the exact code this score is about.
- Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-4f4226d619ea.