gioser

tawasuyu/brahman

Rust 332TOML 127JSON 17Markdown 154710 Definiciones

⎇ 6facc3c8ed901d441e45bc052eadd6bbd2c668f5 scripts/check-shared-cores.sh Shell · 60 líneas · 2.3 KB Historia crudo

feat: guardián no_std de núcleos compartidos + doc de integración renaser efcf6f825 · sergio ·

1#!/usr/bin/env bash
2# =============================================================================
3#  brahman :: check-shared-cores.sh — guardián no_std de los núcleos compartidos
4# -----------------------------------------------------------------------------
5#  Algunos crates de brahman son NÚCLEOS COMPARTIDOS: lógica pura que también
6#  compila el kernel bare-metal de renaser (ver docs/renaser-integracion.md).
7#  Para seguir siéndolo deben permanecer `no_std` — y eso se rompe en silencio
8#  con sólo añadir una dependencia que arrastre `std`.
9#
10#  Este script es la red de seguridad: compila cada núcleo registrado para
11#  `x86_64-unknown-none` (el target del kernel de renaser). Si un núcleo
12#  recobró `std`, la compilación falla aquí y no semanas después en renaser.
13#
14#  Uso:   ./scripts/check-shared-cores.sh
15#  Sale 0 si todos los núcleos compilan no_std; 1 si alguno falla.
16# =============================================================================
17set -euo pipefail
18
19# --- Núcleos compartidos registrados -----------------------------------------
20# Al promover un crate a núcleo compartido (hacerlo `no_std` y enlazarlo desde
21# renaser), añádelo a esta lista. Es el contrato: lo que está aquí, renaser lo
22# puede consumir; mantenerlo no_std es obligatorio.
23CORES=(
24  mirada-layout   # motor de teselado del compositor (Fase 8 de renaser)
25)
26
27TARGET="x86_64-unknown-none"
28
29cd "$(dirname "$0")/.."
30
31echo "guardián no_std — núcleos compartidos brahman ↔ renaser"
32echo "target bare-metal: ${TARGET}"
33echo
34
35# El target bare-metal debe estar instalado para el toolchain activo.
36if ! rustup target list --installed 2>/dev/null | grep -qx "${TARGET}"; then
37  echo "instalando el target ${TARGET}…"
38  rustup target add "${TARGET}"
39fi
40
41fallos=0
42for core in "${CORES[@]}"; do
43  printf '  %-20s ' "${core}"
44  if cargo build -q -p "${core}" --target "${TARGET}" 2>/tmp/check-core-"${core}".log; then
45    echo "ok — compila no_std"
46  else
47    echo "FALLA — recobró std o no compila bare-metal"
48    sed 's/^/      /' /tmp/check-core-"${core}".log
49    fallos=$((fallos + 1))
50  fi
51done
52
53echo
54if [ "${fallos}" -eq 0 ]; then
55  echo "todos los núcleos siguen siendo no_std (${#CORES[@]}/${#CORES[@]})."
56  exit 0
57else
58  echo "${fallos} núcleo(s) rompieron la garantía no_std."
59  exit 1
60fi