惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
T
Tailwind CSS Blog
V
V2EX
阮一峰的网络日志
阮一峰的网络日志
H
Help Net Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
腾讯CDC
GbyAI
GbyAI
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Last Week in AI
Last Week in AI
A
About on SuperTechFans
L
LangChain Blog
Engineering at Meta
Engineering at Meta
F
Fortinet All Blogs
G
Google Developers Blog
The Cloudflare Blog
云风的 BLOG
云风的 BLOG
D
Docker
博客园 - 聂微东
博客园 - 司徒正美
Recent Announcements
Recent Announcements
MyScale Blog
MyScale Blog
U
Unit 42

LLVM

指令调度在 LLVM 与 OoO 的区别与联系? 使用 LLVM 的 clang 替换苹果自带的有问题吗 请问 LLVM 如何链接多个目标文件呢? 基于 llvm 开发编程语言,有必要学汇编吗?理由是什么,谢谢 想更熟悉 LLVM,是不是要学会 c++?还要学其他的吗? 我用 llvm 实现了 bb 语言的加法和减法,也套娃的实现了打印功能,那怎么实现更高级的,如 http 请求功能呢,该怎么套娃呢?套 c 语言吗 我想用 llvm 制作一门语言的编译器,是不是要学会 llvm ir 里的哪个奇怪的语法 用 Clang 编译时如何将编译参数存进 ELF 的某个 section 里? LLVM 8.0 发布 WebAssembly target 移除实验标签 LLVM/Clang LLD LLDB 5.0 正式发布 有哪位在 RHEL5 下编译过 llvm? 有没有朋友了解 klee 和 llvm 啊? 大家能访问 LLVM(llvm.org)吗 ClangFormat 代码格式化工具 llvm足够成熟了么?跟GCC相比有什么优劣? 王垠果然开始在 LLVM 上做事情了…… 居然看到LLVM了
假如要实现一个基于 LLVM IR 的包管理器,有什么坑或者硬伤吗?
ecnelises · 2019-03-02 · via LLVM

背景

要做本科毕设了,现在想的主题是基于 LLVM 的(因为实习做的事也跟 LLVM 有关),但是像讨论寄存器分配这样的东西弄出来好像到最后也只能成一篇文献综述,不讨老师喜欢工作量也不大。

然后想到,既然几乎所有语言都能编译到 LLVM IR,那么要是有一个基于 LLVM IR 的包管理器,不是件很有意思的事情?

问题

第一个想到的问题是,像 C++ 或者其他编译型语言,都是有 Name Mangling 机制的。如果要求编译出来的符号能相互链接,写代码的时候还得自己把 extern 这样的关键字加上。不过在这一层,可以要求用户在一个配置文件里指定导出符号的名字和签名,好像还是个好事。

第二个问题是,这些代码会不会存在跨平台上的障碍。虽然 LLVM IR 通常来说的确可以跨平台,但是不同平台(架构 /操作系统)的编译器前端生成的 IR 会不会不一样,以及会不会产生一些平台相关的代码现在都不太清楚,得再去看看。

第三个问题是,多数语言的可执行文件最后都需要依赖 Runtime 来运行。所以假设要做包管理器的话,是不是得要求这些 IR 都不能依赖各自语言的 Runtime ?好像到这样的话,就跟普通的 FFI 差不多了,就剩下 LLVM IR 比汇编层次高点这个优势了……

求助

各位熟悉 LLVM 的大佬们对这个 Idea 有什么建议吗?或者有什么我没想到的跟 LLVM 有关的课题也可以告诉我,多谢!