I got bazc (my #Barry #compiler) working (just needed to track types of locals, which was straightforward enough) but it's #VerySlow: it takes 77 seconds to compile isoheptane.baz to C on my laptop. Not exactly useful for #LiveCoding
The full bidirectional #TypeInference is killing performance, especially with my naive implementation of "build a big Set of equations for the whole program then unify it" instead of something more incremental.
The interpreter is also #VerySlow though, on my laptop it can't even run isoheptane.baz in real time (it's about 2x slower than realtime, crudely measured with sndfile audio backend). When compiled via C to machine code, it generates an hour of WAV audio in about a minute.
So compilation makes it about 120x faster, just need to find a way to make the compiler fast enough for live use. If that means giving up bidirectional inference that would be ok I suppose, but I do want overloading, maybe argument-directed (C++-style) would be sufficient.

