Architecture Decisions

Key design decisions with context, alternatives considered, and consequences.

#DecisionStatus
0001No Compound Assignment in BeamtalkImplemented (2026-02-08)
0002Use Erlang Comparison Operators DirectlyImplemented (2026-02-08)
0003Keep Core Erlang as Primary Code Generation TargetImplemented (2026-02-08)
0004Persistent Workspace ManagementImplemented (2026-02-15)
0005BEAM Object Model - Pragmatic Hybrid ApproachImplemented (2026-02-08)
0006Unified Method Dispatch with Hierarchy WalkingImplemented (2026-02-08)
0007Compilable Standard Library with Primitive InjectionImplemented (2026-02-07)
0008Doc Comments and API DocumentationImplemented (2026-02-15)
0009OTP Application Structure — Split Workspace from RuntimeImplemented (2026-02-07)
0010Global Objects and Singleton DispatchImplemented (2026-02-15). Phase 1 gen_server deprecation in progress (BT-1093).
0011Robustness Testing — Layered Fuzzing and Error QualityImplemented (2026-02-15)
0012Collection Literal Syntax and the `#` Data Literal SystemImplemented (2026-02-15)
0013Class Variables, Class-Side Methods, and Instantiation ProtocolImplemented (2026-02-15)
0014Beamtalk Test Framework — Native Unit Tests and CLI Integration TestsImplemented (2026-02-15)
0015Signal-Time Exception Objects and Error Class HierarchyImplemented (2026-02-15)
0016Universal Module Naming with @ SeparatorAccepted (2026-02-10), Implemented (BT-454)
0017Browser Connectivity to Running WorkspacesAccepted (2026-02-17)
0018Document Tree Code Generation (Wadler-Lindig Pretty Printer)Implemented (2026-02-15)
0019Singleton Access via Class VariablesImplemented (2026-02-15)
0020Connection Security — mTLS, Proxies, and Network OverlaysImplemented (2026-02-18)
0021Stream — Lazy Pipeline for Value-Side DataImplemented (2026-02-15), Revised (2026-03-05)
0022Embedded Compiler via OTP Port (with NIF option)Implemented (2026-02-15)
0023String Interpolation Syntax and CompilationImplemented (2026-02-17)
0024Static-First, Live-Augmented IDE ToolingImplemented (Phase 1, 2026-02-17)
0025Gradual Typing and ProtocolsAccepted (2026-02-15)
0026Package Definition and Project ManifestImplemented (2026-02-17)
0027Cross-Platform SupportImplemented (2026-02-17)
0028BEAM Interop StrategyImplemented (2026-02-18)
0029Streaming Eval OutputImplemented (2026-02-18)
0030cargo-dist Evaluation for Release PackagingRejected (2026-02-18)
0031Flat Namespace for v0.1Implemented (2026-02-18)
0032Early Class Protocol — Behaviour and Class in Beamtalk StdlibImplemented (2026-02-24)
0033Runtime-Embedded Documentation on Class and CompiledMethodImplemented (2026-02-24)
0034Stdlib Self-Hosting — Moving Logic from Erlang to BeamtalkImplemented (2026-02-24)
0035Rename Instance Variable Reflection API from instVar to fieldImplemented (2026-02-24)
0036Full Metaclass TowerImplemented (2026-02-24)
0037Collection Class Hierarchy — Shallow Abstract Layer with Minimal Primitive SurfaceImplemented (2026-02-24)
0038`subclass:` Grammar Desugaring to ClassBuilder ProtocolAccepted | Implemented (2026-02-24)
0039Syntax Pragmatism vs SmalltalkImplemented (2026-02-24)
0040Workspace-Native REPL Commands, Facade/Dictionary Split, and Class-Based ReloadAccepted | Implemented (2026-02-24)
0041Universal State-Threading Block ProtocolAccepted (2026-02-24)
0042Immutable Value Objects and Actor-Only Mutable StateAccepted | Implemented (2026-02-26)
0043Sync-by-Default Actor MessagingAccepted | Implemented (2026-02-26)
0044Comments as First-Class AST NodesAccepted | Implemented 2026-02-28
0045REPL Expression-Level Completion via Gradual Type InferenceAccepted | Implemented 2026-03-01
0046VSCode Live Workspace SidebarAccepted | Implemented (2026-03-02)
0047Return Type Arrow Token DisambiguationImplemented (2026-03-06)
0048Class-Side Method SyntaxDeferred (2026-03-15)
0049Remove Method-Level `sealed` — Infer Protection from `@primitive`/`@intrinsic`Deferred (2026-03-15)
0050Incremental Compiler ClassHierarchy via BEAM Metadata StreamingAccepted | Implemented (2026-03-04)
0051Subprocess Execution — System Commands and Interactive Subprocess ActorAccepted | Implemented (2026-03-05)
0052Recursive Descent Parser with Pratt Parsing for Binary OperatorsAccepted | Implemented (2026-03-05)
0053Double-Colon Type Annotation SyntaxAccepted (2026-03-05)
0054Communication ProtocolsImplemented (2026-03-05)
0055Erlang-Backed Class Authoring ProtocolAccepted (2026-03-06)
0056Native Erlang-Backed Actors — `native:` and `self delegate`Accepted (2026-03-07)
0057Authoritative Superclass Source for Abstract Stdlib ClassesAccepted (2026-03-07)
0058Platform Security ModelAccepted (2026-03-07)
0059Supervision Tree SyntaxAccepted (2026-03-07)
0060Result Type — Hybrid Error Handling for Expected FailuresAccepted (2026-03-08)
0061Program Entry Points and Run LifecycleAccepted (2026-03-10)
0062Bundled Example Corpus and Search Tool for MCP ServerAccepted (2026-03-15)
0063Remove File Path SandboxAccepted (2026-03-16)
0064Runtime Logging Control and Observability APIAccepted (2026-03-17)
0065Complete OTP Primitives for Actor Lifecycle and SupervisionAccepted (2026-03-17)
0066Open Class Extension Methods (`>>` Syntax)Accepted (2026-03-18)
0067Separate state:/field: Keywords by Class KindAccepted (2026-03-18)
0068Parametric Types and ProtocolsAccepted | Implemented (2026-03-20)
0069Make String a Subclass of BinaryAccepted (2026-03-21)
0069Actor Observability and TracingAccepted | Implemented (2026-03-21)
0070Package Namespaces and DependenciesAccepted (2026-03-24)
0071Class Visibility — `internal` Modifier for Package-Scoped Access ControlAccepted (2026-03-28)
0072User Erlang Sources in Beamtalk PackagesAccepted (2026-03-29)
0073Package Distribution and DiscoveryAccepted (2026-03-31)
0074Deferred MetaprogrammingAccepted (2026-04-01)
0075Auto-Extract Quality AssessmentUnknown
0075Erlang FFI Type DefinitionsAccepted (2026-04-02)
0076Convert Erlang ok/error Tuples to Result at FFI BoundaryAccepted (2026-04-03)