Origin Programming Language · v1.7.31
Origin is my programming language — English-like syntax, strict typing, hardware-first (GPIO/servo primitives for Raspberry Pi), and the full Python ecosystem underneath. this repo is the stable release: pip install origin-or and you're writing .or files. dev chaos happens in origin-dev; this is the polished snapshot.
docs live at docs-origin.onrender.com.
what's new in v1.7.31
- JS-shaped default dialect — the bundled
origin.tomlnow maps JavaScript-style lines (console.log(x);,x++;,a === b;,Math.floor(x);,arr.push(x);,//comments, trailing;) to real Origin. keyword-led lines (let,if,while, ...) still parse natively, semicolon-free. - dialect preset pack —
tomls/shipsjs/py/ts/c/cpp/rs/java_or.tomlshorthands plusorigin_dialect.md, the authoring spec (rules, keyword guard, debugging recipe).
what's new in v1.7.30
- dialect support (TOML) — mix foreign-language lines straight into
.orprograms. each line is looked up in the bundledorigin.toml("<origin source>" _ "<dialect line>") and compiled to real Origin before execution, including$nametemplate captures (e.g."let $n:int = $v" _ "$n:$v"turnsx:5intolet x:int = 5). expansion is inline, sharing constants and control flow. - dialect-aware runner —
origin/runner.pypreloadsorigin.toml, precompiles exact mappings toorigin_bytecode.toml, resolves templates at parse time. interpreter mode (origin i) skips dialect lines; use default VM mode. open ... asstatement —open "data.txt", "r" as fbinds a file handle (newOPEN_FILEopcode0x53on the VM,name = open(path, mode)in the interpreter). path/mode accept plain strings, f-strings, and variables.- dialect guard — templated mappings (e.g.
"$n:$v") no longer hijack lines starting with a core keyword, soopen f"C:/..."paths and typed declarations compile as real statements. - fresh
origin.exe+OriginInstallerV1.7.30.zip, carried-over modular layout (lexer/parser/interpreter/classes subpackages) with the bytecode VM as default backend.
quickstart
git clone https://github.com/boblio-max/origin.git
pip install -r requirements.txt
let x: int = 10
let name: str = "Origin"
let flag: bool = true
const e: float = 2.71828
let a, b = 1, 2
print x + a
python -m origin main.or # bytecode VM (default)
python -m origin i main.or # AST interpreter
how it actually works
origin/ package pipeline: lexer.py tokenizes → parser.py builds the AST → either bc/to_byte.py compiles to bytecode for bc/svm.py (the stack VM, default) or the interpreter generates Python and execs it. dialect.py + origin.toml handle the foreign-line expansion before parsing. errors.py gives friendly diagnostics with suggestions instead of raw tracebacks.
features
English-like syntax · strict (recommended) type annotations with inference · classes/OOP · try/except/else · parallel thread blocks · module system (import math as m, from lib import x) · .or library imports (calc.or, graph.or) · hardware I/O (GPIO, ServoKit/PCA9685 with 0–180° servo clamping) · binary builder (PyInstaller .exe) · binary + install.sh/secure_install.ps1 installers.
stack
Python 3.10+, zero runtime deps (extras: Pi/servo libs, pyinstaller for builds). see requirements.txt, setup.py, helloworld.or.
Metadata
Release files for origin-or 1.7.31
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| origin_or-1.7.31.tar.gz | 62.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| origin_or-1.7.31-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 136.8 kB
Release files / origin_or-1.7.31.tar.gz
| Download URL | origin_or-1.7.31.tar.gz |
|---|---|
| Size | 62.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c4ded3148e5cc8961a61385795b0521eb1ae136c5a90bca01052e06fd5635b95
|
|
BLAKE2b-256 checksum How to use checksums |
b05a4cc30d6b2cb1bebf05355ee03ba551d30a3436c95b481932b2cab6b3a8ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / origin_or-1.7.31-py3-none-any.whl
| Download URL | origin_or-1.7.31-py3-none-any.whl |
|---|---|
| Size | 73.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
653ca0eb9fa79761aeb73e8aa298fd5ac7de1c2dd8f2211b560537fa3cb78499
|
|
BLAKE2b-256 checksum How to use checksums |
70faf31fe8dbb2bfea8b11e74792ff863af0353fef04271733c5fc0cde8e07ce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|