编译了下方舟编译器

2019-08-31 01:38:40 +08:00
 lishunan246

https://github.com/Himself65/OpenArkCompiler

这三个 bin 是干啥的?

jbc2mpl maple mplcg

OpenArkCompiler git:(master) tree out 
out
├── args.gn
├── bin
│   ├── java2jar
│   ├── jbc2mpl
│   ├── maple
│   └── mplcg
├── build.ninja
├── build.ninja.d
├── lib
│   ├── 64
│   │   ├── libHWSecureC.a
│   │   ├── libmpl2mpl.a
│   │   ├── libmplipa.a
│   │   ├── libmplir.a
│   │   ├── libmplme.a
│   │   └── libz_maple_host.a
│   └── libmplmewpo.a
├── obj
│   ├── ABS_PATH
│   │   └── home
│   │       └── 我大华为的科学技术世界第一
│   │           └── OpenArkCompiler
│   │               └── src
│   │                   ├── huawei_secure_c
│   │                   │   └── libHWSecureC.ninja
│   │                   ├── mapleall.stamp
│   │                   ├── maple_driver
│   │                   │   └── maple.ninja
│   │                   ├── maple_ipa
│   │                   │   └── libmplipa.ninja
│   │                   ├── maple_ir
│   │                   │   └── libmplir.ninja
│   │                   ├── maple_me
│   │                   │   ├── libmplme.ninja
│   │                   │   └── libmplmewpo.ninja
│   │                   ├── mpl2mpl
│   │                   │   └── libmpl2mpl.ninja
│   │                   └── third_party
│   │                       └── zlib-1.2.11
│   │                           └── libz_maple_host.ninja
│   ├── maple.stamp
│   └── src
│       ├── huawei_secure_c
│       │   └── src
│       │       ├── libHWSecureC.fscanf_s.o
│       │       ├── libHWSecureC.fwscanf_s.o
│       │       ├── libHWSecureC.gets_s.o
│       │       ├── libHWSecureC.memcpy_s.o
│       │       ├── libHWSecureC.memmove_s.o
│       │       ├── libHWSecureC.memset_s.o
│       │       ├── libHWSecureC.scanf_s.o
│       │       ├── libHWSecureC.securecutil.o
│       │       ├── libHWSecureC.secureinput_a.o
│       │       ├── libHWSecureC.secureinput_w.o
│       │       ├── libHWSecureC.secureprintoutput_a.o
│       │       ├── libHWSecureC.secureprintoutput_w.o
│       │       ├── libHWSecureC.snprintf_s.o
│       │       ├── libHWSecureC.sprintf_s.o
│       │       ├── libHWSecureC.sscanf_s.o
│       │       ├── libHWSecureC.strcat_s.o
│       │       ├── libHWSecureC.strcpy_s.o
│       │       ├── libHWSecureC.strncat_s.o
│       │       ├── libHWSecureC.strncpy_s.o
│       │       ├── libHWSecureC.strtok_s.o
│       │       ├── libHWSecureC.swprintf_s.o
│       │       ├── libHWSecureC.swscanf_s.o
│       │       ├── libHWSecureC.vfscanf_s.o
│       │       ├── libHWSecureC.vfwscanf_s.o
│       │       ├── libHWSecureC.vscanf_s.o
│       │       ├── libHWSecureC.vsnprintf_s.o
│       │       ├── libHWSecureC.vsprintf_s.o
│       │       ├── libHWSecureC.vsscanf_s.o
│       │       ├── libHWSecureC.vswprintf_s.o
│       │       ├── libHWSecureC.vswscanf_s.o
│       │       ├── libHWSecureC.vwscanf_s.o
│       │       ├── libHWSecureC.wcscat_s.o
│       │       ├── libHWSecureC.wcscpy_s.o
│       │       ├── libHWSecureC.wcsncat_s.o
│       │       ├── libHWSecureC.wcsncpy_s.o
│       │       ├── libHWSecureC.wcstok_s.o
│       │       ├── libHWSecureC.wmemcpy_s.o
│       │       ├── libHWSecureC.wmemmove_s.o
│       │       └── libHWSecureC.wscanf_s.o
│       ├── maple_driver
│       │   └── src
│       │       ├── maple.compiler_factory.o
│       │       ├── maple.compiler.o
│       │       ├── maple.compiler_selector.o
│       │       ├── maple.driver_runner.o
│       │       ├── maple.file_utils.o
│       │       ├── maple.jbc2mpl_compiler.o
│       │       ├── maple.maple_comb_compiler.o
│       │       ├── maple.maple.o
│       │       ├── maple.mplcg_compiler.o
│       │       └── maple.mpl_options.o
│       ├── maple_ipa
│       │   └── src
│       │       ├── libmplipa.interleaved_manager.o
│       │       └── libmplipa.module_phase_manager.o
│       ├── maple_ir
│       │   └── src
│       │       ├── libmplir.bin_mpl_export.o
│       │       ├── libmplir.bin_mpl_import.o
│       │       ├── libmplir.global_tables.o
│       │       ├── libmplir.intrinsics.o
│       │       ├── libmplir.lexer.o
│       │       ├── libmplir.mir_builder.o
│       │       ├── libmplir.mir_const.o
│       │       ├── libmplir.mir_function.o
│       │       ├── libmplir.mir_lower.o
│       │       ├── libmplir.mir_module.o
│       │       ├── libmplir.mir_nodes.o
│       │       ├── libmplir.mir_parser.o
│       │       ├── libmplir.mir_pragma.o
│       │       ├── libmplir.mir_symbol.o
│       │       ├── libmplir.mir_type.o
│       │       ├── libmplir.opcode_info.o
│       │       ├── libmplir.option.o
│       │       ├── libmplir.parser.o
│       │       └── libmplir.printing.o
│       ├── maple_me
│       │   └── src
│       │       ├── libmplme.me_alias_class.o
│       │       ├── libmplme.me_bb_layout.o
│       │       ├── libmplme.me_cfg.o
│       │       ├── libmplme.me_dominance.o
│       │       ├── libmplme.me_emit.o
│       │       ├── libmplme.me_function.o
│       │       ├── libmplme.me_irmap.o
│       │       ├── libmplme.me_option.o
│       │       ├── libmplme.me_phase_manager.o
│       │       ├── libmplme.me_rc_lowering.o
│       │       ├── libmplme.me_ssa.o
│       │       ├── libmplme.me_ssa_tab.o
│       │       ├── libmplme.me_ssa_update.o
│       │       ├── libmplmewpo.alias_analysis_table.o
│       │       ├── libmplmewpo.alias_class.o
│       │       ├── libmplmewpo.bb.o
│       │       ├── libmplmewpo.dominance.o
│       │       ├── libmplmewpo.func_emit.o
│       │       ├── libmplmewpo.irmap_emit.o
│       │       ├── libmplmewpo.irmap.o
│       │       ├── libmplmewpo.me_ir.o
│       │       ├── libmplmewpo.orig_symbol.o
│       │       ├── libmplmewpo.ssa_mir_nodes.o
│       │       ├── libmplmewpo.ssa.o
│       │       ├── libmplmewpo.ssa_tab.o
│       │       └── libmplmewpo.ver_symbol.o
│       ├── mpl2mpl
│       │   └── src
│       │       ├── libmpl2mpl.class_hierarchy.o
│       │       ├── libmpl2mpl.class_init.o
│       │       ├── libmpl2mpl.gen_check_cast.o
│       │       ├── libmpl2mpl.java_eh_lower.o
│       │       ├── libmpl2mpl.java_intrn_lowering.o
│       │       ├── libmpl2mpl.muid_replacement.o
│       │       ├── libmpl2mpl.native_stub_func.o
│       │       ├── libmpl2mpl.reflection_analysis.o
│       │       ├── libmpl2mpl.vtable_analysis.o
│       │       └── libmpl2mpl.vtable_impl.o
│       └── third_party
│           └── zlib-1.2.11
│               ├── libz_maple_host.adler32.o
│               ├── libz_maple_host.compress.o
│               ├── libz_maple_host.crc32.o
│               ├── libz_maple_host.deflate.o
│               ├── libz_maple_host.gzclose.o
│               ├── libz_maple_host.gzlib.o
│               ├── libz_maple_host.gzread.o
│               ├── libz_maple_host.gzwrite.o
│               ├── libz_maple_host.infback.o
│               ├── libz_maple_host.inffast.o
│               ├── libz_maple_host.inflate.o
│               ├── libz_maple_host.inftrees.o
│               ├── libz_maple_host.trees.o
│               ├── libz_maple_host.uncompr.o
│               └── libz_maple_host.zutil.o
└── toolchain.ninja

32 directories, 146 files

11105 次点击
所在节点    编程
18 条回复
agagega
2019-08-31 02:23:28 +08:00
第一个不说了
第二个看名字可能是从 Java 字节码反汇编到 MapleIR 的工具,类似 llvm-dis
第三个我猜应该是给 MapleIR 跑优化的,你可以试一下,理论上如果是的话应该类似 LLVM 的 opt,输入 IR 输出也是 IR
最后一个可能是从 Maple 生成字节码的
kokutou
2019-08-31 06:35:03 +08:00
“方舟编译器源代码(网传)”。。。。。。
swulling
2019-08-31 07:59:16 +08:00
@kokutou 确实是官方放出来的,不过官方关闭分享了,有人传到 github
wwqgtxx
2019-08-31 08:26:36 +08:00
@kokutou 昨晚 11 点多放出来过一会,大概 5 分钟左右就关闭访问权限了
whwq2012
2019-08-31 09:19:30 +08:00
"我大华为的科学技术世界第一"这句话是原来仓库里的原话,而不是楼主加的吗?
hkitdog
2019-08-31 09:28:03 +08:00
@whwq2012 原仓库就有
azuginnen
2019-08-31 09:30:25 +08:00
554 text files.
527 unique files.
208 files ignored.

http://cloc.sourceforge.net v 1.60 T=2.10 s (180.9 files/s, 54576.6 lines/s)
--------------------------------------------------------------------------------
Language files blank comment code
--------------------------------------------------------------------------------
C++ 72 2050 2585 29903
C/C++ Header 133 4955 5245 21784
C 85 3692 6813 21359
Assembly 8 1033 1189 3037
Ada 10 599 560 1681
Pascal 5 219 208 1543
Teamcenter def 20 23 33 1105
Bourne Shell 3 157 146 992
C# 9 230 506 879
HTML 1 5 1 539
CMake 6 63 43 366
make 14 95 80 279
MSBuild scripts 1 1 0 140
Java 6 12 0 127
Perl 1 33 14 105
XML 1 5 16 95
m4 1 5 0 27
NAnt scripts 1 7 0 26
Bourne Again Shell 1 0 0 6
DOS Batch 2 0 0 4
--------------------------------------------------------------------------------
SUM: 380 13184 17439 83997
--------------------------------------------------------------------------------
whwq2012
2019-08-31 09:30:57 +08:00
@hkitdog 瑟瑟发抖,有华为员工是这么不会看场合的 jojo 粉吗。。。
watzds
2019-08-31 09:36:18 +08:00
编译器代码里都能插入广告?
nightlight
2019-08-31 09:54:16 +08:00
@azuginnen 感觉菊厂猿们为了领导的嘴炮 加班加点上线 注释都没来得及清理
JohnLou
2019-08-31 10:35:03 +08:00
这种帖子异常的安静,果然黑子的水平普遍有点差。
nicevar
2019-08-31 10:39:27 +08:00
@JohnLou 因为 90%以上的程序员基本上是看不懂编译器代码的,何况这里混娱乐圈的比较多,除了找个话题打打嘴炮之外,你还指望他们给你分析代码么
xm1994
2019-08-31 10:47:59 +08:00
@whwq2012
obj
│ ├── ABS_PATH
│ │ └── home
│ │ └── xm1994
│ │ └── Projects
│ │ └── OpenArkCompiler
│ │ └── src
│ │ ├── huawei_secure_c
│ │ │ └── libHWSecureC.ninja
│ │ ├── mapleall.stamp
│ │ ├── maple_driver
│ │ │ └── maple.ninja
│ │ ├── maple_ipa
│ │ │ └── libmplipa.ninja
│ │ ├── maple_ir
│ │ │ └── libmplir.ninja
│ │ ├── maple_me
│ │ │ ├── libmplme.ninja
│ │ │ └── libmplmewpo.ninja
│ │ ├── mpl2mpl
│ │ │ └── libmpl2mpl.ninja
│ │ └── third_party
│ │ └── zlib-1.2.11
│ │ └── libz_maple_host.ninja

那个 “我大华为的科学技术世界第一” 是这哥们的用户名,ABS_PATH 下面是绝对路径。
xm1994
2019-08-31 10:48:27 +08:00
```
├── obj
│ ├── ABS_PATH
│ │ └── home
│ │ └── xm1994
│ │ └── Projects
│ │ └── OpenArkCompiler
│ │ └── src
│ │ ├── huawei_secure_c
│ │ │ └── libHWSecureC.ninja
│ │ ├── mapleall.stamp
│ │ ├── maple_driver
│ │ │ └── maple.ninja
│ │ ├── maple_ipa
│ │ │ └── libmplipa.ninja
│ │ ├── maple_ir
│ │ │ └── libmplir.ninja
│ │ ├── maple_me
│ │ │ ├── libmplme.ninja
│ │ │ └── libmplmewpo.ninja
│ │ ├── mpl2mpl
│ │ │ └── libmpl2mpl.ninja
│ │ └── third_party
│ │ └── zlib-1.2.11
│ │ └── libz_maple_host.ninja
│ ├── maple.stamp
│ └── src
│ ├── huawei_secure_c
│ │ └── src
│ │ ├── libHWSecureC.fscanf_s.o
│ │ ├── libHWSecureC.fwscanf_s.o
│ │ ├── libHWSecureC.gets_s.o
│ │ ├── libHWSecureC.memcpy_s.o
│ │ ├── libHWSecureC.memmove_s.o
│ │ ├── libHWSecureC.memset_s.o
```
whwq2012
2019-08-31 10:51:29 +08:00
@xm1994 瑟瑟发抖,原来 v2 还有不懂乱答的人。
belin520
2019-08-31 11:22:36 +08:00
@xm1994 6 楼不懂乱答的?我差点就信了。
不懂,表示继续观望 v2 的风向。
hx1997
2019-08-31 11:37:34 +08:00
知乎评论基本都是“就开源了这么点东西啊”…
asstar
2019-09-05 19:06:04 +08:00
居然能编译过,里面有些方法只有声明没实现啊。
而且我记得带了几个静态链接库,
现在 java 源码也编不了,页面的编译还是动画演示。。。

就这样上面几个老哥还不忘挤兑一下别人黑华为的水平不够。。。
这还不够黑吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/596673

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX