Lyx ist nicht nur eine weitere Sprache. Native Linux x86_64, Linux ARM64 und Windows x64 Binaries — ohne libc, ohne Linker, rein über Syscalls und WinAPI.
Starten Sie mit Lyx in wenigen Minuten.
# Compiler bauen make build # Linux-Programm kompilieren und ausführen ./lyxc examples/hello.lyx -o hello ./hello # Für Windows kreuzkompilieren ./lyxc examples/hello.lyx -o hello.exe --target=win64 # Debug flags ./lyxc examples/hello.lyx --emit-asm # IR als Pseudo-Assembler ausgeben ./lyxc examples/hello.lyx --dump-relocs # Relokationen und Symbole anzeigen ./lyxc examples/hello.lyx --no-opt # IR-Optimierungen deaktivieren
Ausgabe:
Hello Lyx
Während andere Sprachen auf riesigen Standard-Bibliotheken aufbauen, spricht Lyx direkt mit dem Linux-Kernel und der Windows API. Cross-Compilation inklusive.
Eine Codebasis, drei Plattformen. Lyx unterstützt Kreuzkompilierung für Linux x86_64, Linux ARM64 und Windows x64.
ELF64-Binary mit SysV ABI. Direkte Syscalls für maximale Leistung.
Für Raspberry Pi, Apple Silicon Linux, Cloud-Server. AAPCS64-Aufrufkonvention.
PE32+-Binary mit Windows-x64-Aufrufkonvention. Shadow Space + IAT.
| Ziel | Format | Aufrufkonvention | OS-Schnittstelle |
|---|---|---|---|
linux |
ELF64 | SysV ABI (RDI, RSI, RDX, RCX, R8, R9) | Syscalls |
arm64 |
ELF64 | AAPCS64 (X0-X7) | Syscalls |
win64 |
PE32+ | Windows x64 (RCX, RDX, R8, R9 + Shadow Space) | kernel32.dll |
Hinweis: Der --target-Parameter ist optional. Der Compiler wählt automatisch das Host-Betriebssystem als Ziel.
ARM64-Binaries auf x86_64 testen:
# QEMU installieren sudo apt install qemu-user-static # ARM64-Binary ausführen qemu-aarch64-static ./program
Die Freiheit der Direktheit. In einer Welt, in der moderne Sprachen oft riesige Runtimes und komplexe Abhängigkeiten mit sich schleppen, kehrt Lyx zu den Wurzeln der Systemprogrammierung zurück – ohne den Komfort moderner Syntax opfern zu müssen.
Echte Binär-Autarkie. Die meisten Sprachen verlassen sich auf die C-Standardbibliothek oder externe Linker. Lyx bricht mit dieser Tradition.
Du bist nicht isoliert. Lyx unterstützt die Einbindung externer Bibliotheken, wenn du sie brauchst.
extern fn extern fn für libc/libm IntegrationLyx ist keine lockere Skriptsprache. Es ist für Systeme gebaut, auf die man sich verlassen muss.
Lyx kombiniert die Stärken etablierter Sprachen zu etwas Neuem.
Vollständiges Typsystem mit strenger Typisierung und ohne implizite Konvertierungen.
| Kategorie | Typen | Beschreibung |
|---|---|---|
| Signed Integer | int8 int16 int32 int64 |
Signed 8/16/32/64-bit integers. int = int64 |
| Unsigned Integer | uint8 uint16 uint32 uint64 |
Unsigned 8/16/32/64-bit integers. uint = uint64 |
| Floating Point | f32 f64 |
32-bit and 64-bit IEEE 754 floating point |
| Pointer | pchar pchar? |
Non-nullable (default) and nullable pointers. pchar = null-terminated string |
| Boolean | bool |
true / false |
| Spezial | void usize isize |
Void Rückgabe, unsigned/isigned size_t |
| Arrays | array parallel Array<T> |
Stack-allocated and SIMD-optimized heap arrays |
Explizites Casting mit dem as Operator.
Pointer-Typen können mit ? nullable sein.
parallel Array
Was kann man mit Lyx entwickeln?
Direkter Hardware-Zugriff, Treiber, Betriebssystem-Komponenten. Volle Kontrolle ohne Abstraktions-Overhead.
Minimale Container-Images, Microservices, Kubernetes-ready. Ultra-kleine Binaries für maximale Dichte.
Minimaler Footprint ab 4KB, keine Runtime erforderlich. Perfekt für eingeschränkte Umgebungen.
Klare, lesbare Syntax inspiriert von Pascal. Perfekt zum Erlernen von Systemprogrammierungs-Konzepten.
import std.math; type Point = struct { x: int64; y: int64; }; fn main(): int64 { // Struct literal with fields var p: Point := Point { x: 10, y: 20 }; // Pipe operator and standard library let result: int64 := -42 |> Abs64(); PrintInt(p.x + result); // 52 return 0; }
From source code to native executable in 8 stages
Umfassende eingebaute Bibliotheken — keine externen Abhängigkeiten erforderlich.
Classes mit Vererbung, Konstruktoren, Destruktoren. Heap-Allokation mit new/dispose. super für Basisklassenaufrufe.
class extends für Single Inheritancenew ClassName(args) mit Konstruktordispose obj ruft Destroy()super.method() für BasisklasseLinux x86_64, Linux ARM64 und Windows x64 aus einem Codebase. Ein Compiler, drei Plattformen.
Vollständiges Import/Export mit Standard Library.