V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lishunan246
V2EX  ›  编程

编译了下方舟编译器

  •  
  •   lishunan246 · 2019-08-31 01:38:40 +08:00 · 11105 次点击
    这是一个创建于 1941 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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
    
    
    18 条回复    2019-09-05 19:06:04 +08:00
    agagega
        1
    agagega  
       2019-08-31 02:23:28 +08:00 via iPhone
    第一个不说了
    第二个看名字可能是从 Java 字节码反汇编到 MapleIR 的工具,类似 llvm-dis
    第三个我猜应该是给 MapleIR 跑优化的,你可以试一下,理论上如果是的话应该类似 LLVM 的 opt,输入 IR 输出也是 IR
    最后一个可能是从 Maple 生成字节码的
    kokutou
        2
    kokutou  
       2019-08-31 06:35:03 +08:00 via Android
    “方舟编译器源代码(网传)”。。。。。。
    swulling
        3
    swulling  
       2019-08-31 07:59:16 +08:00 via iPhone
    @kokutou 确实是官方放出来的,不过官方关闭分享了,有人传到 github
    wwqgtxx
        4
    wwqgtxx  
       2019-08-31 08:26:36 +08:00
    @kokutou 昨晚 11 点多放出来过一会,大概 5 分钟左右就关闭访问权限了
    whwq2012
        5
    whwq2012  
       2019-08-31 09:19:30 +08:00 via iPad   ❤️ 3
    "我大华为的科学技术世界第一"这句话是原来仓库里的原话,而不是楼主加的吗?
    hkitdog
        6
    hkitdog  
       2019-08-31 09:28:03 +08:00 via iPhone   ❤️ 1
    @whwq2012 原仓库就有
    azuginnen
        7
    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
        8
    whwq2012  
       2019-08-31 09:30:57 +08:00 via Android
    @hkitdog 瑟瑟发抖,有华为员工是这么不会看场合的 jojo 粉吗。。。
    watzds
        9
    watzds  
       2019-08-31 09:36:18 +08:00 via Android
    编译器代码里都能插入广告?
    nightlight
        10
    nightlight  
       2019-08-31 09:54:16 +08:00 via Android
    @azuginnen 感觉菊厂猿们为了领导的嘴炮 加班加点上线 注释都没来得及清理
    JohnLou
        11
    JohnLou  
       2019-08-31 10:35:03 +08:00 via Android   ❤️ 1
    这种帖子异常的安静,果然黑子的水平普遍有点差。
    nicevar
        12
    nicevar  
       2019-08-31 10:39:27 +08:00
    @JohnLou 因为 90%以上的程序员基本上是看不懂编译器代码的,何况这里混娱乐圈的比较多,除了找个话题打打嘴炮之外,你还指望他们给你分析代码么
    xm1994
        13
    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
        14
    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
        15
    whwq2012  
       2019-08-31 10:51:29 +08:00 via iPad
    @xm1994 瑟瑟发抖,原来 v2 还有不懂乱答的人。
    belin520
        16
    belin520  
       2019-08-31 11:22:36 +08:00 via iPhone
    @xm1994 6 楼不懂乱答的?我差点就信了。
    不懂,表示继续观望 v2 的风向。
    hx1997
        17
    hx1997  
       2019-08-31 11:37:34 +08:00 via Android
    知乎评论基本都是“就开源了这么点东西啊”…
    asstar
        18
    asstar  
       2019-09-05 19:06:04 +08:00
    居然能编译过,里面有些方法只有声明没实现啊。
    而且我记得带了几个静态链接库,
    现在 java 源码也编不了,页面的编译还是动画演示。。。

    就这样上面几个老哥还不忘挤兑一下别人黑华为的水平不够。。。
    这还不够黑吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   846 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 20:55 · PVG 04:55 · LAX 12:55 · JFK 15:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.