[libre-riscv-dev] PowerISA, NLNet grants
Samuel Falvo II
sam.falvo at gmail.com
Mon Feb 3 20:43:31 GMT 2020
On Mon, Feb 3, 2020 at 12:28 PM Luke Kenneth Casson Leighton <lkcl at lkcl.net>
> On Monday, February 3, 2020, Samuel Falvo II <sam.falvo at gmail.com> wrote:
> > Shucks -- sorry for the spam. I didn't realize that went out to the
> > list. I meant that to go to Luke privately. Sorry!
> no it's fantastic, samuel.
> is what you are doing more compact than assembly code by chance? the reason
> i ask is because we need a boot ROM.
At this stage of development, no. The Forth interpreter is partially
written in assembly language.
My current port of Forth uses a 16-bit direct-threaded interpreter design,
which means that your program text cannot exceed 64KB in size, and it runs
somewhat slower (say, factor of 10) slower than native code. The compiler
is pretty brute force and inelegant; it is pretty slow compared to
contemporary Forth designs. However, once code is compiled, it runs
reasonably quickly. For reference, my Forth environment comes to about
16KB in size, without any block I/O primitives compiled. It also
depends upon running from RAM, and does not conform to any existing ABI.
Conceivably, this representation might be smaller than raw assembly
language beyond a certain program size and complexity; however, I suspect
DX-Forth will need some adaptation to your specific project's needs if you
wish to explore using it.
1. I call it DX-Forth because I first wrote it for my Kestrel-2DX
computer, which only had 32KB of RAM usable. Please don't confuse my
DX-Forth with all the other version(s) online.
2. Block I/O primitives, used for program and data persistence, will
probably grow this closer to 20KB.
Samuel A. Falvo II
More information about the libre-riscv-dev