LWN:gccrs开发进展!

GCCrs:GCC的Rust前端-Rust开发 这是GCC之上的Rust语言的完全替代实现。GCC Rust这是GCC之上的Rust语言的完全替代实现。 请参阅随附的报告存储库:https://github.com/Rust-GCC/Reporting以获取来自Philip Herron的状态报告和tast跟踪概述。 开发环境获取ubuntu的依赖关系:$ apt install build-essential libgmp3-dev libmpfr-dev libmpc-dev flex bison autogen gcc-multilib dejagnu克隆存储库$ git clone [受电子邮件保护]:Rust-GCC / gccrs.git编译脚本。 我 立即下载

关注了就能看到更多这么棒的文章哦~

An update on gccrs development

By Jonathan Corbet
October 1, 2024
Cauldron
Gemini-1.5-flash translation
https://lwn.net/Articles/991199/

Rust 语言经常被人们诟病的问题是只有一款编译器,这使得很难确定该语言的标准版本,也限制了 Rust 代码可以针对的架构只能是现有编译器所支持的架构。在 GCC 中添加 Rust 前端将有助于解决这些问题。在 2024 年 GNU 工具大熔炉(2024 GNU Tools Cauldron) 上,Pierre-Emmanuel Patry 介绍了这项工作的进展情况及其目标。

df475a56f644045c93ff618e305d0653.png

这种 GCC 前端 被称为 "gccrs";由于 Rust 语言的商标规则限制,它不能被称为 Rust 编译器。自该项目于 2019 年重启以来,Patry 开始将目标定为 Rust 语言的 1.49 版本,该版本于 2020 年 发布。自 GCC 14 版本以来,它已包含在 GCC 中,尽管该版本没有包含 gccrs 文档。

