Hello Martin,

Thank you for letting me know what you are doing in the RISC-V/ARM domain. I've not looked at the linux ports at all, probably because RISC-V Pi type boards have only just become realistically priced.

I keep running into basic things being broken on the ARM architecture;
yesterday I found out that even division doesn't work correctly. It won't be hard to fix, but it made me yearn for the ability to run the standard
Forth test suite against the ARM build.

Not entirely surprised. I had some issues, though given that it is at the codeword level they may not be connected.

https://tjnw.co.uk/amforth-rv/20240409/20240409.html

The Forth test suite is a great asset. And CI testing on emulation or real boards is what is required. The advantage of testing on Linux is not one I'd appreciated, though I have run the core tests on QEMU. QEMU has a generic RISC-V machine "virt" - and whilst I sound like a shill for linker files, same source, different linker file.

AmForth-RV 7.0 RV32IMAFC QEMU ASM
Sun 11 Jan 2026 00:49:51 GMT
show @
LFA..... (LFA)... FFA..... (FFA)... NFA..... XT...... (XT)....
8000491C 80004900 80004920 00000004 80004924 8000492C COLON    Udefer@
8000446C 80004420 80004470 00000004 80004474 8000447C COLON    defer@
8000177C 80001748 80001780 00000000 80001784 80001788 CODEWORD up@
80001050 80001024 80001054 00000000 80001058 8000105C CODEWORD 2r@
80000CFC 80000CDC 80000D00 00000000 80000D04 80000D08 CODEWORD h@
80000CC0 80000C98 80000CC4 00000000 80000CC8 80000CCC CODEWORD c@
80000A0C 800009FC 80000A10 00000000 80000A14 80000A18 CODEWORD @
800009A4 80000994 800009A8 00000000 800009AC 800009B0 CODEWORD sp@
80000950 80000934 80000954 00000000 80000958 8000095C CODEWORD rp@
80000930 80000914 80000934 00000000 80000938 8000093C CODEWORD r'@
80000910 800008F0 80000914 00000000 80000918 8000091C CODEWORD r@
 ok

This is to be expected because variables are still broken on ARM and they are critical for the test framework to function. Frankly I'm surprised it
managed to get that far.

Some (later) elements of the test suite AmForth will never "pass" because of how the tests expect memory words to be behave (as we have previously spoken about). I've used git more in the last 48 hours than I have in the whole of last two months whilst working towards an initial commit for version 2. My git skills are already a lot better than they were and version 2 is a lot better because of our email exchanges. Thank you. I'm not quite there, but in the meantime what would help you in terms of variables? If you are able to modify your build's linker file I can send you my RISC-V one, which would help setup the memory and it's a small step to progressing a little further in the CORE test suite.

Anyway, please let me know if I'm rediscovering the wheel here. Any hints or pointers to previous efforts in this direction would be very welcome.

No, you're pushing new frontiers, and I am convinced that a combined RISC-V/ARM port joined at the COLON word level is absolutely achievable, and in the near future.

Best wishes,
Tristan


_______________________________________________
Amforth-devel mailing list for http://amforth.sf.net/
[email protected]
https://lists.sourceforge.net/lists/listinfo/amforth-devel

Reply via email to