Repository navigation
release: compress the modules with deflate (-20 % of the size) - #11
Merged
Merged
Conversation
The packages of a release are built with -DDMOD_COMPRESSION_METHOD=deflate (RFC 1951, by dmcomp): the .dmfc files are ~20 % smaller than the fastlz ones - the modules of the internal flash of the dmod-boot firmware, 215 kB with FastLZ, are 172 kB. CI and the local builds keep the default (fastlz). A loader needs the deflate decoder (dmod >= 8264cbb, dmod-boot#151), so this should be released after the firmware has it. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
JohnAmadis
approved these changes
Oct 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The release workflow builds the package with
-DDMOD_COMPRESSION_METHOD=deflate: the.dmfcfiles of the release are compressed with DEFLATE (RFC 1951, dmcomp) instead of FastLZ. One line inrelease.yml, nothing else; CI and local builds keep the default (fastlz).Why
The modules of the internal flash of the dmod-boot firmware are 172 kB with deflate, 215 kB with FastLZ (−42 kB, −20 %); the flash is needed for two firmware banks. The decoder is 1.7 kB of code in the loader (dmod ≥
8264cbb, dmod#341; thechocotechnologies/dmodimage has it).Order of merging
A loader without the
deflatedecoder cannot read such a package. Merge dmod-boot#151 (the firmware gets the decoder) before the first release made with this change – dmod-boot takes the latest packages from the registry. Merging this PR changes nothing until the next release is made.Tested
The build of the workflow (
cmake .. -DDMOD_TOOLS_NAME=... -DDMOD_COMPRESSION_METHOD=deflate, dmod fromdevelopby FetchContent,todmfcof the image) gives.dmfcfiles withdeflatein the header (dmffs: 11 188 → 6 619 B); the modules of/extrepacked this way run on the STM32F746G-DISCO.🤖 Generated with Claude Code