Origin Programming Language · v1.7.29
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.29
- 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. - fresh
origin.exe+OriginInstallerV1.7.29.zip, carried-over modular layout (lexer/parser/interpreter/classes subpackages) with the bytecode VM as default backend. - dialect shorthand:
"print $n" _ "p $n"—p xnow compiles toprint x, alongside thex:5template.
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.29
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.29.tar.gz | 60.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| origin_or-1.7.29-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 132.7 kB
Release files / origin_or-1.7.29.tar.gz
| Download URL | origin_or-1.7.29.tar.gz |
|---|---|
| Size | 60.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
86c44d96862a55fcfd5567cac49867fab62720ce9f31d42e12ede5d9d90d17f5
|
|
BLAKE2b-256 checksum How to use checksums |
1f38fdc2302c7d146f786ce0b3627ea7edee1d9223aef9614aa8d5a421ae9b60
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.5
|
Release files / origin_or-1.7.29-py3-none-any.whl
| Download URL | origin_or-1.7.29-py3-none-any.whl |
|---|---|
| Size | 72.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
38359d9fe10db1b9c496c704cc63f8f81a7cefe90d8433db6b29775c566c6d5b
|
|
BLAKE2b-256 checksum How to use checksums |
00ddaf0db5555a04511c2ceaa9e944f3faac83c1d4d3788b98f4781e990f266e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.5
|