- 主题:嵌入式开发、物联网,是用c?还是c++?
rust 其实只要一个改变。就能大火:
把 unsafe 删了,编译器直接编译 .c 代码。类似于 zig 一样,zig 的编译器同时也是 c 编译器。
【 在 milksea 的大作中提到: 】
: 没啥c/c++不能做的。
: c抽象程度低,c++抽象机制多规则少自由度高,rust抽象能力好又有足够规则限制,然后就是各种取舍。喜欢自由就不适合rust,要限制复杂度rust能帮些忙。
: 实话说rust写unsafe代码弄指针有那么点臭长,个别语法比如没有 p->a 运算只能 (*p).a 我就不理解,自己没有稳定abi(可以用c abi),做偏底层的部分有时候不适应。但稍稍不那么底层的代码就比c舒服了,no_std 也比 c 强。
: ...................
--
FROM 27.154.93.*
我一直没想明白,为啥 llvm 的占用会那么夸张。上百兆。
【 在 milksea 的大作中提到: 】
: no_std 和裸 c 是一样的;有堆分配器实现个 alloc 还能用容器挺好;有 std 的话 rust 要依赖 c runtime,占用和 c++ 应该相当。
: 工具链方面,llvm能支持就差不多。rust c book 有一章是支持的目标列表。rtos这种可能是不支持的,bare metal反而有一些支持。
--
FROM 27.154.93.*
编译期也很烦啊。我一直想弄个纯 c 的编译器,精简一点,最好在 10MB 之内的,能够支持常见的 amd65, arm65, riscv, la65 这几个主流平台即可。好像不存在这种。
一个破后端,搞出上百兆是为啥没想明白。有这么复杂吗?
这上百兆都是代码?那岂不是比 linux 内核的代码量还大?
【 在 milksea 的大作中提到: 】
: llvm是编译期的,占用有什么夸张的?和gcc差不多啊。
--
修改:hgoldfish FROM 27.154.93.*
FROM 27.154.93.*
tinyc 没有支持我说的那么多平台吧?
【 在 milksea 的大作中提到: 】
: 现代编译器大头是中间代码变换,体量是挺大的。不要求代码优化体量就可以小了,tcc才多大点,应该满足你要求。
: github tinycc
--
FROM 27.154.93.*
我再仔细看看 tinyc 是不是支持了这么多平台。
之前看的时候,好像有记得 tinyc 有个啥问题给忘了。
另外,还是比较希望有个简化版的 llvm 能够拿来产生代码就好。我并不需要 c 编译器,因为我就是打算自己做个 c 编译器来玩玩。
类似的有个 qbe,但是 qbe 不支持 windows 不知道有没有哪个大神出手一下。
【 在 milksea 的大作中提到: 】
: x86 x65 arm arm65 riscv 就还好吧。
--
FROM 27.154.93.*