Evaluation feature
| implemented?
| Effort
|
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
|
mutual recursion
| yes
| easy
|
mutual recursion of local functions
| indirection needed
| easy
|
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
|
prohibit leftover arguments in map unpacking
| 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
|