Skip to content

WASI phase 2: WASI arms for perry-runtime platform code #11377

Closed

Description

@proggeramlug

Part of #11375.

Give every platform-specific runtime path a target_os = "wasi" arm so perry-runtime builds for wasm32-wasip2:

  • gate perry_sjlj.c build on a WASI sysroot (wasi-sdk) and link libsetjmp
  • date.rs timestamp_to_local_components: UTC-only arm (WASI has no TZ database)
  • child_process / turnloop_proc: throw a clear "not supported on WASI" error
  • dns_resolver.rs / sockets: wasip2 wasi:sockets + ip-name-lookup (socket2 with all already builds for wasip2)
  • eh.rs: dladdr / unwind-register code has no wasm equivalent
  • event loop: a WASI backend (turnloop is compiled out on wasm)
  • perry/thread: sequential parallelMap/parallelFilter, main-thread spawn
  • fs: std fs over preopened directories

Done when: cargo check -p perry-runtime --target wasm32-wasip2 --no-default-features is clean and a CI cargo check arm keeps it that way.

Activity

  1. proggeramlug commented on Oct 12, 2026

    @proggeramlug
    ContributorAuthor

    Done. perry-runtime builds for wasm32-wasip2 (3d18556) and the wasi-check job in compiler-runtime.yml keeps it building (scripts/wasi_check.sh). The remaining WASI work is tracked in #11375 and #11380.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions