Skip to content

v1.2.1 – DateOnly/TimeOnly, Index/Range Polyfills & Unified Slicing

Latest

Choose a tag to compare

@livedcode livedcode released this 02 Jan 08:00
· 1 commit to master since this release

🚀 ModernBCL.Core.BLC v1.2.1

This release finalizes the modern BCL surface area for .NET Framework 4.8 / 4.8.1, focusing on behavioral parity, clarity, and developer ergonomics, without requiring runtime or language upgrades.

✨ Added

System.DateOnly and System.TimeOnly polyfills

Full arithmetic support (AddDays, AddYears, etc.)

Correct day-number–based behavior for parity with modern .NET

System.Index and System.Range polyfills

Includes all compiler-required members

Compatible with C# lowering rules (^, ..) even when syntax is not used

Enables modern slicing semantics on legacy runtimes

Unified slicing helpers under ModernBCL.Core.Slicing

Array slicing (T[])

IList slicing

String slicing (via char[])

DateOnly / DateTime slicing scenarios

Designed for C# 7.3 (no language upgrade required)

SystemSample console applications

DateOnly / TimeOnly usage

Index / Range semantics

Practical slicing examples (date, string, list)

🔄 Changed

Consolidated all slicing helpers into a single namespace and file for better discoverability.

Clarified architectural separation between:

System polyfills (API compatibility)

ModernBCL helpers (opt-in convenience APIs)

Updated README to document new polyfills, slicing helpers, and usage patterns.

🐛 Fixed

Fixed missing compiler-required members in System.Index.

Corrected DateOnly parity issues related to day calculations.

Resolved extension-method discoverability issues by unifying slicing namespaces.

Minor API polish and stability fixes across System polyfills.

📦 Compatibility

.NET Framework 4.8 / 4.8.1 → Polyfills enabled

.NET 8+ → Native BCL APIs used automatically

NuGet multi-targeting: net48; net481; net8.0

📄 Notes

No breaking changes.

No runtime or language version upgrades required.

Designed for long-lived enterprise .NET Framework systems.