– 4) Tail calls
Does the Mill support tail-call instructions? I’m told they’re important for some functional programming languages.
You might be able to save instruction entropy by encoding tail calls as “a return ganged with a function call”.
– 5) Exception handling
Do you have first-class C++ style exception handling?
By “first class”, I mean “zero-cost if no exception is thrown”, so no branch-after-every-function-return or things like that.
Also, can you handle setjmp/longjmp?
– 6) Coroutines
Do you support stackless coroutines in hardware? By coroutines, I mean functions you can jump into, yield from, and then jump back into at the yield point.
By stackless, I mean “unlike a thread, they don’t need their dedicated stack and add stack frames directly to the caller’s stack”. I guess the big difficulty would be spilling directly to userspace.