<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Swifteex Studio</title>
    <description>The latest articles on Forem by Swifteex Studio (@swifteexstudio).</description>
    <link>https://forem.com/swifteexstudio</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3717847%2F0b22743d-54ac-4740-bada-5b998a006714.jpeg</url>
      <title>Forem: Swifteex Studio</title>
      <link>https://forem.com/swifteexstudio</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/swifteexstudio"/>
    <language>en</language>
    <item>
      <title>BOLT DOCUMENTATION 1.70</title>
      <dc:creator>Swifteex Studio</dc:creator>
      <pubDate>Fri, 10 Apr 2026 08:15:08 +0000</pubDate>
      <link>https://forem.com/swifteexstudio/bolt-documentation-170-2g19</link>
      <guid>https://forem.com/swifteexstudio/bolt-documentation-170-2g19</guid>
      <description>&lt;p&gt;BOLT DOCUMENTATION 1.70&lt;br&gt;
Bolt Runtime Documentation&lt;br&gt;
Official technical reference for Bolt v1.70. High-performance distribution meets structured engineering.&lt;/p&gt;

&lt;p&gt;Press Ctrl+K to search...&lt;br&gt;
Installation &amp;amp; Verification&lt;br&gt;
Running a script (v1.70)&lt;br&gt;
CLI&lt;br&gt;
New syntax (v1.61+)&lt;br&gt;
Modules (v1.70)&lt;br&gt;
Pre-baked Libraries&lt;br&gt;
Syntax - Deep Reference&lt;br&gt;
Calculator Example&lt;br&gt;
Examples&lt;br&gt;
Troubleshooting&lt;br&gt;
Legal &amp;amp; Credits&lt;br&gt;
Installation &amp;amp; Verification&lt;br&gt;
Download Bolt from the official distribution and verify signed artifacts before running binaries. After installation confirm the runtime is accessible from your shell.&lt;/p&gt;

&lt;p&gt;Verify installation&lt;br&gt;
Copy&lt;br&gt;
bolt --version&lt;br&gt;
Canonical output sample to expect (example):&lt;/p&gt;

&lt;p&gt;Bolt Runtime Engine v1.X.X (V: official=X/X)&lt;br&gt;
[build metadata and release date fields here]&lt;br&gt;
This version was released on 202X-0X-0X proudly built by the Swifteex Studio build system.&lt;br&gt;
Please verify signed artifacts before running.&lt;br&gt;
Release metadata and authorship are published with the builds. For reference, this documentation was produced with contributions by 0 and distributed by 1 (a 2 company).&lt;/p&gt;

&lt;p&gt;If your output follows the layout above and reports at least v1.61+ you will be able to use typed helpers. For v1.70 specific features (module files, runtime bytecode flow, and pre-baked libraries) the runtime must report v1.70+.&lt;/p&gt;

&lt;p&gt;Support and downloads: &lt;a href="https://swifteexstudio.github.io/Swifteex/" rel="noopener noreferrer"&gt;https://swifteexstudio.github.io/Swifteex/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Run flow &amp;amp; bytecode (v1.70)&lt;br&gt;
Bolt v1.70 introduces a simple edit-compile-run workflow producing a portable virtual-machine bytecode (.bvmb) file. This section describes the recommended developer workflow.&lt;/p&gt;

&lt;p&gt;Step-by-step: write → compile → run&lt;br&gt;
Create your source file&lt;br&gt;
Save your script with the new .bolt extension (previously .blt).&lt;br&gt;
Open a command prompt / terminal in the folder where your file is located&lt;br&gt;
Use your system terminal (PowerShell, Command Prompt, bash, etc.).&lt;br&gt;
Compile (generate bytecode)&lt;br&gt;
Run the compiler switch specifying your .bolt file:&lt;br&gt;
Copy&lt;br&gt;
Bolt -c filename.bolt&lt;br&gt;
If compilation succeeds a filename.bvmb file (Bolt Virtual Machine Bytecode) will be produced in the same folder. If there are errors, the compiler will print diagnostic info and exit with a non-zero exit code.&lt;br&gt;
Run the bytecode&lt;br&gt;
Execute the produced bytecode with the runtime:&lt;br&gt;
Copy&lt;br&gt;
bolt filename.bvmb&lt;br&gt;
The runtime executes the bytecode; use --debug or --json-errors for diagnostics in automation or CI.&lt;br&gt;
Notes:&lt;/p&gt;

&lt;p&gt;Compilation is optional for quick interactive experiments (some runtimes still support direct --run), but the -c → .bvmb approach ensures consistent, distributable artifacts for shipping and automation.&lt;br&gt;
Bytecode files are portable across compatible minor releases; include version metadata during compilation if portability across patch-level runtimes is required.&lt;br&gt;
Command Line Interface&lt;br&gt;
Flags and runtime modes in Bolt. Combine them to fit your workflow.&lt;/p&gt;

&lt;p&gt;--run [files...] - execute .bolt or .bvmb files&lt;br&gt;
--exec-string "" - run inline source&lt;br&gt;
--cmd - single-line interactive mode&lt;br&gt;
--safe - sandbox mode (blocks interactive and unsafe built-ins)&lt;br&gt;
--debug - verbose logging and tracebacks&lt;br&gt;
--inspect-ast - print AST before execution for diagnostics&lt;br&gt;
--json-errors - machine-readable error output for CI&lt;br&gt;
Copy&lt;br&gt;
bolt --safe --debug --run myscript.bolt&lt;/p&gt;

&lt;h1&gt;
  
  
  or run compiled bytecode:
&lt;/h1&gt;

&lt;p&gt;bolt myscript.bvmb&lt;br&gt;
New Syntax - v1.61+ Quick Reference&lt;br&gt;
This section focuses on syntax and features available from Bolt v1.61+. v1.70 keeps compatibility while adding modules and runtime bytecode workflow. For in-depth coverage see the Syntax - Deep Reference section which expands every entry below into a full how-to, troubleshooting, purpose, and requirements article.&lt;/p&gt;

&lt;p&gt;Printing - sys.out&lt;br&gt;
What it is and what it does (short): sys.out writes text or evaluated tokens to standard output. Use forward slashes to expand variables inside output: /var/.&lt;/p&gt;

&lt;p&gt;Copy&lt;br&gt;
sys.out 'hello, world!'&lt;/p&gt;

&lt;p&gt;name = 'Ariyan'&lt;br&gt;
sys.out /name/&lt;/p&gt;

&lt;p&gt;num1 = 10&lt;br&gt;
num2 = 15&lt;br&gt;
sys.out /num1/ + /num2/&lt;/p&gt;

&lt;p&gt;sys.out 'the calculation is /num1 + num2/'&lt;br&gt;
If you see literal tokens such as "/name/" in output, confirm the variable is defined and that you used forward slashes without spaces. For complete guidance and troubleshooting see the deep reference below.&lt;/p&gt;

&lt;p&gt;Variables&lt;br&gt;
Assignment uses equals. Starting with v1.61+ integers and numeric types are available and usable in arithmetic.&lt;/p&gt;

&lt;p&gt;Copy&lt;br&gt;
myvariable = 'Alice'&lt;br&gt;
age = 11&lt;/p&gt;

&lt;p&gt;sys.out /myvariable/&lt;br&gt;
sys.out /age/&lt;br&gt;
For values coming from user input, prefer the typed input helpers below to ensure numeric types.&lt;/p&gt;

&lt;p&gt;Lists&lt;br&gt;
Create lists with let.list['a' ; 'b']. Index with 0-based notation. Example shown uses the strict form requested below.&lt;/p&gt;

&lt;p&gt;Copy&lt;br&gt;
listname = let.list['1' ; '2']&lt;/p&gt;

&lt;p&gt;sys.out /listname[0]/&lt;br&gt;
Indexes start at 0. Accessing an index outside the valid range is an error; ensure your index is valid before accessing list elements.&lt;/p&gt;

&lt;p&gt;Functions and invocation&lt;br&gt;
Functions are declared with fn name(); ... end. The helper let.call name() is available and standard on v1.61+. Many stable runtimes also allow direct invocation such as name().&lt;/p&gt;

&lt;p&gt;Copy&lt;br&gt;
fn greet(name);&lt;br&gt;
  sys.out 'hello /name/!'&lt;br&gt;
end&lt;/p&gt;

&lt;p&gt;let.call greet(ariyan)&lt;br&gt;
Make sure functions are defined before invoking them, or call at runtime after the definition section.&lt;/p&gt;

&lt;p&gt;Typed input helpers (v1.61+)&lt;br&gt;
In v1.61+ Bolt provides typed input helpers to capture typed values directly: let.userinput.int 'prompt' for integers and let.userinput.str 'prompt' for strings. These reduce bookkeeping and parsing in common interactive scripts.&lt;/p&gt;

&lt;p&gt;num = let.userinput.int 'enter a number: '&lt;br&gt;
name = let.userinput.str 'enter your name: '&lt;br&gt;
If you need to support older runtime versions, detect version via bolt --version and fall back to parsing raw input where necessary.&lt;/p&gt;

&lt;p&gt;Control flow - if, eif, else&lt;br&gt;
v1.61+ includes the familiar conditional ladder: if, eif for else-if, and else for fallback. Use end.if to close the block.&lt;/p&gt;

&lt;p&gt;if condition&lt;br&gt;
  sys.out 'yes'&lt;br&gt;
eif other_condition&lt;br&gt;
  sys.out 'other'&lt;br&gt;
else&lt;br&gt;
  sys.out 'no'&lt;br&gt;
end.if&lt;br&gt;
Modules (v1.70)&lt;br&gt;
Bolt v1.70 introduces a simple module system that allows packaging reusable code into .boltmodule files and importing them into scripts. Modules are intended for distribution and reuse across projects.&lt;/p&gt;

&lt;p&gt;Creating a module file&lt;br&gt;
Save the module as mymodule.boltmodule. The top-level module wrapper must follow this exact form:&lt;/p&gt;

&lt;p&gt;Copy&lt;br&gt;
public.module[modulename$1] {{&lt;br&gt;
  # module public API and implementation&lt;br&gt;
  fn module_init();&lt;br&gt;
    # initialization code&lt;br&gt;
  end&lt;/p&gt;

&lt;p&gt;# helper functions, variables, etc.&lt;br&gt;
  some_helper = 'value'&lt;br&gt;
}}&lt;br&gt;
Important: the name inside public.module[...] must match the module filename identifier and the import reference. The $1 suffix denotes the exported major API slot and aids versioning; treat it as part of the module identifier.&lt;/p&gt;

&lt;p&gt;Importing modules&lt;br&gt;
Use the import helper $get.module to load a module at runtime. Examples:&lt;/p&gt;

&lt;p&gt;Copy&lt;/p&gt;

&lt;h1&gt;
  
  
  simple import
&lt;/h1&gt;

&lt;p&gt;$get.module&lt;/p&gt;

&lt;h1&gt;
  
  
  import with alias
&lt;/h1&gt;

&lt;p&gt;$get.modulename $; aliasname # No need to add '$1' because it is only to give bolt module manager permission to import. It will cause a error if included.&lt;/p&gt;

&lt;h1&gt;
  
  
  call exported initialization
&lt;/h1&gt;

&lt;p&gt;let.call mymod.module_init()&lt;br&gt;
Pre-baked Libraries (v1.70)&lt;br&gt;
v1.70 ships with a small set of convenience libraries for common tasks. They are optional runtime modules; include them by importing or referencing the runtime-provided namespace per your packaging.&lt;/p&gt;

&lt;p&gt;Boltclock&lt;br&gt;
Utilities for deterministic pauses and simple scheduling.&lt;/p&gt;

&lt;p&gt;Copy&lt;/p&gt;

&lt;h1&gt;
  
  
  pause for 2 seconds
&lt;/h1&gt;

&lt;p&gt;Boltclock.pause(2)&lt;/p&gt;

&lt;h1&gt;
  
  
  combine with function calls
&lt;/h1&gt;

&lt;p&gt;fn afterwait();&lt;br&gt;
  sys.out 'resuming after wait'&lt;br&gt;
end&lt;/p&gt;

&lt;p&gt;Boltclock.pause(1)&lt;br&gt;
let.call afterwait()&lt;br&gt;
Boltclock.pause(sec) accepts numeric seconds. Implementation may block the current execution context; avoid in high-concurrency scenarios or use cooperative patterns.&lt;/p&gt;

&lt;p&gt;Boltloop&lt;br&gt;
Simple repeated execution helper. Use for fixed-count repetition where no loop keywords exist.&lt;/p&gt;

&lt;p&gt;Copy&lt;/p&gt;

&lt;h1&gt;
  
  
  call sys.out 5 times
&lt;/h1&gt;

&lt;p&gt;boltloop.loop(sys.out 'tick') ! 5&lt;/p&gt;

&lt;h1&gt;
  
  
  or call a function repeatedly
&lt;/h1&gt;

&lt;p&gt;fn tick();&lt;br&gt;
  sys.out 'tick from function'&lt;br&gt;
end&lt;/p&gt;

&lt;p&gt;boltloop.loop(tick) ! 3&lt;br&gt;
Syntax: boltloop.loop(instruction) ! times. instruction may be a sys.out, a function identifier, or any single-call instruction supported by the runtime. The runtime treats this as a convenience expansion into repeated calls; heavy repetition should be implemented with careful function design to preserve stack and memory safety.&lt;/p&gt;

&lt;p&gt;Random&lt;br&gt;
Pick random items from a provided list or data arguments.&lt;/p&gt;

&lt;p&gt;Copy&lt;/p&gt;

&lt;h1&gt;
  
  
  pick and print one of the arguments
&lt;/h1&gt;

&lt;p&gt;Random.main('data1', 'data2', 'data3')&lt;/p&gt;

&lt;h1&gt;
  
  
  store result (example pattern - adapt per runtime API)
&lt;/h1&gt;

&lt;p&gt;choice = Random.main('red','blue','green')&lt;br&gt;
sys.out /choice/&lt;br&gt;
Behavior: Random.main(...) returns a single random item from the arguments and prints it when used inline as shown. Confirm exact return semantics on your runtime (some variants print and return; others only return).&lt;/p&gt;

&lt;p&gt;void.0 - runtime stop&lt;br&gt;
To immediately halt Bolt execution from your script use the sentinel void.0. This provides a clean, immediate stop without raising a runtime exception (useful for controlled termination in tools and interactive sessions).&lt;/p&gt;

&lt;p&gt;Copy&lt;br&gt;
sys.out 'starting'&lt;br&gt;
void.0&lt;/p&gt;

&lt;h1&gt;
  
  
  code below will not execute
&lt;/h1&gt;

&lt;p&gt;Syntax - Deep Reference (complete how-to, purpose, fixes, requirements)&lt;br&gt;
prescriptive and strict: examples follow Bolt v1.61+ rules and avoid language constructs not present in Bolt (no for/while loops, no Python syntax).&lt;/p&gt;

&lt;p&gt;Printing - sys.out (deep)&lt;br&gt;
Purpose&lt;br&gt;
Provide deterministic output to stdout. It is the primary and only documented mechanism for emitting textual results, diagnostic messages, and computed numeric values to the user or to a capturing process.&lt;/p&gt;

&lt;p&gt;Exact syntax&lt;br&gt;
sys.out 'literal string' - prints the literal string verbatim.&lt;br&gt;
sys.out /identifier/ - prints the value of a variable named identifier. Forward-slash interpolation is token-based: wrap a single identifier or an expression token between slashes to evaluate and embed it.&lt;/p&gt;

&lt;p&gt;Variable interpolation rules&lt;br&gt;
Interpolation tokens are delimited with forward slashes: /.../.&lt;br&gt;
Inside an interpolation token place a single variable or a numeric expression built from numeric variables and literal numbers using Bolt operators. Example: /num1 + num2/.&lt;br&gt;
If the token is strictly textual (string variable), it expands to the string value. If numeric, it expands to the computed numeric result.&lt;br&gt;
Do not include whitespace between the slashes and the token name if you expect expansion; tokens with leading/trailing spaces are treated literally.&lt;br&gt;
Escaping and literal slashes&lt;br&gt;
To emit raw forward-slashes or sequences that look like tokens, break the string into separate sys.out calls or avoid token syntax. Bolt does not provide an escape sequence inside a single-quoted sys.out literal for forward-slash interpolation. Example safe pattern:&lt;/p&gt;

&lt;p&gt;sys.out 'path: /usr/bin'&lt;/p&gt;

&lt;p&gt;Escaping and literal slashes&lt;/p&gt;

&lt;h1&gt;
  
  
  ;this is a comment'
&lt;/h1&gt;

&lt;h1&gt;
  
  
  To show '/name/' literally - avoid token parsing:
&lt;/h1&gt;

&lt;p&gt;sys.out 'name literal: /name/'&lt;/p&gt;

&lt;p&gt;Examples&lt;br&gt;
Copy&lt;br&gt;
name = 'Ariyan'&lt;br&gt;
sys.out /name/&lt;/p&gt;

&lt;p&gt;a = 5&lt;br&gt;
b = 4&amp;gt;sys.out /a/ + /b/&lt;/p&gt;

&lt;p&gt;sys.out 'the sum is /a + b/'&lt;br&gt;
Common errors &amp;amp; fixes&lt;br&gt;
Tokens printed verbatim: If you see /var/ in output, confirm the variable is defined and that the token contains only the identifier or a valid expression. Fix: define the variable before printing or correct token content.&lt;br&gt;
Requirements &amp;amp; runtime notes&lt;br&gt;
The interpolation behavior described assumes Bolt v1.61+ (typed inputs and numeric expression evaluation in tokens). Older runtimes may not evaluate expressions inside tokens; prefer explicit arithmetic and concatenation in that case.&lt;/p&gt;

&lt;p&gt;Variables - Declaration &amp;amp; Types&lt;br&gt;
Purpose&lt;br&gt;
Hold immutable or mutable values (strings, integers, numeric types, lists). Bolt uses a simple assignment model: the "=" operator binds the right-hand expression to the identifier on the left.&lt;/p&gt;

&lt;p&gt;Exact syntax and semantics&lt;br&gt;
identifier = expression&lt;/p&gt;

&lt;p&gt;Identifiers must start with a letter and may contain letters, digits, and underscores.&lt;br&gt;
Strings are single-quoted: 'text'.&lt;br&gt;
Numbers are unquoted numeric literals: 42.&lt;br&gt;
Once assigned, variables are available for interpolation and arithmetic per their type.&lt;br&gt;
Examples&lt;br&gt;
Copy&lt;br&gt;
username = 'guest'&lt;br&gt;
count = 3&lt;br&gt;
total = count + 2&lt;/p&gt;

&lt;p&gt;sys.out /username/&lt;br&gt;
sys.out /total/&lt;br&gt;
Type handling &amp;amp; conversion&lt;br&gt;
Bolt v1.61+ supports numeric types; avoid implicit conversions. When reading from untyped sources (raw prompts without typed helpers) convert with tonumber() if available, otherwise validate and re-prompt.&lt;/p&gt;

&lt;p&gt;Common errors &amp;amp; fixes&lt;br&gt;
Undefined identifier: Initialize variables before use. Fix: move assignment above usage.&lt;br&gt;
String used in numeric expression: Convert strings to numbers or use typed input helpers. Fix: use let.userinput.int or tonumber().&lt;br&gt;
Requirements&lt;br&gt;
Typed numeric operations require v1.61+ to ensure numeric types from let.userinput.int. If you must support older runtimes, include defensive parsing and error messages.&lt;/p&gt;

&lt;p&gt;Lists - Creation, Indexing, Length&lt;br&gt;
Purpose&lt;br&gt;
Lists are simple ordered collections providing indexed access using 0-based positions. They are ideal for small tables, argument lists, and configuration arrays.&lt;/p&gt;

&lt;p&gt;Exact syntax&lt;br&gt;
let.list['item1' ; 'item2' ; 'itemN'] constructs a list. Index with square brackets: listVar[index]. Example below follows the strict form requested.&lt;/p&gt;

&lt;p&gt;Examples&lt;br&gt;
Copy&lt;br&gt;
listname = let.list['1' ; '2']&lt;/p&gt;

&lt;p&gt;sys.out /listname[0]/&lt;br&gt;
Indexing rules &amp;amp; safety&lt;br&gt;
Indexes are integers starting at 0.&lt;br&gt;
Accessing an index outside the valid range is an error. Ensure the index value you use is valid before accessing a list element.&lt;br&gt;
List contents may be mixed types; be careful when using items in numeric expressions.&lt;br&gt;
Common errors &amp;amp; fixes&lt;br&gt;
Out-of-range access: Ensure the index is within the valid range before accessing a list element.&lt;br&gt;
Unexpected type inside list: Validate contents before arithmetic (for example, ensure an item is numeric when used in a calculation).&lt;br&gt;
Requirements &amp;amp; notes&lt;br&gt;
List operations are available in v1.61+ as shown. There are no built-in loop constructs to iterate lists; iterate by index with repeated conditionals or by using function-driven repetition patterns. See "Control Flow" for alternative patterns.&lt;/p&gt;

&lt;p&gt;Functions - Declaration, Invocation, Conventions&lt;br&gt;
Purpose&lt;br&gt;
Functions encapsulate logic and allow reuse. Bolt uses a compact declaration and a predictable call model. They are the recommended mechanism for structuring logic, including repetition where no loop constructs exist.&lt;/p&gt;

&lt;p&gt;Exact syntax&lt;br&gt;
Declare: fn name(); ... end&lt;br&gt;
Invoke: let.call name() or, on many runtimes, direct invocation name().&lt;/p&gt;

&lt;p&gt;Examples&lt;br&gt;
Copy&lt;br&gt;
fn greet();&lt;br&gt;
  sys.out 'hello'&lt;br&gt;
end&lt;/p&gt;

&lt;p&gt;let.call greet()&lt;br&gt;
Arguments and returns (pattern)&lt;br&gt;
Bolt v1.61+ does not support formal parameter lists in function header in the same way as other languages. To pass data, assign variables in the calling scope before the call or use global vars as an explicit convention. To return values, write to a known variable. Keep this pattern disciplined and documented in your package header.&lt;/p&gt;

&lt;p&gt;Recursion and repetition&lt;br&gt;
Because Bolt lacks loop keywords (for/while), recursion or repeated calls are the structured way to perform repetition. Use recursion with caution: ensure a clear base case to avoid stack overflow. Example (conceptual):&lt;/p&gt;

&lt;h1&gt;
  
  
  conceptual: use carefully
&lt;/h1&gt;

&lt;p&gt;fn repeat_once();&lt;br&gt;
  sys.out 'repeating'&lt;br&gt;
  # conditionally call again&lt;br&gt;
end&lt;/p&gt;

&lt;p&gt;let.call repeat_once()&lt;br&gt;
Common errors &amp;amp; fixes&lt;br&gt;
Forward reference: If calling a function before it's defined, prefer let.call after the definition or move definitions earlier.&lt;br&gt;
Missing return pattern: Document and use a named output variable to emulate return values.&lt;br&gt;
Requirements &amp;amp; notes&lt;br&gt;
Function declaration and let.call are standard in v1.61+. The function model is intentionally simple to keep runtime predictable and safe for distribution.&lt;/p&gt;

&lt;p&gt;Typed Input Helpers - let.userinput.int &amp;amp; let.userinput.str&lt;br&gt;
Purpose&lt;br&gt;
Capture user-provided values directly as specific types to avoid manual parsing and error-prone conversions. This reduces common input validation bugs.&lt;/p&gt;

&lt;p&gt;Exact syntax&lt;br&gt;
var = let.userinput.int 'prompt' - requests input and returns an integer.&lt;br&gt;
var = let.userinput.str 'prompt' - requests input and returns a string.&lt;/p&gt;

&lt;p&gt;Examples&lt;br&gt;
Copy&lt;br&gt;
num = let.userinput.int 'enter a number: '&lt;br&gt;
name = let.userinput.str 'enter your name: '&lt;br&gt;
Validation &amp;amp; failure modes&lt;br&gt;
If the user enters non-numeric text on let.userinput.int, the runtime should re-prompt or produce a clear error. Test this behavior.&lt;br&gt;
If your runtime is older and lacks typed helpers, implement a parsing fallback: read raw input, validate with a numeric check, and re-prompt on failure.&lt;br&gt;
Common errors &amp;amp; fixes&lt;br&gt;
Non-numeric entry for int helper: Confirm whether runtime auto-validates; if not, implement a manual check loop using function calls and re-prompts.&lt;br&gt;
Blocking prompts in automation: When using scripts in CI, provide flags or environment variables to bypass interactive prompts. See "Safe scripting practices" article for patterns.&lt;br&gt;
Requirements&lt;br&gt;
Typed helpers require Bolt v1.61+. For automation and installs, detect version via bolt --version and apply fallback logic where necessary.&lt;/p&gt;

&lt;p&gt;Control Flow - if / eif / else&lt;br&gt;
Purpose&lt;br&gt;
Model conditional decision points. The control flow ladder is intentionally compact and readable: if begins a branch, eif chains additional conditions, and else handles the fallback. Close with end.if.&lt;/p&gt;

&lt;p&gt;Exact syntax&lt;br&gt;
if condition&lt;br&gt;
  ...&lt;br&gt;
eif other_condition&lt;br&gt;
  ...&lt;br&gt;
else&lt;br&gt;
  ...&lt;br&gt;
end.if&lt;br&gt;
Condition rules&lt;br&gt;
Conditions evaluate to truthy/falsey values per Bolt's runtime semantics. For numeric comparisons use explicit numeric variables and operators.&lt;br&gt;
Type-check before numeric comparisons: if a condition mixes types, convert or use typed inputs to ensure correct evaluation.&lt;br&gt;
Parentheses may be used for clarity where supported by the runtime.&lt;br&gt;
No looping constructs&lt;br&gt;
Bolt as documented in this reference does not provide built-in looping keywords (for, while, do/while). Where repetition is required, use function-based patterns and recursion with explicit base-case guards or perform external iteration in the calling environment (scripts that call Bolt multiple times or orchestrate repeated execution). And as of February 24th 2026 and bolt 1.61, Bolt does not provide any modules like random or others like python. We are working to add this feature very soon!&lt;/p&gt;

&lt;p&gt;Examples &amp;amp; patterns&lt;br&gt;
Copy&lt;br&gt;
if /score/ &amp;gt;= 90&lt;br&gt;
  sys.out 'grade: A'&lt;br&gt;
eif /score/ &amp;gt;= 80&lt;br&gt;
  sys.out 'grade: B'&lt;br&gt;
else&lt;br&gt;
  sys.out 'grade: C or below'&lt;br&gt;
end.if&lt;br&gt;
Common errors &amp;amp; fixes&lt;br&gt;
Type mismatch in comparison: Convert or validate operands. Fix: use typed inputs or tonumber().&lt;br&gt;
Missing end.if: The block must be closed. Fix: add end.if at the correct indentation level.&lt;br&gt;
Requirements &amp;amp; notes&lt;br&gt;
Control flow is robust in v1.61+. Because there are no loop keywords, prefer small, testable functions for repeating behavior; this leads to clearer and more maintainable scripts for distribution.&lt;/p&gt;

&lt;p&gt;Error handling &amp;amp; diagnostics&lt;br&gt;
Purpose&lt;br&gt;
Provide clear, reproducible failure messages and machine-readable diagnostics for automation and support workflows.&lt;/p&gt;

&lt;p&gt;Best practices&lt;br&gt;
Run with --debug for verbose tracebacks during development.&lt;br&gt;
Use --json-errors when attaching logs to support tickets or CI systems.&lt;br&gt;
When reporting issues, include: Bolt version (bolt --version output), the exact script, the terminal output, and the command-line flags used.&lt;br&gt;
Common diagnostic patterns&lt;br&gt;
bolt --debug --run script.blt&lt;/p&gt;

&lt;h1&gt;
  
  
  or for CI:
&lt;/h1&gt;

&lt;p&gt;bolt --json-errors --run script.blt&lt;br&gt;
Compatibility &amp;amp; Version Detection&lt;br&gt;
Purpose&lt;br&gt;
Allow scripts to detect runtime capabilities and select typed helpers or fallback logic accordingly.&lt;/p&gt;

&lt;p&gt;Pattern&lt;/p&gt;

&lt;h1&gt;
  
  
  pattern (conceptual)
&lt;/h1&gt;

&lt;h1&gt;
  
  
  1) call &lt;code&gt;bolt --version&lt;/code&gt; to detect runtime
&lt;/h1&gt;

&lt;h1&gt;
  
  
  2) branch in packaging to include fallbacks
&lt;/h1&gt;

&lt;p&gt;Packaging recommendation&lt;br&gt;
Distribute a small header in scripts that prints expected runtime and performs a capability check, followed by two code paths: typed-helpers-enabled (v1.61+) and fallback parsing. This keeps packages resilient across environments.&lt;/p&gt;

&lt;p&gt;All deep reference code samples follow Bolt v1.61+ conventions. v1.70 adds modules, bytecode workflow, and the pre-baked libraries documented above. If you require a separate legacy compatibility appendix (v1.50 - v1.60), we can produce a compact fallback appendix that shows explicit parsing and error handling patterns.&lt;/p&gt;

&lt;p&gt;Calculator Example (v1.61+)&lt;br&gt;
The calculator example below assumes Bolt v1.61+ so that typed input helpers and modern control flow are available. The example is split into parts with precise, testable fixes and fallback suggestions for older runtimes.&lt;/p&gt;

&lt;p&gt;Canonical source&lt;br&gt;
Copy&lt;br&gt;
fn calc();&lt;br&gt;
  sys.out 'welcome to calc.'&lt;/p&gt;

&lt;p&gt;num1 = let.userinput.int 'enter number first: '&lt;br&gt;
  num2 = let.userinput.int 'enter number second: '&lt;/p&gt;

&lt;p&gt;sys.out '1) addition'&lt;br&gt;
  sys.out '2) subtraction'&lt;br&gt;
  sys.out '3) multiplication'&lt;br&gt;
  sys.out '4) division'&lt;br&gt;
  sys.out 'choose 1 to 4'&lt;/p&gt;

&lt;p&gt;choose = let.userinput 'choose: '&lt;/p&gt;

&lt;p&gt;if choose == '1'&lt;br&gt;
    sys.out /num1/ + /num2/&lt;br&gt;
  eif choose == '2'&lt;br&gt;
    sys.out /num1/ - /num2/&lt;br&gt;
  eif choose == '3'&lt;br&gt;
    sys.out /num1/ * /num2/&lt;br&gt;
  eif choose == '4'&lt;br&gt;
    if /num2/ == 0&lt;br&gt;
      sys.out 'ERROR: divide by zero'&lt;br&gt;
    else&lt;br&gt;
      sys.out /num1/ / /num2/&lt;br&gt;
    end.if&lt;br&gt;
  else&lt;br&gt;
    sys.out 'INVALID'&lt;br&gt;
  end.if&lt;br&gt;
end&lt;/p&gt;

&lt;p&gt;let.call calc()&lt;br&gt;
Testing checklist for this example&lt;br&gt;
Run bolt --version and confirm v1.61 or newer (v1.70 recommended for library support).&lt;br&gt;
Enter valid integers and verify arithmetic results match expectations.&lt;br&gt;
Try invalid inputs and confirm either the typed helper re-prompts or your parse fallback handles the case.&lt;br&gt;
Check division by zero behavior and confirm the guard prints the error message.&lt;br&gt;
If issues persist, gather the exact terminal output and the Bolt version and include them in your support request.&lt;/p&gt;

&lt;p&gt;Examples&lt;br&gt;
Small, copy-ready samples for quick testing on v1.61+ and v1.70 runtimes. Each example is accompanied by the exact expected output or failure mode so you can validate behavior.&lt;/p&gt;

&lt;p&gt;Copy&lt;/p&gt;

&lt;h1&gt;
  
  
  Save as hello.bolt
&lt;/h1&gt;

&lt;p&gt;sys.out 'hello, world!'&lt;br&gt;
Copy&lt;br&gt;
bolt --inspect-ast --exec-string "sys.out '1+2'"&lt;br&gt;
Module example (mymod.boltmodule)&lt;br&gt;
Copy&lt;br&gt;
public.module[mymod$1] {{&lt;br&gt;
  fn module_init();&lt;br&gt;
    sys.out 'mymod initialized'&lt;br&gt;
  end&lt;/p&gt;

&lt;p&gt;fn greet();&lt;br&gt;
    sys.out 'hello from mymod'&lt;br&gt;
  end&lt;br&gt;
}}&lt;br&gt;
Using the module in a script (app.bolt)&lt;br&gt;
Copy&lt;br&gt;
$get.module mymod$1 $; m&lt;br&gt;
let.call m.module_init()&lt;br&gt;
let.call m.greet()&lt;br&gt;
Articles&lt;br&gt;
Short articles to help you design scripts for both interactive usage and automation. Each article includes concrete examples and support notes. The deep syntax reference is also linked from here for in-depth reading.&lt;/p&gt;

&lt;p&gt;Safe scripting practices&lt;br&gt;
Detect runtime version with bolt --version and choose typed helpers when v1.61+ is detected. For automation, avoid blocking user prompts; accept flags or environment variables to switch into noninteractive mode. Provide explicit error codes and, when applicable, --json-errors for CI consumers.&lt;/p&gt;

&lt;p&gt;Distributing scripts&lt;br&gt;
Include a small header that prints expected runtime version and usage. Provide both typed-helper paths for v1.61+ and fallback parsing code for earlier runtimes so your package runs across environments. For v1.70 distribute compiled .bvmb artifacts alongside source to support environments that prefer bytecode-only deployment. Keep the API surface minimal and document every exported variable and required runtime capability.&lt;/p&gt;

&lt;p&gt;Troubleshooting&lt;br&gt;
Concrete steps when Bolt is not recognized or scripts fail. No vague suggestions.&lt;/p&gt;

&lt;p&gt;Bolt not recognized&lt;br&gt;
Confirm install folder exists. Windows default: C:\Program Files\Bolt.&lt;br&gt;
Run the executable directly from the folder: open PowerShell in the folder and run .\bolt --version. If this runs, the binary is fine but not on PATH.&lt;br&gt;
Add the install folder to PATH:&lt;br&gt;
Windows: Start → Edit the system environment variables → Environment Variables → under System variables edit Path → Add the Bolt folder → Save → restart terminal.&lt;br&gt;
If the binary is missing or corrupt, re-download the installer from the official page and reinstall. Use the installer-provided uninstall when available before reinstalling.&lt;br&gt;
Script errors or missing helpers&lt;br&gt;
Confirm your runtime version is v1.61+ for typed helpers and modern control flow. For v1.70 features (modules, bytecode generation, pre-baked libraries), confirm the runtime reports v1.70+. If running older versions, include fallback parsing and safe guards. When requesting help provide the Bolt version, the script, and the exact terminal output.&lt;/p&gt;

&lt;p&gt;Collect logs&lt;br&gt;
Run scripts with bolt --debug --run script.bolt or bolt --json-errors --run script.bolt to get structured information to attach to a support request. For compiled artifacts, include both the source .bolt and compiled .bvmb files plus the exact compilation command used.&lt;/p&gt;

&lt;p&gt;Legal &amp;amp; Credits&lt;br&gt;
All rights reserved. Verify downloadable artifacts with the signed checksums on the official download page before installation.&lt;/p&gt;

&lt;p&gt;© 2026 Swifteex Studio (a HyperClouD Softwares company). Documentation and builds assembled by Swifteex Studio with distribution support from Swifteex Studio. Recommended editor: Visual Studio Code.&lt;/p&gt;

&lt;p&gt;Support &amp;amp; downloads: &lt;a href="https://swifteexstudio.github.io/Swifteex/" rel="noopener noreferrer"&gt;https://swifteexstudio.github.io/Swifteex/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;© 2026 Bolt Documentation 1.70 Engineering • Lead Architect: Ariyan Ahmed&lt;/p&gt;

&lt;p&gt;Support&lt;br&gt;
Home&lt;br&gt;
Terms of Service&lt;/p&gt;

</description>
      <category>programming</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Bolt is now compiled 🥳</title>
      <dc:creator>Swifteex Studio</dc:creator>
      <pubDate>Tue, 17 Mar 2026 08:56:35 +0000</pubDate>
      <link>https://forem.com/swifteexstudio/bolt-is-now-compiled-5320</link>
      <guid>https://forem.com/swifteexstudio/bolt-is-now-compiled-5320</guid>
      <description>&lt;p&gt;I just switched bolt from running interpreted to running bytecode. Sorry lazy coders but it's my programming language ⚡&lt;/p&gt;

