something I'd like your input on: from what I understand one of the biggest advantages of concatenative languages is their ease of refactoring ‘since functions can be trivially split and recombined along any syntactic boundary’ (as you wrote). but with the named stacks, we might still need to do some renaming, right? (with some splitting discipline it shouldn't be necessary, I'd say.) or is there something I missed?
I've thought of a real question now: wouldn't it be easier to implement this in Factor than in Haskell? I'm asking out of interest rather than because I think you should re-implement it.
BTW, if you happen to use Nix, could you please add this great thing to NixOS?
> wouldn't it be easier to implement this in Factor than in Haskell?
I have no idea. I chose Haskell primarily because of the excellent "Typing Haskell in Haskell" resource: https://web.cecs.pdx.edu/~mpj/thih/
I'm getting close to having enough language features working to implement Dawn in itself, though. As soon as I reach that milestone, I plan to write a Dawn-to-C translator sufficient to compile a simple self-hosted interpreter via C, from which point the language will be fully self hosted.
"performance and control of C" also means that you can make datastructures with arbitrary pointers, right? The simplest example that doesn't work in rust is a linked list.
How can you do that when you only have multiple stacks, but no heap?