Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Status of builtin function implementation

The following is a table of the status of the implementation of various builtin-functions as defined in the LambdaMOO 1.8 specification, as well as some extensions that were added in ToastStunt and then ported over to mooR. (And some novel extensions added in mooR itself.)

The table is broken down by category, and each function is marked with a checkmark if it is implemented.

If there are any notes about the implementation, they will be included in the notes column. If you notice anything missing, or if you have any questions about the implementation, please feel free to open an issue on the mooR GitHub repository issue tracker.

LambdaMOO 1.8 builtin function list and status

Lists

NameCompleteNotes
length
setadd
setremove
listappend
listinsert
listdelete
listset
equal
is_member
match
rmatch
substitute

Strings

NameCompleteNotes
tostr
toliteral
cryptPretty damned insecure, only here to support existing core password functions.
index
rindex
strcmp
strsub
saltGenerate a random crypto-secure salt for password. Not compatible with toast's function of same name

Numbers

NameCompleteNotes
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

NameCompleteNotes
toobj
typeof
createQuota support not implemented yet.
recycle
valid
parent
children
chparent
max_object
playersPotentially slow in a large DB.
is_player
set_player_flag
move

Properties

Verbs

NameCompleteNotes
verbs
verb_info
set_verb_info
verb_args
set_verb_args
add_verb
delete_verb
set_verb_code
eval
disassembleOutput looks nothing like LambdaMOO's
verb_code

Values / encoding

NameCompleteNotes
value_bytes
value_hash
string_hash
binary_hash
decode_binaryBinary encoding will likely work differently in moor. See README.md for more info.
encode_binary
object_bytes

Server

NameCompleteNotes
server_versionCrate version + short commit hash, for now
renumber
reset_max_object
memory_usage
shutdown
dump_database
db_disk_size
connected_players
connected_seconds
idle_seconds
connection_nameTo make this 100% compat with core, reverse DNS & listen port is needed.
connectionsReturns connections for current player, or other players.
notifyWith rich_notify feature on, supports sending additional content types
boot_player
server_log
load_server_options
function_info
read

Tasks

NameCompleteNotes
task_id
queued_tasks
kill_task
resume
queue_info
force_inputDoes not support "at-front" argument, and command executes in parallel not in a queue
flush_input

Execution

NameCompleteNotes
call_function
raise
suspend
seconds_left
ticks_left
passIs an opcode
set_task_perms
caller_perms
callers
task_stack

Network connections

NameCompleteNotes
set_connection_option
connection_option
connection_options
open_network_connection
listenprint-messages not yet implemented. errors in binding not properly propagating back to the builtin
unlisten
listeners
output_delimiters
buffered_output_length

Extension from Toast

Functions not in the original LambdaMOO, but were in Toast, and ported over

NameCompleteNotes
age_generate_keypairGenerates a new X25519 keypair for use with age encryption.
age_encryptEncrypts a message using age encryption for one or more recipients.
age_decryptDecrypts an age-encrypted message using one or more private keys.
argon2Same signature as function in ToastSunt
arong2_verifySame signature as function in ToastSunt
ftimeSlight differents in return value, see notes in BfFtime
encode_base64
decode_base64
slice
generate_json
parse_json
ancestors
descendants
isa
responds_to
pcre_match
pcre_replace

Extensions

Functions not part of the original LambdaMOO, but added in moor

XML / HTML content management

NameDescriptionNotes
xml_parseParse a string containing XML into a tree of flyweight objectsAvailable only if the flyweights feature is turned on
to_xmlConvert a tree of flyweight objects into a string containing XMLAvailable only if the flyweights feature is turned on

Flyweights & Symbols (new types)

NameDescriptionNotes
slotsReturns the slots on a given flyweightAvailable only if the flyweights feature is turned on
remove_slotReturns a copy of the flyweight with the given slot removed, if presentAvailable only if the flyweights feature is turned on
add_slotReturns a copy of the flyweight with a new slot addedAvailable only if the flyweights feature is turned on
tosymTurns the given value into a SymbolAvailable only if the symbols feature is turned on

Expanded error handling

NameDescriptionNotes
error_codeStrip off any message or value from an error and return only the code portion
error_messageReturn the message portion of the error, or the default message if none exists

Admin

NameDescriptionNotes
bf_countersPerformance counters for profiling builtin function performance
db_countersPerformance counters for profiling DB performance
sched_countersPerformance counters for profiling scheduling performance

Tasks

NameDescriptionNotes
active_tasksReturn information about running non-suspended/non-queued tasks which are actively running
wait_taskCauses the current task to wait for a given task id to not be in the background queue
commitCauses the current task to immediately commit its data, suspend, and then come out of suspensionSemantically same as suspend(0)
rollbackCauses the current task to immediately rollback all mutations to the DB and abort the current task. Only argument is boolean whether to send pending content to the player or notWizard only