Solod:用Go语言语法编写C代码,零运行时、无垃圾回收
Solod 是一种将 Go 语言严格子集编译为标准 C11 代码的转译器。它允许开发者使用 Go 的现代语法和成熟工具链编写代码,最终输出无运行时依赖、无垃圾回收(GC)且支持手动内存管理的 C 代码。该项目致力于结合 Go 的开发体验与 ...
标签索引 / 第 2 页
这个标签下有 56 篇文章。按时间回看相关判断与实践记录。
标签精选
Solod 是一种将 Go 语言严格子集编译为标准 C11 代码的转译器。它允许开发者使用 Go 的现代语法和成熟工具链编写代码,最终输出无运行时依赖、无垃圾回收(GC)且支持手动内存管理的 C 代码。该项目致力于结合 Go 的开发体验与 ...
本文详细记录了将 Go 语言的 bytes 和 strings 标准库移植到 C 语言的完整过程。作者在移植过程中并未采用传统的垃圾回收机制,而是借鉴 Zig 和 Odin 等现代系统语言,引入了显式内存分配器来管理堆内存。基准测试结果显示...
这篇文章详细探讨了在macOS平台上使用kqueue API进行文件系统监控的技术实践。作为BSD内核衍生系统特有的高效事件通知机制,kqueue相比传统的轮询或FSEvents API,提供了更底层、更精细的控制能力。文章不仅解释了其背后...
本文从独特的视角探讨了Linux内核的本质——它不仅是操作系统,更是一个执行initrd(cpio归档)的“解释器”。作者通过`kexec`技术,展示了一种绕过BIOS/UEFI直接内核启动的机制,并构建了一个能够无限递归调用自己的操作系统...
Spaces 是一个专为 Linux x86-64 设计的单文件 C 语言内存分配器。它不仅能作为 drop-in 组件替换标准的 malloc,在多项基准测试中性能媲美甚至超越 jemalloc 和 tcmalloc,更引入了独特的“显式...
本文作者为了深入理解压缩技术,从零开始用Rust编写了一个极简的Gzip解压器,代码量仅约250行。相比之下,标准的zlib库包含约25,000行C代码。文章详细拆解了Gzip的核心DEFLATE算法,涵盖了位级操作、霍夫曼编码以及用于处理...
随着AI大模型对全球算力和内存资源的无限渴求,开发者可能正面临着“内存荒漠化”的挑战。本文作者Jussi Pakkanen(Meson构建系统创造者)指出,在资源不再无限的背景下,代码效率变得至关重要。通过对比Python与C++实现的词频...
这篇文章探讨了如何使用Lean 4编程语言的依赖类型系统,以零运行时开销的方式解决POSIX Socket API中的状态管理难题。传统的Socket编程常因操作顺序错误(如未监听就Accept、重复关闭)导致未定义行为,而常规的运行时检查...
针对近期关于Swift生态系统及其与C/C++交互能力的质疑,作者通过实战进行了有力回击。文章展示了如何在无需编写复杂FFI代码的情况下,利用Swift Package Manager和Clang导入器,直接调用C语言游戏库Raylib。作...
针对现代编译器动辄数百万行代码的臃肿现状,一位开发者推出了名为GDSL的极简主义项目。该项目展示了一个仅800行的内核,并在此基础之上仅用约500行代码实现了Lisp子集,用约1500行代码实现了C子集编译器。作者质疑了行业对于“大规模代码...