Skip to content

ROneCOne 1.6.0

Choose a tag to compare

@WilliamSmithEdward WilliamSmithEdward released this 24 Jul 18:02
· 96 commits to main since this release

ROneCOne 1.6.0

ROneCOne 1.6.0 closes VBA's three oldest text gaps. Timestamps become real values:
DateTimeOffset-style instants that parse full ISO 8601 and Unix epochs, convert zones through
Windows, and do calendar arithmetic. Text formatting becomes deterministic: a String.Format
grammar with invariant output on every machine, a linear-time StringBuilder, GUIDs, and
crypto-grade randomness. And XML joins JSON and CSV as a first-class exchange format, queried
with XPath and bridged both ways with typed DataTables.

Highlights

  • ROneCOne.DateTime mirrors DateTimeOffset: Parse/TryParse for ISO 8601 with offsets,
    UtcNow/Now/Today, Unix epoch converters both ways, VBA Date bridges, month-end
    clamping arithmetic, instant-ordered comparison across offsets, round-trip ToIsoString,
    and a token formatter; ROneCOne.TimeSpan carries signed durations with totals, components,
    algebra, and a d.hh:mm:ss text round trip. Windows performs every zone conversion per
    instant through kernel32; the runtime hard-codes no offsets and no daylight saving rules
  • ROneCOne.Strings.Format speaks the {index,alignment:format} grammar with G N F D X P
    specifiers and date tokens, always writing a period decimal separator and comma grouping;
    ROneCOne.StringBuilder() appends, formats, and clears without the quadratic slowdown;
    ROneCOne.Guid.NewGuid mints canonical version 4 GUIDs; ROneCOne.RandomNumberGenerator
    draws GetBytes and rejection-sampled GetInt32 from Windows CNG
  • ROneCOne.Xml wraps MSXML6 with its secure posture intact (DTDs prohibited, external
    references never resolved): Parse and Load with optional namespace mapping, nodes with
    Name, Value, GetAttribute, HasAttribute, Elements, SelectNodes,
    SelectSingleNode, and OuterXml; Xml.DeserializeTable lands row elements in a typed
    DataTable through the same deterministic inference CSV uses, and table.ToXml writes
    round-trippable element-per-column rows that omit database nulls
  • Failures stay typed: ROneCOne.FormatError covers every text-format rejection, and
    ROneCOne.XmlError carries the parser's line, position, and reason
  • Twelfth and thirteenth demo workbooks walk dates and XML offline, and the text demo grows
    invariant formatting, builder chains, and identifier minting

Release evidence

Each of three fresh Microsoft 365 Excel processes passed 819 live assertions, including ISO
8601 and epoch round trips, offset re-views, calendar clamping, machine-zone conversions,
composite formatting shapes, GUID structure, random-range uniformity, XPath navigation,
namespace mapping, DTD rejection, and both XML table bridges. All ten suite benchmark
scenarios met their release gates in every sample; the medians ran invocation 0.11, collection
0.20, ordering 0.95, SHA-256 at 10,000 and 100,000 elements 0.19 and 0.29, keyed mutation
0.48, and constrained maintenance 0.55 seconds. The three new demo benchmarks parsed and
formatted 1,000 timestamps in 0.04 seconds, extracted a 1,000-row XML table in 0.07 seconds,
and hashed 1,000 strings in 0.13 seconds, each against a 2.5-second gate.

Static analysis reported zero diagnostics across the loose source project, the disposable test
workbook, and all thirteen demo modules; 65 Python contract tests pin the source and demo
shapes. Every packaged VBA module round-tripped byte-for-byte. The thirteen demos executed 136
practical examples without an Office or VBE popup, and all 53 rendered worksheets passed
visual review.

Execution and network contract

Tasks remain cooperative on Excel's thread; HTTP transfers overlap inside WinHTTP's own worker
threads, and ROneCOne makes no VBA parallelism claim. The date, formatting, and XML engines
run entirely in-process, and every local time conversion is delegated per instant to Windows.
The network is touched only by the HTTP client, and only for URLs you request: the runtime
never phones home, sends no telemetry, and requires no VBIDE trust, installs, or references.
The HTTP demo and the HTTP test contract are the only release gates that need internet access;
the dates, text, and XML demos run offline.

Import ROneCOne.cls to begin, or open the Dates + Times demo to watch an API timestamp
become a value you can compute with. SHA-256 checksums for every release asset are included
with the download.