mirror of
https://github.com/fluffos/fluffos
synced 2026-08-12 18:26:06 -04:00
A complete treatment of reference loops (cyclic data structures) in LPC:
the reference-counting VM has no cycle collector, so a value that reaches
itself leaks permanently -- and silently -- once the last outside
reference is dropped, and it cannot be saved, deep-copied, or fully
printed in the meantime. This change documents the problem, fixes a
driver memory-safety bug it exposes, and adds runtime tooling to detect,
locate, break, and (on debug builds) collect such loops.
Driver fixes:
- copy() on a cyclic structure always hits the MAX_SAVE_SVALUE_DEPTH
error(), and that unwind path leaked every partially-built container --
allocated with the _empty_ (uninitialized-svalue) allocators and holding
a borrowed, un-ref-counted pointer to the ORIGINAL value, which the
Debug memory checker then read after free (heap-use-after-free abort
under ASan, reproducible with just catch(copy(a)) on a[0] = a).
deep_copy_* now allocate zero-filled, hold the destination in a
unique_ptr whose deleter is the tag-symmetric free_*, and only write the
destination slot after the child copy fully succeeded (ffi.cc precedent,
AGENTS.md section 4).
- save_object/save_variable and copy()'s 'nested too deep' errors -- the
classic symptom of a loop -- now say so (the has_cycle() pointer is
gated on PACKAGE_CONTRIB so core never recommends an efun the build
lacks).
New efuns (contrib package, src/packages/contrib/cycles.cc):
- has_cycle(mixed): 1 if the value's reference graph contains a loop.
- find_cycles(mixed): one index-path string per loop-closing slot
("[3][\"peer\"].1" style).
- break_cycles(mixed): clears every loop in place and returns the number
of edges broken. Exactly the DFS back-edges are touched (a digraph is
acyclic iff its DFS has no back-edges): item/value slots are zeroed, a
loop closed in mapping-KEY position has its node deleted (hashed keys
cannot be overwritten), and a loop closing on the funptr->args edge
itself -- possible because bind() SHARES the args array between the old
and new funptr -- detaches the bound funptr's args list and replaces it
with a zero-filled one of the same size. DAG sharing is never touched;
one cut un-loops a whole ring; afterwards the value saves, copies,
prints, and frees normally.
All three share one ITERATIVE walk (explicit heap stack, white/grey/
black coloring): no C-stack recursion, no depth cap -- arbitrarily deep
acyclic values scan cleanly where save_variable() errors. Edges:
array/class items, mapping keys AND values, fp->hdr.args; objects are
deliberately leaves (loops through object variables are the
destruct()-managed kind: destruct2() zeroes the variable block).
break_cycles() records fixes during a mutation-free walk and applies
them in a post-pass that holds a reference on every touched container,
zeroes slots before deleting nodes (only node deletion can cascade
frees), and releases the holds last -- order-independent and safe
against shared/overlapping fixes.
Orphaned-loop collector (develop package, Debug/DEBUGMALLOC_EXTENSIONS):
- find_orphaned_cycles(int collect): finds -- and with any nonzero
argument reclaims -- data blocks that are unreachable because only a
reference loop keeps them alive: the case nothing LPC-level can reach
anymore. Detection is trial deletion (CPython-gc-style), implemented in
md_scan_orphaned_cycles (checkmemory.cc): count each array/class/
mapping/funptr's references held by OTHER data blocks; a block whose
real ref count exceeds that is externally held (object variables, VM
stack, call_out, any C++-side holder) and seeds liveness, which
propagates along data edges; the remainder is loop garbage. No root
enumeration to get wrong -- every legitimate holder shows up as an
external ref. Collection: hold a ref on every dead block, sever all
their child slots (releasing strings/objects/buffers/live values
normally), then release the holds -- each dead block deallocates with
nothing left to cascade into.
- check_all_blocks() runs the same scan (skippable via new flag bit 2,
value 4) and reports 'unreachable data block(s) kept alive only by
reference loop(s)', so the testsuite's per-file check_memory() gate
turns a dropped cycle into a hard, attributed failure. That immediately
caught a real pre-existing leak: tests/std/json.lpc's
test_encode_circular_references() dropped all four of its
deliberately-cyclic fixtures on every suite run since it was written.
Tests (testsuite/single/tests/):
- operators/reference_loop.lpc pins the driver contract around loops and
crashes the unfixed Debug/ASan driver (the copy() unwind UAF).
- efuns/has_cycle.lpc, find_cycles.lpc, break_cycles.lpc cover self/
mutual/ring loops across arrays, mappings (value and key position),
classes, funptr args (including the bind()-shared-args case, which was
unbreakable in an earlier revision of this change), DAG-sharing
preservation, save/copy working again after a break, idempotency, and a
5000-deep acyclic walk.
- efuns/find_orphaned_cycles.lpc pins baseline-relative detection of 6
orphans across three dropped loop shapes, idempotent detection, that
reachable loops are never classified as garbage, and that collection
reclaims everything while reachable data survives.
- Every cycle-building test has UNCONDITIONAL teardown (body in catch(),
find_orphaned_cycles(1) regardless, error re-raised) so a mid-test
regression stays one [ FAILED ] entry instead of cascading the
harness's LEAK gate into a suite-wide abort (AGENTS.md section 7).
Docs (Docusaurus, sidebar regenerated; full two-locale build verified):
- new concepts page docs/concepts/general/reference_loops.md: why loops
leak, what each recursive consumer does, the destruct() exception,
prevention patterns, the runtime tools, and the debug-build collector;
- efun pages for all four new efuns; check_memory.md documents the new
scan and flag bit.
Validated on Debug+ASan/UBSan (full LPC suite, randomized order, multiple
runs) and RelWithDebInfo (full suite), 313 GTest unit tests, plus an
8-angle adversarially-verified self-review.
Round-2 self-review (4 fresh angles, adversarially verified) additionally:
- break_cycles() post-pass releases its held container references via an
RAII guard: allocate_array() there can error() (set_config() can shrink
__MAX_ARRAY_SIZE__ at runtime below a shared args array's size), and the
old trailing release loop would have leaked every held ref on that
unwind (AGENTS.md section 4).
- documented the pre-existing map_delete()-class caveat: deleting a
key-closed loop's node while an outer unlocked foreach-ref variable is
aimed at it dangles that variable (not specific to this efun; noted in
code and doc).
- extended orphan-collector coverage from 6 to 10 blocks: class rings
(TAG_CLASS candidate/sever/free_class paths), mapping pairs closed in
KEY position (the collector's in-place key-zeroing sever path), and a
buffer payload riding an orphaned ring (sever must release it or the
Debug ref gate trips); added a destructed-object-in-walked-value test
(render_key + leaf handling).
- docs: refs.md and copy.md now link back to the cycle tooling; zh-CN
sidebar translation keys rescaffolded; AGENTS.md section 7 documents the
new hard gate and the catch + find_orphaned_cycles(1) teardown pattern.
- re-entrancy audit (foreach/MAP_LOCKED/locked_map_nodes/merge_arg_lists)
and LPC-test-semantics audit returned no code defects.
Claude-Session: https://claude.ai/code/session_01VaksxbPjc3hjzghoQPUHRo
Co-authored-by: Claude <noreply@anthropic.com>
3776 lines
109 KiB
JSON
3776 lines
109 KiB
JSON
{
|
|
"efun": {
|
|
"type": "category",
|
|
"key": "efun",
|
|
"label": "Efuns",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Efuns",
|
|
"slug": "/efun/",
|
|
"description": "Built-in functions (efuns) the driver exposes to LPC code, grouped by topic and package."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "category",
|
|
"key": "efun/arrays",
|
|
"label": "Arrays",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Arrays",
|
|
"slug": "/efun/arrays/",
|
|
"description": "Create, allocate, filter, map, sort and search LPC arrays."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/arrays/allocate",
|
|
"key": "efun/arrays/allocate",
|
|
"label": "allocate"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/arrays/arrayp",
|
|
"key": "efun/arrays/arrayp",
|
|
"label": "arrayp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/arrays/element_of",
|
|
"key": "efun/arrays/element_of",
|
|
"label": "element_of"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/arrays/filter_array",
|
|
"key": "efun/arrays/filter_array",
|
|
"label": "filter_array"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/arrays/map_array",
|
|
"key": "efun/arrays/map_array",
|
|
"label": "map_array"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/arrays/member_array",
|
|
"key": "efun/arrays/member_array",
|
|
"label": "member_array"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/arrays/pointerp",
|
|
"key": "efun/arrays/pointerp",
|
|
"label": "pointerp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/arrays/shuffle",
|
|
"key": "efun/arrays/shuffle",
|
|
"label": "shuffle"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/arrays/sort_array",
|
|
"key": "efun/arrays/sort_array",
|
|
"label": "sort_array"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/arrays/unique_array",
|
|
"key": "efun/arrays/unique_array",
|
|
"label": "unique_array"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "efun/async",
|
|
"label": "Async I/O",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Async I/O",
|
|
"slug": "/efun/async/",
|
|
"description": "Non-blocking file and database I/O that returns results via callbacks."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/async/async_db_exec",
|
|
"key": "efun/async/async_db_exec",
|
|
"label": "async_db_exec"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/async/async_getdir",
|
|
"key": "efun/async/async_getdir",
|
|
"label": "async_getdir"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/async/async_read",
|
|
"key": "efun/async/async_read",
|
|
"label": "async_read"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/async/async_write",
|
|
"key": "efun/async/async_write",
|
|
"label": "async_write"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "efun/buffers",
|
|
"label": "Buffers",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Buffers",
|
|
"slug": "/efun/buffers/",
|
|
"description": "Allocate, read, write, transcode and checksum binary buffer data."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/buffers/allocate_buffer",
|
|
"key": "efun/buffers/allocate_buffer",
|
|
"label": "allocate_buffer"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/buffers/buffer_transcode",
|
|
"key": "efun/buffers/buffer_transcode",
|
|
"label": "buffer_transcode"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/buffers/bufferp",
|
|
"key": "efun/buffers/bufferp",
|
|
"label": "bufferp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/buffers/crc32",
|
|
"key": "efun/buffers/crc32",
|
|
"label": "crc32"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/buffers/read_buffer",
|
|
"key": "efun/buffers/read_buffer",
|
|
"label": "read_buffer"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/buffers/to_buffer",
|
|
"key": "efun/buffers/to_buffer",
|
|
"label": "to_buffer"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/buffers/write_buffer",
|
|
"key": "efun/buffers/write_buffer",
|
|
"label": "write_buffer"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "efun/calls",
|
|
"label": "Function Calls & Call-Outs",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Function Calls & Call-Outs",
|
|
"slug": "/efun/calls/",
|
|
"description": "Call functions on other objects, schedule call-outs, and manage shadows and exceptions."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/calls/call_other",
|
|
"key": "efun/calls/call_other",
|
|
"label": "call_other"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/calls/call_out",
|
|
"key": "efun/calls/call_out",
|
|
"label": "call_out"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/calls/call_out_walltime",
|
|
"key": "efun/calls/call_out_walltime",
|
|
"label": "call_out_walltime"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/calls/call_stack",
|
|
"key": "efun/calls/call_stack",
|
|
"label": "call_stack"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/calls/catch",
|
|
"key": "efun/calls/catch",
|
|
"label": "catch"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/calls/origin",
|
|
"key": "efun/calls/origin",
|
|
"label": "origin"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/calls/previous_object",
|
|
"key": "efun/calls/previous_object",
|
|
"label": "previous_object"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/calls/query_shadowing",
|
|
"key": "efun/calls/query_shadowing",
|
|
"label": "query_shadowing"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/calls/remove_call_out",
|
|
"key": "efun/calls/remove_call_out",
|
|
"label": "remove_call_out"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/calls/shadow",
|
|
"key": "efun/calls/shadow",
|
|
"label": "shadow"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/calls/this_object",
|
|
"key": "efun/calls/this_object",
|
|
"label": "this_object"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/calls/throw",
|
|
"key": "efun/calls/throw",
|
|
"label": "throw"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "efun/contrib",
|
|
"label": "Contrib Package",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Contrib Package",
|
|
"slug": "/efun/contrib/",
|
|
"description": "Optional add-on efuns from the contrib package: classes, strings, livings, memory and misc utilities."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/abs",
|
|
"key": "efun/contrib/abs",
|
|
"label": "abs"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/add_a",
|
|
"key": "efun/contrib/add_a",
|
|
"label": "add_a"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/assemble_class",
|
|
"key": "efun/contrib/assemble_class",
|
|
"label": "assemble_class"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/base_name",
|
|
"key": "efun/contrib/base_name",
|
|
"label": "base_name"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/break_cycles",
|
|
"key": "efun/contrib/break_cycles",
|
|
"label": "break_cycles"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/classes",
|
|
"key": "efun/contrib/classes",
|
|
"label": "classes"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/compressedp",
|
|
"key": "efun/contrib/compressedp",
|
|
"label": "compressedp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/copy",
|
|
"key": "efun/contrib/copy",
|
|
"label": "copy"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/debug_message",
|
|
"key": "efun/contrib/debug_message",
|
|
"label": "debug_message"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/disassemble_class",
|
|
"key": "efun/contrib/disassemble_class",
|
|
"label": "disassemble_class"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/event",
|
|
"key": "efun/contrib/event",
|
|
"label": "event"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/fetch_class_member",
|
|
"key": "efun/contrib/fetch_class_member",
|
|
"label": "fetch_class_member"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/fetch_variable",
|
|
"key": "efun/contrib/fetch_variable",
|
|
"label": "fetch_variable"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/file_length",
|
|
"key": "efun/contrib/file_length",
|
|
"label": "file_length"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/find_cycles",
|
|
"key": "efun/contrib/find_cycles",
|
|
"label": "find_cycles"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/function_owner",
|
|
"key": "efun/contrib/function_owner",
|
|
"label": "function_owner"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/functions",
|
|
"key": "efun/contrib/functions",
|
|
"label": "functions"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/get_garbage",
|
|
"key": "efun/contrib/get_garbage",
|
|
"label": "get_garbage"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/get_os_env",
|
|
"key": "efun/contrib/get_os_env",
|
|
"label": "get_os_env"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/has_cycle",
|
|
"key": "efun/contrib/has_cycle",
|
|
"label": "has_cycle"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/heart_beats",
|
|
"key": "efun/contrib/heart_beats",
|
|
"label": "heart_beats"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/is_daylight_savings_time",
|
|
"key": "efun/contrib/is_daylight_savings_time",
|
|
"label": "is_daylight_savings_time"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/max",
|
|
"key": "efun/contrib/max",
|
|
"label": "max"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/memory_summary",
|
|
"key": "efun/contrib/memory_summary",
|
|
"label": "memory_summary"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/min",
|
|
"key": "efun/contrib/min",
|
|
"label": "min"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/named_livings",
|
|
"key": "efun/contrib/named_livings",
|
|
"label": "named_livings"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/network_stats",
|
|
"key": "efun/contrib/network_stats",
|
|
"label": "network_stats"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/num_classes",
|
|
"key": "efun/contrib/num_classes",
|
|
"label": "num_classes"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/pluralize",
|
|
"key": "efun/contrib/pluralize",
|
|
"label": "pluralize"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/program_info",
|
|
"key": "efun/contrib/program_info",
|
|
"label": "program_info"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/query_charmode",
|
|
"key": "efun/contrib/query_charmode",
|
|
"label": "query_charmode"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/query_ip_port",
|
|
"key": "efun/contrib/query_ip_port",
|
|
"label": "query_ip_port"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/query_multiple_short",
|
|
"key": "efun/contrib/query_multiple_short",
|
|
"label": "query_multiple_short"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/query_notify_fail",
|
|
"key": "efun/contrib/query_notify_fail",
|
|
"label": "query_notify_fail"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/query_num",
|
|
"key": "efun/contrib/query_num",
|
|
"label": "query_num"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/query_replaced_program",
|
|
"key": "efun/contrib/query_replaced_program",
|
|
"label": "query_replaced_program"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/real_time",
|
|
"key": "efun/contrib/real_time",
|
|
"label": "real_time"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/reference_allowed",
|
|
"key": "efun/contrib/reference_allowed",
|
|
"label": "reference_allowed"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/remove_charmode",
|
|
"key": "efun/contrib/remove_charmode",
|
|
"label": "remove_charmode"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/remove_get_char",
|
|
"key": "efun/contrib/remove_get_char",
|
|
"label": "remove_get_char"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/remove_interactive",
|
|
"key": "efun/contrib/remove_interactive",
|
|
"label": "remove_interactive"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/remove_shadow",
|
|
"key": "efun/contrib/remove_shadow",
|
|
"label": "remove_shadow"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/repeat_string",
|
|
"key": "efun/contrib/repeat_string",
|
|
"label": "repeat_string"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/replace",
|
|
"key": "efun/contrib/replace",
|
|
"label": "replace"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/replace_dollars",
|
|
"key": "efun/contrib/replace_dollars",
|
|
"label": "replace_dollars"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/replace_html",
|
|
"key": "efun/contrib/replace_html",
|
|
"label": "replace_html"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/replace_mxp",
|
|
"key": "efun/contrib/replace_mxp",
|
|
"label": "replace_mxp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/replace_objects",
|
|
"key": "efun/contrib/replace_objects",
|
|
"label": "replace_objects"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/replaceable",
|
|
"key": "efun/contrib/replaceable",
|
|
"label": "replaceable"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/restore_from_string",
|
|
"key": "efun/contrib/restore_from_string",
|
|
"label": "restore_from_string"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/roll_MdN",
|
|
"key": "efun/contrib/roll_MdN",
|
|
"label": "roll_MdN"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/roulette_wheel",
|
|
"key": "efun/contrib/roulette_wheel",
|
|
"label": "roulette_wheel"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/send_nullbyte",
|
|
"key": "efun/contrib/send_nullbyte",
|
|
"label": "send_nullbyte"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/set_os_env",
|
|
"key": "efun/contrib/set_os_env",
|
|
"label": "set_os_env"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/set_prompt",
|
|
"key": "efun/contrib/set_prompt",
|
|
"label": "set_prompt"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/store_class_member",
|
|
"key": "efun/contrib/store_class_member",
|
|
"label": "store_class_member"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/store_variable",
|
|
"key": "efun/contrib/store_variable",
|
|
"label": "store_variable"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/string_difference",
|
|
"key": "efun/contrib/string_difference",
|
|
"label": "string_difference"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/terminal_colour",
|
|
"key": "efun/contrib/terminal_colour",
|
|
"label": "terminal_colour"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/test_load",
|
|
"key": "efun/contrib/test_load",
|
|
"label": "test_load"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/upper_case",
|
|
"key": "efun/contrib/upper_case",
|
|
"label": "upper_case"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/variables",
|
|
"key": "efun/contrib/variables",
|
|
"label": "variables"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/vowel",
|
|
"key": "efun/contrib/vowel",
|
|
"label": "vowel"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/contrib/zonetime",
|
|
"key": "efun/contrib/zonetime",
|
|
"label": "zonetime"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "efun/crypto",
|
|
"label": "Cryptography",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Cryptography",
|
|
"slug": "/efun/crypto/",
|
|
"description": "Cryptographic hashing helpers."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/crypto/hash",
|
|
"key": "efun/crypto/hash",
|
|
"label": "hash"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "efun/db",
|
|
"label": "Database",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Database",
|
|
"slug": "/efun/db/",
|
|
"description": "Connect to SQL databases and run queries, commits and rollbacks."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/db/db_close",
|
|
"key": "efun/db/db_close",
|
|
"label": "db_close"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/db/db_commit",
|
|
"key": "efun/db/db_commit",
|
|
"label": "db_commit"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/db/db_connect",
|
|
"key": "efun/db/db_connect",
|
|
"label": "db_connect"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/db/db_exec",
|
|
"key": "efun/db/db_exec",
|
|
"label": "db_exec"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/db/db_fetch",
|
|
"key": "efun/db/db_fetch",
|
|
"label": "db_fetch"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/db/db_rollback",
|
|
"key": "efun/db/db_rollback",
|
|
"label": "db_rollback"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/db/db_status",
|
|
"key": "efun/db/db_status",
|
|
"label": "db_status"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "efun/ed",
|
|
"label": "Line Editor (ed)",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Line Editor (ed)",
|
|
"slug": "/efun/ed/",
|
|
"description": "Drive the built-in ed line editor from LPC."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/ed/ed_cmd",
|
|
"key": "efun/ed/ed_cmd",
|
|
"label": "ed_cmd"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/ed/ed_start",
|
|
"key": "efun/ed/ed_start",
|
|
"label": "ed_start"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/ed/query_ed_mode",
|
|
"key": "efun/ed/query_ed_mode",
|
|
"label": "query_ed_mode"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "efun/external",
|
|
"label": "External Processes",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "External Processes",
|
|
"slug": "/efun/external/",
|
|
"description": "Launch and communicate with external programs."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/external/external_start",
|
|
"key": "efun/external/external_start",
|
|
"label": "external_start"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "efun/ffi",
|
|
"label": "Foreign Function Interface",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Foreign Function Interface",
|
|
"slug": "/efun/ffi/",
|
|
"description": "Load native libraries and call C functions, allocate memory and read/write structs."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/ffi/ffi_address",
|
|
"key": "efun/ffi/ffi_address",
|
|
"label": "ffi_address"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/ffi/ffi_alloc",
|
|
"key": "efun/ffi/ffi_alloc",
|
|
"label": "ffi_alloc"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/ffi/ffi_call",
|
|
"key": "efun/ffi/ffi_call",
|
|
"label": "ffi_call"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/ffi/ffi_callback",
|
|
"key": "efun/ffi/ffi_callback",
|
|
"label": "ffi_callback"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/ffi/ffi_callback_addr",
|
|
"key": "efun/ffi/ffi_callback_addr",
|
|
"label": "ffi_callback_addr"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/ffi/ffi_callback_free",
|
|
"key": "efun/ffi/ffi_callback_free",
|
|
"label": "ffi_callback_free"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/ffi/ffi_error",
|
|
"key": "efun/ffi/ffi_error",
|
|
"label": "ffi_error"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/ffi/ffi_free",
|
|
"key": "efun/ffi/ffi_free",
|
|
"label": "ffi_free"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/ffi/ffi_load",
|
|
"key": "efun/ffi/ffi_load",
|
|
"label": "ffi_load"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/ffi/ffi_peek",
|
|
"key": "efun/ffi/ffi_peek",
|
|
"label": "ffi_peek"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/ffi/ffi_prepare",
|
|
"key": "efun/ffi/ffi_prepare",
|
|
"label": "ffi_prepare"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/ffi/ffi_read",
|
|
"key": "efun/ffi/ffi_read",
|
|
"label": "ffi_read"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/ffi/ffi_sizeof",
|
|
"key": "efun/ffi/ffi_sizeof",
|
|
"label": "ffi_sizeof"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/ffi/ffi_status",
|
|
"key": "efun/ffi/ffi_status",
|
|
"label": "ffi_status"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/ffi/ffi_struct_layout",
|
|
"key": "efun/ffi/ffi_struct_layout",
|
|
"label": "ffi_struct_layout"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/ffi/ffi_symbol",
|
|
"key": "efun/ffi/ffi_symbol",
|
|
"label": "ffi_symbol"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/ffi/ffi_unload",
|
|
"key": "efun/ffi/ffi_unload",
|
|
"label": "ffi_unload"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/ffi/ffi_write",
|
|
"key": "efun/ffi/ffi_write",
|
|
"label": "ffi_write"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "efun/filesystem",
|
|
"label": "Filesystem",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Filesystem",
|
|
"slug": "/efun/filesystem/",
|
|
"description": "Read, write, copy, move and inspect files and directories."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/filesystem/cp",
|
|
"key": "efun/filesystem/cp",
|
|
"label": "cp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/filesystem/file_size",
|
|
"key": "efun/filesystem/file_size",
|
|
"label": "file_size"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/filesystem/get_dir",
|
|
"key": "efun/filesystem/get_dir",
|
|
"label": "get_dir"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/filesystem/link",
|
|
"key": "efun/filesystem/link",
|
|
"label": "link"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/filesystem/mkdir",
|
|
"key": "efun/filesystem/mkdir",
|
|
"label": "mkdir"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/filesystem/read_bytes",
|
|
"key": "efun/filesystem/read_bytes",
|
|
"label": "read_bytes"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/filesystem/read_file",
|
|
"key": "efun/filesystem/read_file",
|
|
"label": "read_file"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/filesystem/rename",
|
|
"key": "efun/filesystem/rename",
|
|
"label": "rename"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/filesystem/rm",
|
|
"key": "efun/filesystem/rm",
|
|
"label": "rm"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/filesystem/rmdir",
|
|
"key": "efun/filesystem/rmdir",
|
|
"label": "rmdir"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/filesystem/stat",
|
|
"key": "efun/filesystem/stat",
|
|
"label": "stat"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/filesystem/write_bytes",
|
|
"key": "efun/filesystem/write_bytes",
|
|
"label": "write_bytes"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/filesystem/write_file",
|
|
"key": "efun/filesystem/write_file",
|
|
"label": "write_file"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "efun/floats",
|
|
"label": "Floating-Point Math",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Floating-Point Math",
|
|
"slug": "/efun/floats/",
|
|
"description": "Trigonometry, logarithms, powers, rounding and float conversions."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/floats/acos",
|
|
"key": "efun/floats/acos",
|
|
"label": "acos"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/floats/asin",
|
|
"key": "efun/floats/asin",
|
|
"label": "asin"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/floats/atan",
|
|
"key": "efun/floats/atan",
|
|
"label": "atan"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/floats/ceil",
|
|
"key": "efun/floats/ceil",
|
|
"label": "ceil"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/floats/cos",
|
|
"key": "efun/floats/cos",
|
|
"label": "cos"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/floats/exp",
|
|
"key": "efun/floats/exp",
|
|
"label": "exp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/floats/floatp",
|
|
"key": "efun/floats/floatp",
|
|
"label": "floatp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/floats/floor",
|
|
"key": "efun/floats/floor",
|
|
"label": "floor"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/floats/log",
|
|
"key": "efun/floats/log",
|
|
"label": "log"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/floats/pow",
|
|
"key": "efun/floats/pow",
|
|
"label": "pow"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/floats/round",
|
|
"key": "efun/floats/round",
|
|
"label": "round"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/floats/sin",
|
|
"key": "efun/floats/sin",
|
|
"label": "sin"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/floats/sqrt",
|
|
"key": "efun/floats/sqrt",
|
|
"label": "sqrt"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/floats/tan",
|
|
"key": "efun/floats/tan",
|
|
"label": "tan"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/floats/to_int",
|
|
"key": "efun/floats/to_int",
|
|
"label": "to_int"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "efun/functions",
|
|
"label": "Function Pointers",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Function Pointers",
|
|
"slug": "/efun/functions/",
|
|
"description": "Create, bind, defer and evaluate function pointers."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/functions/bind",
|
|
"key": "efun/functions/bind",
|
|
"label": "bind"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/functions/defer",
|
|
"key": "efun/functions/defer",
|
|
"label": "defer"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/functions/evaluate",
|
|
"key": "efun/functions/evaluate",
|
|
"label": "evaluate"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/functions/functionp",
|
|
"key": "efun/functions/functionp",
|
|
"label": "functionp"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "efun/general",
|
|
"label": "General",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "General",
|
|
"slug": "/efun/general/",
|
|
"description": "Miscellaneous efuns: vector and matrix math, compression, type predicates, save/restore and generic collection helpers."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/angle",
|
|
"key": "efun/general/angle",
|
|
"label": "angle"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/classp",
|
|
"key": "efun/general/classp",
|
|
"label": "classp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/compress",
|
|
"key": "efun/general/compress",
|
|
"label": "compress"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/compress_file",
|
|
"key": "efun/general/compress_file",
|
|
"label": "compress_file"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/distance",
|
|
"key": "efun/general/distance",
|
|
"label": "distance"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/dotprod",
|
|
"key": "efun/general/dotprod",
|
|
"label": "dotprod"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/explode_reversible",
|
|
"key": "efun/general/explode_reversible",
|
|
"label": "explode_reversible"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/filter",
|
|
"key": "efun/general/filter",
|
|
"label": "filter"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/id_matrix",
|
|
"key": "efun/general/id_matrix",
|
|
"label": "id_matrix"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/log10",
|
|
"key": "efun/general/log10",
|
|
"label": "log10"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/log2",
|
|
"key": "efun/general/log2",
|
|
"label": "log2"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/lookat_rotate",
|
|
"key": "efun/general/lookat_rotate",
|
|
"label": "lookat_rotate"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/lookat_rotate2",
|
|
"key": "efun/general/lookat_rotate2",
|
|
"label": "lookat_rotate2"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/map",
|
|
"key": "efun/general/map",
|
|
"label": "map"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/next_bit",
|
|
"key": "efun/general/next_bit",
|
|
"label": "next_bit"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/norm",
|
|
"key": "efun/general/norm",
|
|
"label": "norm"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/nullp",
|
|
"key": "efun/general/nullp",
|
|
"label": "nullp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/restore_variable",
|
|
"key": "efun/general/restore_variable",
|
|
"label": "restore_variable"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/rotate_x",
|
|
"key": "efun/general/rotate_x",
|
|
"label": "rotate_x"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/rotate_y",
|
|
"key": "efun/general/rotate_y",
|
|
"label": "rotate_y"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/rotate_z",
|
|
"key": "efun/general/rotate_z",
|
|
"label": "rotate_z"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/save_variable",
|
|
"key": "efun/general/save_variable",
|
|
"label": "save_variable"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/scale",
|
|
"key": "efun/general/scale",
|
|
"label": "scale"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/sizeof",
|
|
"key": "efun/general/sizeof",
|
|
"label": "sizeof"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/translate",
|
|
"key": "efun/general/translate",
|
|
"label": "translate"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/typeof",
|
|
"key": "efun/general/typeof",
|
|
"label": "typeof"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/uncompress",
|
|
"key": "efun/general/uncompress",
|
|
"label": "uncompress"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/uncompress_file",
|
|
"key": "efun/general/uncompress_file",
|
|
"label": "uncompress_file"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/general/undefinedp",
|
|
"key": "efun/general/undefinedp",
|
|
"label": "undefinedp"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "efun/interactive",
|
|
"label": "Interactive & Networking",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Interactive & Networking",
|
|
"slug": "/efun/interactive/",
|
|
"description": "Player connections, input/output, snooping, telnet negotiation and terminal protocols (GMCP, MSDP, MXP, MSP, ZMP)."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/act_mxp",
|
|
"key": "efun/interactive/act_mxp",
|
|
"label": "act_mxp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/add_action",
|
|
"key": "efun/interactive/add_action",
|
|
"label": "add_action"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/command",
|
|
"key": "efun/interactive/command",
|
|
"label": "command"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/commands",
|
|
"key": "efun/interactive/commands",
|
|
"label": "commands"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/disable_commands",
|
|
"key": "efun/interactive/disable_commands",
|
|
"label": "disable_commands"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/disable_wizard",
|
|
"key": "efun/interactive/disable_wizard",
|
|
"label": "disable_wizard"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/ed",
|
|
"key": "efun/interactive/ed",
|
|
"label": "ed"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/enable_commands",
|
|
"key": "efun/interactive/enable_commands",
|
|
"label": "enable_commands"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/exec",
|
|
"key": "efun/interactive/exec",
|
|
"label": "exec"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/find_player",
|
|
"key": "efun/interactive/find_player",
|
|
"label": "find_player"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/get_char",
|
|
"key": "efun/interactive/get_char",
|
|
"label": "get_char"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/has_gmcp",
|
|
"key": "efun/interactive/has_gmcp",
|
|
"label": "has_gmcp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/has_msdp",
|
|
"key": "efun/interactive/has_msdp",
|
|
"label": "has_msdp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/has_msp",
|
|
"key": "efun/interactive/has_msp",
|
|
"label": "has_msp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/has_mxp",
|
|
"key": "efun/interactive/has_mxp",
|
|
"label": "has_mxp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/has_zmp",
|
|
"key": "efun/interactive/has_zmp",
|
|
"label": "has_zmp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/in_edit",
|
|
"key": "efun/interactive/in_edit",
|
|
"label": "in_edit"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/in_input",
|
|
"key": "efun/interactive/in_input",
|
|
"label": "in_input"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/input_to",
|
|
"key": "efun/interactive/input_to",
|
|
"label": "input_to"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/interactive",
|
|
"key": "efun/interactive/interactive",
|
|
"label": "interactive"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/message",
|
|
"key": "efun/interactive/message",
|
|
"label": "message"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/notify_fail",
|
|
"key": "efun/interactive/notify_fail",
|
|
"label": "notify_fail"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/printf",
|
|
"key": "efun/interactive/printf",
|
|
"label": "printf"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/query_encoding",
|
|
"key": "efun/interactive/query_encoding",
|
|
"label": "query_encoding"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/query_host_name",
|
|
"key": "efun/interactive/query_host_name",
|
|
"label": "query_host_name"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/query_idle",
|
|
"key": "efun/interactive/query_idle",
|
|
"label": "query_idle"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/query_ip_name",
|
|
"key": "efun/interactive/query_ip_name",
|
|
"label": "query_ip_name"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/query_ip_number",
|
|
"key": "efun/interactive/query_ip_number",
|
|
"label": "query_ip_number"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/query_snoop",
|
|
"key": "efun/interactive/query_snoop",
|
|
"label": "query_snoop"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/query_snooping",
|
|
"key": "efun/interactive/query_snooping",
|
|
"label": "query_snooping"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/receive",
|
|
"key": "efun/interactive/receive",
|
|
"label": "receive"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/remove_action",
|
|
"key": "efun/interactive/remove_action",
|
|
"label": "remove_action"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/request_term_size",
|
|
"key": "efun/interactive/request_term_size",
|
|
"label": "request_term_size"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/request_term_type",
|
|
"key": "efun/interactive/request_term_type",
|
|
"label": "request_term_type"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/resolve",
|
|
"key": "efun/interactive/resolve",
|
|
"label": "resolve"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/say",
|
|
"key": "efun/interactive/say",
|
|
"label": "say"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/send_gmcp",
|
|
"key": "efun/interactive/send_gmcp",
|
|
"label": "send_gmcp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/send_msdp_variable",
|
|
"key": "efun/interactive/send_msdp_variable",
|
|
"label": "send_msdp_variable"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/send_zmp",
|
|
"key": "efun/interactive/send_zmp",
|
|
"label": "send_zmp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/set_encoding",
|
|
"key": "efun/interactive/set_encoding",
|
|
"label": "set_encoding"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/set_this_player",
|
|
"key": "efun/interactive/set_this_player",
|
|
"label": "set_this_player"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/set_this_user",
|
|
"key": "efun/interactive/set_this_user",
|
|
"label": "set_this_user"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/shout",
|
|
"key": "efun/interactive/shout",
|
|
"label": "shout"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/snoop",
|
|
"key": "efun/interactive/snoop",
|
|
"label": "snoop"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/start_request_term_type",
|
|
"key": "efun/interactive/start_request_term_type",
|
|
"label": "start_request_term_type"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/telnet_ga",
|
|
"key": "efun/interactive/telnet_ga",
|
|
"label": "telnet_ga"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/telnet_msp_oob",
|
|
"key": "efun/interactive/telnet_msp_oob",
|
|
"label": "telnet_msp_oob"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/telnet_nop",
|
|
"key": "efun/interactive/telnet_nop",
|
|
"label": "telnet_nop"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/this_interactive",
|
|
"key": "efun/interactive/this_interactive",
|
|
"label": "this_interactive"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/this_player",
|
|
"key": "efun/interactive/this_player",
|
|
"label": "this_player"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/this_user",
|
|
"key": "efun/interactive/this_user",
|
|
"label": "this_user"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/userp",
|
|
"key": "efun/interactive/userp",
|
|
"label": "userp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/users",
|
|
"key": "efun/interactive/users",
|
|
"label": "users"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/interactive/write",
|
|
"key": "efun/interactive/write",
|
|
"label": "write"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "efun/internals",
|
|
"label": "Driver Internals",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Driver Internals",
|
|
"slug": "/efun/internals/",
|
|
"description": "Driver introspection, debugging, memory, tracing and runtime configuration."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/cache_stats",
|
|
"key": "efun/internals/cache_stats",
|
|
"label": "cache_stats"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/check_memory",
|
|
"key": "efun/internals/check_memory",
|
|
"label": "check_memory"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/clear_debug_level",
|
|
"key": "efun/internals/clear_debug_level",
|
|
"label": "clear_debug_level"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/debug_info",
|
|
"key": "efun/internals/debug_info",
|
|
"label": "debug_info"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/debug_levels",
|
|
"key": "efun/internals/debug_levels",
|
|
"label": "debug_levels"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/debugmalloc",
|
|
"key": "efun/internals/debugmalloc",
|
|
"label": "debugmalloc"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/destructed_objects",
|
|
"key": "efun/internals/destructed_objects",
|
|
"label": "destructed_objects"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/dump_file_descriptors",
|
|
"key": "efun/internals/dump_file_descriptors",
|
|
"label": "dump_file_descriptors"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/dump_jemalloc",
|
|
"key": "efun/internals/dump_jemalloc",
|
|
"label": "dump_jemalloc"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/dump_prog",
|
|
"key": "efun/internals/dump_prog",
|
|
"label": "dump_prog"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/dump_stralloc",
|
|
"key": "efun/internals/dump_stralloc",
|
|
"label": "dump_stralloc"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/dump_trace",
|
|
"key": "efun/internals/dump_trace",
|
|
"label": "dump_trace"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/dumpallobj",
|
|
"key": "efun/internals/dumpallobj",
|
|
"label": "dumpallobj"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/find_orphaned_cycles",
|
|
"key": "efun/internals/find_orphaned_cycles",
|
|
"label": "find_orphaned_cycles"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/get_config",
|
|
"key": "efun/internals/get_config",
|
|
"label": "get_config"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/malloc_status",
|
|
"key": "efun/internals/malloc_status",
|
|
"label": "malloc_status"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/memory_info",
|
|
"key": "efun/internals/memory_info",
|
|
"label": "memory_info"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/moncontrol",
|
|
"key": "efun/internals/moncontrol",
|
|
"label": "moncontrol"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/mud_status",
|
|
"key": "efun/internals/mud_status",
|
|
"label": "mud_status"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/query_load_average",
|
|
"key": "efun/internals/query_load_average",
|
|
"label": "query_load_average"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/refs",
|
|
"key": "efun/internals/refs",
|
|
"label": "refs"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/rusage",
|
|
"key": "efun/internals/rusage",
|
|
"label": "rusage"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/set_config",
|
|
"key": "efun/internals/set_config",
|
|
"label": "set_config"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/set_debug_level",
|
|
"key": "efun/internals/set_debug_level",
|
|
"label": "set_debug_level"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/set_malloc_mask",
|
|
"key": "efun/internals/set_malloc_mask",
|
|
"label": "set_malloc_mask"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/time_expression",
|
|
"key": "efun/internals/time_expression",
|
|
"label": "time_expression"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/trace",
|
|
"key": "efun/internals/trace",
|
|
"label": "trace"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/internals/traceprefix",
|
|
"key": "efun/internals/traceprefix",
|
|
"label": "traceprefix"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "efun/jsbridge",
|
|
"label": "JavaScript Bridge",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "JavaScript Bridge",
|
|
"slug": "/efun/jsbridge/",
|
|
"description": "Call into JavaScript from LPC on the WebAssembly build of the driver."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/jsbridge/js_call",
|
|
"key": "efun/jsbridge/js_call",
|
|
"label": "js_call"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/jsbridge/js_eval",
|
|
"key": "efun/jsbridge/js_eval",
|
|
"label": "js_eval"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/jsbridge/js_export",
|
|
"key": "efun/jsbridge/js_export",
|
|
"label": "js_export"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "efun/mappings",
|
|
"label": "Mappings",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Mappings",
|
|
"slug": "/efun/mappings/",
|
|
"description": "Create, filter, iterate and transform LPC mappings (associative arrays)."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/mappings/allocate_mapping",
|
|
"key": "efun/mappings/allocate_mapping",
|
|
"label": "allocate_mapping"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/mappings/filter_mapping",
|
|
"key": "efun/mappings/filter_mapping",
|
|
"label": "filter_mapping"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/mappings/keys",
|
|
"key": "efun/mappings/keys",
|
|
"label": "keys"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/mappings/map_delete",
|
|
"key": "efun/mappings/map_delete",
|
|
"label": "map_delete"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/mappings/map_mapping",
|
|
"key": "efun/mappings/map_mapping",
|
|
"label": "map_mapping"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/mappings/mapp",
|
|
"key": "efun/mappings/mapp",
|
|
"label": "mapp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/mappings/match_path",
|
|
"key": "efun/mappings/match_path",
|
|
"label": "match_path"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/mappings/unique_mapping",
|
|
"key": "efun/mappings/unique_mapping",
|
|
"label": "unique_mapping"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/mappings/values",
|
|
"key": "efun/mappings/values",
|
|
"label": "values"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "efun/mudlib",
|
|
"label": "Mudlib Support",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Mudlib Support",
|
|
"slug": "/efun/mudlib/",
|
|
"description": "User/euid identities, privileges, livings and author/domain statistics."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/mudlib/author_stats",
|
|
"key": "efun/mudlib/author_stats",
|
|
"label": "author_stats"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/mudlib/domain_stats",
|
|
"key": "efun/mudlib/domain_stats",
|
|
"label": "domain_stats"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/mudlib/enable_wizard",
|
|
"key": "efun/mudlib/enable_wizard",
|
|
"label": "enable_wizard"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/mudlib/export_uid",
|
|
"key": "efun/mudlib/export_uid",
|
|
"label": "export_uid"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/mudlib/find_living",
|
|
"key": "efun/mudlib/find_living",
|
|
"label": "find_living"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/mudlib/geteuid",
|
|
"key": "efun/mudlib/geteuid",
|
|
"label": "geteuid"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/mudlib/getuid",
|
|
"key": "efun/mudlib/getuid",
|
|
"label": "getuid"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/mudlib/living",
|
|
"key": "efun/mudlib/living",
|
|
"label": "living"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/mudlib/livings",
|
|
"key": "efun/mudlib/livings",
|
|
"label": "livings"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/mudlib/query_privs",
|
|
"key": "efun/mudlib/query_privs",
|
|
"label": "query_privs"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/mudlib/set_author",
|
|
"key": "efun/mudlib/set_author",
|
|
"label": "set_author"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/mudlib/set_light",
|
|
"key": "efun/mudlib/set_light",
|
|
"label": "set_light"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/mudlib/set_living_name",
|
|
"key": "efun/mudlib/set_living_name",
|
|
"label": "set_living_name"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/mudlib/set_privs",
|
|
"key": "efun/mudlib/set_privs",
|
|
"label": "set_privs"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/mudlib/seteuid",
|
|
"key": "efun/mudlib/seteuid",
|
|
"label": "seteuid"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/mudlib/wizardp",
|
|
"key": "efun/mudlib/wizardp",
|
|
"label": "wizardp"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "efun/numbers",
|
|
"label": "Numbers",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Numbers",
|
|
"slug": "/efun/numbers/",
|
|
"description": "Integer predicates, random-number generation and numeric conversion."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/numbers/intp",
|
|
"key": "efun/numbers/intp",
|
|
"label": "intp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/numbers/random",
|
|
"key": "efun/numbers/random",
|
|
"label": "random"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/numbers/secure_random",
|
|
"key": "efun/numbers/secure_random",
|
|
"label": "secure_random"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/numbers/to_float",
|
|
"key": "efun/numbers/to_float",
|
|
"label": "to_float"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "efun/objects",
|
|
"label": "Objects",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Objects",
|
|
"slug": "/efun/objects/",
|
|
"description": "Clone, load, move, find and destruct objects and manage their inventory and state."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/all_inventory",
|
|
"key": "efun/objects/all_inventory",
|
|
"label": "all_inventory"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/children",
|
|
"key": "efun/objects/children",
|
|
"label": "children"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/clone_object",
|
|
"key": "efun/objects/clone_object",
|
|
"label": "clone_object"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/clonep",
|
|
"key": "efun/objects/clonep",
|
|
"label": "clonep"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/deep_inventory",
|
|
"key": "efun/objects/deep_inventory",
|
|
"label": "deep_inventory"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/destruct",
|
|
"key": "efun/objects/destruct",
|
|
"label": "destruct"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/environment",
|
|
"key": "efun/objects/environment",
|
|
"label": "environment"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/file_name",
|
|
"key": "efun/objects/file_name",
|
|
"label": "file_name"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/find_object",
|
|
"key": "efun/objects/find_object",
|
|
"label": "find_object"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/first_inventory",
|
|
"key": "efun/objects/first_inventory",
|
|
"label": "first_inventory"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/load_object",
|
|
"key": "efun/objects/load_object",
|
|
"label": "load_object"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/master",
|
|
"key": "efun/objects/master",
|
|
"label": "master"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/move_object",
|
|
"key": "efun/objects/move_object",
|
|
"label": "move_object"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/new",
|
|
"key": "efun/objects/new",
|
|
"label": "new"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/next_inventory",
|
|
"key": "efun/objects/next_inventory",
|
|
"label": "next_inventory"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/objectp",
|
|
"key": "efun/objects/objectp",
|
|
"label": "objectp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/objects",
|
|
"key": "efun/objects/objects",
|
|
"label": "objects"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/present",
|
|
"key": "efun/objects/present",
|
|
"label": "present"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/query_heart_beat",
|
|
"key": "efun/objects/query_heart_beat",
|
|
"label": "query_heart_beat"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/query_notify_destruct",
|
|
"key": "efun/objects/query_notify_destruct",
|
|
"label": "query_notify_destruct"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/recompile_object",
|
|
"key": "efun/objects/recompile_object",
|
|
"label": "recompile_object"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/reload_object",
|
|
"key": "efun/objects/reload_object",
|
|
"label": "reload_object"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/restore_object",
|
|
"key": "efun/objects/restore_object",
|
|
"label": "restore_object"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/save_object",
|
|
"key": "efun/objects/save_object",
|
|
"label": "save_object"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/set_heart_beat",
|
|
"key": "efun/objects/set_heart_beat",
|
|
"label": "set_heart_beat"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/set_hide",
|
|
"key": "efun/objects/set_hide",
|
|
"label": "set_hide"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/set_notify_destruct",
|
|
"key": "efun/objects/set_notify_destruct",
|
|
"label": "set_notify_destruct"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/tell_object",
|
|
"key": "efun/objects/tell_object",
|
|
"label": "tell_object"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/tell_room",
|
|
"key": "efun/objects/tell_room",
|
|
"label": "tell_room"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/objects/virtualp",
|
|
"key": "efun/objects/virtualp",
|
|
"label": "virtualp"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "efun/parsing",
|
|
"label": "Command Parsing",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Command Parsing",
|
|
"slug": "/efun/parsing/",
|
|
"description": "The parse_command natural-language sentence, verb and rule parser."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/parsing/parse_add_rule",
|
|
"key": "efun/parsing/parse_add_rule",
|
|
"label": "parse_add_rule"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/parsing/parse_add_synonym",
|
|
"key": "efun/parsing/parse_add_synonym",
|
|
"label": "parse_add_synonym"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/parsing/parse_command",
|
|
"key": "efun/parsing/parse_command",
|
|
"label": "parse_command"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/parsing/parse_dump",
|
|
"key": "efun/parsing/parse_dump",
|
|
"label": "parse_dump"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/parsing/parse_init",
|
|
"key": "efun/parsing/parse_init",
|
|
"label": "parse_init"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/parsing/parse_my_rules",
|
|
"key": "efun/parsing/parse_my_rules",
|
|
"label": "parse_my_rules"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/parsing/parse_refresh",
|
|
"key": "efun/parsing/parse_refresh",
|
|
"label": "parse_refresh"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/parsing/parse_remove",
|
|
"key": "efun/parsing/parse_remove",
|
|
"label": "parse_remove"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/parsing/parse_sentence",
|
|
"key": "efun/parsing/parse_sentence",
|
|
"label": "parse_sentence"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/parsing/process_string",
|
|
"key": "efun/parsing/process_string",
|
|
"label": "process_string"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/parsing/process_value",
|
|
"key": "efun/parsing/process_value",
|
|
"label": "process_value"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/parsing/query_verb",
|
|
"key": "efun/parsing/query_verb",
|
|
"label": "query_verb"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "efun/pcre",
|
|
"label": "Regular Expressions (PCRE)",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Regular Expressions (PCRE)",
|
|
"slug": "/efun/pcre/",
|
|
"description": "Perl-compatible regular expression matching, extraction and replacement."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/pcre/pcre_assoc",
|
|
"key": "efun/pcre/pcre_assoc",
|
|
"label": "pcre_assoc"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/pcre/pcre_cache",
|
|
"key": "efun/pcre/pcre_cache",
|
|
"label": "pcre_cache"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/pcre/pcre_extract",
|
|
"key": "efun/pcre/pcre_extract",
|
|
"label": "pcre_extract"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/pcre/pcre_match",
|
|
"key": "efun/pcre/pcre_match",
|
|
"label": "pcre_match"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/pcre/pcre_match_all",
|
|
"key": "efun/pcre/pcre_match_all",
|
|
"label": "pcre_match_all"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/pcre/pcre_replace",
|
|
"key": "efun/pcre/pcre_replace",
|
|
"label": "pcre_replace"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/pcre/pcre_replace_callback",
|
|
"key": "efun/pcre/pcre_replace_callback",
|
|
"label": "pcre_replace_callback"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/pcre/pcre_version",
|
|
"key": "efun/pcre/pcre_version",
|
|
"label": "pcre_version"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "efun/sockets",
|
|
"label": "Sockets",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Sockets",
|
|
"slug": "/efun/sockets/",
|
|
"description": "Low-level TCP/UDP socket networking from the sockets package."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/sockets/socket_accept",
|
|
"key": "efun/sockets/socket_accept",
|
|
"label": "socket_accept"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/sockets/socket_acquire",
|
|
"key": "efun/sockets/socket_acquire",
|
|
"label": "socket_acquire"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/sockets/socket_address",
|
|
"key": "efun/sockets/socket_address",
|
|
"label": "socket_address"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/sockets/socket_bind",
|
|
"key": "efun/sockets/socket_bind",
|
|
"label": "socket_bind"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/sockets/socket_close",
|
|
"key": "efun/sockets/socket_close",
|
|
"label": "socket_close"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/sockets/socket_connect",
|
|
"key": "efun/sockets/socket_connect",
|
|
"label": "socket_connect"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/sockets/socket_create",
|
|
"key": "efun/sockets/socket_create",
|
|
"label": "socket_create"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/sockets/socket_error",
|
|
"key": "efun/sockets/socket_error",
|
|
"label": "socket_error"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/sockets/socket_get_option",
|
|
"key": "efun/sockets/socket_get_option",
|
|
"label": "socket_get_option"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/sockets/socket_listen",
|
|
"key": "efun/sockets/socket_listen",
|
|
"label": "socket_listen"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/sockets/socket_release",
|
|
"key": "efun/sockets/socket_release",
|
|
"label": "socket_release"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/sockets/socket_set_option",
|
|
"key": "efun/sockets/socket_set_option",
|
|
"label": "socket_set_option"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/sockets/socket_status",
|
|
"key": "efun/sockets/socket_status",
|
|
"label": "socket_status"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/sockets/socket_write",
|
|
"key": "efun/sockets/socket_write",
|
|
"label": "socket_write"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "efun/strings",
|
|
"label": "Strings",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Strings",
|
|
"slug": "/efun/strings/",
|
|
"description": "Manipulate, format, search, trim, encode and hash strings, plus bit-string operations."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/strings/capitalize",
|
|
"key": "efun/strings/capitalize",
|
|
"label": "capitalize"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/strings/clear_bit",
|
|
"key": "efun/strings/clear_bit",
|
|
"label": "clear_bit"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/strings/crypt",
|
|
"key": "efun/strings/crypt",
|
|
"label": "crypt"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/strings/explode",
|
|
"key": "efun/strings/explode",
|
|
"label": "explode"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/strings/hash",
|
|
"key": "efun/strings/hash",
|
|
"label": "hash"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/strings/implode",
|
|
"key": "efun/strings/implode",
|
|
"label": "implode"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/strings/lower_case",
|
|
"key": "efun/strings/lower_case",
|
|
"label": "lower_case"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/strings/ltrim",
|
|
"key": "efun/strings/ltrim",
|
|
"label": "ltrim"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/strings/oldcrypt",
|
|
"key": "efun/strings/oldcrypt",
|
|
"label": "oldcrypt"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/strings/reg_assoc",
|
|
"key": "efun/strings/reg_assoc",
|
|
"label": "reg_assoc"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/strings/regexp",
|
|
"key": "efun/strings/regexp",
|
|
"label": "regexp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/strings/replace_string",
|
|
"key": "efun/strings/replace_string",
|
|
"label": "replace_string"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/strings/rtrim",
|
|
"key": "efun/strings/rtrim",
|
|
"label": "rtrim"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/strings/set_bit",
|
|
"key": "efun/strings/set_bit",
|
|
"label": "set_bit"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/strings/sha1",
|
|
"key": "efun/strings/sha1",
|
|
"label": "sha1"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/strings/sprintf",
|
|
"key": "efun/strings/sprintf",
|
|
"label": "sprintf"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/strings/sscanf",
|
|
"key": "efun/strings/sscanf",
|
|
"label": "sscanf"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/strings/strcmp",
|
|
"key": "efun/strings/strcmp",
|
|
"label": "strcmp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/strings/string_decode",
|
|
"key": "efun/strings/string_decode",
|
|
"label": "string_decode"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/strings/string_encode",
|
|
"key": "efun/strings/string_encode",
|
|
"label": "string_encode"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/strings/stringp",
|
|
"key": "efun/strings/stringp",
|
|
"label": "stringp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/strings/strlen",
|
|
"key": "efun/strings/strlen",
|
|
"label": "strlen"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/strings/strsrch",
|
|
"key": "efun/strings/strsrch",
|
|
"label": "strsrch"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/strings/strwidth",
|
|
"key": "efun/strings/strwidth",
|
|
"label": "strwidth"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/strings/test_bit",
|
|
"key": "efun/strings/test_bit",
|
|
"label": "test_bit"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/strings/trim",
|
|
"key": "efun/strings/trim",
|
|
"label": "trim"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "efun/system",
|
|
"label": "System",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "System",
|
|
"slug": "/efun/system/",
|
|
"description": "Driver runtime services: time, eval-cost limits, inheritance introspection, call-out info and shutdown."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/all_previous_objects",
|
|
"key": "efun/system/all_previous_objects",
|
|
"label": "all_previous_objects"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/call_out_info",
|
|
"key": "efun/system/call_out_info",
|
|
"label": "call_out_info"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/ctime",
|
|
"key": "efun/system/ctime",
|
|
"label": "ctime"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/deep_inherit_list",
|
|
"key": "efun/system/deep_inherit_list",
|
|
"label": "deep_inherit_list"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/error",
|
|
"key": "efun/system/error",
|
|
"label": "error"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/eval_cost",
|
|
"key": "efun/system/eval_cost",
|
|
"label": "eval_cost"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/find_call_out",
|
|
"key": "efun/system/find_call_out",
|
|
"label": "find_call_out"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/flush_messages",
|
|
"key": "efun/system/flush_messages",
|
|
"label": "flush_messages"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/function_exists",
|
|
"key": "efun/system/function_exists",
|
|
"label": "function_exists"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/function_profile",
|
|
"key": "efun/system/function_profile",
|
|
"label": "function_profile"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/inherit_list",
|
|
"key": "efun/system/inherit_list",
|
|
"label": "inherit_list"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/inherits",
|
|
"key": "efun/system/inherits",
|
|
"label": "inherits"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/localtime",
|
|
"key": "efun/system/localtime",
|
|
"label": "localtime"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/max_eval_cost",
|
|
"key": "efun/system/max_eval_cost",
|
|
"label": "max_eval_cost"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/perf_counter_ns",
|
|
"key": "efun/system/perf_counter_ns",
|
|
"label": "perf_counter_ns"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/reclaim_objects",
|
|
"key": "efun/system/reclaim_objects",
|
|
"label": "reclaim_objects"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/replace_program",
|
|
"key": "efun/system/replace_program",
|
|
"label": "replace_program"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/request_clean_up",
|
|
"key": "efun/system/request_clean_up",
|
|
"label": "request_clean_up"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/reset_eval_cost",
|
|
"key": "efun/system/reset_eval_cost",
|
|
"label": "reset_eval_cost"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/set_clean_up",
|
|
"key": "efun/system/set_clean_up",
|
|
"label": "set_clean_up"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/set_eval_limit",
|
|
"key": "efun/system/set_eval_limit",
|
|
"label": "set_eval_limit"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/set_reset",
|
|
"key": "efun/system/set_reset",
|
|
"label": "set_reset"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/shallow_inherit_list",
|
|
"key": "efun/system/shallow_inherit_list",
|
|
"label": "shallow_inherit_list"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/shutdown",
|
|
"key": "efun/system/shutdown",
|
|
"label": "shutdown"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/strftime",
|
|
"key": "efun/system/strftime",
|
|
"label": "strftime"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/strptime",
|
|
"key": "efun/system/strptime",
|
|
"label": "strptime"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/sys_network_ports",
|
|
"key": "efun/system/sys_network_ports",
|
|
"label": "sys_network_ports"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/sys_reload_tls",
|
|
"key": "efun/system/sys_reload_tls",
|
|
"label": "sys_reload_tls"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/time",
|
|
"key": "efun/system/time",
|
|
"label": "time"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/time_ns",
|
|
"key": "efun/system/time_ns",
|
|
"label": "time_ns"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/trace_end",
|
|
"key": "efun/system/trace_end",
|
|
"label": "trace_end"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/trace_start",
|
|
"key": "efun/system/trace_start",
|
|
"label": "trace_start"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "efun/system/uptime",
|
|
"key": "efun/system/uptime",
|
|
"label": "uptime"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"apply": {
|
|
"type": "category",
|
|
"key": "apply",
|
|
"label": "Applies",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Applies",
|
|
"slug": "/apply/",
|
|
"description": "Driver-to-LPC callbacks (applies) that the FluffOS driver invokes on your objects, grouped by the interactive, master, and object roles they serve."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "category",
|
|
"key": "apply/object",
|
|
"label": "Object Applies",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Object Applies",
|
|
"slug": "/apply/object/",
|
|
"description": "Lifecycle applies the driver calls on ordinary objects, such as create, reset, init, heart_beat, and clean_up."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/object/__INIT",
|
|
"key": "apply/object/__INIT",
|
|
"label": "__INIT"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/object/clean_up",
|
|
"key": "apply/object/clean_up",
|
|
"label": "clean_up"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/object/create",
|
|
"key": "apply/object/create",
|
|
"label": "create"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/object/heart_beat",
|
|
"key": "apply/object/heart_beat",
|
|
"label": "heart_beat"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/object/id",
|
|
"key": "apply/object/id",
|
|
"label": "id"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/object/init",
|
|
"key": "apply/object/init",
|
|
"label": "init"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/object/is_living",
|
|
"key": "apply/object/is_living",
|
|
"label": "is_living"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/object/move_or_destruct",
|
|
"key": "apply/object/move_or_destruct",
|
|
"label": "move_or_destruct"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/object/on_destruct",
|
|
"key": "apply/object/on_destruct",
|
|
"label": "on_destruct"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/object/reset",
|
|
"key": "apply/object/reset",
|
|
"label": "reset"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/object/virtual_start",
|
|
"key": "apply/object/virtual_start",
|
|
"label": "virtual_start"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "apply/master",
|
|
"label": "Master Applies",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Master Applies",
|
|
"slug": "/apply/master/",
|
|
"description": "Applies the driver calls on the master object to control security, permissions, UIDs, object loading, error handling, and mud-wide policy."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/author_file",
|
|
"key": "apply/master/author_file",
|
|
"label": "author_file"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/compile_object",
|
|
"key": "apply/master/compile_object",
|
|
"label": "compile_object"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/connect",
|
|
"key": "apply/master/connect",
|
|
"label": "connect"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/crash",
|
|
"key": "apply/master/crash",
|
|
"label": "crash"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/creator_file",
|
|
"key": "apply/master/creator_file",
|
|
"label": "creator_file"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/domain_file",
|
|
"key": "apply/master/domain_file",
|
|
"label": "domain_file"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/epilog",
|
|
"key": "apply/master/epilog",
|
|
"label": "epilog"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/error_handler",
|
|
"key": "apply/master/error_handler",
|
|
"label": "error_handler"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/flag",
|
|
"key": "apply/master/flag",
|
|
"label": "flag"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/get_bb_uid",
|
|
"key": "apply/master/get_bb_uid",
|
|
"label": "get_bb_uid"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/get_include_path",
|
|
"key": "apply/master/get_include_path",
|
|
"label": "get_include_path"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/get_mud_stats",
|
|
"key": "apply/master/get_mud_stats",
|
|
"label": "get_mud_stats"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/get_root_uid",
|
|
"key": "apply/master/get_root_uid",
|
|
"label": "get_root_uid"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/get_save_file_name",
|
|
"key": "apply/master/get_save_file_name",
|
|
"label": "get_save_file_name"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/include_file",
|
|
"key": "apply/master/include_file",
|
|
"label": "include_file"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/inherit_program",
|
|
"key": "apply/master/inherit_program",
|
|
"label": "inherit_program"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/log_error",
|
|
"key": "apply/master/log_error",
|
|
"label": "log_error"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/make_path_absolute",
|
|
"key": "apply/master/make_path_absolute",
|
|
"label": "make_path_absolute"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/object_name",
|
|
"key": "apply/master/object_name",
|
|
"label": "object_name"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/parser_error_message",
|
|
"key": "apply/master/parser_error_message",
|
|
"label": "parser_error_message"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/preload",
|
|
"key": "apply/master/preload",
|
|
"label": "preload"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/privs_file",
|
|
"key": "apply/master/privs_file",
|
|
"label": "privs_file"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/retrieve_ed_setup",
|
|
"key": "apply/master/retrieve_ed_setup",
|
|
"label": "retrieve_ed_setup"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/save_ed_setup",
|
|
"key": "apply/master/save_ed_setup",
|
|
"label": "save_ed_setup"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/valid_bind",
|
|
"key": "apply/master/valid_bind",
|
|
"label": "valid_bind"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/valid_database",
|
|
"key": "apply/master/valid_database",
|
|
"label": "valid_database"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/valid_ffi",
|
|
"key": "apply/master/valid_ffi",
|
|
"label": "valid_ffi"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/valid_hide",
|
|
"key": "apply/master/valid_hide",
|
|
"label": "valid_hide"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/valid_link",
|
|
"key": "apply/master/valid_link",
|
|
"label": "valid_link"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/valid_object",
|
|
"key": "apply/master/valid_object",
|
|
"label": "valid_object"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/valid_override",
|
|
"key": "apply/master/valid_override",
|
|
"label": "valid_override"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/valid_read",
|
|
"key": "apply/master/valid_read",
|
|
"label": "valid_read"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/valid_save_binary",
|
|
"key": "apply/master/valid_save_binary",
|
|
"label": "valid_save_binary"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/valid_seteuid",
|
|
"key": "apply/master/valid_seteuid",
|
|
"label": "valid_seteuid"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/valid_shadow",
|
|
"key": "apply/master/valid_shadow",
|
|
"label": "valid_shadow"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/valid_socket",
|
|
"key": "apply/master/valid_socket",
|
|
"label": "valid_socket"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/master/valid_write",
|
|
"key": "apply/master/valid_write",
|
|
"label": "valid_write"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "apply/interactive",
|
|
"label": "Interactive Applies",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Interactive Applies",
|
|
"slug": "/apply/interactive/",
|
|
"description": "Applies the driver calls on interactive (player-connected) objects to handle input, output, prompts, and telnet/GMCP/MSDP/MXP protocol negotiation."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/interactive/catch_tell",
|
|
"key": "apply/interactive/catch_tell",
|
|
"label": "catch_tell"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/interactive/gmcp",
|
|
"key": "apply/interactive/gmcp",
|
|
"label": "gmcp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/interactive/gmcp_enable",
|
|
"key": "apply/interactive/gmcp_enable",
|
|
"label": "gmcp_enable"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/interactive/logon",
|
|
"key": "apply/interactive/logon",
|
|
"label": "logon"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/interactive/msdp",
|
|
"key": "apply/interactive/msdp",
|
|
"label": "msdp"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/interactive/msdp_enable",
|
|
"key": "apply/interactive/msdp_enable",
|
|
"label": "msdp_enable"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/interactive/msp_enable",
|
|
"key": "apply/interactive/msp_enable",
|
|
"label": "msp_enable"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/interactive/mxp_enable",
|
|
"key": "apply/interactive/mxp_enable",
|
|
"label": "mxp_enable"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/interactive/mxp_tag",
|
|
"key": "apply/interactive/mxp_tag",
|
|
"label": "mxp_tag"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/interactive/net_dead",
|
|
"key": "apply/interactive/net_dead",
|
|
"label": "net_dead"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/interactive/process_input",
|
|
"key": "apply/interactive/process_input",
|
|
"label": "process_input"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/interactive/receive_ed",
|
|
"key": "apply/interactive/receive_ed",
|
|
"label": "receive_ed"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/interactive/receive_environ",
|
|
"key": "apply/interactive/receive_environ",
|
|
"label": "receive_environ"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/interactive/receive_message",
|
|
"key": "apply/interactive/receive_message",
|
|
"label": "receive_message"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/interactive/receive_snoop",
|
|
"key": "apply/interactive/receive_snoop",
|
|
"label": "receive_snoop"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/interactive/telnet_suboption",
|
|
"key": "apply/interactive/telnet_suboption",
|
|
"label": "telnet_suboption"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/interactive/terminal_colour_replace",
|
|
"key": "apply/interactive/terminal_colour_replace",
|
|
"label": "terminal_colour_replace"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/interactive/terminal_type",
|
|
"key": "apply/interactive/terminal_type",
|
|
"label": "terminal_type"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/interactive/window_size",
|
|
"key": "apply/interactive/window_size",
|
|
"label": "window_size"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/interactive/write_prompt",
|
|
"key": "apply/interactive/write_prompt",
|
|
"label": "write_prompt"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "apply/interactive/zmp",
|
|
"key": "apply/interactive/zmp",
|
|
"label": "zmp"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"stdlib": {
|
|
"type": "category",
|
|
"key": "stdlib",
|
|
"label": "Standard Library",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Standard Library",
|
|
"slug": "/stdlib/",
|
|
"description": "Pure-LPC helper functions and libraries shipped with the FluffOS testsuite mudlib (not driver efuns), organized by data type and domain."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "category",
|
|
"key": "stdlib/arrays",
|
|
"label": "Arrays",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Arrays",
|
|
"slug": "/stdlib/arrays/",
|
|
"description": "LPC helpers for transforming and aggregating arrays, such as reduce."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "stdlib/arrays/reduce",
|
|
"key": "stdlib/arrays/reduce",
|
|
"label": "reduce"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "stdlib/db",
|
|
"label": "Database",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Database",
|
|
"slug": "/stdlib/db/",
|
|
"description": "A fluent LPC query builder for working with FluffOS-supported databases across SQLite, MySQL, and other backends."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "stdlib/db/database",
|
|
"key": "stdlib/db/database",
|
|
"label": "database"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "stdlib/mappings",
|
|
"label": "Mappings",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Mappings",
|
|
"slug": "/stdlib/mappings/",
|
|
"description": "LPC helpers for working with mappings, such as weighted random selection of keys."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "stdlib/mappings/element_of_weighted",
|
|
"key": "stdlib/mappings/element_of_weighted",
|
|
"label": "element_of_weighted"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "stdlib/numbers",
|
|
"label": "Numbers",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Numbers",
|
|
"slug": "/stdlib/numbers/",
|
|
"description": "LPC helpers for numeric aggregation and percentage math over ints and floats."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "stdlib/numbers/array_sum",
|
|
"key": "stdlib/numbers/array_sum",
|
|
"label": "array_sum"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "stdlib/numbers/percent",
|
|
"key": "stdlib/numbers/percent",
|
|
"label": "percent"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "stdlib/numbers/percent_of",
|
|
"key": "stdlib/numbers/percent_of",
|
|
"label": "percent_of"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "stdlib/numbers/sum",
|
|
"key": "stdlib/numbers/sum",
|
|
"label": "sum"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "stdlib/objects",
|
|
"label": "Objects",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Objects",
|
|
"slug": "/stdlib/objects/",
|
|
"description": "LPC helpers for locating and inspecting objects in inventories and environments."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "stdlib/objects/all_environment",
|
|
"key": "stdlib/objects/all_environment",
|
|
"label": "all_environment"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "stdlib/objects/present_clone",
|
|
"key": "stdlib/objects/present_clone",
|
|
"label": "present_clone"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "category",
|
|
"key": "stdlib/string",
|
|
"label": "Strings",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Strings",
|
|
"slug": "/stdlib/string/",
|
|
"description": "LPC helpers for string manipulation, including base64 encoding, word wrapping, and bitmap-font rendering."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "stdlib/string/base64decode",
|
|
"key": "stdlib/string/base64decode",
|
|
"label": "base64decode"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "stdlib/string/base64encode",
|
|
"key": "stdlib/string/base64encode",
|
|
"label": "base64encode"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "stdlib/string/bitmap_font",
|
|
"key": "stdlib/string/bitmap_font",
|
|
"label": "bitmap_font"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "stdlib/string/break_string",
|
|
"key": "stdlib/string/break_string",
|
|
"label": "break_string"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "stdlib/ffi_util",
|
|
"key": "stdlib/ffi_util",
|
|
"label": "FFI Utilities"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "stdlib/tui",
|
|
"key": "stdlib/tui",
|
|
"label": "TUI Toolkit"
|
|
}
|
|
]
|
|
},
|
|
"concepts": {
|
|
"type": "category",
|
|
"key": "concepts",
|
|
"label": "Concepts",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Concepts",
|
|
"slug": "/concepts/",
|
|
"description": "Conceptual guides explaining how LPC, objects, and the FluffOS driver work together, for readers learning the platform rather than a specific function."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "category",
|
|
"key": "concepts/general",
|
|
"label": "General Concepts",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "General Concepts",
|
|
"slug": "/concepts/general/",
|
|
"description": "Foundational explanations of the LPC language, object model, the FluffOS driver, and mud-wide mechanisms like simul_efuns, hot reload, and networking."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "concepts/general/lpc",
|
|
"key": "concepts/general/lpc",
|
|
"label": "The LPC Language"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "concepts/general/objects",
|
|
"key": "concepts/general/objects",
|
|
"label": "Objects"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "concepts/general/oop",
|
|
"key": "concepts/general/oop",
|
|
"label": "Object-Oriented Programming"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "concepts/general/preprocessor",
|
|
"key": "concepts/general/preprocessor",
|
|
"label": "Preprocessor"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "concepts/general/global_include_file",
|
|
"key": "concepts/general/global_include_file",
|
|
"label": "Global Include File"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "concepts/general/fluffos_driver",
|
|
"key": "concepts/general/fluffos_driver",
|
|
"label": "The FluffOS Driver"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "concepts/general/simul_efun",
|
|
"key": "concepts/general/simul_efun",
|
|
"label": "Simulated Efuns"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "concepts/general/message_doc",
|
|
"key": "concepts/general/message_doc",
|
|
"label": "The message() System"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "concepts/general/reference_loops",
|
|
"key": "concepts/general/reference_loops",
|
|
"label": "Reference Loops"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "concepts/general/hot_reload",
|
|
"key": "concepts/general/hot_reload",
|
|
"label": "Hot Reload"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "concepts/general/socket_efuns",
|
|
"key": "concepts/general/socket_efuns",
|
|
"label": "Socket Efuns"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "concepts/general/tls",
|
|
"key": "concepts/general/tls",
|
|
"label": "TLS"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "concepts/general/websocket",
|
|
"key": "concepts/general/websocket",
|
|
"label": "WebSocket"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "concepts/general/tracing",
|
|
"key": "concepts/general/tracing",
|
|
"label": "Tracing"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"driver": {
|
|
"type": "category",
|
|
"key": "driver",
|
|
"label": "Driver Internals",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Driver Internals",
|
|
"slug": "/driver/",
|
|
"description": "Configuration reference and implementation internals of the FluffOS driver, from runtime config flags to the VM, memory, and native extension layers."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "driver/config",
|
|
"key": "driver/config",
|
|
"label": "Runtime Configuration"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "driver/wasm",
|
|
"key": "driver/wasm",
|
|
"label": "WASM Driver Cookbook"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "driver/adding_efuns",
|
|
"key": "driver/adding_efuns",
|
|
"label": "Adding Efuns"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "driver/ffi",
|
|
"key": "driver/ffi",
|
|
"label": "FFI Package"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "driver/call_into_vm",
|
|
"key": "driver/call_into_vm",
|
|
"label": "Calling Into the VM"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "driver/stackmachine",
|
|
"key": "driver/stackmachine",
|
|
"label": "Stack Machine"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "driver/parse_tree",
|
|
"key": "driver/parse_tree",
|
|
"label": "Parse Tree Nodes"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "driver/malloc",
|
|
"key": "driver/malloc",
|
|
"label": "Memory Allocation"
|
|
}
|
|
]
|
|
},
|
|
"cli": {
|
|
"type": "category",
|
|
"key": "cli",
|
|
"label": "Command-Line Tools",
|
|
"link": {
|
|
"type": "generated-index",
|
|
"title": "Command-Line Tools",
|
|
"slug": "/cli/",
|
|
"description": "Reference for the driver binary and the companion command-line utilities shipped with FluffOS for compiling, inspecting, and converting LPC and save-file data."
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "doc",
|
|
"id": "cli/driver",
|
|
"key": "cli/driver",
|
|
"label": "driver — the game server"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "cli/lpcc",
|
|
"key": "cli/lpcc",
|
|
"label": "lpcc — LPC compiler"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "cli/symbol",
|
|
"key": "cli/symbol",
|
|
"label": "symbol — LPC inspector"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "cli/o2json",
|
|
"key": "cli/o2json",
|
|
"label": "o2json — save file to JSON"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "cli/json2o",
|
|
"key": "cli/json2o",
|
|
"label": "json2o — JSON to save file"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "cli/portbind",
|
|
"key": "cli/portbind",
|
|
"label": "portbind — privileged ports"
|
|
},
|
|
{
|
|
"type": "doc",
|
|
"id": "cli/generate_keywords",
|
|
"key": "cli/generate_keywords",
|
|
"label": "generate_keywords — efun metadata"
|
|
}
|
|
]
|
|
}
|
|
}
|