Skip to content
GlatrixPublic
forked from envoscale/EnvoLang

About

One language, one toolchain, one platform: Envo, bootstrapped from assembly. Zero dependencies.

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

 
 

Repository files navigation

EnvoScale

One environment, every platform, built from the first byte up.

EnvoScale is one language (Envo), one toolchain (envo) and one standard platform (envo.*) for systems code, scripts, desktop apps, websites, terminals, graphics, AI, crypto and networking. It has no third-party dependencies, and its compiler is bootstrapped from assembly so the whole chain can be audited.

Status: early. M0–M2 are done. envoc0 (assembly) and envoc1 (Envo) both build Windows and Linux programs. M3, the compiler that compiles itself, is in progress. See STATUS.md for details.

Goals

  • Hello World for any domain in one to three lines.
  • Every layer open to experts, down to inline assembly and custom backends.
  • Everything EnvoScale needs, it builds itself.
  • A new OS, CPU or GPU API is an adapter, not a rewrite.

The rules the project holds itself to are in CHARTER.md.

Quick start

You need NASM (setup) and nothing else.

Windows (PowerShell):

.\bootstrap.ps1 build      # builds all three compilers into build\
.\bootstrap.ps1 test       # runs the test suites
build\stage0\envoc0.exe lex examples\00-hello\main.envo

Linux:

./bootstrap.sh build
./bootstrap.sh test
build/stage0/envoc0 lex examples/00-hello/main.envo

lex prints the tokens:

1:1 n ident print
1:6 j punct (
1:7 j string "Hello, World!"
1:22 j punct )
2:1 n eof

Hello World Gallery

These live in tests/spec/hello/, and CI fails if one gets longer than its limit. Each becomes runnable at the milestone shown (docs/PLAN.md).

Domain Program Runs from
Console print("Hello, World!") M1
CLI tool [Command] void Greet(string name = "World") => print($"Hello, {name}!") M8
Window use envo.ui; / window("Hello") { Text("Hello, World!") } M8
Website use envo.web; / site("Hello") { page("/") => Landing(title: "Hello, World!") } M9
HTTP API use envo.http; / serve(8080) { get("/") => "Hello, World!" } M7
Terminal UI use envo.term; / tui { Text("Hello, World!").Bold() } M8
3D use envo.render3d; / scene { cube().Spin(); light.Sun(); } M11
2D use envo.gfx; / window("Hi") { canvas(c => c.Circle(100, 100, 50, Lumen.Accent)) } M8
Crypto print(crypto.sha256("Hello, World!").Hex()) M7
AI use envo.ai; / print(ai.Load("tiny.gguf").Ask("Say hello")) M12
Systems [NoAlloc] extern "C" int main() { unsafe { asm x86_64 { /* … */ } } return 0; } M3

/ separates lines.

Repository map

Path Contents
bootstrap/ Seed, Stage 0 (assembly) and Stage 1 (Envo-Core)
compiler/ Stage 2 envoc, the real compiler
runtime/ Startup, panics, ARC, the EIR VM and JIT
lib/ The standard platform: pure code and port interfaces
adapters/ All platform-specific code
tools/ envo CLI, LSP, formatter, debugger
templates/ Project and site templates
examples/ Small runnable programs
tests/ Spec, golden, conformance, bootstrap and fuzz tests
docs/ Language spec, architecture notes, RFCs

Contributing

Start with CONTRIBUTING.md. Language and API changes go through RFCs. Report security issues as described in SECURITY.md.

License

Free for individuals and noncommercial use under the PolyForm Noncommercial License 1.0.0. Companies need a commercial license. LICENSING.md explains who needs which, LICENSE has the terms, docs/legal/ has the commercial templates, and TRADEMARKS.md covers the name and logos.

About

One language, one toolchain, one platform: Envo, bootstrapped from assembly. Zero dependencies.

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages