聊一聊 dotnet 社区对 RISC-V 的支持进展
我们从Github .NET 社区的相关仓库和Issue 里通过三个方面的简要梳理dotnet 对 RISC-V 的支持:
官方支持
截至 2025 年 5月,微软官方的 .NET(dotnet)尚未正式支持 RISC-V 架构。官方发布版主要支持 x64、Arm64、s390x(部分平台)等架构,龙芯团队支持了LoongArch架构。RISC-V 目前还属于社区实验和探索阶段,未进入官方支持路线图。在(dotnet/runtime #36748: RISC-V support)多位开发者和社区成员表达了对支持 RISC-V 的兴趣,但官方团队明确表示,RISC-V 的支持需要社区的推动、贡献和相关维护资源。目前该 issue 标记为“Future”,说明官方不会在近期版本内支持,但会持续关注社区需求和进展。如果有足够的社区贡献,未来有可能纳入正式支持计划。社区移植进展
社区中有多项针对 RISC-V 的移植尝试,主要由个人或小组驱动, issue(CoreCLR RISC-V architecture port #84834)的主题是 CoreCLR 对 RISC-V 架构的移植进展总结:
当前进展:
- 已实现 CodeGen BringUp 测试在 Debug 模式下 100% 通过(在 qemu 和 StarFive VisionFive2 板上)。
- 相关 PR 部分已合并,部分尚未合并。合并后,主分支在 VisionFive2 和 qemu 上的 CodeGen BringUp 测试应全通过(VisionFive2 需暂时禁用 GC_REGIONS)。
- VisionFive2 测试结果(Debug,设置 DOTNET_GCgen0size=99999999):
- JIT 目录:4737 个测试,4304 通过,413 失败,20 跳过
- 所有测试:6565 个测试,5663 通过,861 失败,41 跳过
近期计划:
- 继续让 JIT 目录下的测试在 Release/Debug/Checked 模式下全部通过
- 修复与 JIT 优化无关的 TODO
- 为 RISC-V 添加 CI,并启用 JitDisasm 和 JitDump
- 关注更多测试目录,争取更多模式下通过
- 后续重点还包括库(corefx)测试、jitstress/gcstress 等测试
近期不计划开展的内容:
- JIT 全优化、交叉编译(crossgen2)、SIMD/内联优化、GC 优化、异常处理、栈遍历、跨语言互操作优化等
工作流程:遵循官方 JIT 移植文档,并将失败测试按错误类型分类。后续会开单独 issue 跟踪正在处理的内容。
在 issue(RISC-V NativeAOT port)用于跟踪 .NET NativeAOT 在 riscv64 架构上的移植进展。当前内容包括:
• 主要记录 NativeAOT 在 riscv64 上的移植工作进度。
• 移植工作基于 LA64(LoongArch64)架构的相关实现经验。
• 提供了一个正在进行中的初步移植分支链接,供参考和协作:https://github.com/dotnet/runtime/compare/main...am11:runtime:feature/nativeaot/riscv64-port
• 该 issue 标注了 area-NativeAOT-coreclr 和 arch-riscv 标签,归属于 Future 里程碑,尚未关闭。
• 评论数较多(200),表明社区和开发者有较多讨论和参与。
- filipnavara/dotnet-riscv 仓库情况
该仓库即为社区成员 @filipnavara 主导的 .NET RISC-V 移植项目,发布了可用的RISC-V的.NET源码包,特点如下:
- 目标是让 .NET 运行时(runtime)在 RISC-V 架构上可用,支持托管应用运行。
- 包含大量针对 RISC-V 架构的底层修改和补丁,涉及 coreclr、corefx 等组件。
- 项目处于实验和开发阶段,可能并不完全等同于官方主线代码,稳定性和兼容性有限。已经发布了.NET 9 以及v10.0.100-preview.1.25111.1
聊一聊 dotnet 社区对 RISC-V 的支持进展的更多相关文章
- [2018-11-27]2018年12月1日宁波dotnet社区线下活动
离上次活动,转眼又过了一个月,幸得各路大神支持,于本周六(12月1日),宁波dotnet社区的线下分享活动又来啦! 活动嘉宾及主题 董斌辉 2015-2019年微软全球最有价值专家(.NET方向) 2 ...
- [2018-11-03]2018年10月28日宁波dotnet社区活动回顾及下次活动预告
离上次活动,有半年了,汗.之后尽量保证每月一次,以组织为主,多邀请嘉宾来分享. 本次活动不足之处 人手不足:由于活动组织事项受限于人手(目前就我一个,这次活动前后我又应邀给大红鹰学院应届生介绍dotn ...
- [2018-10-17]宁波dotnet社区(NBDNC)第一次问卷关于dotnet技术栈的小调查
最近(2018年10月7日至10月17日),为配合确定下一次社区线下活动主题,做了一次宁波dotnet社区(NBDNC)的本地dotnet技术栈调研,设计了一份问卷,在此做一次记录. 导出的问卷统计结 ...
- AOP in dotnet :AspectCore的参数拦截支持
距离上一篇AspectCore的介绍发布已经很长一段时间了,这篇文章也早该和大家见面,最近一直忙于适应新工作,并在业余时间有幸向何镇汐,Savorboard,农夫,AlexLEWIS等几位大牛请教学习 ...
- 2023 年 dotnet 仓库社区年度调查已经开始
准备好今年对 dotnet 指手画脚了吗,平常在群里我忍气吞声,今天我必须重拳出击,快来参与吧. 我直接一个参的加 .NET 是一个跨平台的开发框架,支持多种语言和应用场景,如 C#.F#.VB.NE ...
- odoo 12企业版与免费社区版的区别,价格策略与技术支持指南的全面解析
Odoo / Ps Cloud收费企业版是对社区版的极大增强,除了增加了很多功能外,最大的功能区别是企业版支持条码而社区版不支持,企业版对手机支持更好.有单独的APP,最重要区别的是企业版提供底层技术 ...
- dotnet core多平台开发体验
前言 随着net core rc2的发布,园子里面关于net core的入门文章也也多了起来,但是大多数都是在一个平台上面来写几个简单的例子,或者是在解释代码本身,并没有体现说在一个平台上面创建一个项 ...
- dotnet core多平台开发体验(mac os x 、windows、linux)
前言 随着net core rc2的发布,园子里面关于net core的入门文章也也多了起来,但是大多数都是在一个平台上面来写几个简单的例子,或者是在解释代码本身,并没有体现说在一个平台上面创建一个项 ...
- 温故知新,DotNet Core SDK和.Net CLI十八般武艺
简介 .NET命令行接口 (CLI) 工具是用于开发.生成.运行和发布.NET应用程序的跨平台工具链. https://docs.microsoft.com/zh-cn/dotnet/core/too ...
- dotnet core 使用 MongoDB 进行高性能Nosql数据库操作
好久没有写过Blog, 每天看着开源的Java社区流口水, 心里满不是滋味. 终于等到了今年六月份 dotnet core 的正式发布, 看着dotnet 社区也一步一步走向繁荣, 一片蒸蒸日上的大好 ...
随机推荐
- autMan奥特曼机器人-autMan的PHP环境
直装版请自行安装php环境. docker版本预置了php环境,如下图: 如果使用插件"test php"测试环境时,实时日志有报错如下: 可进入终端,输入两条命令 apk add ...
- 2025年我用 Compose 写了一个 Todo App
标题党嫌疑犯实锤 序言 从2月12日到3月4日这整整三周时间里,我从零开始又学习了一次 Compose. 为什么说又,是因为这已经是我第二次学习这套课程了. 故事从 4 年前说起,2021 年在意外获 ...
- Proteus中数码管动态扫描显示不全(已解决)
前言 我是直接把以前写的 51 数码管程序复制过来的,当时看的郭天祥的视频,先送段选,消隐后送位选,最后来个 1ms 的延时. 代码在 Proteus 中数码管静态是可以的,动态显示出了问题--显示不 ...
- docker login harbor x509: certificate signed by unknown authority
前言 docker login harbor x509: certificate signed by unknown authority 解决 打开 /etc/docker/daemon.json,如 ...
- Nginx 之fastcgi常用配置项说明
在LNMP环境中,我们都知道nginx如果要解析php脚本语言,就必须通过配置fastcgi模块来提供对php支持,那么在配置fastcgi的时候,关于fastcgi配置项的值应该怎么设置才能让其发挥 ...
- Windows 提权-服务_弱注册表权限
本文通过 Google 翻译 Weak Registry Key Permissions – Windows Privilege Escalation 这篇文章所产生,本人仅是对机器翻译中部分表达别扭 ...
- DateTime.ToString(String) 格式化方法
小故事: 群里有位问了个问题:"dateime.now 怎么取20170610 这样格式的数据啊?"...然后等了好久,没人帮忙回答下(这里肯定少不了歧视和异议). 虽然问题很简单 ...
- Nodejs与管道和信号
Nodejs与管道 Linux的其中一个设计哲学就是小而精,一个程序只做一件事情,然后通过管道将多个程序连接起来完成复杂的任务. 比如如下的命令: ps -ef | grep node cat aaa ...
- Armbian 安装与更换为国内软件源
Armbian 是为 ARM 架构的单板计算机(如树莓派.NanoPi.Orange Pi 等)提供的开源镜像系统,它基于 Debian 或 Ubuntu 系统.在使用 Armbian 进行开发.调试 ...
- vue路由params传参时出现undefined
1.问题: 使用params方式传参时(参数不显示的方式) 获取参数时,参数undefined 2.解决: push时请使用name,不要使用path(路由的params对象使用,必须通过路由名nam ...