For me the requirements are:Needs infinite storage and may not terminate
- turing complete (more than just filters)
- easy interface to kernel APIs (like hrtimers)It does for performance and audit. You don't want a JIT as it murders
- safe to use by untrusted users
The actual language doesn't really matter.
cache performance,
which means you want
- no self modification
- bounded run time
- bounded memory use
- trustable behaviour for access
and usually minimal side effects since you want to optimise very
heavily and side effects stop that (which is also why Fortran still kicks
C's backside for crunching)
Not sure you need/want to do the conversion in kernel.
I'd have thought a
sane way to handle it would have been to throw stuff at the kernel in
some kind of semi-sane byte code that can be interpreted by a noddy
interpreter but firstly when you get it have the kernel try and run a
helper to compile it.