</description>
    </item>
    <item>
      <title>No utf-8 for bolt 😭</title>
      <dc:creator>Swifteex Studio</dc:creator>
      <pubDate>Tue, 17 Mar 2026 08:50:34 +0000</pubDate>
      <link>https://forem.com/swifteexstudio/no-utf-8-for-bolt-25jc</link>
      <guid>https://forem.com/swifteexstudio/no-utf-8-for-bolt-25jc</guid>
      <description>&lt;p&gt;I just realized there is not utf8 in bolt so no other languages or emojis 😭. Im gonna fix that in bolt 1.70&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Sorry for another delay 😵</title>
      <dc:creator>Swifteex Studio</dc:creator>
      <pubDate>Thu, 22 Jan 2026 12:49:57 +0000</pubDate>
      <link>https://forem.com/swifteexstudio/sorry-for-another-delay-beb</link>
      <guid>https://forem.com/swifteexstudio/sorry-for-another-delay-beb</guid>
      <description>&lt;p&gt;Due to some technical issues, BOLT 1.60 WILL BE DELAYED UNTIL FEBRUARY 5TH,2026. WE PROMISE THIS IS THE LAST DELAY BEFORE THE BIRTH OF THE MOST LEGENDARY PROGRAMMING LANGUAGE EVER. &lt;br&gt;
sorry 😔&lt;br&gt;
SwifteexStudio,&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>programming</category>
      <category>beginners</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Delay 😞</title>
      <dc:creator>Swifteex Studio</dc:creator>
      <pubDate>Wed, 21 Jan 2026 13:40:57 +0000</pubDate>
      <link>https://forem.com/swifteexstudio/delay-23gi</link>
      <guid>https://forem.com/swifteexstudio/delay-23gi</guid>
      <description>&lt;p&gt;Hey everyone, just a quick update regarding Bolt. We've had to push back the release to allow for a larger, more polished update. We know many of you were excited, and we really appreciate your patience as we make sure Bolt delivers the best experience possible.&lt;br&gt;
For more info, check out the details here: Bolt Info&lt;br&gt;
New ETA: 23 Jan 26. Thanks for sticking with us!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>🔥 Heads up, coders! 🔥</title>
      <dc:creator>Swifteex Studio</dc:creator>
      <pubDate>Mon, 19 Jan 2026 15:06:07 +0000</pubDate>
      <link>https://forem.com/swifteexstudio/heads-up-coders-1lha</link>
      <guid>https://forem.com/swifteexstudio/heads-up-coders-1lha</guid>
      <description>&lt;p&gt;BOLT 1.5.1 is dropping 21st January! ⚡&lt;br&gt;
This isn’t just another update — we’ve cranked the engine, polished the syntax, and packed in features that’ll make your coding fly. If you thought BOLT was fast before… wait until you see what’s coming. Clean, powerful, and just a little bit mad-scientist-level insane 🧪💻.&lt;br&gt;
Mark the date, grab your gear, and get ready to bolt straight into the future of programming. This is one update you don’t want to miss.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Hey world, I made a programming language (and it’s alive!)</title>
      <dc:creator>Swifteex Studio</dc:creator>
      <pubDate>Sun, 18 Jan 2026 12:58:01 +0000</pubDate>
      <link>https://forem.com/swifteexstudio/hey-world-i-made-a-programming-language-and-its-alive-1154</link>
      <guid>https://forem.com/swifteexstudio/hey-world-i-made-a-programming-language-and-its-alive-1154</guid>
      <description>&lt;p&gt;Hey everyone, I’m Ariyan Ahmed — yes, the 11-year-old CEO behind BOLT. 😎&lt;br&gt;
So here’s the deal: I imagined a programming language. Then I woke up one day and thought, why not make it real? Fast-forward a bit, and now I have:&lt;br&gt;
BOLT — my language where code is saved as .blt files&lt;br&gt;
BRE (Bolt Runtime Engine) — the heart that runs BOLT programs&lt;br&gt;
A full ecosystem with versions, updates, and a polished installer&lt;br&gt;
Yeah… I literally built an entire programming ecosystem. Overnight. 🏆💥&lt;br&gt;
Why BOLT? Because I wanted a language that’s:&lt;br&gt;
Fast ⚡&lt;br&gt;
Expressive ✨&lt;br&gt;
Fun to experiment with 🛠️&lt;br&gt;
Safe for users even when I go nuts with updates&lt;br&gt;
If you like exploring new languages, messing with runtime engines, or just seeing what a kid CEO can build… check it out: &lt;a href="https://swifteexstudio.github.io/Swifteex/" rel="noopener noreferrer"&gt;https://swifteexstudio.github.io/Swifteex/&lt;/a&gt;&lt;br&gt;
I’m not here for memes, likes, or chaos. I’m here to make code alive, fun, and powerful. And trust me, BOLT is just getting started.&lt;br&gt;
Also… yes, it’s version 1.51 already. I told you I move fast. 💨&lt;br&gt;
Stay legendary,&lt;br&gt;
Ariyan Ahmed, CEO of Swifteex Studio 😎💥&lt;/p&gt;

</description>
      <category>programming</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
