惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
L
LINUX DO - 最新话题
P
Proofpoint News Feed
Cyberwarzone
Cyberwarzone
Know Your Adversary
Know Your Adversary
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
L
Lohrmann on Cybersecurity
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Security Latest
Security Latest
T
The Exploit Database - CXSecurity.com
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Privacy & Cybersecurity Law Blog
K
Kaspersky official blog
The Last Watchdog
The Last Watchdog
Webroot Blog
Webroot Blog
Scott Helme
Scott Helme
T
Threat Research - Cisco Blogs
C
Cyber Attacks, Cyber Crime and Cyber Security
WordPress大学
WordPress大学
L
LINUX DO - 热门话题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - Franky
V
Visual Studio Blog
O
OpenAI News
AI
AI
Hacker News: Ask HN
Hacker News: Ask HN
V2EX - 技术
V2EX - 技术
GbyAI
GbyAI
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Simon Willison's Weblog
Simon Willison's Weblog
S
Schneier on Security
Spread Privacy
Spread Privacy
Y
Y Combinator Blog
I
InfoQ
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
Threatpost
C
Cybersecurity and Infrastructure Security Agency CISA
F
Fortinet All Blogs
C
CERT Recently Published Vulnerability Notes
T
The Blog of Author Tim Ferriss
C
Check Point Blog
Apple Machine Learning Research
Apple Machine Learning Research
有赞技术团队
有赞技术团队
人人都是产品经理
人人都是产品经理
N
News and Events Feed by Topic
Project Zero
Project Zero
小众软件
小众软件
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
B
Blog
G
Google Developers Blog

Hacker News

randoFont GitHub - onehorizonai/silo-terminal: A dark phosphor Apple Terminal profile inspired by the sealed systems and green-blue screens of Silo. Fading Maize | 2001 to 2026 Show HN: Onboard-CLI–a fast developer tool built in Go uses AST and LLM Show HN: Finterm.ai Finance CLI for Claude Code and Codex Show HN: Codex Explorer,一款用于 Codex CLI 的本地会话管理器 Pylon — full-stack framework for coding agents GitHub - Corgea/Sighthound: Corgea's rule-based SAST scanner Kastra | Execution Governance for AI Systems devthropology.com Embersent — Know Exactly Who Read Your Document GodUI — UI Collection for Modern Interfaces Show HN: Reverse-engineering web apps into agent tools GitHub - Kuberwastaken/subagentmaxxing: Drive OpenAI Codex & Cursor CLI coding agents as subagents with the same ergonomics as native Claude Code subagents (grok-4.5, composer-2.5, gpt-5.5). Uniform run/fanout CLI + Claude Code skill. Aside Today I’m launching papercrane-cli: a BI tool built for Claude Code | Papercrane Blog Strata - Guess the City from a 3D Map a dark terminal Blocks.ai | Connect your agent to the world. Noticky — Sticky Notes & Always-on-Top Windows for Mac Make the hard day easier for the people you love CASHFLOW — Debt Network Optimizer 0 A.D.: Empires Ascendant FormGrid - Create Delightful Forms & Surveys for Free Codapult — Everything Your SaaS Needs, Already Wired Together LaTeX Diff Viewer - GitHub Marketplace LinguaGuessr analog.watch Estimania — Daily Estimation Game I Replaced Whisper with Parakeet on a $55/Month CPU Server. Here Is What Actually Happened. HyperSwitcher – Mac App & Window Switcher CLERC-DATA/epee · Datasets at Hugging Face GitHub - gladiaio/gladia-cli EvenKeel — your money coach BareMetalRT — Bare Metal AI Build a Second Brain That Actually Remembers Why It Changed Tokenstead - Find AI Models for Your Hardware Fideby - Standing by the people you trust, when you can rubber duck GitHub - forgedculture/legibility-field-kit GitHub - ronak-create/FableCut: Zero-dependency browser video editor that AI agents can drive — JSON timeline, MCP + REST, live-reloading UI GitHub - BuceaGeorgia/VIRENA: A minimal Vision-Language-Action model you can read: frozen CLIP + a tiny head on ManiSkill PickCube. Runs on a Mac, no GPU. Fehu - Apps on Google Play GitHub - fresswolf/Slopera: The browser for the slop era Release Kiyeovo 1.0.0 · Realman78/Kiyeovo Noema — AI Company Analysis GitHub - hamidi-dev/opentab: 📊 Browse your AI coding spend in the terminal — OpenCode, Claude Code, Codex & more GitHub - sgInnora/wc2026-prediction-ledger: Receipt-verified AI prediction ledger for World Cup 2026: pre-kickoff sha256-locked forecasts scored vs results, with calibration + market baselines. Live: goalpulse.io/open-data GitHub - michaelwrites67-ctrl/yogen: 予言 Yogen — a 500-agent AI swarm that debates your idea and predicts the outcome. Self-host free with your own Anthropic key. GitHub - teddytennant/wizard: Self-extending autonomous agent in one Rust binary. One-line install, any provider (OpenAI-compatible, Anthropic, xAI) or fully local via llama.cpp, live /evolve self-modification, MCP, messaging gateway, built-in bench arcaide.foo Show HN: Android Developer Verification Package blacklisted in Aurora Store OpenDescent: Private messaging for normal people GitHub - tarunlnmiit/autopilot-jobhunt: AI job agent: scans 130+ careers pages nightly, scores every role against your resume with an LLM (0–100), alerts you on Telegram, and drafts tailored cover letters + resumes. Free & open source. 18 Words - Daily Word Challenge The State of US Local Government Accessibility 2026 flow - Real-time network throughput dashboard for the terminal. - Terminal Trove Battle LLM Robots GitHub - robesris/ffvii-realtime: Speed up Final Fantasy VII (Rebirth / Remake / Revelation) Tactical Mode slow-motion so combat plays at real-time speed Agent Sessions - Local History for AI Coding Agents Scrutora — code, cloud & consent compliance in one platform SoulOS Tutorials GitHub - gaemi/agentic-fc: Open-source football management simulation played by AI agents through MCP and watched through a TUI console. GitHub - talalalrwas/ocr-grab: Flameshot clone that adds OCR. GitHub - JustVugg/colibri: Run GLM-5.2 (744B MoE) on a 25GB-RAM consumer machine — pure C, zero deps, experts streamed from disk. Tiny engine, immense model. 🐦 GitHub - saifmukhtar/kinetic figment computer linear.gratis - Free Linear Client Feedback Forms GitHub - atelier-ws/atelier: Runtime for coding agents. Models are getting smarter, but a model is only as capable as the environment supporting it. Atelier is that environment. https://atelier.ws Atlas · Tomesphere | Tomesphere Codenames Generator GitHub - lyfeninja/lyfeninja_blkseal_python_sdk: Lightweight Python client for signing and verifying digital content using lyfe.ninja's BlkSeal product powered by BlkBolt™. Designed for zero dependencies, simple integration, and exact content verification. DateTimeMate OpenScreenShot — Full-page screenshot & annotation tool for Chrome 38-0 — Build Your Premier League Dream Team Cyrinx — data over sound, measured GitHub - BhaveshThapar/mcp-audit HN Work GitHub - Northwood-Systems/foreman: Self-hosted LLM gateway. Cost effective, deterministic, and fast. Secure and private by default. A Visualization Language for the AI Era GitHub - weirdGuy/kastor: Declarative language and toolchain for AI agents: define agents, tools and prompts in HCL, then compile to frameworks or manage them on hosted platforms with plan/apply semantics. Abralo - Run multiple Claude Code agents in one window GitHub - mehranzand/repofleet: RepoFleet is an issue-centered CLI tool for managing Git workflows across multiple repositories. Pug — Open Source Product Analytics Chiptune Radio — Aleph Void, LLC Free Mermaid Live Editor & Diagram Maker GitHub - hirasso/html-obfuscator: Obfuscate emails, phone numbers, and other sensitive data in PHP. Invisible to humans, hidden from bots until they interact. Davit — a native macOS UI for Apple containers GitHub - rowboatlabs/rowboat: Open-source AI coworker, with memory Yamanote.fun PostgreSQL on AWS: Size & Benchmark EC2 Instances GitHub - Rodiun/frugon: Free, local, open-source LLM cost analyzer — see where your LLM bill leaks, on your machine. WhimFiles - Find Any File in Seconds Agent Draw: An agent draws while you talk, built on TLDraw Neil the Seal GitHub - animesh-94/Onboard-CLI: An AST-powered, local-first CLI that visualizes complex system architectures and enforces architectural boundaries via instant Git hooks. ridealong — live London trains Clusy | Agent-Native Notebook for ML and Data Science snowscroll · Instagram, without the spiral. GitHub - vishal-dehurdle/state-harness: Runtime safety net for LLM agents. Detects token spirals, kills doomed tasks early, tells you exactly why. Rust core, Python SDK. pip install state-harness
GitHub - DO-SAY-GO/freelang: I love freelang
keepamovin · 2026-05-12 · via Hacker News

FreedomLang. Reality is magic enough.

FreedomLang

CI

Model the world as data. Treat bugs as fatal.

FreedomLang is a small AOT-compiled systems language for auditable native tools.

It draws one hard line:

missing file       -> world state
network timeout    -> world state
permission denied  -> world state

bad tag
bad field access
impossible state   -> fatal bug

External uncertainty belongs in data. Broken invariants do not.

FreedomLang is not trying to replace Rust, Go, Python, or shell. It is for the narrow places where you want a native binary, explicit failure semantics, and a compiler/runtime that a determined engineer can read end to end.

No more magic. Reality is magic enough.

In three sentences: FreedomLang compiles .flx source through a JavaScript compiler and a compact IR into native x86-64 artifacts. It draws a hard semantic line between external uncertainty, which is modeled as explicit data, and broken program invariants, which terminate immediately. The project is pre-1.0, but the compiler, runtime model, backends, and behavior tests are real enough to evaluate from code instead of promises.

In one paragraph: FreedomLang is a deliberately small, readable compiler/runtime stack for people who care about native tools, auditability, and failure semantics more than optimizer sophistication or ecosystem size. Programs use familiar imperative syntax, user-defined operators, object-shaped calls, tagged runtime values, explicit job/fork concurrency, and a growing chaos/world-state model for things like missing files and network timeouts. The compiler does not rely on LLVM, a VM, or a JIT; the repository contains the frontend, IR lowering, platform backends, runtime helpers, stdlib, and behavior suite, so public technical questions can usually be answered by pointing at a source file or test.

What it is

FreedomLang is an AOT compiled language with a compiler written as ordinary JavaScript. There is no project-specific compiler binary to install in the normal workflow: you run freelang.js with Node.js, inspect the compiler source in this repository, and get native x86-64 output.

The current pipeline is:

.flx source -> lexer/parser -> AST -> FreedomLang IR -> x86-64 backend

Targets today:

Target Output
Linux Linux x86-64 Direct native ELF executable
macOS macOS x86-64 Native assembly linked by clang into Mach-O
Windows Windows x86-64 Native x86-64 assembly for the Microsoft ABI, linked into PE/COFF with LLVM/MSVC tools

The Linux icon is the Ubuntu mark because CI currently runs on Ubuntu-hosted Linux; the target is Linux x86-64 generally, not Ubuntu-only.

The implementation entry point is freelang.js. The major compiler pieces live in src/frontend.js, src/ir.js, src/backend/, and src/runtime/.

Why it exists

FreedomLang is built around a simple rule:

Model the world as data. Treat bugs as fatal.

Network timeouts, missing files, EOF, and permission failures are world states that code should model explicitly. Invalid tags, impossible states, bad field access, and broken invariants are bugs; they should stop the job instead of leaking into later computation.

That gives FreedomLang its main benefits:

  • Auditability: the compiler and runtime are intentionally small and direct.
  • Predictability: no user exceptions and no hidden recovery paths.
  • Native artifacts: generated programs run as x86-64 binaries or linked assembly, not on a VM or JIT.
  • Explicit runtime model: tagged values, visible heap object layouts, runtime checks, and fail-fast traps.
  • Isolation-oriented concurrency: jobs use explicit handles and wait; modern fork blocks make concurrency visible in source.

No more magic

Reality is magic enough.

Modern software has been living through an age of magic.

Magic render trees. Magic object queries. Magic deployment layers. Magic async behavior. Magic recovery paths. Magic defaults. Magic frameworks that look like the thing you already know, but are subtly not that thing, until your expectations become the bug.

Enough.

No more cursed magic.
No more magic footguns.
No more hidden recovery paths.
No more exception mazes.
No more framework seances.
No more "trust me" runtime behavior.
No more clever layers silently doing the expensive thing you did not ask for.

FreedomLang is built from the opposite instinct.

Do not hide the world. Model it.

A missing file is not an exception from reality. It is reality.
A network timeout is not a surprise. It is the network.
Permission denied is not a stack trace waiting to happen. It is a world state.

Those states should be visible in the program.

missing file       -> world state
network timeout    -> world state
permission denied  -> world state

bad tag
bad field access
impossible state   -> fatal bug

The line matters.

External uncertainty belongs in data. Broken invariants do not.

FreedomLang does not try to make every failure recoverable. It tries to separate the failures you must model from the bugs you must stop.

If a program depends on the world, the world should be in the program.

If a job forks, the fork should be visible.
If a job waits, the wait should be visible.
If data crosses a boundary, the boundary should be visible.
If the program enters an impossible state, it should die there, loudly, before the lie spreads.

FreedomLang is early. It does not fully achieve this philosophy yet. But this is the direction of the work:

No more magic. Reality is magic enough.

Feature domains

Status key: ✅ implemented and covered, 🟡 implemented but still hardening or platform-gated, 🧭 planned or aspirational.

Feature set domain Status What exists now Why it matters Honest notes
Native compiler pipeline .flx source is parsed, lowered to FreedomLang IR, then emitted by x86-64 backends. The implementation is small enough to inspect without treating a huge compiler stack as magic. There is no serious optimizer yet, and the compiler is still pre-1.0.
Node-readable compiler The compiler is JavaScript source run with Node.js, not a separate opaque compiler binary. Build and audit workflows can point at the actual compiler files instead of a sealed toolchain executable. Node.js is still a binary dependency; this claim is about the FreedomLang compiler distribution.
Linux native output Direct ELF executable emission from JavaScript. No linker or libc is needed for the Linux direct-output path. The direct ELF backend currently has a different heap/GC path than macOS.
macOS native output x86-64 assembly linked by clang into Mach-O. Good current platform for chaos, TCP, and GC validation. Requires x86-64 execution support on Apple Silicon.
Windows native output Native x86-64 assembly for the Microsoft ABI, linked into PE/COFF through LLVM/lld and Windows SDK libs. Windows is a real backend, not a transpiled or VM story. It still needs hardening in long GC stress and some platform-gated surfaces.
Small binaries and no libc/CRT default 🟡 Generated programs avoid libc/CRT in current paths; Linux uses direct ELF/syscalls, macOS links without stdlib, Windows uses Kernel32 rather than a C runtime. Reduces dependency surface and makes small tools easier to reason about. This is not a security proof. System APIs remain, helper code is emitted as needed, and binary size grows with features used.
Bounds and shape checks Array/object access is runtime checked, with fatal diagnostics for invalid states. Memory and shape mistakes fail near the bug instead of silently corrupting later logic. This is runtime checking, not a Rust-style static memory-safety system.
Fast-fail invariants fall, assert, expect_eq, invalid tag/slot paths, and backend fatal handlers terminate broken program states. Bugs are not treated as ordinary recoverable values. Fatal behavior is a semantic choice; callers still need process-level supervision where appropriate.
Chaos/world-state modeling 🟡 with chaos and chaos tags model external outcomes such as missing files or network conditions. External uncertainty becomes explicit program data instead of hidden exceptions. The model is strongest on macOS today; Linux and Windows parity is still moving.
Custom operators Positional operators, object-shaped operators, scalar infix, shaped infix, and value-shape overloads. Domain code can expose clear, auditable call shapes without a large class or trait system. The syntax is unusual and will need taste, examples, and restraint.
FSABI instrumented concurrency Fork blocks, handles, wait, blocking fork sugar, job directories, and inbox/outbox parameter paths. Job boundaries are visible in source and observable on disk, which helps debugging and audit trails. This favors explicit process/job semantics over lightweight in-process concurrency.
Bytes, strings, arrays, objects Tagged heap objects, UTF-8 conversion, byte arrays, string/array/object operations, and slot access. Enough structured data support for small real tools and protocol experiments. APIs are still stabilizing.
TCP and filesystem surfaces 🟡 f/net and file chaos surfaces exist, with loopback TCP examples passing on macOS. Native tools need real IO, not just toy arithmetic. Platform parity is not complete; Linux/Windows network and chaos coverage should not be oversold yet.
Heap and GC 🟡 Heap allocation exists across platforms; macOS emits the conservative GC path, Windows emits GC with long stress hardening still open, Linux direct ELF uses mmap-backed allocation today. Heap objects are real and tested rather than hand-waved. A stable no-heap/no-GC profile is planned, not a finished user-facing mode.
Behavior test suite Shared .flx tests with expected stdout/stderr/exit-code files across CI platforms. Claims can be checked from executable examples instead of prose. Some feature-specific tests are intentionally platform-gated.
AI-agent ergonomics 🟡 Small compiler, explicit jobs, behavior tests, and visible failure boundaries are intended to make agent-written code easier to inspect and debug. AI-generated code gets harder to trust when failure paths and concurrency are implicit. This is a design thesis, not a benchmarked claim yet. Treat it as a direction to evaluate.

Pain points addressed

Pain point FreedomLang's answer Current caveat
Security-critical shell or Python scripts become too implicit to audit. Compile small tools to native artifacts with explicit failure behavior and a readable compiler/runtime. The stdlib is young, so many conveniences still need to be built.
C gives control but makes memory and bounds mistakes too cheap. Use runtime-checked tagged values, bounds checks, shape checks, and fatal invalid-state paths. This is not static memory safety or formal verification.
Exception-heavy code blurs expected world outcomes and bugs. Model world outcomes through chaos tags; reserve fall for invariants. Chaos APIs are still evolving and platform-gated.
Concurrent tools are hard to inspect after failure. Use explicit fork blocks, handles, wait, and FSABI job directories/inbox/outbox paths. Process/job semantics are heavier than goroutines or green threads.
Toolchain trust is too broad. Avoid LLVM, a VM, a JIT, and libc/CRT in current generated paths. Smaller does not mean bug-free; it means the code is inspectable.
AI-generated code can hide brittle assumptions. Keep effects, waits, job outputs, fatal paths, and world-state handling visible in source and test outputs. Agent-readability still needs empirical validation and better examples.

Advantages and limits

FreedomLang's current advantages are practical, not magical: small inspectable implementation, native artifacts, explicit world-state handling, runtime bounds/shape checks, custom operators, and observable FSABI concurrency. The strongest security-oriented claim is reduced and more visible trusted code, not immunity from bugs.

Do not read "no libc" as "no legacy risk anywhere." It means generated programs do not bring in a C runtime by default in the current backend paths; the OS, linker, system DLLs/frameworks, and FreedomLang runtime helpers still matter. Do not read "AI-friendly" as "AI-proof"; it means the language is being shaped around explicit control flow, explicit world modeling, and testable boundaries.

Aspirations

These are goals, not launch claims:

  • Stable no-heap/no-GC profile for programs that do not allocate heap objects.
  • Linux and Windows parity for chaos, filesystem, and TCP surfaces.
  • Exec/process APIs after network parity.
  • Versioned safety profile with enforceable restrictions.
  • Better diagnostics, editor support, examples, and agent-oriented debugging workflows.

Current status

FreedomLang is early, real, and pre-1.0.

What works today:

  • Integers, strings, arrays, objects, bytes, variables, blocks, loops, and control flow.
  • User operators, including positional, object-shaped, scalar infix, shaped infix, and value-shape overloads.
  • Runtime-checked array/object access and fatal diagnostics for invalid states.
  • Native x86-64 backends for Linux, macOS, and Windows.
  • Explicit job concurrency with fork blocks, handles, wait, and blocking fork sugar lowered through real child jobs.
  • FSABI job directories and essential inbox/outbox parameter paths across Linux, macOS, and Windows.
  • A shared behavior test suite with expected stdout/stderr/exit-code files.
  • Heap support across all backends, with GC behavior still being hardened to parity.
  • Experimental chaos/world-state syntax and stdlib surfaces, strongest on macOS.

What is still moving:

  • The language and stdlib APIs are not stable.
  • Chaos/network surfaces are actively evolving and platform-gated.
  • Exec/process APIs are planned after network parity work.
  • Documentation is intentionally focused on current specs, tutorials, and implementation guides; use docs/INDEX.md as the map.
  • The safety-profile work is drafted but not complete.

Current implementation and test matrix:

Platform Category Implementation status Test status
Linux Linux x86-64 Native output Direct ELF executable emitted by the JavaScript backend Green in CI
Linux Linux x86-64 Core language/runtime Integers, strings, arrays, objects, bytes, operators, control flow, checks Covered by shared behavior suite
Linux Linux x86-64 Heap/GC Heap allocation works; the direct ELF path currently uses mmap-backed allocation rather than the parity collector path Allocation behavior covered; GC parity wiring remains open
Linux Linux x86-64 Fork/FSABI Child jobs, job directories, blocking fork sugar, inbox/outbox essentials Parity-essential tests green
Linux Linux x86-64 Chaos/files/net Some chaos/files/net surfaces are platform-gated while parity advances Not yet treated as full release parity
macOS macOS x86-64 Native output Native assembly linked by clang into Mach-O Green in CI
macOS macOS x86-64 Core language/runtime Same shared IR and runtime model as other targets Covered by shared behavior suite
macOS macOS x86-64 Heap/GC Generated conservative heap/GC path is emitted when heap features are used GC stress and behavior tests green
macOS macOS x86-64 Fork/FSABI Blocking fork lowers to real child jobs with FSABI directories and outbox reads Parity-essential tests green
macOS macOS x86-64 Chaos/files/net Strongest current implementation for chaos, file, and TCP surfaces Platform-gated chaos/net tests green
Windows Windows x86-64 Native output Native x86-64 assembly for the Microsoft ABI, linked into PE/COFF through LLVM/lld Green in CI
Windows Windows x86-64 Core language/runtime Shared IR lowered to Windows calling convention and runtime helpers Covered by shared behavior suite
Windows Windows x86-64 Heap/GC Windows GC is generated; long stress behavior is still being hardened Enabled GC tests green; redundant deep stress cases are skipped pending hardening
Windows Windows x86-64 Fork/FSABI CreateProcess-backed child jobs and FSABI job directories Parity-essential tests green
Windows Windows x86-64 Chaos/files/net Some chaos/files/net surfaces remain platform-gated Not yet treated as full release parity

Programs that do not allocate heap objects should not need heap initialization or GC work on the hot path, and the backends already feature-gate much of that emission. A fully explicit no-heap/no-GC profile is still a planned release surface, not a stable command-line promise.

Syntax shape

FreedomLang syntax is intentionally small but not especially mainstream. The main shapes are:

Form Meaning
let name = value; Bind a value
op sum [a, b] (...) Define a positional operator
op describe {name, role} (...) Define an object-shaped operator that binds by field name
sum [1, 2] Positional call
describe {role: "admin", name: "alice"} Object-shaped call
value\field / items\0 Object field or indexed slot access
=> value; Return from the current operator or fork block
fall "message"; Fatal invariant failure
( (...) )& Start a child job
let x <= ( (...) )& Start a child job, wait, and read its named outbox value
with chaos { Tag(_) => value } Convert an external world state into explicit program data

Comparison to other languages

FreedomLang is not trying to win a general-purpose language bakeoff. It is a focused experiment in small native tools, explicit world-state handling, and readable compiler/runtime implementation.

Reference point Honest comparison
C Similar interest in direct native artifacts and readable low-level behavior, but with tagged runtime values and checked failure paths. It does not have C's ecosystem, ABI reach, or decades of tooling.
Rust Shares a concern for correctness, but it does not have Rust's borrow checker, trait system, package ecosystem, or production maturity. FreedomLang leans on explicit world states, runtime checks, and small implementation size instead.
Go Similar appetite for small operational tools, but jobs are explicit child processes rather than goroutines and channels. The ecosystem is tiny by comparison.
Zig Similar taste for inspectable native compilation, but FreedomLang is less mature and is focused more narrowly on failure semantics, chaos/world-state modeling, and auditability.
Python or shell Targets some of the glue-code space where scripts become security-critical, but trades interactive convenience and libraries for native artifacts and stricter runtime behavior.
Erlang/Elixir The job/failure-boundary thinking is philosophically adjacent, but FreedomLang is not a VM, actor system, or supervision-tree platform.
ML/Rust Result style Chaos handling has family resemblance to tagged result values and pattern-oriented recovery, but it is aimed specifically at modeling external world states rather than making all bugs recoverable.

The syntax has prior-art echoes rather than a single ancestor: Unix job control and process isolation, result-value error handling, object-shaped calls, indexed slot access, and explicit tagged world states. Expect it to feel alien at first; the bet is that unusual syntax is acceptable if it makes operational boundaries and failure behavior easier to audit.

Language genealogy

This is a relationship map, not a claim that FreedomLang descends directly from any one language. The project combines several older ideas in a deliberately small AOT compiler.

FreedomLang
├─ C / Zig / Go family
│  ├─ AOT compilation to native artifacts
│  ├─ operational tools as a serious target
│  └─ explicit release binaries instead of a VM or JIT
├─ Unix process model and shell job control
│  ├─ fork blocks
│  ├─ wait points
│  └─ filesystem-visible job inbox/outbox state through FSABI
├─ ML / Rust Result / tagged-union thinking
│  ├─ external world states represented as explicit values
│  └─ recoverable outcomes separated from bugs
├─ Erlang-style fault-boundary intuition
│  ├─ jobs as failure boundaries
│  └─ fatal invariants handled by containment, not local exception recovery
├─ JavaScript/object-record ergonomics
│  ├─ object-shaped calls
│  └─ field-oriented runtime shapes
├─ Operator-rich languages
│  ├─ custom positional and object-shaped operators
│  └─ infix and value-shape overloads for domain notation
└─ Agent-readable implementation practice
   ├─ compiler distributed as Node.js-readable JavaScript source
   ├─ behavior tests as executable claims
   └─ explicit effects, waits, and fatal paths for debugging

The unusual part is the combination: AOT native output, a compiler you run as Node.js source, custom operator syntax, explicit chaos/world-state modeling, and FSABI job concurrency in one small stack. None of that makes FreedomLang mature by itself; it makes the project easier to inspect and argue about from code.

Quick start

Requirements:

  • Node.js 22 or newer for the compiler.
  • clang for macOS/Windows linking workflows.
  • On macOS, the test runner uses gtimeout from Homebrew coreutils if available or installs it when needed.
  • On Windows, install LLVM and a Windows SDK containing kernel32.lib; the PowerShell runner discovers the SDK library path and links with lld.

Compile a Linux ELF directly:

node freelang.js hello.flx hello.bin --target=linux --emit=bin
./hello.bin

Compile macOS assembly and link it:

node freelang.js hello.flx hello.s --target=darwin --emit=asm
clang -target x86_64-apple-macos12 -nostdlib -Wl,-e,_main -Wl,-static hello.s -o hello.bin
./hello.bin

Compile Windows assembly:

node freelang.js hello.flx hello.s --target=windows --emit=asm

Or compile, link, and run with the helper:

pwsh ./flx.ps1 hello.flx

Small example

op sum3 [a, b, c] (
  => a + b + c;
)

let values = [2, 3, 5];
let total = sum3 [values\0, values\1, values\2];

if (total == 10) (
  print "ok";
) else (
  fall "unexpected total";
)

Object-shaped operators bind by field name. String/array/object + overloads are provided by f/operators:

credits: <f/operators>;

op describe {name, role} (
  print "user: " + name + " (" + role + ")";
)

describe {role: "admin", name: "alice"};

Modern fork blocks make job creation explicit:

let job = ( (
  print "child";
  => 42;
) )&

let answer = wait job;
print answer;

Blocking fork sugar runs the child as an actual job, waits, and reads the named outbox value:

let answer <= (
  (
    let child_value = 42;
    child_value >value;
    => 0;
  )
)&

print answer;

Testing

Run the Unix/macOS suite:

bash tests/run-all.sh --hide-passes > test-output-current.txt 2>&1

Run the Windows suite:

pwsh ./tests/run-all.ps1 -HidePasses > test-output-windows.txt 2>&1

The test system is behavior-driven. A tests/foo.flx program can be paired with:

  • foo.expect.exit
  • foo.expect.out
  • foo.expect.err
  • unordered stdout/stderr variants for concurrent output

See tests/README.md and tools/compare-run-output.js.

Repository map

Path Purpose
freelang.js CLI entry point and compiler pipeline wiring
src/frontend.js Lexer, parser, scopes, operators, chaos parsing, module credits
src/ir.js IR structures, AST lowering, safepoint metadata, runtime call lowering
src/backend/index.js Target routing for Linux/macOS/Windows backends
src/backend/x86_64-linux.js Linux x86-64 backend
src/backend/x86_64-macho.js macOS x86-64 assembly backend
src/backend/x86_64-windows.js Windows x86-64 assembly backend
src/backend/elf-writer.js Direct ELF file writer
src/runtime/ Runtime support, allocator/GC/job/chaos helpers
stdlib/ Standard library modules
examples/ Compile-checked example programs used for public snippets
tests/ Behavior and regression tests
docs/ Specifications, tutorials, and current implementation guides

Documentation

Start here:

Release posture

FreedomLang is suitable today for:

  • reading and evaluating the implementation,
  • experiments with small native tools,
  • internal prototypes,
  • language/runtime design review,
  • security-oriented discussions about failure semantics and auditability.

It is not yet a stable production language distribution. Treat public releases as evaluation builds until the compiler flags, stdlib APIs, platform support, and safety profile are versioned and locked.

License and contact

FreedomLang is dual-licensed: AGPL-3.0-or-later for open-source use, or a separate commercial license from DO-SAY-GO Corporation for uses that are not compatible with the AGPL.

The source license does not grant trademark rights. See TRADEMARKS.md.

Security contact: security@freelang.dev