Saltar al contenido

La evidencia, ejecutable

Cinco kits, escritos a ciegas, que coinciden.

Cada uno lo escribió un agente que solo tenía los documentos publicados y el verificador, y nunca otro kit. Cada kit pasa el verificador por sí solo, y cada pareja pasa en ambos sentidos. Esa es la afirmación de que los documentos están completos, y puedes ejecutarla tú mismo. Ninguno es una referencia.

GoZigPythonJavaScriptRustun extraño
01

Cinco kits, un lenguaje cada uno.

Cada uno es un ejemplo entre iguales. Ninguno es una referencia, una librería o un producto, y ninguno está pensado para importarse. El ANSWERS.md de cada kit es su respuesta a cada pregunta de KIT-SPEC.md.

GoZigPythonJavaScriptRust
fiveCinco kits. El muro y su hueco son iguales, porque eso es todo lo que dice Quo. Lo que vive dentro es propio de cada casa.
  • Go

    Go 1.27 · depende de the standard library

    Compilar
    tcp`, `http`, `ws
    Pruebas
    (cd go && go test ./...)
    Verificador
    node ../verifier/cli.js --cwd go -- go build -o stand .

    El código · Sus respuestas

  • Zig

    Zig 0.16 · depende de the standard library and libc

    Compilar
    tcp
    Pruebas
    (cd zig && zig build test)
    Verificador
    node ../verifier/cli.js --cwd zig -- zig build

    El código · Sus respuestas

  • Python

    Python 3.9 or later · depende de cryptography

    Compilar
    tcp`, `http
    Pruebas
    (cd python && python3 -m unittest discover -s tests)
    Verificador
    node ../verifier/cli.js --cwd python -- none

    El código · Sus respuestas

  • JavaScript

    Node 24 · depende de Node's own modules

    Compilar
    tcp`, `http`, `ws
    Pruebas
    (cd javascript && npm test)
    Verificador
    node ../verifier/cli.js --cwd javascript -- none

    El código · Sus respuestas

  • Rust

    Rust 1.98, edition 2021 · depende de the algorithms' crates

    Compilar
    tcp
    Pruebas
    (cd rust && cargo test)
    Verificador
    node ../verifier/cli.js --cwd rust -- cargo build

    El código · Sus respuestas

Una compilación se ejecuta dentro de la carpeta del propio kit. Las pruebas y el verificador se ejecutan desde la carpeta de ejemplos del repositorio.

02

Dos cualesquiera, juntos.

Dos kits cualesquiera uno contra otro, a través del proxy del verificador:

node ../verifier/cli.js --two -- "$PWD/go/stand" -- "$PWD/rust/target/debug/stand"

Donde dos kits responden distinto y aun así se hablan, la diferencia es del kit, y Quo la permite.

03

El mundo.

Ocho escenas de los cinco kits hablándose, narradas: Alice y Bob, en ambos sentidos, un anillo por todos los kits, la malla de cada pareja, una recepción en la cabecera cero, un extraño probando cada puerta, una respuesta perdida por el camino y una tarjeta que dice dónde, alcanzada por su at sobre cada portador que dos kits comparten.

Cada pareja es un pliegue con una cabina en cada extremo, roja donde esa casa pide y morada donde responde, y el extraño que prueba cada puerta solo tiene hojas en blanco.

node world.mjs

Todo a la vez, cada compilación, prueba, ejecución del verificador, pareja y el mundo:

node check.mjs
04

Necesario, nunca suficiente.

Cada kit de aquí pasa el verificador por sí solo, y cada pareja pasa en ambas direcciones. Eso es necesario, y no dice nada sobre si un kit es bueno.