Expand description
Surreal - A programming language with Rust-like syntax and Erlang-style concurrency.
Surreal compiles to Core Erlang for BEAM execution or to bytecode for the Surreal VM.
§Features
- Process spawning with parent tracking
- Message passing between processes
- Process links (bidirectional crash notification)
- Process monitors (one-way crash notification)
- Process registry for named processes
- Receive with timeout
- Cooperative scheduling with reduction budgets
Modules§
- bindgen
- Generate .surreal binding files from Erlang and Elixir source files.
- compiler
- Compiler for the Surreal language.
- config
- Project configuration for Surreal projects.
- deps
- Dependency management for Surreal projects.
- lsp
- Language Server Protocol (LSP) implementation for Surreal.
Structs§
- BitSegment
- A segment specification for binary construction or matching
- Call
Frame - A frame on the call stack, enabling cross-module calls.
- Function
Def - Definition of a function within a module.
- Module
- A compiled module containing functions.
- Pid
- Process identifier
- Process
- Process state
- Register
- Register index (processes have a small set of registers)
- Scheduler
- The scheduler / VM state
- TryFrame
- A frame on the exception handler stack for try/catch/after.
Enums§
- BitType
- Type specifier for a binary segment
- Endianness
- Endianness for multi-byte values
- Instruction
- Bytecode instructions
- Message
- Messages sent between processes
- Operand
- An operand for arithmetic/comparison operations
- Pattern
- A pattern for matching values
- Process
Status - Process execution status
- Segment
Source - Source of a segment value for binary construction
- Signedness
- Signedness for integer values
- Source
- Where to read a value from
- Step
Result - Result of stepping the scheduler
- System
Msg - System-level messages
- Value
- Runtime value stored in registers