rkgk/rkgk.toml

109 lines
3.8 KiB
TOML
Raw Normal View History

[build]
# The settings below control how the site is compiled down to static files.
# List of Handlebars templates to render.
render_templates = [
{ template = "docs.hbs.html", from_dir = "docs", to_dir = "docs" }
]
[build.page_titles]
# This is a mapping of filenames to page titles.
# The Djot template mode exposes this data as the variable {{ title }}.
# When a title is not provided, the path is used.
"docs/rkgk.dj" = "Introduction to rakugaki"
"docs/system.dj" = "System library"
[wall_broker.default_wall_settings]
2024-08-15 20:01:23 +02:00
# The settings below control the creation of new walls.
# The maximum number of chunks on a wall.
# It is recommended to cap this to something reasonable so that users can't trash the server's
# disk space very easily.
2024-08-10 23:13:20 +02:00
max_chunks = 65536
2024-08-15 20:01:23 +02:00
# Maximum concurrent sessions connected to a wall.
# Note that a single user can have multiple sessions at a time.
2024-08-10 23:13:20 +02:00
max_sessions = 128
2024-08-15 20:01:23 +02:00
# The size of chunks.
# Choosing an appropriate size for chunks is a tradeoff between performance and disk space - 168 is
# chosen as a reasonable default which is just small enough to perform operations on fairly quickly
# and responsively.
2024-08-10 23:13:20 +02:00
chunk_size = 168
2024-08-15 20:01:23 +02:00
# The size of the area that can be drawn over by a brush, in pixels.
# The larger this area, the more CPU-expensive brushes get overall, but the larger the image a brush
# can produce.
paint_area = 504
[wall_broker.auto_save]
# How often should modified chunks be saved to the database.
interval_seconds = 10
2024-08-15 20:01:23 +02:00
[haku]
# The settings below control the Haku runtime on the server side.
# Technically clients may override these settings with some hackery, but then the server may not
# register changes they make to the canvas.
# Maximum length of source code.
max_source_code_len = 65536
2024-08-15 20:01:23 +02:00
# Maximum amount of source code chunks.
# This should be at least 2, to allow for loading in a standard library chunk.
max_chunks = 2
# Maximum amount of defs across all source code chunks.
max_defs = 256
# Maximum amount of AST nodes in a single parse.
2024-08-24 20:09:52 +02:00
ast_capacity = 4096
2024-08-15 20:01:23 +02:00
# Maximum size of a bytecode chunk.
# This must be <= 65536 due to bytecode limitations - offsets are stored as 16-bit integers.
chunk_capacity = 65536
# Maximum size of the value stack.
# This defines how many local variables and temporary values can be in scope at a given moment.
# Effectively, this limits how deep and complex a single expression can get.
stack_capacity = 1024
# Maximum call stack capacity.
# This defines how much code is allowed to call itself recursively.
call_stack_capacity = 256
# Maximum amount of refs.
# Refs are big, reused, unique values that do not fit on the value stack - akin to objects in
# languages like Python, but immutable.
ref_capacity = 2048
# Amount of fuel given to the VM.
# Each instruction executed by the VM consumes fuel. The VM will continue running until it runs out
# of fuel completely.
# An unfortunate side effect of this is that since Haku is a functional language, a brush running
# out of fuel means it will not be rendered at all, because there is no complete value returned.
fuel = 65536
2024-08-20 23:00:39 +02:00
# Amount of heap memory available to the VM.
# Heap memory is used to limit how much data refs can allocate.
# In particular, large arrays use up this memory - such as list backing arrays.
memory = 1048576
2024-08-15 20:01:23 +02:00
# Capacity of the renderer's pixmap stack.
# The pixmap stack is used for blending layers together within a brush.
# Each (composite)-type scribble requires a single entry on this pixmap stack.
# In the end, this defines how deep compositing operations may nest.
pixmap_stack_capacity = 4
# Capacity of the renderer's transformation stack.
# The transformation stack is used for operations on the transform matrix, such as (translate).
# To render each transformed operation, a single entry of the transform stack is used.
# In the end, this defines how deep matrix transform operations may nest.
transform_stack_capacity = 16