Repository navigation
1.0.0-RC5
Pre-release
Pre-release
What's Changed
FsName Restructure
- Push validation to creation instead of per-call on hot paths
- Recursive
intern()with safeget-then-putIfAbsentpattern (no nestedcomputeIfAbsent) - Collapse
name(String)to singleinternChilddelegation - Remove redundant
requireNonNullchecks from internal methods (rely on natural NPE) - Cached
Optional<Name>enclosure in constructor for efficient Extent defaults - Static
ParentIteratorclass, optimisedwithin()with depth-guard fast-fail
Benchmark impact (NameOps):
| Benchmark | Before | After | vs Humainary |
|---|---|---|---|
| name_chaining | 14.1 ns | 5.2 ns | beats 9.45 by 45% |
| name_from_iterable | 20.6 ns | 10.0 ns | matches 9.81 |
| name_from_iterator | 20.3 ns | 10.5 ns | matches 9.67 |
| name_parsing | 6.4 ns | 2.5 ns | within 20% of 2.10 |
FsState Optimisations
- Lazy-cached
compact()result (same pattern asString.hashCode) - Cached
values()matches array for repeated calls with same slot typeMatchesshortcut:==beforeisAssignableFromfor exact-type matches
Benchmark impact (StateOps):
| Benchmark | Before | After | vs Humainary |
|---|---|---|---|
| state_compact | 30.4 ns | 3.2 ns | beats 9.5 by 3× |
| state_values_stream | 24.2 ns | 7.0 ns | was +490%, now +71% |
Documentation
- GitHub Packages consumer instructions added to both READMEs (repository config + PAT setup)
- Full benchmark refresh: 863 benchmarks (680 Serventis + 185 Substrates)
- Updated selected benchmark numbers in README
Other
- Version bump to 1.0.0-RC5 across pom.xml and READMEs
- EditorConfig formatting applied to 7 files
Full test suite: 722 tests passing (274 contract + 448 TCK)