作者回复: 谢谢肯定!
只要喜欢技术,就会不断挖掘不断精进的。你一定会青出于蓝!
作者回复: 嗯。它实际上分为Mozilla基金会和Mozilla公司,基金会是公司的唯一股东。
成立一个公司的目的,是为了可以和谷歌这样的公司做生意,但赚来的钱是为了实现Mozilla基金会的使命。
挺有理想主义精神的一个组织。
中国未来是否也会孕育出着这样的组织呢?
作者回复: 你指的是微软的编译器后端技术?
我没有太关注微软,有几个原因:
1.微软的技术只能跑在windows上,而我希望能够用于多个平台,包括多个桌面操作系统和移动端等。
2.从研究的目的,我希望看到源代码和开放的文档,这点微软肯定是不支持的。
3.从使用的目的,我们希望后端工具能够帮助我们迅速实现自己的语言,而微软肯定没有动力帮这个忙。
总体来说,我希望采用开源的工具,并且是授权友好的开源工具。互联网时代这么多的创新,都是建立在开源的基础上的。
不过,技术都是相通的。微软这几年拥抱开源的态度也进步了很多。但至少目前为止,还没有办法用他们的东西。
作者回复: libc++是llvm提供的一个标准库,在MacOs和Linux上基本上成为了事实标准,替代了原来GNU的libstdc++。
可惜,目前对windows平台还没有正式支持,只有试验性的支持,你可以参见:
https://libcxx.llvm.org/docs/BuildingLibcxx.html#experimental-support-for-windows
作者回复: 首先,找一下有没有llvm-as和llc这两个可执行文件。如果找不到,可能安装得不完整?
其实,我建议拿下llvm的源代码来,自己编译一下。为什么呢?因为你自己编译的时候,缺省用的是debug模式,这样用一些命令的时候,会有一些debug模式下的特性可以用。比如,opt命令在debug模式下就能输出更多的信息,便于你做编译优化的实验。
作者回复: C++标准类库是C++语言的标准中规定的。
标准类库的实现可以有多个,比如gnu、apache等的版本。
http://libcxx.llvm.org 这个页面写了LLVM项目为什么要另外实现一个。这里面有对实现方法的不同理解、有License的原因,有符合标准的原因。
至于libc++的贡献者,可能有苹果的人,因为苹果肯定是关心License的,这也是macOS选择基于FreeBSD定制,而不会基于Linux或其他有版权问题的Unix定制的原因吧!