www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Path of least resistance towards D running on RISC-V

reply e-y-e <yurtqbqn grr.la> writes:
The HiFive1 [1] is the first commercially available RISC-V system 
on chip, programmable in C using the Freedom E SDK [2].

I have ordered one to tinker with and to help learn C properly, 
but I think it would be amazing to see D running on systems like 
this. I am a novice in low level stuff really, so I wonder what 
is the best way for this to happen? I assume LDC is the best 
compiler for the job (an LLVM supporting RISC-V exists [3] but 
needs to be upstreamed).

What's your opinion? Personally I think it would be a good 
demonstration of D as a cutting-edge systems language if it could 
be run on resource-constrained RISC-V systems like the HiFive1 
(no FP, low memory & CPU).

[1] https://www.sifive.com/products/hifive1/
[2] https://github.com/sifive/freedom-e-sdk/
[3] https://github.com/riscv/riscv-llvm/
Dec 31 2016
parent reply Nicholas Wilson <iamthewilsonator hotmail.com> writes:
On Saturday, 31 December 2016 at 11:36:47 UTC, e-y-e wrote:
 The HiFive1 [1] is the first commercially available RISC-V 
 system on chip, programmable in C using the Freedom E SDK [2].

 I have ordered one to tinker with and to help learn C properly, 
 but I think it would be amazing to see D running on systems 
 like this. I am a novice in low level stuff really, so I wonder 
 what is the best way for this to happen? I assume LDC is the 
 best compiler for the job (an LLVM supporting RISC-V exists [3] 
 but needs to be upstreamed).

 What's your opinion? Personally I think it would be a good 
 demonstration of D as a cutting-edge systems language if it 
 could be run on resource-constrained RISC-V systems like the 
 HiFive1 (no FP, low memory & CPU).

 [1] https://www.sifive.com/products/hifive1/
 [2] https://github.com/sifive/freedom-e-sdk/
 [3] https://github.com/riscv/riscv-llvm/
First step is to build the riscv-llvm and then use it to build LDC with it. If you are trying to do low level stuff then the druntime is probably out. Search for embedded d (ARM cortex M, 5(?) part series) for how to get rid of it (can't find it atm), or ask Adam. Anyway, good luck!
Dec 31 2016
parent e-y-e <yurtqbqn grr.la> writes:
On Saturday, 31 December 2016 at 11:49:52 UTC, Nicholas Wilson 
wrote:
 On Saturday, 31 December 2016 at 11:36:47 UTC, e-y-e wrote:
 ...
First step is to build the riscv-llvm and then use it to build LDC with it. If you are trying to do low level stuff then the druntime is probably out. Search for embedded d (ARM cortex M, 5(?) part series) for how to get rid of it (can't find it atm), or ask Adam. Anyway, good luck!
Thanks, I'll look around, I have an ARM Cortex M based Arduino board so I could test out the process using that.
Dec 31 2016