↑ Home |
Evaluation feature | implemented? | Effort |
---|---|---|
free from memory leak bugs | yes, with help of Rc+automatic drop | medium |
unlimited number of local variables | yes | easy |
calling a callback with a new call stack of unlimited size | yes | easy |
dynamic loading | yes | easy |
eval (evaluate a string as Moss code) | yes | easy |
symbolic expressions | no | easy |
running multiple interpreter instances in parallel | yes, free of global variables | easy |
custom destructors taking calling environment | no | medium |
custom hashables taking calling environment | no | medium |
coroutines | partial support | medium |
closure capture by mutable reference instead of cloning | no | medium |
Usability features | implemented? | Effort |
default arguments | yes | easy |
named arguments | yes | easy |
named default arguments | yes | easy |
maps as named arguments | yes | easy |
map unpacking, default values | yes | easy |
list unpacking | yes | easy |
list unpacking for arguments | yes | easy |
Safety feature | implemented? | Effort |
memory safety | probably safe, free from unsafe code | hard |
internal integer arithmetic overflow checks | automatic, optional | easy |
internal integer cast overflow checks | partial cover | medium |
a strict immutability model | no | medium |
a strict privacy model | no | medium |
sandbox based security model | partial support | easy |
capability based security model | no | hard |
Non-goals | implemented? | Effort |
static typing, hybrid typing | no | hard |
automatic call stack reallocation | no | drawbacks |
native fine grained parallel programming | no, global mutex locks | n/a |
tracing garbage collection | no | n/a |
just-in-time compilation | no | hard |
tracing just-in-time compilation | no | n/a |