Commit 4eb3cf01 by PLN (Algolia)

docs(corpus): the real compile-failure count, with an honest denominator (#112)

The clean re-run after the harness fixes. Three numbers have now been attached
to this question and the first two were both about the tool:

    #112 said        14   (a baseline taken during the mute migration)
    pre-fix run     128   (the column-0 `$` artifact, ~49 of them fake)
    clean run        79 BROKEN + 30 CRASH, out of 799 files

And 799 is the wrong denominator too. Split by scope:

    OPAL setlist        13 files    0 BROKEN   0 CRASH
    live/              694 files   51 BROKEN  21 CRASH   ~10%
    study/              59 files   13 BROKEN   3 CRASH
    sandbox/blocks/test 21 files    5 BROKEN   3 CRASH

`study/` is Tidal DOCUMENTATION with inline examples — prose that was never
meant to compile as a track. Counting it inflates the figure the same way the
harness bug did, just more quietly. The number worth quoting is 51+21 of 694.

THE GIG IS UNAFFECTED. Zero setlist tracks in either category, and gig-up is GO.

The CRASH class is new and it is the valuable one. These tracks COMPILE, then
throw when queried — invalid mini-notation inside a string, which is exactly why
the type checker waved them through:

    "[d d] <d d d*2 d*4>]"     unbalanced bracket
    "~ ulgab?:1"               `?` before `:`
    "[0 .. 7 0]"               a range with a trailing element
    "<0.75 .. 0.8 0.8 .. 0.65>"  a sequence on the left of `..`

Every one would fail live, because the scheduler queries every cycle. Until this
run they were all reported as "FAIL — 0 orbit(s) SILENT".

Deliberately NOT fixed here. None are in the set, and each one needs a decision
about what PLN meant — "[0 .. 7 0]" has at least two readings and only he knows
which. Triage is the deliverable; the edits are his call.

Also records a counting caveat rather than hiding it: silent-eval prints a
track's STEM, not its path, so stems that exist in several directories are
marked as ambiguous instead of guessed. The real fix is repo-relative paths in
silent-eval's output — noted on #112, not silently papered over.
parent caac31cb
# Corpus compile/query failures — 2026-07-31 clean re-run
Produced by `python3 tools/silent-eval.py $(git ls-files '*.tidal')` AFTER the
three harness fixes (commits d280acf, ee7b8b8). The pre-fix figures — #112's
"14", and an interim 128 — were both tool artifacts, not track counts. See #112.
## The honest denominators
```
scope files BROKEN CRASH note
------------------------------------------------------------------
OPAL setlist 13 0 0 the gig is unaffected
live/ 694 51 21 ~10% combined
study/ 59 13 3 tutorial prose, not tracks
sandbox/blocks/test 21 5 3 scratch material
ALL 799 79 30
```
`live/` is the only number that means anything. `study/` is Tidal documentation
with inline examples — it was never meant to compile as a track, and counting it
inflates the figure the same way the harness bug did.
**A counting caveat, stated rather than hidden:** `silent-eval` prints a track's
STEM, not its path, and a few stems exist in more than one directory. Those are
marked below instead of being guessed at. The real fix is to make silent-eval
print repo-relative paths.
## CRASH — compiles, then throws when queried
Fix these first: real, precisely located, and they WOULD fail live, because the
scheduler queries every cycle. Every one so far is invalid mini-notation inside
a string, which is why the compiler waved it through.
```
live/FOSDEM/after.tidal
run: Syntax error in sequence:
"[d d] <d d d*2 d*4>]"
^
unexpected ']'
sandbox/alphadance.tidal
run: Syntax error in sequence:
anar [2 files share this stem]
run: Syntax error in sequence:
"~ ulgab?:1"
^
live/fusion/anthropocene.tidal
sandbox/binary.tidal
run: Syntax error in sequence:
"[0 .. 7 0]"
^
unexpected " "
live/fusion/blue_party.tidal
live/bogdan.tidal
run: Syntax error in sequence:
"reverbkick(<2 <4 8>>,4):1"
^
unexpected ':'
live/briquets.tidal
run: Syntax error in sequence:
"wind:1?,wind?"
^
unexpected ','
study/chop_bogdan.tidal
run: Syntax error in sequence:
"<10 .. 15 15 .. 10>"
^
unexpected " "
live/techno/cocon.tidal
run: Syntax error in sequence:
live/techno/dambell.tidal
run: Syntax error in sequence:
"dr,drum:8"
^
live/chill/dim_blue.tidal
run: Syntax error in sequence:
"c4'major'<c4 f4 b3 c4>'six"
dub [3 files share this stem]
run: Syntax error in sequence:
"<0.75 .. 0.8 0.8 .. 0.65>"
^
live/techno/feeling_electric.tidal
run: Syntax error in sequence:
"<0,0.05 .. 0.3 0.3,0.05 .. 0>"
^
unexpected " "
live/friday_feb.tidal
run: Syntax error in sequence:
"<100,100 .. 1000 1000,100 .. 100>"
^
unexpected " "
live/techno/kart.tidal
live/hip/bb/minibeat.tidal
study/piano.tidal
run: Syntax error in sequence:
"0 [7|1]>"
^
unexpected '>'
live/pianotrap.tidal
run: Syntax error in sequence:
study/tutorial/pihkal.tidal
run: Syntax error in sequence:
"bd* sn . <lt*2> . cp"
^
live/fusion/ploink.tidal
run: Syntax error in sequence:
"<0.1 .. 0.5 0.5 0.1>"
^
unexpected " "
live/techno/progressive_tuesday.tidal
live/quantum.tidal
run: Syntax error in sequence:
"<0,0.1 .. 1 1,0.1 .. 0>"
^
unexpected " "
live/snake.tidal
run: Syntax error in sequence:
"0 [7|1]>"
^
unexpected '>'
sunday [2 files share this stem]
run: Syntax error in sequence:
"[dr,hh] hh hh [dr dr <dr ~> dr,hh*2]>"
^
unexpected '>'
sandbox/techno.tidal
live/FOSDEM/train_du_soir.tidal
run: Syntax error in sequence:
"bd:1 [sn,linnhats]:1"
^
unexpected ':'
live/techno/virus.tidal
run: Syntax error in sequence:
live/techno/vite.tidal
run: Syntax error in sequence:
"0 .. 3 <7 7 10 6 7> .. <8 10 7 7 7>"
^
unexpected ' '
live/hip/volette.tidal
run: Syntax error in sequence:
```
## BROKEN — does not compile
Read each error before believing it. The lesson of this round is that a confident
tool message is a hypothesis: 49 of the previous 128 were the harness's own fault.
```
sandbox/808.tidal
808.tidal:6:3: error: Variable not in scope: hush
|
373 | hush
| ^^^^
live/midi/nova/instruments/8box.tidal
8box.tidal:4:21: error:
• Couldn't match expected type: Pattern Int
with actual type: String -> Pattern Double
• Probable cause: ‘cF’ is applied to too few arguments
study/samples/90s.tidal
<track>:365:1: error:
Multiple declarations of ‘g’
Declared at: <track>:364:1
<track>:365:1
live/midi/nova/instruments/AtomicRhodes.tidal
<track>:389:1: error:
Multiple declarations of ‘g’
Declared at: <track>:388:1
<track>:389:1
live/midi/nova/dnb/BreakBass.tidal
BreakBass.tidal:200:13: error:
Variable not in scope: chords :: Pattern Note
Suggested fix:
Perhaps use one of these:
live/midi/nova/DX_tech.tidal
<track>:370:1: error:
Multiple declarations of ‘g’
Declared at: <track>:369:1
<track>:370:1
Noise [2 files share this stem]
Noise.tidal:38:5: error:
Variable not in scope: funk_noise :: ControlPattern
|
367 | $ funk_noise
Noise [2 files share this stem]
Noise.tidal:38:5: error:
Variable not in scope: funk_noise :: ControlPattern
|
367 | $ funk_noise
live/midi/nova/ambient/ambient_chaos.tidal
<track>:367:1: error:
Multiple declarations of ‘prog’
Declared at: <track>:366:1
<track>:367:1
anar [2 files share this stem]
anar.tidal:51:14: error:
• Couldn't match type: Pattern a0 -> Pattern a0
with: Pattern ValueMap
Expected: Pattern ValueMap -> Pattern ValueMap
live/mood/sad/bass_vibes.tidal
<track>:366:17: error:
Variable not in scope: g :: Pattern ValueMap -> ControlPattern
|
366 | orb1_8 = idcp $ g
beats [2 files share this stem]
beats.tidal:42:38: error:
• Couldn't match type ‘Double’ with ‘Note’
Expected: Pattern Note
Actual: Pattern Double
study/looper/blue_loop.tidal
blue_loop.tidal:31:7: error:
• Couldn't match expected type: Pattern a1 -> ControlPattern
with actual type: Pattern a0
• In the first argument of ‘($)’, namely ‘qtrigger 1’
live/boeuf/algorythm/season2/blues_wednesday.tidal
<track>:367:1: error:
Multiple declarations of ‘gDJF’
Declared at: <track>:366:1
<track>:367:1
live/hip/bocal.tidal
bocal.tidal:43:11: error:
Variable not in scope: scaleBocal :: Pattern Note
|
404 | # note (scaleBocal - 24)
live/midi/nova/breaks/break_90s.tidal
break_90s.tidal:22:5: error: parse error on input ‘.’
|
373 | . (<| "k k k k k k k [<k ~> <k k ~ k>]")
| ^
live/midi/nova/breaks/break_at_home.tidal
<track>:366:1: error:
Multiple declarations of ‘g2’
Declared at: <track>:364:1
<track>:366:1
live/chill/atm/break_blue.tidal
<track>:441:19: error:
• Couldn't match type: Pattern String -> ControlPattern
with: Pattern ValueMap
Expected: ControlPattern
live/midi/nova/dubstep/break_my_new_synths.tidal
<track>:373:13: error:
• No instance for (Fractional String)
arising from the literal ‘0.5’
• In the second argument of ‘cF’, namely ‘0.5’
live/boeuf/canard_breake.tidal
<track>:395:18: error:
Variable not in scope: gF :: Pattern ValueMap -> ControlPattern
Suggested fix:
Perhaps use one of these:
live/boeuf/canicule.tidal
<track>:367:1: error:
Multiple declarations of ‘dGlob’
Declared at: <track>:366:1
<track>:367:1
cbow [2 files share this stem]
cbow.tidal:2:3: error: Variable not in scope: once
|
371 | once $ "dr"
| ^^^^
cbow [2 files share this stem]
<track>:369:1: error:
Multiple declarations of ‘g’
Declared at: <track>:368:1
<track>:369:1
live/midi/nova/computer_riddub.tidal
computer_riddub.tidal:145:13: error:
Variable not in scope: melody :: Pattern Note
|
501 | $ note (melody)
live/collab/louis/d_accord.tidal
d_accord.tidal:42:7: error:
Variable not in scope: jchord :: t0 -> Pattern ValueMap
Suggested fix:
Perhaps use one of these:
live/boeuf/dimanche_pizza.tidal
<track>:365:1: error:
Multiple declarations of ‘melody’
Declared at: <track>:364:1
<track>:365:1
study/nova/disco_punk.tidal
disco_punk.tidal:32:35: error:
Variable not in scope: patBass :: Pattern Note
|
386 | $ note (slowcat (take 7 (repeat patBass) ++ [patBassAlt]) + chordsBass)
study/samples/drum_machines.tidal
<track>:366:18: error:
• Couldn't match type: [Pattern a0] -> Pattern a0
with: Pattern ValueMap
Expected: ControlPattern
blocks/drums.tidal
drums.tidal:11:5: error:
• Couldn't match type: ControlPattern -> ControlPattern
with: Pattern ValueMap
Expected: ControlPattern
live/hip/lofi/du_miel.tidal
<track>:367:1: error:
Multiple declarations of ‘chordsMin’
Declared at: <track>:366:1
<track>:367:1
dub [3 files share this stem]
dub.tidal:101:3: error: Variable not in scope: once
|
462 | once $ "fbass" # note (-2)
| ^^^^
live/midi/nova/party/electro_blues.tidal
electro_blues.tidal:72:15: error:
lexical error at character '\178'
|
430 | # room 0.4²
live/hip/instru/envahisseur_celtique.tidal
envahisseur_celtique.tidal:36:14: error:
Data constructor not in scope: S
|
397 | # gain 1.3S
live/chill/epilog.tidal
<track>:367:1: error:
Multiple declarations of ‘g’
Declared at: <track>:366:1
<track>:367:1
live/collab/val/euclidian_machine.tidal
<track>:373:1: error:
Multiple declarations of ‘l’
Declared at: <track>:364:1
<track>:373:1
live/midi/nova/feu.tidal
feu.tidal:113:12: error:
Variable not in scope: chords :: Pattern Note
Suggested fix:
Perhaps use one of these:
live/boeuf/fevrier.tidal
<track>:375:1: error:
Multiple declarations of ‘gG’
Declared at: <track>:364:1
<track>:375:1
live/boeuf/algorythm/first_jam.tidal
<track>:366:1: error:
Multiple declarations of ‘gF’
Declared at: <track>:364:1
<track>:366:1
live/chip/game_on.tidal
<track>:386:23: error:
lexical error in string/character literal at character '\n'
|
386 | orb5_21 = idcp $ "bass
live/midi/looper/god_money.tidal
<track>:378:18: error:
• Couldn't match expected type: Pattern ValueMap
with actual type: Pattern ValueMap -> Pattern ValueMap
• Probable cause: ‘whenmod’ is applied to too few arguments
sandbox/hello.tidal
<track>:454:1: error:
parse error (possibly incorrect indentation or mismatched brackets)
|
454 | orb1_119 = idcp $ up "<[1, 5, 8], [3, 6, 8]>" # sound "arpy"
live/collab/igor/hello_studio.tidal
<track>:373:1: error:
Multiple declarations of ‘p’
Declared at: <track>:19:1
<track>:373:1
live/midi/hello_world.tidal
<track>:370:35: error:
• Couldn't match type ‘Double’ with ‘Note’
Expected: Pattern Note
Actual: Pattern Double
live/boeuf/algorythm/fdlm2022/intro_parvagues.tidal
<track>:367:1: error:
Multiple declarations of ‘g’
Declared at: <track>:364:1
<track>:367:1
live/midi/nova/lounge/invoque_ete.tidal
<track>:467:19: error:
Variable not in scope: f1 :: a0 -> ControlPattern
Suggested fix:
Perhaps use one of these: ‘fb’ (line 85), ‘fm1’ (line 83)
live/midi/nova/breaks/its_about_time.tidal
<track>:447:19: error:
Variable not in scope: gM :: Pattern ValueMap -> ControlPattern
Suggested fix:
Perhaps use one of these:
live/hardcore/jambon.tidal
<track>:366:18: error:
• Couldn't match expected type: Pattern ValueMap
with actual type: ControlPattern -> ControlPattern
• Probable cause: ‘slice’ is applied to too few arguments
live/remix/kanye_fly.tidal
<track>:365:1: error:
Multiple declarations of ‘kWhen’
Declared at: <track>:364:1
<track>:365:1
live/midi/nova/grunge/le_bruit_des_bots.tidal
le_bruit_des_bots.tidal:41:7: error:
Variable not in scope: gqin
Suggested fix:
Perhaps use ‘gain’ (imported from Sound.Tidal.Context)
live/collab/cookie/maudite_soit_la_guerre.tidal
<track>:368:34: error:
Variable not in scope: jchord :: t1 -> Pattern a
Suggested fix:
Perhaps use one of these:
study/discord/meetup.tidal
meetup.tidal:26:7: error:
Variable not in scope:
cpsDisc
:: Pattern Double -> t2 -> Pattern ValueMap -> ControlPattern
blocks/melody.tidal
<track>:382:71: error:
Variable not in scope: prog :: Pattern Int
|
382 | orb2_23 = idcp $ s "supersaw(<5 7 3>,8, <0 2>)" # n (scale "aeolian" (prog - 14)) # gain 0.85 # voice 0.1 # room 0.6 # orbit 0
test/mi_ugens.tidal
<track>:379:55: error:
Variable not in scope: level :: t0 -> Pattern ValueMap
Suggested fix:
Perhaps use one of these: ‘level1’ (line 79), ‘level2’ (line 80)
live/chip/nano_rain.tidal
<track>:365:1: error:
Multiple declarations of ‘g’
Declared at: <track>:364:1
<track>:365:1
live/techno/funk/nass_night.tidal
<track>:365:1: error:
Multiple declarations of ‘dGlob’
Declared at: <track>:364:1
<track>:365:1
live/ambient/new_machine.tidal
<track>:365:1: error:
Multiple declarations of ‘modIndex’
Declared at: <track>:364:1
<track>:365:1
live/techno/nightly_repair.tidal
<track>:366:1: error:
Multiple declarations of ‘scale’
Declared at: <track>:364:1
<track>:366:1
live/midi/nova/breaks/nova_bossa.tidal
<track>:367:1: error:
Multiple declarations of ‘mBreak’
Declared at: <track>:366:1
<track>:367:1
copycat/numero10.tidal
numero10.tidal:54:5: error:
• Couldn't match expected type: Pattern ValueMap -> ControlPattern
with actual type: Pattern a0
• In the first argument of ‘($)’, namely ‘silence’
live/midi/nova/beatober/oct_5.tidal
<track>:367:1: error:
Multiple declarations of ‘gDJF’
Declared at: <track>:366:1
<track>:367:1
live/midi/nova/once_upon_a_loop.tidal
<track>:370:7: error:
Variable not in scope: lname :: t0 -> Pattern ValueMap
|
370 | # lname ""
live/collab/raph/partir.tidal
<track>:429:7: error:
Variable not in scope: g :: Pattern ValueMap -> ControlPattern
|
429 | $ g
live/midi/nova/party_hard.tidal
<track>:373:1: error:
Multiple declarations of ‘g’
Declared at: <track>:372:1
<track>:373:1
study/performances_tokyo.tidal
performances_tokyo.tidal:26:5: error:
• Couldn't match type: Pattern a0 -> Pattern a0
with: Pattern ValueMap
Expected: ControlPattern
live/midi/nova/party/phunk.tidal
phunk.tidal:88:13: error:
Variable not in scope: prog :: Pattern Note
|
453 | $ note (prog - 12)
study/val/retour.tidal
retour.tidal:36:28: error:
Variable not in scope: prog2 :: Pattern Int
|
384 | # note (scale "aeolian" (prog2 - 7 + "[-7,0,<4 5 4>,7,<9 10>]"))
live/boeuf/samedi_confine_extra.tidal
<track>:366:130: error:
Variable not in scope: prog :: Pattern Int
|
366 | orb3_5 = idcp $ superimpose ((|-| n 24) . (# gain 0.0)) $ degradeBy 0 $ n (scale "aeolian" (iter 6 $ "[-2 2 7 11 14 7 0 14]*2" + prog - "0 -7 0 -7 0 0 -7")) # s "supersaw" # legato 1 # gain 0.65 # orbit 1 # lpf (slow 6 $ range 500 1200 sine) # lpq (slow 8 $ range 0 0.1 sine) # voice 0.1 # silence
study/club/fotw/snowball.tidal
<track>:370:18: error:
Variable not in scope:
snowball'
:: t0
gifts/snowfight.tidal
<track>:369:1: error:
Multiple declarations of ‘gF’
Declared at: <track>:364:1
<track>:369:1
live/midi/nova/breaks/solar.tidal
<track>:459:19: error:
Variable not in scope: g :: Pattern ValueMap -> ControlPattern
|
459 | orb7_103 = idcp $ g
test.tidal
<track>:396:5: error: parse error on input ‘+’
|
396 | + (
| ^
live/dnb/video_live.tidal
video_live.tidal:163:5: error:
The operator ‘.’ [infixr 9] of a section
must have lower precedence than that of the operand,
namely ‘$’ [infixr 0]
study/club/w3.tidal
<track>:463:1: error:
parse error (possibly incorrect indentation or mismatched brackets)
|
463 | orb1_247 = idcp $ loopAt 1 $ s "breaks125" # gain 0.5
study/club/w5.tidal
w5.tidal:176:7: error:
• Couldn't match expected type: Pattern ValueMap -> ControlPattern
with actual type: Pattern a0
• In the first argument of ‘($)’, namely ‘qtrigger 1’
study/club/w7.tidal
<track>:425:19: error:
• Couldn't match expected type: Pattern ValueMap -> ControlPattern
with actual type: Pattern a0
• In the first argument of ‘($)’, namely ‘qtrigger 1’
study/club/w8.tidal
<track>:379:37: error:
parse error on input ‘$’
Suggested fix: Perhaps you intended to use TemplateHaskell
|
study/club/fotw/weave.tidal
weave.tidal:114:6: error:
• Couldn't match expected type: (Pattern Double -> ControlPattern)
-> t0 -> Pattern ValueMap
with actual type: Pattern ValueMap
live/ambient/weird.tidal
<track>:365:1: error:
Multiple declarations of ‘g’
Declared at: <track>:364:1
<track>:365:1
live/midi/nova/zelda.tidal
<track>:376:1: error:
Multiple declarations of ‘gG’
Declared at: <track>:370:1
<track>:376:1
```
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment