Skip to content
ledocorpPublic

About

fx - systems language with region-local ownership; dual emission (readable C + native IR).

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

fx

Version: 1.0.0 · Release notes · GitHub

Copyright © 2026 Shawn Londono · LedoCorp · http://www.ledocorp.org License: GNU GPL v3 · NOTICE · third-party licenses


What fx is

fx is a systems language with visible control.

Named regions + effects in signatures. Native-first fx run (the primary compiler path when the program fits; otherwise a built-in fallback engine inside bin/fx). IR → native on that fallback path when QBE is present. Emit-C stays first-class and readable. Wrap mature C libraries instead of rewriting them.

This repo is the language package: put bin/ on your PATH and write fx. License: GNU GPL v3 — see LICENSE.


Install / try (2 minutes)

Needs: this repo · gcc (or clang/zig) · Windows or Linux x86_64 (no macOS prebuilt).

# put bin/ on PATH, then:
fx doctor
fx version # v1.0.0
fx new hello
cd hello
fx run main.fx # expect exit 42

Prove the package: ./scripts/verify-pack.sh (or .\scripts\verify-pack.ps1 on Windows) — docs/QUALITY.md.

OS Binary IR (when staged)
Windows bin/fx.exe third_party/qbe/windows/qbe.exe
Linux bin/fx third_party/qbe/obj/qbe

Without QBE, use fx run main.fx --emit-c. Layout: PACKAGE.md. Argv: fx run does not forward program args — use --scaffold cli / --host. Pins: fx new writes fx.mod. Optional fx mod vendor / verify → vendor/std + fx.sum; compile prefers verified vendor/std, else the std/ beside your project (or FX_STD_ROOT).


The idea in one screen

import std/vec;

fn main() -> i32 effects { alloc, mut } {
 region r = arena(4096);
 let v: Vec<i32> = vec.new(0);
 let v2: Vec<i32> = vec.push(v, 40);
 let v3: Vec<i32> = vec.push(v2, 2);
 return vec.get(v3, 0) + vec.get(v3, 1); // 42
}
fx run main.fx --emit-c
fx emit-c main.fx -o out_c
fx run lib.fx --host host.c

Learn path (read in order)

Also on the web: https://www.ledocorp.org/fx/docs/

Step Doc
1 Install docs/START_HERE.md
2 Weekend path docs/WEEKEND.md — hello → CLI → fxserve
3 Backends docs/DRIVERS.md — Auto / emit-C / IR / --driver sh
4 Ship a tool docs/SHIP.md — pins, --cli/--host, dual-path before claim
5 C shape docs/C_SHAPE.md — how regions / Result / Vec look in emit-C
6 Patterns docs/PATTERNS.md — SoA / Result / caps / wire recipes
7 Language docs/LANGUAGE.md
8 Composition docs/COMPOSITION.md
9 Regions / caps docs/REGIONS.md
10 Wrap / C host docs/WRAP.md
11 CLI docs/CLI.md
Map docs/SURFACE.md — as-implemented cheatsheet
Tracking docs/TRACKING.md
Std / Reference docs/STD.md · docs/REFERENCE.md
Quality docs/QUALITY.md — verify-pack
Never / may docs/GAPS.md

What’s next: docs/NEXT.md.


Companion tools (separate packs)

Install from GitHub Releases (Win + Linux x86_64). Requires fx 0.9.6+ (prefer 1.0.0+). GPL-3.0.

Tool Role Repo
fxrun Task runner (fxrun.toml) ledocorp/fxrun
fxql SQLite one-shot + FsCap ledocorp/fxql
fxlz4 LZ4 pack/unpack ledocorp/fxlz4
fxblake3 BLAKE3 file/tree hash ledocorp/fxblake3
fxfetch HTTPS GET + NetCap ledocorp/fxfetch
fxpipe Parallel BLAKE3 + nursery ledocorp/fxpipe
fxguest Cap speech (allow/deny/fuel) ledocorp/fxguest
fxserve Local static HTTP(S) ledocorp/fxserve

Site index: https://www.ledocorp.org/fx/tools/ · Detail: docs/LIBRARIES.md.


What’s in 1.0.0

  • First stable promise — Path C + Balance, emit-C permanent, dual-path culture, Win+Linux x86_64
  • Vendor-first — verified vendor/std wins over staged/FX_STD_ROOT for import std/…
  • Trust / teach — C_SHAPE.md · SHIP.md · PATTERNS.md · scripts/verify-pack
  • Carry-forward: GPL-3.0, Auto fx run, --emit-c, IR when QBE is present, tools as separate packs

Full notes: docs/releases/1.0.0.md. Prior: 0.9.75.


Tooling

  • fx doctor · fx lsp · fx mcp (check / locate / run)
  • Editor day-one: docs/EDITOR.md

Contributing & security

Maintained by Shawn Londono / LedoCorp. PRs not accepted; issues welcome for bugs. CONTRIBUTING.md · SECURITY.md


Releases

Newest first under docs/releases/. Latest: 1.0.0.

About

fx - systems language with region-local ownership; dual emission (readable C + native IR).

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages