Skip to content

Sync Zinc with svenvc/zinc, within the bootstrap's stages - #20203

Merged
jecisc merged 2 commits into
pharo-project:Pharo15from
Gabriel-Darbord:zinc-within-bootstrap-stages
Nov 11, 2026
Merged

jecisc merged 2 commits into
pharo-project:Pharo15from
Gabriel-Darbord:zinc-within-bootstrap-stages

Conversation

@Gabriel-Darbord

Copy link
Copy Markdown
Contributor

Re-lands #20131, reverted by #20143 because the bootstrap failed. That PR's description says what the sync brings; the first commit is it unchanged.

The second commit restores what Pharo had adapted to load Zinc in stages: the kernel takes Zinc-Character-Encoding-Core, the RemoteRepositories group of BaselineOfMonticello takes Zinc-Resource-Meta-Core and Zinc-HTTP, and the IDE install downloads the rest of Pharo through them.

  • ZnPercentEncoder >> #urlAsIri read ZnCurrentOptions, which is not in the kernel, so the bootstrap stopped on an undeclared variable. The encoder now carries the choice, set from the option by Zinc-Resource-Meta-Core. String >> #urlEncoded no longer follows #urlAsIri.
  • The SocketStream extensions move from Zinc-Character-Encoding-Core to Zinc-HTTP, since Network-Kernel is not in the kernel either.
  • ZnUtils class >> #signalProgress:total: goes back to #humanReadableSISizeString: Pharo has no #humanReadableSIByteSize on numbers, and the IDE install failed downloading its dependencies.
  • testByteEncoderFromUrl leaves ZnCharacterEncoderTest again: it needs Zinc-HTTP, and ZnEncoderFromUrlTest already has it.
  • ZnOptions class >> #initialize takes upstream's marker comment, so loading this resets the default options to include the new ones.
  • ZnLogEvent class >> #printAddress:on: uses SocketAddress class >> #fromOldByteAddress: instead of the deprecated ByteArray >> #asSocketAddress.

The cycle between the two packages is upstream's too: svenvc/zinc#167.

Gabriel-Darbord and others added 2 commits November 10, 2026 19:43
Takes the options, the encoder diagnostics, IRI support, certificate
verification and the small additions upstream has gained since Pharo's copy
forked. Leaves the server rework, the demo-site rework and the network-test
harness behind. The accessors the new options supersede move to Deprecated15,
and upstream's #asUrl call sites become #asZnUrl, which Pharo did not deprecate.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The sync made the kernel's Zinc-Character-Encoding-Core refer to ZnCurrentOptions and extend SocketStream, both loaded later, called a size printer Pharo does not have from the code that downloads the image's dependencies, and put a test needing Zinc-HTTP back into the encoding tests. The percent encoder now carries the IRI choice, which Zinc-Resource-Meta-Core sets from the option; the SocketStream extensions move to Zinc-HTTP; humanReadableSISizeString and ZnEncoderFromUrlTest stay. ZnOptions re-initializes on load, and ZnLogEvent no longer sends a deprecated conversion.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Ducasse

Ducasse commented Nov 10, 2026

Copy link
Copy Markdown
Member

Tx gabriel!

@jecisc
jecisc merged commit d4107af into pharo-project:Pharo15 Nov 11, 2026
1 check failed
@Gabriel-Darbord
Gabriel-Darbord deleted the zinc-within-bootstrap-stages branch November 11, 2026 15:43
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.

3 participants