Status of builtin function implementation
The following is a table of the status of various builtin-functions, to keep an inventory of what remains to be done.
Name
Complete
Notes
length
✓
setadd
✓
setremove
✓
listappend
✓
listinsert
✓
listdelete
✓
listset
✓
equal
✓
is_member
✓
match
✓
rmatch
✓
substitute
✓
Name
Complete
Notes
tostr
✓
toliteral
✓
crypt
✓
Pretty damned insecure, only here to support existing core password functions.
index
✓
rindex
✓
strcmp
✓
strsub
✓
Name
Complete
Notes
toint
✓
tonum
✓
tofloat
✓
min
✓
max
✓
abs
✓
random
✓
time
✓
ctime
✓
floatstr
✓
sqrt
✓
sin
✓
cos
✓
tan
✓
asin
✓
acos
✓
atan
✓
sinh
✓
cosh
✓
tanh
✓
exp
✓
log
✓
log10
✓
ceil
✓
floor
✓
trunc
✓
Name
Complete
Notes
toobj
✓
typeof
✓
create
✓
Quota support not implemented yet.
recycle
✓
valid
✓
parent
✓
children
✓
chparent
✓
max_object
✓
players
✓
Potentially slow in a large DB.
is_player
✓
set_player_flag
✓
move
✓
Name
Complete
Notes
properties
✓
property_info
✓
set_property_info
✓
add_property
✓
delete_property
✓
clear_property
✓
is_clear_property
✓
Name
Complete
Notes
verbs
✓
verb_info
✓
set_verb_info
✓
verb_args
✓
set_verb_args
✓
add_verb
✓
delete_verb
✓
set_verb_code
✓
eval
✓
disassemble
✓
verb_code
✓
Name
Complete
Notes
value_bytes
✓
Encodes the value as it is currently stored in DB, and counts bytes. But I'd rather not keep this, long run.
value_hash
string_hash
✓
binary_hash
decode_binary
Probably won't implement, see README.md
encode_binary
"
object_bytes
✓
Name
Complete
Notes
server_version
✓
Hardcoded value, should derive from bin crate
renumber
reset_max_object
memory_usage
✓
shutdown
✓
dump_database
✓
db_disk_size
✓
connected_players
✓
connected_seconds
✓
idle_seconds
✓
connection_name
✓
To make this 100% compat with core, reverse DNS & listen port is needed.
notify
✓
boot_player
✓
server_log
✓
load_server_options
function_info
✓
read
Name
Complete
Notes
task_id
✓
queued_tasks
✓
kill_task
✓
resume
✓
queue_info
force_input
flush_input
Name
Complete
Notes
call_function
✓
raise
✓
Does not support message / value parameters.
suspend
✓
seconds_left
✓
ticks_left
✓
pass
✓
Is an opcode
set_task_perms
✓
Check correctness
caller_perms
✓
Check correctness.
callers
✓
task_stack
These will likely never be implemented. But should return, e.g. E_PERM or similar
to the caller if attempted.
Name
Complete
Notes
set_connection_option
connection_option
connection_options
open_network_connection
listen
unlisten
listeners
✓
Ehhh.. hardcoded, just to shut core login process up
output_delimiters
buffered_output_length