Earlier quoted context omitted.
As far as I know, ISO c++ is no better than microsoft rust. It is said microsoft rust syntax is on the same brain damage complexity level than ISO c++. That, and I don't even talk about the technical cost of its runtime (not far from the toxicity of a jvm?)
What is Microsoft rust? I’ve never heard of such a thing. Or did I miss the joke?
crustc: entirety of `rustc`, translated to C
81–90 of 99 posts
Re: crustc: entirety of `rustc`, translated to C
#82> For the past 3 years, I have been working on compiling Rust to C. .. This is, by my count, the 14th attempt: cilly Gotta respect the dedication to a niche interest. > The primary goal of this is support for old/obscure hardware with no LLVM/GCC support. I remember reading about the bootstrapping question, how it typically requires a Rust compiler to build the Rust compiler from source. https://bootstrapping.mirahez…
Guix uses mrustc for bootstrapping Rust, as required for compiler packages; it's a really impressive project and has worked well in that role for some time. This new project is interesting for other reasons though, because mrustc is targeted at the de fact "subset" of Rust in use by rustc at any given time. This looks like it could have broader applications, like compiling Rust programs for platforms not supported by…
For this, gcc-rs[1][2] is the most promising candidate.
Re: crustc: entirety of `rustc`, translated to C
#83Re: crustc: entirety of `rustc`, translated to C
#84> For the past 3 years, I have been working on compiling Rust to C. .. This is, by my count, the 14th attempt: cilly Gotta respect the dedication to a niche interest. > The primary goal of this is support for old/obscure hardware with no LLVM/GCC support. I remember reading about the bootstrapping question, how it typically requires a Rust compiler to build the Rust compiler from source. https://bootstrapping.mirahez…
> The primary goal of this is support for old/obscure hardware with no LLVM/GCC support. If you're going to go to all this effort for an old target though, wouldn't the effort be better spent on making it an LLVM target? Then you'd get Rust and a bunch of other languages for free. But maybe there are required parts of the LLVM IR that make this undesirable for certain targets, maybe requiring specific hardware featur…
Yes, actually I've heard of some projects compiling a language to Wasm, then using wasm2c to translate to C.
https://github.com/WebAssembly/wabt/blob/main/wasm2c/README....
The Zig project does something similar for their bootstrapping process with a custom wasm2c implementation with just the features they need.
https://github.com/ziglang/zig/blob/master/stage1/wasm2c.c
I get the feeling this is an underappreciated technique with more potential.
Re: crustc: entirety of `rustc`, translated to C
#85If I understand this correctly, you could run this compiler on iPadOS (since it's plain C). But you cannot mark it's output executable, since that would require JIT entitlement.
Re: crustc: entirety of `rustc`, translated to C
#86> For the past 3 years, I have been working on compiling Rust to C. .. This is, by my count, the 14th attempt: cilly Gotta respect the dedication to a niche interest. > The primary goal of this is support for old/obscure hardware with no LLVM/GCC support. I remember reading about the bootstrapping question, how it typically requires a Rust compiler to build the Rust compiler from source. https://bootstrapping.mirahez…
Guix uses mrustc for bootstrapping Rust, as required for compiler packages; it's a really impressive project and has worked well in that role for some time. This new project is interesting for other reasons though, because mrustc is targeted at the de fact "subset" of Rust in use by rustc at any given time. This looks like it could have broader applications, like compiling Rust programs for platforms not supported by…
Building from Source All the Way Down - https://guix.gnu.org/en/blog/2023/the-full-source-bootstrap-...
Re: crustc: entirety of `rustc`, translated to C
#87Earlier quoted context omitted.
Guix uses mrustc for bootstrapping Rust, as required for compiler packages; it's a really impressive project and has worked well in that role for some time. This new project is interesting for other reasons though, because mrustc is targeted at the de fact "subset" of Rust in use by rustc at any given time. This looks like it could have broader applications, like compiling Rust programs for platforms not supported by…
> compiling Rust programs for platforms not supported by LLVM For this, gcc-rs[1][2] is the most promising candidate. [1] https://rust-gcc.github.io/ [2] https://github.com/Rust-GCC/gccrs
Re: crustc: entirety of `rustc`, translated to C
#88If I understand this correctly, you could run this compiler on iPadOS (since it's plain C). But you cannot mark it's output executable, since that would require JIT entitlement.
Target WASM then
1. Your frontend needs to support emitting WASM. Ok for Rust, not for every language out there.
2. 2x-4x performance overhead.
Re: crustc: entirety of `rustc`, translated to C
#89Re: crustc: entirety of `rustc`, translated to C
#90Earlier quoted context omitted.
Guix uses mrustc for bootstrapping Rust, as required for compiler packages; it's a really impressive project and has worked well in that role for some time. This new project is interesting for other reasons though, because mrustc is targeted at the de fact "subset" of Rust in use by rustc at any given time. This looks like it could have broader applications, like compiling Rust programs for platforms not supported by…
> compiling Rust programs for platforms not supported by LLVM For this, gcc-rs[1][2] is the most promising candidate. [1] https://rust-gcc.github.io/ [2] https://github.com/Rust-GCC/gccrs
But OP has wider ambitions: the real niche targets are supported by neither gcc nor llvm. A rust-to-c transpiler that can adapt to weird C compilers should have a very wide reach.