leaven:将LLVM IR转换为Go

时间:2024-06-06 19:28:02
【文件属性】:

文件名称:leaven:将LLVM IR转换为Go

文件大小:20KB

文件格式:ZIP

更新时间:2024-06-06 19:28:02

Go

酵:编译LLVM IR进行 莱文将LLVM中间表示转换为Go。 从理论上讲,它应该能够将具有基于LLVM的编译器的任何语言转换为Go。 但是到目前为止,我仅将其用于C。 每个LLVM指令在Go中都转换为等效的语句。 这会产生非常冗长的代码; 如果您正在寻找一种将C代码库转换为可维护的Go的工具,那么,Leaven不是。 但是,它的确使您无需使用CGo就可以从Go调用C代码。 我希望它可以产生程序的有效Go转换,这将是逐步(可能是手动)将其重新转换为惯用Go的良好起点。 警告 该软件是不完整的和实验性的。 它几乎不支持所有LLVM指令。 github.com/andybalholm/c2go上的转译器产生了更好的结果(但不是自动的)。 使用范例 (从musl libc转换strcmp 。) $ cat strcmp.c #include int strcmp(


【文件预览】:
leaven-master
----go.mod(217B)
----main.go(7KB)
----type.go(3KB)
----go.sum(5KB)
----LICENSE(1KB)
----README.md(2KB)
----instructions.go(22KB)
----expression.go(3KB)
----libc()
--------util.go(410B)
--------stdarg.go(785B)
--------string.go(2KB)
--------string-pdclib.go(15KB)
--------stdlib.go(953B)
----variable.go(8KB)
----include()
--------stdarg.h(484B)

网友评论