| 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
|