You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Every claim the project makes about flash, RAM and stack cost is measured from the
two example stacks. Those stacks are stale, and #750 has moved the default they
were measured against, so the figures the release would ship are wrong. This is the
last story before #650 cuts 0.1.0, so that the release carries measured sizes.
The examples are the instrument
solid-syslog-example (CMake, 15 commits) and solid-syslog-example-make (Make,
22 commits) teach integration one commit at a time, each stage measured. The
history is the artefact, so an early commit cannot be patched without rewriting
every SHA after it. Both are regenerated as a stack rather than fixed piecemeal.
Neither is broken today: each pins the library (e4bc54d via FetchContent, 0d212aa via submodule), so both still build. They demonstrate an old API against
an old pin - stale, not failing. Nothing in docs/, the README or the website
cites an example commit SHA, so the rewrite breaks no inbound link.
Sequencing
Regenerate both stacks on current main, measuring each stage.
Correct every cost claim below from those measurements, and re-derive the
sizing narrative described under Not just the figures.
Re-pin both stacks to the release tag if the cut moved the SHA. The release
commit changes no library source, so the figures should stand - confirm rather
than re-measure.
Carry into the regeneration
Three breaking refactors land between the pins and main. Each fails to compile,
deliberately - no compatibility aliases were left:
refactor!: S23.22 name platform callbacks for what they supply #739 - platform callback providers renamed (SolidSyslog<Plat>Hostname_Get
to SolidSyslog<Plat>_GetHostname, and the same shape for GetProcessId, GetTimestamp, GetSysUpTime, Sleep). Header file names are unchanged.
Nothing here is adjusted on paper. The known inventory:
README.md:14-16 - the headline figures: +5 KB flash / 0.4 KB RAM for a
record on the wire, +13.5 KB flash / 37 KB RAM for the whole path.
docs/hardening-path.md - a **Cost.** line on each of the twenty stages,
plus the reconciliation paragraph quoting 13.5 KB against the ~13.9 KB the
column sums to.
The example repositories themselves, which carry the exact figures, the diff
that produced each, and the reasoning behind it.
The website, which is outside this repository and needs checking against the
same measurements rather than assumed consistent.
Not just the figures
Stages 7, 13 and 14 of docs/hardening-path.md are a sizing narrative - take
the default, hit truncation at a 256-byte cap, double it to 512, then shrink the
ring - and it is written against a 2048-byte default. At 480 the premise of each
stage changes: stage 7 is no longer mainly a reduction, and stage 13's "double the
cap to 512" is a slight raise above the default rather than a doubling. Re-derive
the narrative, then measure it.
Done when
Both stacks rebuild on main, commit by commit.
Every figure above is measured at the new default, and the sizing narrative
follows from the default the library now ships.
The website carries no cost claim that disagrees with the measurements.
The licence prose in both repos states the library's licence correctly.
After the cut, both stacks pin the release and their figures are confirmed.
Every claim the project makes about flash, RAM and stack cost is measured from the
two example stacks. Those stacks are stale, and #750 has moved the default they
were measured against, so the figures the release would ship are wrong. This is the
last story before #650 cuts 0.1.0, so that the release carries measured sizes.
The examples are the instrument
solid-syslog-example(CMake, 15 commits) andsolid-syslog-example-make(Make,22 commits) teach integration one commit at a time, each stage measured. The
history is the artefact, so an early commit cannot be patched without rewriting
every SHA after it. Both are regenerated as a stack rather than fixed piecemeal.
Neither is broken today: each pins the library (
e4bc54dvia FetchContent,0d212aavia submodule), so both still build. They demonstrate an old API againstan old pin - stale, not failing. Nothing in
docs/, the README or the websitecites an example commit SHA, so the rewrite breaks no inbound link.
Sequencing
main, measuring each stage.sizing narrative described under Not just the figures.
commit changes no library source, so the figures should stand - confirm rather
than re-measure.
Carry into the regeneration
Three breaking refactors land between the pins and
main. Each fails to compile,deliberately - no compatibility aliases were left:
SOLIDSYSLOG_.SolidSyslog<Plat>Hostname_Getto
SolidSyslog<Plat>_GetHostname, and the same shape forGetProcessId,GetTimestamp,GetSysUpTime,Sleep). Header file names are unchanged.Also:
SolidSyslog_SetConfigLockgained avoid* context, and the lockmust tolerate blocking.
SOLIDSYSLOG_MAX_MESSAGE_SIZEis 480.solid-syslog-example-make'sthird_party/README.mdcalls the library PolyForm Noncommercial 1.0.0, which isstale;
solid-syslog-examplesays nothing about the library's licence at all.Both repos remain 0BSD in their own right. The submodule picks up the corrected
LICENSE.mdandLICENSES/once the pin moves; only the prose needs a human.in an example show it.
Resource-cost claims
Nothing here is adjusted on paper. The known inventory:
README.md:14-16- the headline figures: +5 KB flash / 0.4 KB RAM for arecord on the wire, +13.5 KB flash / 37 KB RAM for the whole path.
docs/hardening-path.md- a**Cost.**line on each of the twenty stages,plus the reconciliation paragraph quoting 13.5 KB against the ~13.9 KB the
column sums to.
that produced each, and the reasoning behind it.
same measurements rather than assumed consistent.
Not just the figures
Stages 7, 13 and 14 of
docs/hardening-path.mdare a sizing narrative - takethe default, hit truncation at a 256-byte cap, double it to 512, then shrink the
ring - and it is written against a 2048-byte default. At 480 the premise of each
stage changes: stage 7 is no longer mainly a reduction, and stage 13's "double the
cap to 512" is a slight raise above the default rather than a doubling. Re-derive
the narrative, then measure it.
Done when
main, commit by commit.follows from the default the library now ships.