开发者将 GCC 的 JIT 库移植到 Windows

2020年05月26日

libgccjit 是一个实现 GCC JIT 编译的嵌入式库,它可以动态链接到字节码解释器和其它程序中,在运行时生成本机代码。

目前 GCC 开发者实验性地将 libgccjit 移植到了 Windows,并提交了 patch。

开发者已经在 Emacs 的本地编译分支环境下测试通过,相信它可以很好地运行在 Windows。不过他也表示,过程中 libtool 与 Automake 存在一些差异,比如因为无法通过 libgccjit 创建 dll,并将其放在正确的目录中,所以不得不将 lib/libgccjit.so 复制到 bin/libgccjit.dll 中。同时经过他的测试,在 Windows 中也不必使用 --enable-host-shared。

GCC 代码库使用的是具有“传染性”的 GPLv3 许可,因此就算 libgccjit 移植到 Windows,那预估也不会有多少基于 Windows 的程序使用,因为有必须将新程序也开源的要求。不过这一移植经验至少能够让一些跨平台的开源程序看到 Windows 上能够这样支持 GCC JIT 的可能性。

从邮件列表来看,目前该 patch 还处于审核阶段,能否合并进入 GCC 11 还需要观测,具体情况可以查看:https://gcc.gnu.org/pipermail/gcc-patches/2020-May/546384.html

展开阅读全文
8 收藏
分享
加载中
精彩评论
1.各有各的生态,java本身也是c/c++实现的,要是公用生态,也没必要出现java了。2.部分编译成二进制,如果不涉及内存和反射等问题,也就是动态库咯,把java编成动态库图啥呢?你还不如直接找个c/c++库
2020-05-26 10:17
1
举报
最新评论 (7)
您好,请问为什么不实现将java语法转换编译成二进制码?这样就可以共用java的生态?
2020-05-26 09:37
0
回复
举报
Kotlin可以部分做到
2020-05-26 09:42
0
回复
举报
1.各有各的生态,java本身也是c/c++实现的,要是公用生态,也没必要出现java了。2.部分编译成二进制,如果不涉及内存和反射等问题,也就是动态库咯,把java编成动态库图啥呢?你还不如直接找个c/c++库
2020-05-26 10:17
1
回复
举报
你这个说的就是华为的方舟编译器吧
2020-05-26 10:32
0
回复
举报
那发布应用每个平台都编译一套,各有各的好处
2020-05-26 12:12
0
回复
举报
不用编译成机器码,用JNI和GraalVM都可以调用C/C++写的程序。
2020-05-26 13:20
0
回复
举报
不明所以
2020-05-26 09:02
0
回复
举报
更多评论
7 评论
8 收藏
分享
在线直播报名
返回顶部
顶部