Cosmopolitan 3.0:跨平台神器,让你的代码飞起来

2025-02-01
Cosmopolitan 3.0:跨平台神器,让你的代码飞起来

Cosmopolitan 库 3.0 版本发布!这个项目历时近一年开发完成,实现了惊人的跨平台兼容性:一个可执行文件即可运行于 Linux、macOS、Windows、FreeBSD、OpenBSD 和 NetBSD 等多个平台的 AMD64 和 ARM64 架构上。这得益于全新的链接器 apelink.c,它巧妙地整合了 PE、ELF、Mach-O 和 PKZIP 文件格式。此外,Cosmopolitan 3.0 还大幅提升了 Windows 和 macOS 的兼容性,并显著提高了软件运行速度和内存效率。项目还包含一个名为 Cosmos 的“胖 Linux 发行版”,其中包含 Emacs、Vim、CoreUtils 等常用工具。Cosmopolitan 3.0 采用了一种创新的方法,使得构建的软件不仅具有极高的可移植性,而且性能更优异。

阅读更多
开发

383 字节的 Lambda 演算解释器

2025-01-15
383 字节的 Lambda 演算解释器

本文介绍了一个仅用383字节实现的x86-64 Linux ELF可执行文件,它是一个二元Lambda演算解释器。这个微型解释器实现了垃圾回收、惰性列表和尾递归等特性,其程序以极小的二进制编码表示,例如元循环解释器仅需232位。作者还提供了其他平台的C代码和预编译二进制文件。这个项目对于学习Lambda演算非常有帮助,也展示了在极端资源受限的环境下,仍然可以实现复杂的计算功能。

阅读更多
开发

极致精简:如何构建仅400字节的跨平台可执行文件

2025-01-07

本文介绍了Cosmopolitan Libc项目中的一些代码大小优化技巧,通过x86汇编和巧妙的编译技术,将可执行文件大小压缩到极致。文章重点讲解了运行长度编码、分散式代码段、死代码消除、δzd编码、函数重叠以及对printf函数的优化等方法,最终实现了仅用不到400字节的代码构建一个可在Linux、FreeBSD、NetBSD和OpenBSD四个操作系统上运行的ELF可执行文件。这体现了对资源的高效利用,并为大型代码库的可持续发展提供了新的思路。

阅读更多
开发 编译技术

奇特的词法语法

2024-11-02
奇特的词法语法

作者为了给llamafile构建新的语法高亮器,学习了42种编程语言,并分享了其中一些最奇特、最令人惊讶的语法。文章详细介绍了C语言中的三元符、通用字符、多行注释;Haskell的多行注释嵌套;Tcl的带引号标识符;JavaScript的正则表达式和不可见Unicode字符;Shell的heredoc语法;Kotlin、Swift、Scala和C#的字符串插值;FORTH的基于空格的标记化;FORTRAN和COBOL的固定列规则;Zig的双反斜杠多行字符串;Lua的方括号多行字符串;汇编的各种方言和注释语法;Ada的单引号用法;BASIC的字符串、变量和关键字;Perl的正则表达式、特殊前缀和man页面语法;以及Ruby的难以理解的语法。作者还比较了这些语言的语法高亮实现的复杂性,并感谢了Mozilla、GitHub赞助商和Patreon订阅者的支持。

阅读更多
未分类 词法分析

最快的互斥锁

2024-10-02
最快的互斥锁

本文介绍了Cosmopolitan Libc中的互斥锁实现,并通过与Windows、Linux和MacOS上的其他实现进行比较,证明了其在高并发场景下的优越性能。Cosmopolitan Libc的互斥锁比其他实现速度更快,CPU资源消耗更少,这得益于其使用了nsync库。nsync库使用乐观CAS、独立缓存行的等待队列、操作系统提供的futex机制以及指定唤醒器等技术,实现了高效的互斥锁。

阅读更多
未分类 互斥锁 nsync

字节序惨案

2024-06-30

这篇文章探讨了C/C++编程语言中处理字节序的挑战。作者指出了常见的错误做法,例如依赖未定义的行为和符号扩展问题。文章强调了使用掩码和移位操作的重要性,以确保跨不同架构的正确字节序处理。作者还提供了一套用于读写不同大小整数的宏,并解释了为什么这些宏优于其他解决方案。

阅读更多
未分类 字节序