Summary
OpenSilver now has a validated local patch lane for the pinned kaspanet/silverscript checkout:
- patch file:
patches/silverscript-opzkprecompile.patch
- apply script:
scripts/apply-silverscript-opzkprecompile-patch.sh
- npm entrypoint:
npm run patch:silverc:zk
That script:
- bootstraps the pinned upstream compiler checkout
- applies the RFC patch for
OpZkPrecompile
- rebuilds
silverc
- smoke-tests a minimal
.sil contract containing require(OpZkPrecompile())
So the patch path is no longer just design text — it works against the pinned upstream snapshot used by OpenSilver.
Next external step
Turn that validated local patch into the real upstream contribution:
- target repo:
kaspanet/silverscript
- recommended PR title:
Expose OpZkPrecompile builtin to SilverScript front-end
- reviewers to tag:
@OriNewman, @saefstroem
- design reference:
references/silverscript-rfc-opzkprecompile.md
Scope of the upstream PR
- add the builtin row in
silverscript-lang/src/compiler/compile.rs
- add the debug value type in
silverscript-lang/src/compiler/debug_value_types.rs
- add the stdlib declaration/docs in
silverscript-lang/std/builtins.sil
Why this matters
This is the clean unblock for OpenSilver Phase 5. Until it merges, the ZK patterns remain design-only upstream, even though OpenSilver now has a local experimental patch path.
Summary
OpenSilver now has a validated local patch lane for the pinned
kaspanet/silverscriptcheckout:patches/silverscript-opzkprecompile.patchscripts/apply-silverscript-opzkprecompile-patch.shnpm run patch:silverc:zkThat script:
OpZkPrecompilesilverc.silcontract containingrequire(OpZkPrecompile())So the patch path is no longer just design text — it works against the pinned upstream snapshot used by OpenSilver.
Next external step
Turn that validated local patch into the real upstream contribution:
kaspanet/silverscriptExpose OpZkPrecompile builtin to SilverScript front-end@OriNewman,@saefstroemreferences/silverscript-rfc-opzkprecompile.mdScope of the upstream PR
silverscript-lang/src/compiler/compile.rssilverscript-lang/src/compiler/debug_value_types.rssilverscript-lang/std/builtins.silWhy this matters
This is the clean unblock for OpenSilver Phase 5. Until it merges, the ZK patterns remain design-only upstream, even though OpenSilver now has a local experimental patch path.