curl 创始人兼核心开发者 Daniel Stenberg发表博客称,他正在考虑是否要将 curl 使用的 C 语言标准从 C89 升级到 C99。Daniel 表示,他观察到许多广受欢迎的 C 语言开源项目正在向前发展,并将所使用的 C 语言标准升级到 C99 或更高版本,例如 Linux、Git 等项目。而且在 curl 的邮件列表中也经常出现关于升级 C 语言标准的讨论,特别是现在已计划在 2023 年春季发布 curl v8,所以从理论上来讲,这可能是进行一些更改的好时机。如果要升级 C 语言标准到 C99,那就要考虑哪些 C99 特性可以改进像 curl 这样的项目。Daniel 表示自己能想到的可能给 curl 代码带来积极影响的部分特性是:
-
//
注释 -
__func__
预定义标识符 -
在
中使用布尔类型 -
指定的结构体初始值设定项
空的宏参数 -
在
和
中使用扩展的整数类型 -
灵活的数组成员 (zero size arrays)
-
内联函数
-
整数常量类型规则
-
将声明和代码混合
-
long long
类型和库函数 -
snprintf()
函数家族 -
枚举声明中支持尾随逗号
-
可变参数宏
-
长度可变的数组
此外,curl 作者表示不想推出 7.100,为此制定了 curl 8 发布计划。curl 7 的版本号已迭代到7.86.0—— 离发布 7.100.0 只差十多个版本,但 curl 作者 Daniel Stenberg不希望在次版本号中使用三位数,因为他担心这会引发不必要的问题,甚至可能会导致他人用于比较版本的脚本出错。由于 curl 通常每隔 8 周发布一次新版本,如果按照计划的发布节奏,curl 7 的次版本号差不多在两年后就会到达 100。Daniel 发现明年是 curl 的一个重要周年纪念日,他想到了一个可以避免 "100" 版本号的方案 ——在 curl 诞生 25 周年当天发布 curl 8。如此一来,既凸显了周年纪念日的地位,又体现了升级主版本号的意义,更是直接避开了 "100" 版本号。可谓是一步到位地实现了 “既要又要还要” 的需求。 因此,在 2023 年 3 月 20 日,curl 25 岁生日当天,Daniel 将会正式发布 curl 8.0.0。这将会是 curl 23 年来首次升级主版本号。不过正如上文所解释,此次升级主版本号与功能变化无关,也不会进行特别的庆祝。总而言之,这个升级和常规的并无二致,只是重置了次版本号,并升级主版本号。在常规的 curl 发布周期中,通常是是每隔 8 周在周三发布一次新版本。然而 2023 年 3 月 20 日是星期一。因此,curl 8.0.0 的发布时间会有所调整,curl 作者计划在发布 curl 8 之后再调整回常规的发布时间。 审核编辑 :李倩
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
C语言
+关注
关注
180文章
7597浏览量
136120 -
代码
+关注
关注
30文章
4741浏览量
68325
原文标题:curl 作者:不考虑其他语言重构,计划升级 C 语言标准、明年发布 curl 8
文章出处:【微信号:CPP开发者,微信公众号:CPP开发者】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
技术干货驿站 ▏深入理解C语言:掌握C语言条件判断,从if到switch的应用
在编程中,条件判断语句是控制程序流程的核心元素之一。它们使得程序能够根据不同的输入和状态,做出相应的决策。特别是在C语言中,条件判断语句的使用极为广泛,涵盖了从简单的if语句到更复杂的switch
从JESD204B升级到JESD204C时的系统设计注意事项
电子发烧友网站提供《从JESD204B升级到JESD204C时的系统设计注意事项.pdf》资料免费下载
发表于 09-21 10:19
•0次下载
将Non-OS SDK从1.3.0升级到1.4.0后,AT CWLAP命令将无法再找到我的AP,为什么?
将Non-OS SDK从1.3.0升级到1.4.0(AT版本0.40升级到0.50)后,AT CWLAP命令将无法再找到我的AP。它仍然会找
发表于 07-17 06:00
STM32CubeMX版本升级由6.2.1升级到6.3.0后原工程重新编译code文件变大什么原因?
STM32CubeMX版本升级由6.2.1升级到6.3.0后原工程重新编译code文件变大什么原因
发表于 04-02 07:31
如何选择创建c语言和c++
选择创建 C 语言和 C++ 都需要综合考虑多个因素。在决定使用哪种语言之前,我们需要对这两种语言的特点、优缺点、适用场景、学习成本等进行全
评论