SUSE 开发者提议在 GCC 编译器中用 Python 替代 AWK
日前,一位 SUSE 开发者向 GCC 开发团队发送了一封邮件,希望允许在 GCC 编译器代码库中使用一门脚本语言(Python),这主要是为了替代现有的 AWK 语言。
这位 SUSE 开发者 Martin Liška 目前正在寻求关于这项提议的可能性,他表示,这不是将现有的 GCC C 编译器代码替换为脚本语言或类似的任何东西,而是旨在替换当前难以维护的 AWK 脚本语言。
Martin Liška 认为,GCC 中的 AWK 代码现在“对进行任何调整都非常不愉快”,因此 Martin 在观察是否有足够多的上游开发者更愿意看到允许 Python 取代它。而该项提案可能由 GCC 指导委员会负责。
Martin 提到的关于 AWK 的一些问题
gcc/optc-save-gen.awk 充满了复制粘贴的代码,而由于缺少标志类型类(flags type classes),导致创建了多个全局变量(var_opt_char, var_opt_string, ...)
类似的事情发生在 gcc/opth-gen.awk
我们做了很多正则表达式匹配工作(主要在 gcc/opt-functions.awk 中),但应该提出一种结构化的选项格式,使解析和处理更加简单
……
目前尚未发现其他上游开发者对该提案发表评论,但该提案可以在 GCC 邮件列表中找到。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
看一名 KDE 开发者如何使用 C++17 为项目提升巨大速度
参与 KDE 和openSUSE 开发的开源项目开发者Antonio Larrosa 一直在独立开发着一个名为 Bard 的命令行音乐管理器。他还写了一篇有趣的帖子来讲述他如何将这个软件中一些操作的速度提升了大约八千倍。 特别是,Antonio 专注于加速在用户的本地音乐收藏中寻找歌曲/音乐副本的过程。最初的代码通过 Python 实现,后来变成了经过优化的 C++ 代码。令人惊讶的是,优化调整过的 C++ 代码要比 Python 快得多 —— 如果你希望了解作者为实现这个结果所做出的调整,以及所采取的各种步骤带来的影响,不妨看看作者所写的博客。 他没有用 C++ 重写整个程序,而是使用了Boost.Python 库,该库使得 C++ 和 Python 代码之间可进行无缝的操作。从这时开始,Antonio 开始编写相关的 C++ 代码。特别是,他专注于 C++ 17 并使用了线程。进一步提升性能的操作是调整 C++ 的编译器标记(compiler flags),并将 GCC 从 7.3 版本切换到 8.1 版本。 长话短说,“作者的最后一次代码提交也最后一次提升了速度,达到 7998 ...
- 下一篇
Go 1.11 将支持的 Go module:解决包依赖管理问题
Go 1.11预计将于2018年8月发布,最大的变化莫过于将为称作"modules"的新概念添加实验性支持。那么这对 Go 开发者意味着什么? Go 语言从2007年诞生至今,已经发展和演化十多年了。这十多年来,Go 取得了巨大的成就,先后于2009年和2016年当选TIOBE年度最佳编程语言,并在全世界范围内拥有数量庞大的拥趸。当然 Go 语言也不是完美的 —— 这些年来 Go 在“包依赖管理”和“缺少泛型”两个方面就饱受诟病,它们也是 Go 开发者最希望 Go 核心开发团队重点完善的两个方面。 今年 2018 年初,Go 核心 Team 的技术领导人,也是 Go Team 最早期成员之一的Russ Cox在个人博客上连续发表了七篇文章,系统阐述了 Go team 解决“包依赖管理”的技术方案:vgo。vgo 的主要思路包括:Semantic Import Versioning、Minimal Version Selection、引入 Go module等。这七篇文章的发布引发了 Go 社区激烈的争论,尤其是MVS(最小版本选择)与目前主流的依赖版本选择方法的相悖让很多传统 Go 包...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS关闭SELinux安全模块
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7设置SWAP分区,小内存服务器的救世主
- Linux系统CentOS6、CentOS7手动修改IP地址
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,8上快速安装Gitea,搭建Git服务器