Skip to content

gopdsdk v0.11.0 - Complete Offline Services and Media

Choose a tag to compare

@ivan-gromov-dev ivan-gromov-dev released this 18 Aug 15:15
· 13 commits to master since this release
3a5d288

gopdsdk v0.11.0

This release completes the P11 offline services and media scope.

JSON

  • Added playdate/json, a dependency-free and reflection-free JSON package
    designed for the Playdate device runtime.
  • Added bounded decoding from io.Reader or bytes.
  • Preserved object ordering, duplicate names, exact number spelling, Unicode,
    and byte/path syntax diagnostics.
  • Added validated compact and pretty streaming output to io.Writer.
  • Added the examples/jsoncodec acceptance consumer.

Scoreboards

  • Hardened both native scoreboard adapters.
  • Native results are copied before deferred delivery on the update thread.
  • Added a fixed four-slot completion queue.
  • Enforced one pending request per operation kind.
  • Immediate failures release their request slot.
  • Termination clears queued work and suppresses late completions.

Scoreboards remain the sole pre-1.0 online exception; this release does not add
general networking or multiplayer.

Filesystem

  • Confirmed that File.Seek preserves the official current-position behavior
    by returning tell after a successful seek.
  • Added deterministic coverage for Seek(0, io.SeekCurrent).
  • Added coverage for tell failure classification and copying transient
    filesystem diagnostics at the failing operation boundary.

Video-stream audit

Playdate SDK 3.1.1 does not provide a documented or usable offline input
contract for playdate_videostream. The experimental stream API was therefore
removed rather than exposing an unsafe or non-functional public contract.

Owned packaged PDV playback remains available through Videos.LoadVideo and
VideoPlayer. Videostream research is deferred until Panic documents a usable
source container and protocol.

Compatibility

The changes are additive for existing v0.10 applications, except for removal of
the unreleased experimental VideoStream API.

Verified toolchain:

  • Go 1.26.5
  • Playdate SDK 3.1.1
  • TinyGo 0.41.1 with LLVM 20.1.1
  • Arm GNU Toolchain GCC 15.3.1

Validation

  • Formatting, go test ./..., go vet ./..., and git diff --check
  • Native CI on Windows, macOS, and Linux
  • Linux race detector
  • Playdate SDK 3.1.1 Simulator compilation and packaging on Windows
  • Conservative hard-float device compilation, linking, relocation validation,
    and packaging
  • Documented Simulator and physical-device acceptance for JSON and scoreboard
    failure/sequential-request behavior

See MIGRATING.md, CHANGELOG.md, API.md, and COMPATIBILITY.md for detailed
contracts, evidence, and remaining platform limitations.