在 2023 年的 GNU 工具大熔炉上,Patry 曾 表示 该项目在其仓库中拥有超过 800 个需要上游到 GCC 主线(mainline 的非合并变更集提交,这确实是一项相当庞大的工作。今年,这个数字已经减少到 40 个,并且这些都是新的工作,而不是来自去年的遗留工作。因此,确实取得了一些进展。曾经的目标是每两周向上游推送一次更改,但这被证明是过多的工作量了;他们仍然希望尽快将代码上游,但他们已经放弃了这个具体目标。

在过去的一年里,gccrs 的开发得到了三个 Google 暑期代码实践 (GSoC) 实习生的帮助。其中一位实习生 (Jasmine Tang) 负责内联汇编代码的支持,这是 Rust-for-Linux 项目所需要的;该功能的大部分前端工作现在已经完成。Rust 中的内联汇编代码看起来像这样:

unsafe {
    asm!("assembly code here", "other info")
};

虽然前端工作已经到位,但在将汇编代码完整地传递到后面的编译阶段时遇到了困难。这些问题已经得到解决,但仍然有一些细节需要处理。

第二位 GSoC 学生 (Muhammad Mahad) 负责开发测试套件适配器(test-suite adapter),目的是帮助 gccrs 通过 Rust 测试套件。这里存在一个需要解决的适配问题:GCC 使用 DejaGnu 进行测试,因此需要对 Rust 的测试进行某种转换。最后一位 GSoC 学生 (Kushal Pal) 负责 GCC 中间表示(intermediate representation)中的借用检查(borrow checking),以及向用户提供合适的错误提示。

展望即将到来的 GCC 15 版本,Patry 表示 主要目标 是实现编译内核代码所需的特性。其中最重要的任务是让 gccrs 能够编译 Rust 核心库,事实证明这并非易事。开发人员曾经以为他们已经实现了足够的功能来做到这一点,但惊讶地发现还有很多问题需要解决。Rust 项目使用核心库中的实验特性这一习惯也加剧了问题。

Patry 说,这些问题正在解决,但即使解决之后,编译器目前速度也相当慢。不过,这是一个需要在完成功能和正确性工作,以及核心库能够编译之后才能考虑的问题。

Patry 最后谈到了一些更长远的目标,首先是再次编译核心库,但这次不修改库本身。开发人员希望赶上目前 Rust-for-Linux 所使用的 1.78 版本。他说,这不像人们想象的那样是一个巨大的飞跃;许多 1.78 的功能在很久以前就已成为实验性功能,并且已经在 gccrs 中实现了。除此之外,他说,该项目最终将解决构建 std 库 的问题,并且有一天会努力赶上 rustc 编译器。

这次会议给人的印象是,gccrs 开发人员正在努力填补 Rust 的第二个编译器空白,但他们的人手严重不足。这是一个重要的项目,确实应该吸引一些重要的公司支持,但实际上并没有发生。除非业界有更多人站出来推动这项工作,否则 Rust 可能注定在很长一段时间内都只有一种编译器。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

18676160a975d2339b5dd4f298d4abb8.jpeg

gccrs:用于Rust的GCC前端 立即下载

相关推荐

YOLO26算法水面与液体识别+训练好的模型+393张数据集+pyqt可视化界面.zip

附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[未获取()] 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 52 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.8528** mAP50-95 | 0.3441 Precision | 0.7729 Recall | 0.8354 train/box_loss | 1.5367 train/cls_loss | 1.0228 val/box_loss | 1.6809 val/cls_loss | 1.1758 【训练过程分析】 我这次训练了52个周期,模型在训练初期确实收敛速度很快,前20个周期mAP50从0.74逐步提升至0.82,这说明模型开始适应数据集,学习到一些关键特征。但到第30个周期后,提升速度逐渐放缓,到了40个周期时,mAP50达到0.85,这个阶段的曲线走势有些像磨砂玻璃,平滑且不规则,后期更是趋于平缓,表明模型可能已经达到最优解,再继续训练可能会有少量提升但代价较大。整体而言,从loss曲线来看,训练集的box_loss和cls_loss在52个周期内分别从1.80和1.25降到1.54和1.02,下降曲线较为稳定,但到了后期,这两项指标下降幅度逐渐减缓,尤其cls_loss下降至1.10左右后趋于稳定,这可能是模型对训练数据已有了较强的泛化能力,但也提示我们分类的稳定性可能还欠些火候。 至于验证集的表现,box_lo... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。

LWN:深入讨论GCC Rust前端!

关注了就能看到更多这么棒的文章哦~A deeper look into the GCC Rust front-endBy Jonathan CorbetOctober 10, 2022CauldronDeepL assisted translationhttps://lwn.net/Articles/909887/Philip Herron 和 Arthur Cohen 在 2022 年的 Kan...

Linux News搬运工 971

C#西门子上位机与PLC通讯++S7协议

支持S7-200,S7-300,S7-1200,S7-1500+使用技术C#+S7net

GCCRS 项目安装与配置指南

GCCRS 项目安装与配置指南 1. 项目基础介绍 GCCRS 是一个开源项目,旨在将 Rust 编程语言集成到 GNU 编译器集合(GCC)中。该项目是一个实验性项目,通过 GCC 的插件机制,允许开发者使用 Rust 语言编写 GCC 的前端组件。GCCRS 的目的是扩展 GCC 的功能和可用性,同时利用 Rust 语言的安全和性能优势。 主要编程语言:Rust、C 2. 项目使用的关键技术和...

gitblog_01136的博客 703

AI大模型医学影像诊断智能识别应用方案.pptx

AI大模型医学影像诊断智能识别应用方案.pptx

智能驾驶智慧交通行业智算中心(AIDC)建设规划方案.pptx

智能驾驶智慧交通行业智算中心(AIDC)建设规划方案.pptx

【Rust日报】为什么Rust中的std::pin::Pin包装器看起来非常奇怪

gccrs - Rust编程语言替代编译器gccrs是一个正在开发中的Rust编程语言替代编译器,作为GCC项目的一部分。它的目标是与rustc编译器具有完全相同的行为。gccrs项目的主要目的包括:为Rust编程语言提供一个替代的编译选择。支持LLVM不支持的一些处理器架构,如Dreamcast游戏机的SuperH架构。利用GCC多年积累的安全特性和静态分析器,增强对不安全Rust代码的分析能力...

Rust语言学习交流 486

LLC谐振变换器恒压恒流双竞争闭环控制simulink仿真(附说明文档)

内容概要:本资源是一套面向电力电子与智能控制领域的综合性科研仿真资料合集,核心聚焦于LLC谐振变换器的恒压恒流双竞争闭环控制策略设计与Simulink建模仿真实现,涵盖半桥LLC、双向全桥LLC等拓扑结构的调频闭环仿真,并提供详尽的说明文档与PPT辅助材料。资源体系不仅深入呈现LLC变换器的动态响应与控制逻辑,还扩展至双有源桥(DAB)变换器的软开关协同优化、最小应力控制、EPS调制策略及新扩展移相角优化等前沿技术,同时集成三相PWM整流器在电网不平衡条件下的功率平衡控制、VOC+SVPWM双闭环控制等典型应用场景。此外,资源包涵盖状态估计(如EKF、UKF、PF)、微电网经济调度、卡尔曼滤波融合、神经网络控制、PID优化、储能系统管理等多个交叉方向,特别强调对顶级EI期刊研究成果的高精度复现,旨在帮助科研人员快速掌握先进控制算法的核心思想与仿真实现方法。; 适合人群:电气工程、自动化、电力电子、新能源科学与工程等相关专业的硕士博士研究生、高校科研人员,以及从事新能源变换器、智能电网、电动汽车、微电网系统研发的工程技术人员。; 使用场景及目标:① 深入理解LLC与DAB变换器的闭环控制机理,掌握恒压恒流切换、软开关实现与损耗优化方法;② 利用Simulink平台构建复杂电力电子系统模型,开展动态性能分析与控制器参数整定;③ 复现高水平期刊论文中的先进控制策略,提升科研创新能力与论文发表竞争力;④ 支持毕业设计、科研课题、项目申报及工程原型开发中的仿真验证环节。; 阅读建议:建议结合提供的完整资源目录循序渐进学习,优先研读标注“顶级EI复现”的案例以获取权威方法参考,配合MATLAB/Simulink动手搭建模型,重点关注控制框图设计、调制逻辑实现与仿真结果对比,深入理解算法背后的物理意义与数学推导过程。

GCC Rust (gccrs) 项目使用教程

GCC Rust (gccrs) 项目使用教程 1. 项目的目录结构及介绍 GCC Rust (gccrs) 是一个将 Rust 语言集成到 GCC 编译器中的开源项目。以下是项目的目录结构及各部分的简要介绍: ABOUT-NLS: 国际化相关的信息文件。 config: 包含配置脚本和配置文件。 contrib: 第三方贡献的代码和工具。 fixincludes: 用于修复包含文件中的问题的工...

gitblog_00313的博客 704

概率神经网络的分类预测-基于PNN的变压器故障诊断(Matlab代码实现)

内容概要:本文系统阐述了基于概率神经网络(PNN)的变压器故障诊断方法,结合Matlab代码实现分类预测。通过提取变压器运行过程中的关键特征参数,构建PNN模型以实现对正常状态与典型故障状态(如绕组短路、铁芯故障等)的高效分类识别。文章深入剖析了PNN的网络结构、概率密度估计原理、训练机制及分类决策过程,并通过仿真实验验证了该方法在故障诊断任务中具备较高的准确率与鲁棒性,展现了其在电力系统状态监测与智能运维中的良好应用前景。; 适合人群:具备一定机器学习理论基础和Matlab编程能力的电气工程、自动化、智能电网等相关领域的研究生、科研人员以及从事电力设备状态监测与故障诊断工作的工程技术人员。; 使用场景及目标:①实现变压器早期故障的智能化诊断与预警,提升电力系统运行安全性;②为基于神经网络的工业设备故障分类任务提供可复现的算法实现范例与技术验证平台; 阅读建议:建议读者结合文中提供的Matlab代码,动手复现实验流程,深入理解PNN在实际分类问题中的参数配置、训练策略、性能评估方法,并鼓励将该方法迁移至其他电力设备或机电系统的故障诊断场景中进行拓展研究与优化改进。

优快云首页 发布文章 优快云同步助手 多无人机面向城市空中交通的多无人机路径规划研究(Matlab代码实现) 37 100 摘要:会在推荐、列表等场景外露,帮助读者快速了解内容,支持

内容概要:本文围绕面向城市空中交通的多无人机路径规划问题展开研究,系统阐述了该领域的核心挑战与关键技术。文章首先定义了多无人机路径规划的问题,明确了包括飞行安全、避障、协同效率在内的多项约束条件与性能指标。随后,重点介绍了三大类路径规划方法:基于改进RRT算法和图论的全局路径规划方法,用于构建初始可行路径;基于动态风险场的模型预测控制和动态窗口法(DWA)的动态避障方法,以应对环境中的突发障碍;以及多无人机协同规划策略和分布式协同控制算法构成的局部协同调整方法,确保多机间的飞行安全与任务协同。研究通过搭建Matlab仿真实验平台,设计了多种复杂城市飞行场景,对所提方法进行了全面的仿真验证与结果对比分析,展示了各方法在不同场景下的有效性与优劣。; 适合人群:具备一定自动化、计算机或航空航天领域基础知识,从事无人机、智能交通、路径规划等相关方向研究的研发人员和研究生。; 使用场景及目标:①为城市空中交通管理系统(UATM)的设计与开发提供理论基础和技术参考;②应用于物流配送、城市巡检、应急救援等多无人机协同任务的路径规划算法设计与仿真验证;③作为相关领域科研工作的技术参考资料,推动多智能体协同决策与控制技术的发展。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,通过复现仿真结果加深对各类算法原理与实现细节的理解。在学习过程中,应重点关注全局规划与局部避障的结合机制,以及多机协同策略中的冲突消解逻辑。

Rust-GCC 编译器项目(gccrs)使用教程

Rust-GCC 编译器项目(gccrs)使用教程 1. 项目介绍 Rust-GCC 编译器项目(gccrs)是一个使用Rust语言重写的GCC编译器的前端和部分中间件。该项目旨在结合Rust的安全性和GCC编译器的成熟性,以提供更好的编译性能和错误处理能力。gccrs项目是开源的,可以在GitHub上找到,该项目旨在成为GCC编译器生态系统的一部分,并为Rust语言提供更全面的编译支持。 2. ...

gitblog_00567的博客 612

无刷直流电机BLDC转速电流双闭环+无位置传感器控制仿真【仿真+详解说明报告+参考文献】

内容概要:本文详细介绍了一套针对无刷直流电机(BLDC)的Simulink仿真资源包,核心内容涵盖转速电流双闭环控制与无位置传感器控制技术,重点采用滑模观测器(SMO)实现对转子位置与速度的精确估算,避免了物理位置传感器带来的成本与可靠性问题。资源包提供了多个高质量仿真模型,包括基于模糊PID与传统PID控制策略的对比分析、无感控制结合滑模观测器与双闭环PI控制的综合系统等,全面展示不同控制算法在动态响应、抗干扰能力及稳态精度方面的性能差异。所有模型均基于Matlab/Simulink平台构建,配套详尽的技术说明文档与参考文献,深入解析控制结构设计、观测器原理、参数整定方法及系统稳定性分析,适用于电机驱动系统的研究、教学演示与工程验证。; 适合人群:面向电气工程、自动化、控制科学与工程及相关专业的本科生、研究生、科研人员和工程技术人员,尤其适合从事电机控制、电力电子与运动控制系统研究的专业人士,具备自动控制理论基础和Matlab/Simulink基本操作能力者更易上手。; 使用场景及目标:① 深入学习并掌握无刷直流电机双闭环调速系统的工作原理与无位置传感器控制的关键技术;② 对比研究模糊PID与传统PID在电机控制中的动态性能与鲁棒性差异;③ 开展滑模观测器在非线性系统状态估计中的建模与仿真研究;④ 支持课程设计、毕业设计、科研项目申报及学术论文复现等实际应用场景。; 阅读建议:建议用户结合提供的详解说明报告,逐步运行各仿真模型,重点关注控制器参数调节过程、滑模观测器的设计细节及其收敛性表现,深入分析系统启动、负载突变、转速切换等工况下的响应特性,鼓励在此基础上进行控制算法改进、引入新型观测器或拓展至其他电机类型进行创新性研究。

LWN: 2025 年回顾

帮助我们实现这一目标并普遍惠及 LWN 的最佳方式是务必订阅,或者更好的是,让您的雇主购买团体订阅。我们这边,我们将一如既往地做我们一直在做的事情:努力为我们的社区提供最好的报道。美国国内的变化,除其他外,几乎保证在一段时间内很少有重要的技术会议会在那里举行——而且许多在美国工作的人将因害怕无法返回而无法参加其他地方的活动。今年,我们的保险提供商通知我们,这项保险的费用将增加 14%——这只是连续两位数增长中的又一次。这一事件再次清楚地表明,除非付出明显的努力来保存,否则互联网上的历史是短暂的。

Linux News搬运工 141

告别Windows!Oculus Quest 2在Mac M1上的串流实战(scrcpy+SideQuest避坑指南)

本文为Mac M1用户提供了Oculus Quest 2在macOS上实现高清低延迟串流的实战指南。通过使用开源工具scrcpy和SideQuest,绕开官方限制,详细讲解了从环境准备、无线调试到画质与延迟优化的完整步骤,重点解决了Apple Silicon芯片Mac的连接与性能问题,助你告别Windows依赖。

weixin_29224309的博客 308

uniapp实战:mui-player插件如何完美适配m3u8/flv直播流(附完整代码)

本文详细介绍了如何在Uniapp中使用mui-player插件完美适配m3u8和flv直播流,提供从基础配置到高级优化的全流程解决方案。通过动态加载策略、响应式布局和内存管理,实现跨平台稳定播放,适用于企业级直播应用开发。

weixin_29001655的博客 235

LWN:新年预测

关于发行版的讨论最为激烈,用户认为发行版的核心价值在于软件包的“人工策展”、安全审计以及提供统一受信任的软件源,以避免 Linux 陷入类似 Windows 的软件分发乱象。基于 GCC 的编译器的可用性将使许多人的过渡变得更容易,特别是那些使用基于 LLVM 的 rustc 编译器不支持的体系结构(architecture)的人。同时,*Linux 和自由软件(Free Software)的整体兴趣将会增加* ,这将由受监控担忧、强制升级、不受欢迎的 AI 功能以及不断上涨的硬件价格的共同推动。

Linux News搬运工 133

Jetson Orin NX系统克隆术:如何快速备份与还原你的开发环境(附完整命令行)

本文详细介绍了Jetson Orin NX系统克隆的完整流程,这是一种超越简单备份的完整镜像方案。通过命令行操作,可实现开发环境(包括引导程序、内核、根文件系统及所有配置)的快速备份与还原,确保批量部署时环境的完全一致性与高效性,尤其适合机器人、边缘AI等项目的团队协作。

weixin_29191081的博客 156

LWN:Rust 与 GCC 的两个开发方案!

关注了就能看到更多这么棒的文章哦~Rust and GCC, two different waysBy Jonathan CorbetOctober 4, 2021LPCDeepL ass...

Linux News搬运工 1437

Vivado时序违约小结

目录1. setup time违约1.1 逻辑级数太高1.2 Fanout太大2. hold time 违约2.1 异步信号处理导致hold time违约 1. setup time违约 建立时间是工程设计中最常遇到的问题了。一般说来,导致建立时间违例主要有两个原因:逻辑级数太大或者扇出太大,当然也可以尝试通过降频来解决建立时间违约。 1.1 逻辑级数太高 Levels指的是逻辑级数logic level,一个logic level的延迟对应的是一个LUT和一个Net的延迟,对于不同的器件,不同频率的设计能

mu_guang_的博客 7155

Basler相机和pylon viewer 的使用

文章目录1 线路连接2 安装和使用pylon 1 线路连接 电源线接到电源插座,网线接到电脑(电脑没有网口的话,可用转换器转到type-c接口)。 2 安装和使用pylon 参考 Basler pylon安装及对网口相机基本设置 相机和电脑以太网IP设置参考:balser相机IP设置 关于相机参数和pylon viewer的详细设置,可以参考pylon Viewer安装路径下的文档(Documentation) ...

Deephome的博客 1万+

LWN: 内核 Rust 实验的现状

关于将核心内核(core-kernel)对 Rust 代码的依赖性,Airlie 表示,这在未来一两年内不应该发生。Kroah-Hartman 说,他曾担心核心内核和 Rust 驱动程序之间的交互,但发现交互比他预期的少得多。Ojeda 说他已经调查过,认为它应该可以工作,但他不知道目前的状况。Ojeda 总结说,用 Rust 工作的能力成功地吸引了新的开发者和新的维护者,这是该项目最初的目标之一。他说,更重要的消息是,运行 6.12 内核的 Android 16 系统正在搭载 Rust 编写的。

Linux News搬运工 200

SAP 采购订单入库——移动类型

业务场景:采购入库,实物入库至仓库,然后系统同步过账。MIGO:收货、采购订单。 MVT:101 入库,---库存增加。 MVT:移动类型,就是代表业务场景,(比如入库、发货,成本中心发、工单发、报废、盘赢、盘亏等等) 移动类型 1、正向采购入库:101 2、反向冲销(MIGO)102:与101相反,用于错误操作的反向冲销。参考原凭证,全部进行一...

willieyuan的博客 7779

稳定版即将发布,GCC 13 合并上百个 GCC Rust 补丁

稳定版即将发布,GCC 13 合并上百个 GCC Rust 补丁。

优快云资讯 3221

基于YOLOv11的气象目标检测系统:台风眼与钩状回波检测

气象目标检测是计算机视觉在气象领域的重要应用,对台风预警和强对流天气监测具有重要意义。本文详细介绍了一种基于YOLOv11的气象目标检测系统,能够有效识别卫星云图中的台风眼和雷达图中的钩状回波。系统包含完整的数据处理流程、模型训练策略以及用户友好的Web界面。我们使用了公开的气象数据集进行训练和验证,并提供了完整的实现代码。实验结果表明,本系统在气象目标检测任务中达到了较高的准确率和实用性。关键词:气象目标检测;YOLOv11;台风眼检测;钩状回波;深度学习;计算机视觉台风眼检测数据集。

YOLO 473

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

上一篇: LWN:Coccinelle的Rust支持!
下一篇: LWN:学习Rust内核开发的可用资源!
LinuxNews搬运工
博客等级 码龄7年 438粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值