Cosmopolitan 3.0: Einmal schreiben, überall ausführen (und schneller!)

2025-02-01
Cosmopolitan 3.0: Einmal schreiben, überall ausführen (und schneller!)

Die Cosmopolitan-Bibliothek Version 3.0 ist da! Nach fast einjähriger Entwicklung ist diese Version ein echter Game-Changer. Eine einzige ausführbare Datei läuft jetzt auf AMD64- und ARM64-Architekturen unter Linux, macOS, Windows, FreeBSD, OpenBSD und NetBSD. Dies wird durch einen neuen Linker, apelink.c, ermöglicht, der die Dateiformate PE, ELF, Mach-O und PKZIP geschickt miteinander verknüpft. Cosmopolitan 3.0 bietet außerdem massive Verbesserungen der Windows- und macOS-Kompatibilität sowie erhebliche Geschwindigkeits- und Speichereffizienzgewinne. Enthalten ist eine "fette Linux-Distribution", Cosmos, mit Tools wie Emacs, Vim und CoreUtils. Dieser innovative Ansatz bietet nicht nur unvergleichliche Portabilität, sondern auch überlegene Leistung.

Mehr lesen
Entwicklung ausführbare datei

Lambda-Kalkül-Interpreter in 383 Bytes

2025-01-15
Lambda-Kalkül-Interpreter in 383 Bytes

Dieser Blogbeitrag stellt eine neue 383-Byte-Implementierung eines binären Lambda-Kalkül-Interpreters als x86-64 Linux ELF-Executable vor. Dieser winzige Interpreter erreicht Garbage Collection, lazy Lists und Tail Recursion. Programme werden in einem bemerkenswert kleinen Binärformat kodiert; beispielsweise besteht sein metazirkulärer Evaluator nur aus 232 Bits. Der Autor stellt portablen C-Code und vorkompilierte Binärdateien für andere Plattformen bereit. Dieses Projekt ist ein unterhaltsames Lernwerkzeug für den Lambda-Kalkül und zeigt die Möglichkeit, komplexe Berechnungen in extrem ressourcenbeschränkten Umgebungen zu implementieren.

Mehr lesen
Entwicklung

Extreme Minimierung: Erstellung einer plattformübergreifenden ausführbaren Datei mit unter 400 Byte

2025-01-07

Dieser Blogbeitrag beschreibt Tricks zur Größenoptimierung aus dem Cosmopolitan Libc-Projekt, die x86-Assembler und clevere Kompilierungstechniken verwenden, um die Größe von ausführbaren Dateien drastisch zu reduzieren. Wichtige Methoden umfassen Lauflängenkodierung, dezentrale Abschnitte, Dead-Code-Eliminierung, δzd-Kodierung, überlappende Funktionen und die Optimierung von printf. Das Endergebnis? Eine ELF-Ausführdatei mit weniger als 400 Byte, die unter Linux, FreeBSD, NetBSD und OpenBSD läuft. Dies zeigt die effiziente Ressourcennutzung und bietet neue Perspektiven auf die Skalierbarkeit großer Codebasen.

Mehr lesen