packages feed

phino-0.0.153: test-resources/evaluate-packs/fails-on-a-message-whose-firing-gets-stuck.yaml

# SPDX-FileCopyrightText: Copyright (c) 2025 Objectionary.com
# SPDX-License-Identifier: MIT
---
# yamllint disable rule:line-length
# The walk reduces the message of the copy a branch raises with like any other
# code, so the firing of 'L_number_plus' it asks for gets stuck on the
# 'L_number_nope' no entry answers, the way the firing of any operand does, and
# the run fails (#1867).
symbolic: |
  - λ: L_number_gt
    dataize:
      𝛿1: $.ρ
      𝛿2: $.x
    𝑛: Φ.bool( φ ↦ ⟦ λ ⤍ 𝜎 ⟧ )
  - λ: L_number_plus
    dataize:
      𝛿1: $.ρ
      𝛿2: $.x
    𝑛: Φ.number( φ ↦ ⟦ λ ⤍ 𝜎 ⟧ )
  - λ: L_fork
    dataize:
      𝛿1: $.ρ
    morph:
      𝑛1: $.then
      𝑛2: $.else
    symbolize:
      𝑛3: 𝑛1
      𝑛4: 𝑛2
    join:
      𝑛5: [𝑛3, 𝑛4]
    terminators: [L_throw]
    𝑛: 𝑛5
location: 'Q.@'
deep: true
input: >
  ⟦ bytes(φ) ↦ ⟦⟧,
    error(message) ↦ ⟦ λ ⤍ L_throw ⟧,
    bool(φ) ↦ ⟦ if ↦ ⟦ ρ ↦ ∅, then ↦ ∅, else ↦ ∅, λ ⤍ L_fork ⟧ ⟧,
    number(φ) ↦ ⟦
      gt(ρ, x) ↦ ⟦ λ ⤍ L_number_gt ⟧,
      plus(ρ, x) ↦ ⟦ λ ⤍ L_number_plus ⟧,
      nope(ρ, x) ↦ ⟦ λ ⤍ L_number_nope ⟧ ⟧,
    @ ↦ 5.gt( 0 ).if( then ↦ 1, else ↦ Φ.error( message ↦ 7.plus( 8.nope( 9 ) ) ) ).plus( 6 ) ⟧
fails: "No entry of --symbolic answers the λ function 'L_number_nope'"
protocol: |
  𝕄(Φ.φ):
    𝑛·0·1 := 5
    𝑛·0·2 := 𝑛·0·1.gt( x ↦ 0 )
    𝔼(L_number_gt):
      𝔻(Φ.a🌵0):
        𝕄(Φ.a🌵0):
          𝑛·1·1 := 5
          𝑛·1·2 := Φ.bytes( φ ↦ 40-14-00-00-00-00-00-00:Δ )
        𝛿·1·1 := 40-14-00-00-00-00-00-00  # 5.0
      𝛿1·1 := 𝛿·1·1  # 𝔻(ξ.ρ)
      𝔻(Φ.a🌵1):
        𝕄(Φ.a🌵1):
          𝑛·1·3 := 0
          𝑛·1·4 := Φ.bytes( φ ↦ 00-00-00-00-00-00-00-00:Δ )
        𝛿·1·2 := 00-00-00-00-00-00-00-00  # 0.0
      𝛿2·1 := 𝛿·1·2  # 𝔻(ξ.x)
      𝑛·1·5 := Φ.bool( φ ↦ 𝜎1:λ )  # 𝑛
      𝕄(𝑛·1·5):
        𝑛·1·6 := Φ.bool( φ ↦ 𝜎1:λ )
      𝑛·1·7 := 𝑛·1·6  # 𝕄(𝑛·1·5)
    𝑛·0·3 := 𝑛·1·6.if( then ↦ 1 )
    𝑛·0·4 := 𝑛·0·3( else ↦ Φ.error( message ↦ 7.plus( 8.nope( 9 ) ) ) )
    𝔼(L_fork):
      𝔻(Φ.a🌵2):
        𝕄(Φ.a🌵2):
          𝑛·2·1 := Φ.bool( φ ↦ 𝜎1:λ )
      𝛿1·2 := 𝔻(𝜎1:λ)  # 𝔻(ξ.ρ)
      𝕄(Φ.a🌵3):
        𝑛·2·2 := 1
        𝕄(Φ.a🌵3.φ):
          𝑛·2·3 := Φ.bytes( φ ↦ 3F-F0-00-00-00-00-00-00:Δ )
      𝑛1·2 := 𝑛·2·2  # 𝕄(ξ.then)
      𝕄(Φ.a🌵4):
        𝑛·2·4 := Φ.error( message ↦ 7.plus( 8.nope( 9 ) ) )
        𝕄(Φ.a🌵4.message):
          𝑛·2·5 := Φ.bytes( φ ↦ 40-1C-00-00-00-00-00-00:Δ )
          𝑛·2·6 := Φ.number( φ ↦ 𝑛·2·5 )
          𝑛·2·7 := Φ.number( φ ↦ 𝑛·2·5 )
          𝑛·2·8 := Φ.bytes( φ ↦ 40-20-00-00-00-00-00-00:Δ )
          𝑛·2·9 := Φ.number( φ ↦ 𝑛·2·8 )
          𝑛·2·10 := Φ.number( φ ↦ 𝑛·2·8 )
          𝑛·2·11 := Φ.bytes( φ ↦ 40-22-00-00-00-00-00-00:Δ )
          𝑛·2·12 := Φ.number( φ ↦ 𝑛·2·11 )
          𝑛·2·13 := Φ.number( φ ↦ 𝑛·2·8 )
          𝑛·2·14 := 𝑛·2·13.nope( x ↦ 𝑛·2·12 )
          𝑛·2·15 := Φ.number( φ ↦ 𝑛·2·5 )
          𝑛·2·16 := 𝑛·2·15.plus( x ↦ 𝑛·2·13.nope( 𝑛·2·12 ) )
          𝔼(L_number_plus):
            𝔻(Φ.a🌵5):
              𝕄(Φ.a🌵5):
                𝑛·3·1 := Φ.number( φ ↦ 𝑛·2·5 )
                𝑛·3·2 := Φ.bytes( φ ↦ 40-1C-00-00-00-00-00-00:Δ )
              𝛿·3·1 := 40-1C-00-00-00-00-00-00  # 7.0
            𝛿1·3 := 𝛿·3·1  # 𝔻(ξ.ρ)
            𝔻(Φ.a🌵6):
              𝕄(Φ.a🌵6):
                𝑛·3·3 := Φ.number( φ ↦ 𝑛·2·8 )
                𝑛·3·4 := 𝑛·3·3.nope( x ↦ 𝑛·2·12 )
              unanswered(L_number_nope)  # 𝔻(𝑛·3·4)
            stuck(L_number_nope)
      stuck(L_number_nope)