WUT_Computer_Science/scripts
Krzysztof kuhy Rudnicki d5b94cd8a7
Some checks are pending
md-naming / markdown naming convention (push) Waiting to run
pre-commit / pre-commit (push) Waiting to run
runnability / runnability (push) Waiting to run
run.sh runs the program now, and says which one it is running
Reported by kuhy: "I run run.sh and I have no idea where the actual program is
and how to run it". In EPFU that was one `gcc -Wall -Wextra -pedantic main.c`
line and nothing else -- the makefile has no -o, so the binary is an a.out that
nothing mentions, and it was never executed.

Two separate failures, both fixed.

Building is not running. make, cxx, maven and dotnet built and stopped; make,
maven and dotnet did not even print where the output went, while cxx and tex
did. They all execute what they produced now. `make` is the awkward one,
because a makefile need not say what it writes: the runner snapshots the
executables either side of the build and runs whatever is new.

A course is not always one program. Twelve of them are not -- EPFU a game and
a lab, EOOP six binaries, EARIN eight labs, MOM three reports. With no target
named, an interactive run prints a numbered menu and asks; `run <dir> 2`, a
path substring, or `all` skips the prompt. Enumeration deliberately scans the
course root rather than --entry, because EPFU pinning --entry to penguins/src
is precisely why labs/krudnic3_lab1.c had never been compiled. --entry is the
default now, not the only.

Interactive by default: EPFU's penguins and ECOAR's puzzle both read stdin,
and you typed `run`, so you are at the keyboard. --batch (and any
non-terminal stdin) means no prompt, stdin from /dev/null and a 60s cap per
program, so an unattended run cannot wedge. --probe never reaches any of this
and does not even enumerate targets: all 44 probes produce a byte-identical
gates/runnability-local.tsv, and `status` is still seconds long.

Running things immediately found two bugs that could not have surfaced before,
both recorded in TODO-refactor-remaining.md rather than fixed here, since both
mean touching a submitted .c:

  - EPFU/labs/krudnic3_lab1.c dies with SIGFPE, integer division by zero.
  - ECOAR's puzzle.out writes dest.bmp beside its source, so the tree guard
    fails the run. That guard is doing exactly its job.

Verified: EPFU both targets, EOOP under a pty answering the prompt, EADS,
ECOAR, MOM. Full gate green, shellcheck clean on all 44 runners.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0172dj34FDpao6wsix8ZuCzE
2026-08-29 11:00:46 +02:00
..
check_ignore_consistency.sh Gate the invariants, fix ECOTE's unrunnable tests, contain build output 2026-08-28 18:43:13 +02:00
check_md_naming.sh Add pre-commit and fix everything it found 2026-08-28 18:21:22 +02:00
check_no_binaries.sh Add the no-binaries gate with a path-scoped allowlist 2026-08-28 17:37:53 +02:00
check_no_suppressions.sh Gate the zero, and fix the LaTeX course the run guard exposed 2026-08-29 08:41:34 +02:00
check_refactor_safety.py PORR runs in 28s, and three checks so the next pass cannot repeat my mistakes 2026-08-28 20:50:46 +02:00
course_exec.sh run.sh runs the program now, and says which one it is running 2026-08-29 11:00:46 +02:00
course_lib.sh run.sh runs the program now, and says which one it is running 2026-08-29 11:00:46 +02:00
course_probe.sh Say which jupyter problem it is, and regenerate the status table 2026-08-29 08:44:02 +02:00
course_run.sh run.sh runs the program now, and says which one it is running 2026-08-29 11:00:46 +02:00
course_targets.sh run.sh runs the program now, and says which one it is running 2026-08-29 11:00:46 +02:00
split_tex_sections.py Split 19 over-cap LaTeX reports, proving each PDF is unchanged 2026-08-28 19:47:12 +02:00
tex_fingerprint.sh Split 19 over-cap LaTeX reports, proving each PDF is unchanged 2026-08-28 19:47:12 +02:00