标签
作者分享了在 C23 标准下采用的三种现代 C 编码约定,包括使用 [[nodiscard]] 与 [[maybe_unused]] 处理未使用返回值、C23 中 union 初始化行为的变化,以及借助 auto 简化代码的新模式。
一篇技术博客文章,列举了标准 C 与 gcc/clang + glibc/musl 实际行为之间的多种不兼容之处,包括 asm 关键字、FLT_ROUNDS、标准 pragma 未实现以及 initstate 错误处理等问题。
这篇博客文章详细介绍了使用 git subtree 将 Rust GCC 后端仓库与 Rust 主仓库同步的复杂过程,以及出现的诸多问题,体现了墨菲定律。
本文在一篇技术博客文章中解释了GCC嵌套函数的实现,通过创建合成结构来访问父变量,并与C++ Lambda表达式进行了对比。
Sirdab完成了1000万美元的A轮融资,由Elm和BECO Capital领投,旨在扩展其物流平台至沙特阿拉伯和海湾合作委员会地区。自YC W23以来,收入增长了20倍,并已实现盈利。
本文介绍了一种在GCC中无需可执行栈通过从蹦床读取指针来间接调用嵌套函数的技术,适用于较旧的GCC版本,并在noplate库中实现。
LWN的一条评论讨论了C语言编译器中尾调用优化相对较新的实现,引用了历史上的局限性,并指出现代的GCC和Clang现已支持该优化,这对解释器实现有潜在好处。
一篇博客文章探讨了 C89 标准中关于隐式函数声明的歧义,GCC 和 Clang 对此解释不一,导致某些代码产生不同的编译结果。
gccrs项目致力于为GCC开发Rust前端,近期在编译Linux内核方面取得进展,解决了属性处理、名称解析和资源管理中的问题,并重新组织了开发里程碑。
GCC 指导委员会已通过一项 AI 贡献政策,该政策将拒绝包含 LLM 生成内容的具有法律意义的贡献,但测试用例除外,同时允许 LLM 用于研究和分析。
本文探讨了GCC大代码模型(mcmodel=large)的局限性,特别是它无法处理带有32位重定位的线程局部存储(TLS),因此尽管其声称用于大型二进制文件,实际上却无法用于真正的大型二进制文件。
这篇博文探讨了C23中涉及`auto`作为类型推断说明符或存储类说明符的解析歧义,展示了当`x`是typedef时,GCC和Clang在解析如`auto x = 67;`这样的声明上的分歧,以及属性如何使情况复杂化。
一篇博客文章描述了在现代 Ubuntu 系统上构建 GCC 1.27(一款 1988 年的编译器)的过程,详细说明了必要的补丁和步骤。
GCC 16 确保不捕获变量的嵌套函数无需蹦床,提升安全性。GCC 17 引入了内建函数,通过宽指针和静态链寄存器,即使对于捕获变量的嵌套函数也能避免蹦床。
解释了使用GCC的计算goto扩展来提升字节码虚拟机调度表性能的方法,并与传统的switch语句进行了对比,附带了一个简单示例。
何塞·马奇西(José Marchesi)和GCC-BPF团队提供了GCC 16中BPF支持的更新,突出了在与LLVM功能对等方面取得的进展,以及内核BPF自测通过率的提升。
本文讨论了编写可移植C代码的实际挑战,这些挑战源于对非标准编译器扩展和glibc条件头文件的依赖,并通过构建C编译器的示例进行说明。