Skip to content

Latest commit

 

History

History
189 lines (163 loc) · 10.1 KB

builtin_functions_status.md

File metadata and controls

189 lines (163 loc) · 10.1 KB

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.

Lists

Name Complete Notes
length
setadd
setremove
listappend
listinsert
listdelete
listset
equal
is_member
match
rmatch
substitute

Strings

Name Complete Notes
tostr
toliteral
crypt Pretty damned insecure, only here to support existing core password functions.
index
rindex
strcmp
strsub

Numbers

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

Objects

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

Properties

Name Complete Notes
properties
property_info
set_property_info
add_property
delete_property
clear_property
is_clear_property

Verbs

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

Values / encoding

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

Server

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

Tasks

Name Complete Notes
task_id
queued_tasks
kill_task
resume
queue_info
force_input
flush_input

Execution

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

Network connections

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