Three of gig-up's four standing NO-GO blockers were one file and one buffering
bug. Cleared them, verified each by planting the failure back.
**something_about_drums.tidal — two typos, both silent by design of the tooling**
:13 `(<| "~ <s s <s!3 ~> <~!7 [~ s]>>")d1` — a stray `d1` pasted straight
after the closing paren, no operator, no newline. GHC reported it as
"Variable not in scope: d1" at 13:56, and because a parse error takes the
whole do-block with it, the reported line belonged to the GROUP, not to
the break. The d2 block never ran.
:81 `d8 $ gF1 $ gM1` — d8 copy-pasted from d1's block without updating the
family macro. The authored map puts d8 in gM2 with d2 and d3, so d8 was
wired to the wrong mute family: pressing d8's mute would have taken d1
with it, live, and nothing about the code looked wrong.
after: `silent-eval --seeded` OK (every declared orbit emits events),
`fix-mute-roles --check` WOULD REWRITE: 0 lines, `pvlint (setlist)` ok.
**check-boot-blocks.py — the check was the third defect**
`tools/check-boot.sh` run alone passed clean, every line green, while gig-up
called the same check FAIL. The difference was not the rig. Under gig-up the
checker crashed:
ValueError: invalid literal for int() with base 10: '6C1o'
`'6C1o'` is two output lines interleaved character-wise. The cause is in the
capture: stdout and stderr are deliberately ONE merged pipe (separate capture
would put every marker before every error and attribute each error to the last
block — the mis-attribution this tool exists to prevent), but GHC block-buffers
stdout while writing errors to stderr unbuffered. Two writers, one pipe, so a
marker could be flushed into a chunk a stderr write had already cut into. Rare
enough to look like a phantom, and it presented as "your boot helpers are
broken" — the rig's most alarming failure — when nothing was wrong.
- `hSetBuffering stdout LineBuffering` is now the script's first statement, so
each marker is one atomic write, in order.
- Markers are self-delimiting (`@@PVBLOCK i start @@`) and matched by regex, so
a torn one CANNOT parse as intact.
- A torn marker, or a parse error that cannot be placed, is now INCONCLUSIVE
(rc=2, "rerun") rather than a crash — and rather than a silent skip, which
would have hidden a real error behind a green verdict.
Verified: 3 consecutive clean runs, then a planted unbalanced paren appended to
the block starting at :581 was caught and blamed on exactly that block
(rc=1, "block 16 (starts near bt.hs:581) is NOT one statement"). A checker that
cannot catch a planted bug is worth nothing, so that test is the one that counts.
gig-up: 4 blockers -> 2 (surface-grid migration debt, fader baseline).
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| FOSDEM | Loading commit data... | |
| TODO | Loading commit data... | |
| ambient | Loading commit data... | |
| boeuf | Loading commit data... | |
| chill | Loading commit data... | |
| chip | Loading commit data... | |
| collab | Loading commit data... | |
| disco | Loading commit data... | |
| dnb | Loading commit data... | |
| drone | Loading commit data... | |
| dub | Loading commit data... | |
| exp | Loading commit data... | |
| fusion | Loading commit data... | |
| hardcore | Loading commit data... | |
| hip | Loading commit data... | |
| jam | Loading commit data... | |
| late | Loading commit data... | |
| lib | Loading commit data... | |
| midi | Loading commit data... | |
| mood | Loading commit data... | |
| noise | Loading commit data... | |
| pair | Loading commit data... | |
| psc | Loading commit data... | |
| remix | Loading commit data... | |
| techno | Loading commit data... | |
| transe | Loading commit data... | |
| work | Loading commit data... | |
| amazonbeat.tidal | Loading commit data... | |
| anar.tidal | Loading commit data... | |
| autotune.tidal | Loading commit data... | |
| bdmania.tidal | Loading commit data... | |
| bodgan2.tidal | Loading commit data... | |
| bogbog.tidal | Loading commit data... | |
| bogdan.tidal | Loading commit data... | |
| briquets.tidal | Loading commit data... | |
| briquets2.tidal | Loading commit data... | |
| chill.tidal | Loading commit data... | |
| china.tidal | Loading commit data... | |
| clinique.tidal | Loading commit data... | |
| contrevent.tidal | Loading commit data... | |
| digestion_roll.tidal | Loading commit data... | |
| dnb.tidal | Loading commit data... | |
| etienne.tidal | Loading commit data... | |
| francesca.tidal | Loading commit data... | |
| friday.tidal | Loading commit data... | |
| friday2.tidal | Loading commit data... | |
| friday_feb.tidal | Loading commit data... | |
| funky_veranda.tidal | Loading commit data... | |
| hiphop.tidal | Loading commit data... | |
| home.tidal | Loading commit data... | |
| medievalcore.tidal | Loading commit data... | |
| nuit.tidal | Loading commit data... | |
| offbeat.tidal | Loading commit data... | |
| pianotrap.tidal | Loading commit data... | |
| quantum.tidal | Loading commit data... | |
| scratch.tidal | Loading commit data... | |
| seb.tidal | Loading commit data... | |
| snake.tidal | Loading commit data... | |
| trilles.tidal | Loading commit data... | |
| tutobeat.tidal | Loading commit data... | |
| val.tidal | Loading commit data... |