» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


 23 12
发新话题
打印

[电脑] 华为开源方舟编译器的原因找到了!

看到知乎的一个关于方舟源码的一个解析:

如何看待方舟编译器 8 月 31 日开源? - 知乎
https://www.zhihu.com/question/343431810/answer/808727474

可以看到几点:
【1】最关键的是中间码:maple IR,看分析,几乎包括了所有c/c++/java/JavaScript支持的类型,所以是几乎是以暴力型的方式把几种编程语言合并到了一起,工作量惊人;
【2】有部分编译用了点捷径,比如java,是先用现有的javac编译为bytecode,再转换为自己的maple IR;
【3】不少代码中出现比较严重的问题,比如zlib的源码把其原来的版权声明去掉,换成华为自己的了,现在普遍的观点是新手用工具自动处理的时候出了问题,估计这也是昨晚开源了之后又迅速关闭的原因,现在应该在处理这个问题,然后会再公布出来;
【4】华为这个工作量虽然大,但是分析其技术并不高明,估计开源,也有鼓励大家贡献的意思。

[ 本帖最后由 masterfish 于 2019-8-31 13:03 编辑 ]


TOP

posted by wap, platform: Chrome
大陆人开源代码?



TOP

posted by wap, platform: Samsung
食屎啦华为


TOP

中间码这套东西很成熟,可参考的开源资料一堆没啥难度的。
开源是为了能借用其他开源资料,不过也别觉得会回馈,华为开源代码的可读性是出了名的差的。

TOP

posted by wap, platform: Android
好了,方舟开源了。。。各位著名id可以开始抓华为的痛脚给予致命一击。
其实我不懂,准备看热闹。

TOP

posted by wap, platform: iPhone
引用:
原帖由 @hmilychen  于 2019-8-31 14:23 发表
食屎啦华为
用棒子手机的人真乃LOW中极品。2333

太LOW。

TOP

posted by wap, platform: iPhone
坐等卖哥和看准帝

TOP

posted by wap, platform: Android
看了一下文档,详细分析还要等真正大佬,简单说说几点:
1,目前开源的主要是中间语言maple ir,也就是说,无论什么语言,都要编译为这个maple ir,再转换为机器语言;
2,这个maple ir设计得一般,目前仅针对c/java做了细化,开源出来估计是让其他人可以加入其他的语言支持,另外,maple里有js的类型但对其函数型语言的支持还没看到,目前主要是对java的支持比较全面,估计也是因应android的APP开发的需要;
3,注意maple ir的对java的支持是在bytecode到maple ir,也就是说java源程序的编译到字节码还是需要原来的Java的编译器支持,看样子好像用的还是openjdk的编译器,不知道有没有扩充华为自己的支持;
4,原来华为说的,去掉java的垃圾收集器,从maple的设计来看,似乎还是有垃圾收集器,内存分配有直接从栈分配的,也有从gc分配的,明确提到其采用了引用计数的垃圾收集器,从源码看不到运行时,这部分还没开源,所以还不知道如何处理循环引用的问题;
4,从maple到机器码的编译这部分没开源,所以也不知道现在的方舟能不能直接编译到鸿蒙。
其他的还没细看。

TOP

posted by edfc, platform: iPhone 8 Plus
引用:
原帖由 @卖哥 于 2019-8-31 17:55 发表
中间码这套东西很成熟,可参考的开源资料一堆没啥难度的。
开源是为了能借用其他开源资料,不过也别觉得会回馈,华为开源代码的可读性是出了名的差的。
卖哥又在空口评论了,你撸个中间码给我们看看

TOP

posted by edfc, platform: iPhone Xr
引用:
原帖由 @masterfish 于 2019-8-31 22:13 发表
posted by wap, platform: Android
看了一下文档,详细分析还要等真正大佬,简单说说几点:
1,目前开源的主要是中间语言maple ir,也就是说,无论什么语言,都要编译为......
有这能力和时间的为什么不给llvm做贡献?华为这玩意不太可能有外部贡献者的

TOP

引用:
原帖由 莱恩哈特鲁 于 2019-9-1 08:27 发表
posted by edfc, platform: iPhone Xr

有这能力和时间的为什么不给llvm做贡献?华为这玩意不太可能有外部贡献者的
为了控制入口赚钱呀。
就像为啥谷歌是做安卓而不是给J2ME做贡献?

TOP

posted by edfc, platform: iPhone Xr
引用:
原帖由 @卖哥 于 2019-9-1 09:29 发表
为了控制入口赚钱呀。
就像为啥谷歌是做安卓而不是给J2ME做贡献?
我说的是外部贡献者,不是华为

TOP

引用:
原帖由 莱恩哈特鲁 于 2019-9-1 09:49 发表
posted by edfc, platform: iPhone Xr

我说的是外部贡献者,不是华为
那不是一样的么,给llvm做贡献,华为也能白捡呀。

TOP

引用:
原帖由 莱恩哈特鲁 于 2019-9-1 08:27 发表
posted by edfc, platform: iPhone Xr

有这能力和时间的为什么不给llvm做贡献?华为这玩意不太可能有外部贡献者的
给llvm贡献对自己没有好处,如果华为的系统真的占据国内手机的半壁江山,那么就会有人研究如何给这个编译器加入能有利自己的功能了。

TOP

posted by wap, platform: iPad
国内这些个大公司的KPI开源项目多了去了,也就这项目正好趁着贸易战炒作了一波而已,凭华为的技术力量还是歇歇吧,本质上就是个富士康一样的代码血汗工厂,它的唯一竞争力就是往死里压榨码农出来的廉价软件支持方案

TOP

 23 12
发新话题
     
官方公众号及微博