Skip to content

6 verbs have no headless kernel implementation (quickTime.*, string.nthChar); misclassified as broken in #879 #882

Open

Description

@jsavin

Rationale

6 verbs referenced by Virgin.root scripts have NO kernel implementation in the headless build. Their scripts "fail to compile" with "Error in kernel call. The verb X does not exist, or isn't set up to handle messages" — NOT stored corruption (control: string.upper has byte-identical kernel(...) shape and compiles). These were misclassified as broken scripts in #879. Disposition needed per verb: implement headless, or document as intentionally absent.

Current State

Missing kernel implementations (headless build, verified 2026-08-10):

  1. quickTime.isPlaying — no kernel implementation
  2. quickTime.open — no kernel implementation
  3. quickTime.play — no kernel implementation
  4. quickTime.stop — no kernel implementation
  5. window.quickTime — no kernel implementation
  6. string.nthChar — no kernel implementation

Error signature:

  • "Error in kernel call. The verb X does not exist, or isn't set up to handle messages"
  • NOT stored corruption (control test: string.upper has byte-identical kernel(...) call shape and compiles successfully)

Impact:

Desired Outcome

For each missing verb, decide:

  1. Implement headless: Add kernel implementation (especially string.nthChar, which is presumably trivial)
  2. Document absent: quickTime verbs on headless don't make sense; document as intentionally GUI-only

Recommendation

string.nthChar (HIGH priority):

  • Presumably straightforward string utility (return Nth character)
  • Used in active scripts
  • Recommendation: implement in headless build

quickTime. (LOW priority)*:

  • GUI/multimedia operations (play, stop, etc.)
  • Questionable value on headless server
  • Recommendation: document as GUI-only; no headless implementation needed
  • Alternative: stub implementations that return errors or no-op

window.quickTime (LOW priority)**:

  • Related to quickTime operations
  • Likely GUI-only
  • Recommendation: document as GUI-only

Exit Criteria

Related Context

Misclassification Note

#879 incorrectly classified these as "genuinely broken scripts" (stored corruption). They are actually "missing kernel implementations in headless build" — a build/configuration issue, not a data integrity issue. The distinction matters: stored corruption requires data repair; missing implementations require build decisions.

Activity

  1. added
    priority/p2Medium priority - nice to have
    scope/medium1-2 weeks, requires design work
    workstream/runtime-coreRuntime architecture, memory, lifecycle, and global context
    on Aug 11, 2026
  2. jsavin commented on Aug 11, 2026

    @jsavin
    OwnerAuthor

    Provenance Confirmation (#879 investigation complete):

    The 6 scripts (quickTime.*, string.nthChar) are byte-intact ORIGINAL kernel glue:

    • String.nthChar: correct 2-line stub
    • All present unchanged since v6 ancestor (2025-08-09)
    • NO corruption, NO script rewrites needed

    Gap is purely HEADLESS VERB REGISTRATION: These verbs work on Mac (UserLand shipped them); the issue is they're unregistered in the headless build.

    Correction to #879: These 6 are NOT "broken scripts" — they're correctly-authored kernel stubs waiting for verb registration in the headless configuration.

    Action: Reclassify #879 and resolve this issue as verb-registration work (possibly defer to post-#855 or mark as known-limitation for headless build).

  3. jsavin commented on Aug 11, 2026

    @jsavin
    OwnerAuthor

    Fix Likely CHEAP — Registration Gap, Not Missing Implementation (#882 Headless Verbs):

    Evidence from byte analysis:

    • string.nthChar IS declared in Common/resources/Mac/kernelverbs.r:557
    • nthcharfunc has live case handler at Common/source/stringverbs.c:1629
    • Control test: string.upper/lower/nthField compile (dispatch present)
    • string.nthChar fails (dispatch absent)
    • Byte-identical glue shapes across all six stubs

    Root cause: NAME-TABLE/DISPATCH REGISTRATION gap in headless build, NOT missing implementation

    Recommendation: Scope as verb-table entry (probably headless verb-table registration, no new code needed)

    All six stubs byte-identical to pristine v6 ancestor (2025-08-09) — no corruption, no rewrites needed. Just register the verbs in the headless build configuration.

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

    priority/p2Medium priority - nice to havescope/medium1-2 weeks, requires design worktype/featureNew feature or requestworkstream/runtime-coreRuntime architecture, memory, lifecycle, and global context

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions