{"atom":"regression/conformance-missing-routines","family":"regression","slug":"conformance-missing-routines","header":{"atom":"regression/conformance-missing-routines","kind":"whole-program — a minimal repro, not yet reduced to an atom","source":"curated"},"axes":null,"cols":null,"engines":["rakudo-2026.07","rakupp-3.14.0"],"kinds":["ref","pp"],"defFrom":"rakupp:t/regression/conformance-missing-routines.raku","counts":{"a":1,"f":0,"d":0,"c":0,"r":0,"n":0},"files":["atoms/regression/conformance-missing-routines.grid"],"records":[["0001","","# Regression: routines the documentation demonstrates that had no implementation\n# at all, so every example touching them died on dispatch.\n#   * Junction.new(kind, elems) — the constructor spelling of any()/all()/one().\n#   * Format.new(\"%s|%s\") — a reusable sprintf; calling it formats its arguments.\n#     (Rakudo needs `use v6.e.PREVIEW` for this type; rakupp has it unguarded.)\n#   * indir($path, &code) — run the block with the process directory changed,\n#     restoring it however the block exits, exception included.\n# Contract: exit 0 + last line PASS.\nmy @fail;\nsub check($got, $want, $what) { @fail.push(\"$what: got $got want $want\") unless $got eq $want }\n\n# Junction.new — same value as the any()/all() sub forms\ncheck(Junction.new('any', (1, 2)).gist,    'any(1, 2)',    'junction-new-any');\ncheck(Junction.new('all', (1, 2, 3)).gist, 'all(1, 2, 3)', 'junction-new-all');\ncheck(Junction.new('one', (1,)).^name,     'Junction',     'junction-new-name');\ncheck((Junction.new('any', (1, 2)) == 2).Bool, 'True',  'junction-new-autothreads');\ncheck((Junction.new('all', (1, 2)) == 2).Bool, 'False', 'junction-new-all-autothreads');\n\n# Format — a reusable sprintf. EVAL'd because Rakudo 2026.06 only has this type\n# under `use v6.e.PREVIEW`, and this file is meant to run on both engines.\nif (try EVAL 'Format.new(\"%s|%s\")').defined {\n    check((EVAL 'Format.new(\"%s|%s\").^name'),     'Format', 'format-name');\n    check((EVAL 'Format.new(\"%s|%s\").arity'),     '2',      'format-arity-counts-directives');\n    check((EVAL 'Format.new(\"%s|%s\").Str'),       '%s|%s',  'format-str-is-the-format');\n    check((EVAL 'Format.new(\"%s|%s\")(\"a\",\"b\")'),  'a|b',    'format-is-callable');\n    check((EVAL 'Format.new(\"%d%%\").arity'),      '1',      'format-arity-skips-escaped-percent');\n}\n\n# indir — scoped chdir\nmy $before = $*CWD.Str;\nmy $inside = indir('/tmp', { $*CWD.Str });\ncheck($inside.contains('tmp'), 'True', 'indir-runs-in-the-directory');\ncheck($*CWD.Str eq $before,    'True', 'indir-restores-on-normal-exit');\n# … and on an exception too\ntry { indir('/tmp', { die 'boom' }) };\ncheck($*CWD.Str eq $before,    'True', 'indir-restores-on-exception');\n\nif @fail { note \"FAILED: @fail.join('; ')\"; say 'FAIL' } else { say 'PASS' }","output PASS","a",["PASS","PASS"],0,[["budget","20s"]]]]}