Skip to content

Keep Zinc-Character-Encoding-Core free of later packages - #167

Merged
svenvc merged 1 commit into
svenvc:masterfrom
Gabriel-Darbord:encoder-carries-iri-choice
Nov 11, 2026
Merged

svenvc merged 1 commit into
svenvc:masterfrom
Gabriel-Darbord:encoder-carries-iri-choice

Conversation

@Gabriel-Darbord

Copy link
Copy Markdown
Contributor

ZnPercentEncoder >> #urlAsIri reads ZnCurrentOptions from Zinc-Resource-Meta-Core, which itself requires Zinc-Character-Encoding-Core, so each package depends on the other. Zinc-Character-Encoding-Core also extends SocketStream from Network-Kernel.

Loading everything together hides it. Pharo builds Zinc-Character-Encoding-Core into its bootstrapped kernel and loads the other two later, so syncing these changes into Pharo broke its bootstrap (pharo-project/pharo#20131, reverted by pharo-project/pharo#20143).

The encoder now carries the IRI choice in #urlAsIri:, false by default like #decodePlusAsSpace, and ZnResourceMetaUtils and ZnDataUrl set it from the option. The SocketStream extensions move to Zinc-HTTP, which already depends on Network-Kernel.

One difference: String >> #urlEncoded and #urlDecoded no longer follow #urlAsIri; ZnUrl does.

Not changed here: ZnUtils class >> #signalProgress:total: sends #humanReadableSIByteSize, which no Pharo from 11 to 15 implements on numbers (they have #humanReadableSISizeString), so downloading a body of unknown size fails when progress is signalled.

ZnPercentEncoder read the #urlAsIri option from ZnCurrentOptions in Zinc-Resource-Meta-Core, which itself requires Zinc-Character-Encoding-Core, and the package extended SocketStream from Network-Kernel. The encoder now carries the IRI choice, set from the option by ZnResourceMetaUtils and ZnDataUrl, and the SocketStream extensions move to Zinc-HTTP.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@svenvc
svenvc merged commit c0e193f into svenvc:master Nov 11, 2026
6 checks passed
@svenvc

svenvc commented Nov 11, 2026

Copy link
Copy Markdown
Owner

Thx, Gabriel

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants